VHDL Machine a Etat

download VHDL Machine a Etat

of 19

Transcript of VHDL Machine a Etat

Machinetatsfinis Machine tats finis

1

Rappels: Dfinition des systmes lectroniquesUn systme lectronique est caractris par Ses entres : e0; ; ei; ; en Son tat lectrique E Ses sorties : s0; ; si; ; sn Il existe deux type de systmes lectroniques l aide Les systmes combinatoires construits laide de logique combinatoire Les systmes squentiels construits laide de logique squentielle

Machines tats M hi Les combinaisons des entres conduisent un nombre fini de combinaisons de sortie. sortie do lappelation machine nombre dtats finis ou Machine A Etats. Vecteur dentre : Combinaison des variables dentre Vecteur de sortie : Combinaison des variables de sortie

2

Machines tatsNotations: Entre : E Etat Prsent : EP Etat Futur : EF Sortie : S

Dfinitions Etat : Indicateur de position dans le temps Registre dEtat : Compos de bascules permettant de mmoriser les valeurs des tats Etat Prsent : sortie stable du registre dtat linstant p g prsent Etat Futur : tat dans lequel se trouvera la machine aprs une impulsion d'horloge

3

Table de transition : deux parties indiquant le prsent et le futur. E : Entre linstant n EP : Etat Prsent linstant n EF : Etat Suivant linstant n + 1 S : Fonction de Sortie linstant n + 1 Table de transition

4

1. IntroductionLes machines tats finis (Finite State Machine, FSM)

Servant exclusivement gnrer des g signaux de commande.

La machine tat reprsente la partie contrle, cest dire le cerveau du systme lectronique qui commande la partie oprative5

Les tats de la machine tats Df: Les tats de la machine tats reprsentent toutes les valeurs que peuvent prendre les variables internes du circuit de logique squentielle

Exemple:

Machine caf 1. Attente de pice 2. Descendre le gobelet 3. 3 Verser la poudre de caf 4. Verser leau chaude 5. Indiquer que cest prt Le choix de la boisson, Le dosage du sucre

Les t t L tats peuvent tre t t

Cette machine peut se compliquer en prenant en compte

6

2. Le graphe dtatsComment reprsenter graphiquement le comportement dune machine tats ? n est nest pas alatoire alatoire, Dans une machine tats donne la loi dvolution de ltat Ces lois Permet d dt P t de dtermines l valeur i la l des sorties.

Soigneusement choisies par le crateur de la machine afin que celle-ci remplisse une fonction prcise.

Le graphe dtats, comme son nom lindique, reprsente graphiquement les tats dune machine tats hi t t Chaque tat est dessin sous la forme dune bulle contenant son nom7

Prenons lexemple dune machine laver o on considre 5 tats comme illustr dans la figure T1 T0 On appelle tat source ltat de dpart d d d t dune t transition et iti t tat destination ltat darrive Prlavage Arrt Lavage Certaines transitions ont le mme tat pour source et pour destination.

Essorage

Rinage

Cela signifie que la machine peut rester dans le mme tat t t d l t t pendant un certain temps.

On complte le graphe en figurant les transitions possibles par des flches entre les tats.

8

Le graphe constitue une reprsentation assez dense d l l ti possible de la machine au d de lvolution ibl d l hi cours du temps.

Pour enrichir encore notre graphe nous devons prciser les spcifications de la machine et, plus particulirement, la loi dvolution des variables internes hi t l ti li t l l i d l ti d i bl i t (ltat) en fonction des entres. M : variable boolenne qui traduit la position du q p bouton Marche/Arrt du lave-linge. P : variable boolenne qui indique si le programme de lavage slectionn par l utilisateur lutilisateur comporte ou non une phase de prlavage. C : valeur en minutes dun chronomtre qui est remis zro automatiquement au dbut de i t ti t db t d chaque tape de lavage.9

Supposons que les entres de notre machine soient au nombre de trois :

Les dures des diffrentes tapes de lavage sont fixes par le constructeur : Prlavage : 10 minutes Rinage : 10 minutes Lavage : 30 minutes Essorage : 5 minutes

A partir de ces informations complmentaires nous pouvons faire figurer sur le graphe les conditions logiques associes chaque transition. transition lorsque la machine est dans ltat Arrt elle y reste tant que M nest pas vrai au q p front montant de lhorloge. q Ds que M est vrai lhorloge la machine g change dtat

Elle passe dans ltat Prlavage si P est vrai et dans ltat Lavage si P est faux. Notre N t machine est synchrone sur front montant de hi t h f t t td lhorloge.10

Or un circuit lectronique sans sorties nest que de peu dutilit. Notre machine tats possde des entres mais nous navons pas encore tudi les sorties. p celles dont les sorties ne dpendent d d t que de ltat courant d lt t t ce sont les machines dites d Moore dit de M

Il existe deux sortes d it d t de machines tats : celles dont les sorties dpendent de ltat courant et des entres ce sont les machines dites de Mealy

N.B. Le programmateur de notre lave linge est donc une machine de Moore dont les sorties ne dpendent que de ltat courant.

11

Nous supposerons que ses sorties sont trois signaux boolens, X, Y et Z destins p piloter les diffrents moteurs du lave-linge. g

Nous pouvons encore complter le graphe dtats afin dy faire figurer cette information.

12

3. Machines tats finisUne U machine tats finis est un circuit squentiel dont les sorties dpendent dun tat et hi t t fi i t i it ti l d t l ti d d t d t t t ventuellement des entres

La Fi L Figure illustre la structure ill t l t t logique gnrale dun tel circuit

(Calcul de ltat futur)

(Registre dtat)

(Calcul des sorties)

le cur de la machine dtats Le bloc SM (State Memory) a pour Il a par essence un comportement fonction de mmoriser ltat courant squentiel synchronis sur un signal de la machine. dhorloge. Le bl L bloc NSL (N t St t L i ) a pour f ti de calculer le prochain tat en fonction de (Next State Logic) fonction d l l l h i t t f ti d ltat courant et des entres Le bloc OL (output Logic) a pour fonction la g ( p g ) p gnration des signaux de sortie en fonction de g ltat courant et ventuellement des entres.13

La modlisation VHDL dune machine tats finis doit considrer les points suivants: Dans le premier cas, les tats sont numrs et identifis par un code explicite

1.

Lutilisation dun registre dtat explicite ou implicite

Dans l second cas, l tats ne sont D le d les t t t pas nomms et dcoulent de la structure du modle. 2. La titi L rpartition en circuits i it combinatoires et squentiels. Une machine de Mealy offre p y plus de flexibilit quune Machine de Moore car les sorties peuvent changer dans le cas o le circuit reste dans un mme tat.

3.

Le choix machine de Moore ou de Mealy

Une machine de Moore peut par contre tre optimise de manire viter le bloc p OL par un codage appropri des tats

les sorties sont codes dans les tats d l t t14

4.

La mthode dinitialisation ( (reset) )

qui peut tre synchrone ou asynchrone y

5. Lencodage des tats

La manire de reprsenter les tats (explicites) a un effet important sur les performances du circuit en termes de surface, surface de dlais et de consommation consommation.

La formalisation des diffrentes formes de machines tats finis utilisera les notations suivantes: Xi: entres primaires Zi: sorties primaires Si: t t courant tat t f(...): fonction combinatoire fclk(...): fonction de type flip-flop value sur un flanc dhorloge.

15

3.1.MachinedeMoore Une machine de Moore traditionnelle est caractrise par les relations suivantes:

La Figure donne un exemple de machine de Moore reprsente par un diagramme dtats p p g Les cercles reprsentent les tats et les flches reprsentent les transitions entre les tats. t tl t iti t l t t La transition dun tat lautre est synchronise sur le flanc dun signal dhorloge implicite. Chaque cercle indique le nom d un tat (en haut) et les valeurs prises par les sorties dun (en bas) lorsque la machine est dans cet tat.

16

Le Code donne le modle VHDL correspondant.

Le modle du Code dclare un type numr fsm_states trois valeurs possibles et un signal local state qui reprsente le registre dtat de la machine. Les tats sont par dfaut encods par des valeurs binaires successives en fonction de l numration lnumration des tats: S2 ("10" ) S1 ("01")

S0 ("00") ( )

Ltat "11 " est interdit.

17

3.2. Machine de Mealy Une machine de Mealy traditionnelle est caractrise par les relations suivantes:

La Figure donne un exemple de machine de Mealy reprsente par un diagramme dtats

Les sorties primaires peuvent dpendre directement des entres primaires et leurs p valeurs peuvent changer mme si la machine reste dans le mme tat.

18

Le Code donne le modle VHDL correspondant.

Le changement principal par rapport au modle de l d la machine de Moore rside dans le processus OL hi d M id d l

Le L processus est aussi sensible des t i ibl d vnements sur les entres primaires x et les valeurs des sorties primaires dpendent des valeurs des entres primaires19