vhdl machine a etat

19

Click here to load reader

Upload: muhammad-ali

Post on 06-Aug-2015

88 views

Category:

Documents


3 download

TRANSCRIPT

Page 1: VHDL Machine a Etat

Machine à états finisMachine à états finis

1

Page 2: VHDL Machine a Etat

Rappels: Définition des systèmes électroniques

Un système électronique est caractérisé par• Ses entrées : e0; …; ei; … ; en• Son état électrique ESon état électrique E• Ses sorties : s0; … ; si; … ; sn

Il existe deux type de systèmes électroniques• Les systèmes combinatoires construits à l’aide de logique combinatoireLes systèmes combinatoires construits à l aide de logique combinatoire• Les systèmes séquentiels construits à l’aide de logique séquentielle

M hi à é• Les combinaisons des entrées conduisent à un nombre fini de combinaisons de sortie

Machines à états

sortie.• d’où l’appelation machine à nombre d’états finis ou Machine A Etats.• Vecteur d’entrée : Combinaison des variables d’entrée• Vecteur de sortie : Combinaison des variables de sortieVecteur de sortie : Combinaison des variables de sortie

2

Page 3: VHDL Machine a Etat

Machines à états

Notations :

• Entrée : E• Etat Présent : EP• Etat Futur : EF• Sortie : S

• Etat : Indicateur de position dans le temps

Définitions

Etat : Indicateur de position dans le temps• Registre d’Etat : Composé de bascules permettant de mémoriser les valeurs des états• Etat Présent : sortie stable du registre d’état à l’instant présentg p• Etat Futur : état dans lequel se trouvera la machine après une impulsion d'horloge

3

Page 4: VHDL Machine a Etat

Table de transition : deux parties indiquant le présent et le futur.

• E : Entrée à l’instant n• EP : Etat Présent à l’instant n• EF : Etat Suivant à l’instant n + 1• S : Fonction de Sortie à l’instant n + 1

• Table de transition

4

Page 5: VHDL Machine a Etat

1. IntroductionLes machines à états finis

(Finite State Machine, FSM)

Servant exclusivement à générer des gsignaux de commande.

La machine à état représente la partie contrôle, c’est à dire le cerveau du système électronique qui commande la partie opérative

5

système électronique qui commande la partie opérative

Page 6: VHDL Machine a Etat

Les états de la machine à états

Les états de la machine à états représentent toutes les valeurs que peuvent prendre les variables internes du circuit de logique séquentielle

Déf:

Exemple: Machine à café

L ét t t êt

1. Attente de pièce2. Descendre le gobelet3 Verser la poudre de caféLes états peuvent être 3. Verser la poudre de café4. Verser l’eau chaude5. Indiquer que c’est prêt

Cette machine peut se compliquer en prenant en compte

• Le choix de la boisson,• Le dosage du sucre

6

Page 7: VHDL Machine a Etat

2. Le graphe d’étatsComment représenter graphiquement le comportement

d’une machine à états ?

n’est pas aléatoireDans une machine à états donnée

n est pas aléatoire,

P t d dét i l l

la loi d’évolution de l’état

Permet de détermines la valeur des sorties.Ces lois

Soigneusement choisies par lecréateur de la machine afin que celle-ci

remplisse une fonction précise.

Le graphe d’états, comme son nom l’indique, représente graphiquement les états d’une hi à ét tmachine à états

Chaque état est dessiné sous la forme d’une bulle contenant son nom

7

Page 8: VHDL Machine a Etat

Prenons l’exemple d’une machine à laver où on considère 5 états comme illustré dans la figure

Prélavage LavageOn appelle état source l’état d dé t d’ t iti t

T0T1

Certaines transitions ont le

Arrêt

de départ d’une transition et état destination l’état

d’arrivée

même état pour source et pour destination.

Essorage Rinçage Cela signifie que la machine t t d l ê ét t

On complète le graphe en figurant les transitions possibles par des flèches entre les

peut rester dans le même état pendant un certain temps.

On complète le graphe en figurant les transitions possibles par des flèches entre les états.

8

Page 9: VHDL Machine a Etat

Le graphe constitue une représentation assez d d l’é l ti ibl d l hidense de l’évolution possible de la machine au

cours du temps.

Pour enrichir encore notre graphe nous devons préciser les spécifications de la hi t l ti liè t l l i d’é l ti d i bl i tmachine et, plus particulièrement, la loi d’évolution des variables internes

(l’état) en fonction des entrées.

M : variable booléenne qui traduit la position du

Supposons que les entrées de notre machine soient au

nombre de trois :

q pbouton Marche/Arrêt du lave-linge.P : variable booléenne qui indique si le programme de lavage sélectionné par l’utilisateurnombre de trois : lavage sélectionné par l utilisateurcomporte ou non une phase de prélavage.

C : valeur en minutes d’un chronomètre qui est i à é t ti t déb t d

9

remis à zéro automatiquement au début dechaque étape de lavage.

Page 10: VHDL Machine a Etat

Les durées des différentes étapes de lavage sont fixées par le constructeur :

• Prélavage : 10 minutes • Lavage : 30 minutes

• Rinçage : 10 minutes • Essorage : 5 minutes

A partir de ces informations complémentaires nous pouvons faire figurer sur le graphe les conditions logiques associées à chaque transitionsur le graphe les conditions logiques associées à chaque transition.

lorsque la machine est dans l’état Arrêt elle y reste tant que M n’est pas vrai au y q p

front montant de l’horloge.

Dès que M l’horloge la machine qest vrai

gchange d’état

Elle passe dans l’état Prélavage si P estvrai et dans l’état Lavage si P est faux.

N t hi t h f t t t d

10

Notre machine est synchrone sur front montant de l’horloge.

Page 11: VHDL Machine a Etat

Or un circuit électronique sans sorties n’est que de peu

Notre machine à états possède des entrées mais nous n’avons pas encore étudié les sorties.

d’utilité.

p

celles dont les sorties ne dé d t d l’ét t t

ce sont les machines dit d M

Il i t d t d

dépendent que de l’état courant dites de Moore

Il existe deux sortes de machines à états :

celles dont les sorties dépendent ce sont les machinescelles dont les sorties dépendent de l’état courant et des entrées

ce sont les machines dites de Mealy

N.B. Le programmateur de notre lave linge est donc une machine de Moore dont lessorties ne dépendent que de l’état courant.

11

Page 12: VHDL Machine a Etat

Nous supposerons que ses sorties sont trois signaux booléens, X, Y et Z destinés à piloter les différents moteurs du lave-linge.p g

Nous pouvons encore compléter leNous pouvons encore compléter le graphe d’états afin d’y faire figurer

cette information.

12

Page 13: VHDL Machine a Etat

3. Machines à états finisU hi à ét t fi i t i it é ti l d t l ti dé d t d’ ét t tUne machine à états finis est un circuit séquentiel dont les sorties dépendent d’un état et

éventuellement des entrées

L Fi ill t l t t (Calcul deLa Figure illustre la structure logique générale d’un tel circuit

(Registre d’état)(Calcul de l’état futur) (Calcul des

sorties)

Le bloc SM (State Memory) a pour Il a par essence un comportement le cœur de la machine d’états

fonction de mémoriser l’état courant de la machine.

séquentiel synchronisé sur un signal d’horloge.

L bl NSL (N t St t L i ) f ti d l l l h i ét t f ti dLe bloc NSL (Next State Logic) a pour fonction de calculer le prochain état en fonction de l’état courant et des entrées

Le bloc OL (output Logic) a pour fonction la génération des signaux de sortie en fonction de

13

( p g ) p g gl’état courant et éventuellement des entrées.

Page 14: VHDL Machine a Etat

La modélisation VHDL d’une machine à états finis doit considérer les points suivants:

Dans le premier cas, les états sont énumérés et identifiés par un code

expliciteL’utilisation d’un registre

d’état explicite ou implicite

D l d l ét t t

explicite1.

Dans le second cas, les états ne sont pas nommés et découlent de la

structure du modèle.L é titi i itLa répartition en circuits

combinatoires et séquentiels.2.

Une machine de Mealy offre plus car les sorties peuvent

Le choix machine de Moore ou de Mealy

3.

y pde flexibilité qu’une Machine de

Moorechanger dans le cas où le circuit reste dans un

même état.Moore ou de Mealy

les sorties sont codées d l ét t

Une machine de Moore peut par contre être optimisée de manière à éviter le bloc

14

dans les étatspOL par un codage approprié des états

Page 15: VHDL Machine a Etat

La méthode d’initialisation (reset)

qui peut être synchrone ou asynchrone

4. ( ) y

L’encodage des états5.La manière de représenter les états (explicites) a un effet important sur les performances du circuit en termes de

surface de délais et de consommationsurface, de délais et de consommation.

La formalisation des différentes formes de machines à états finis utilisera les notations suivantes:notations suivantes:

Xi: entrées primairesZi: sorties primairesS ét t tSi: état courantf(...): fonction combinatoirefclk(...): fonction de type flip-flop évaluée sur un flanc d’horloge.

15

Page 16: VHDL Machine a Etat

3.1. Machine de Moore

Une machine de Moore traditionnelle est caractérisée par les relations suivantes:

La Figure donne un exemple de machine de Moore représentée par un diagramme d’étatsp p g

Les cercles représentent les états et les flèches é t t l t iti t l ét treprésentent les transitions entre les états.

La transition d’un état à l’autre est synchronisée sur le flanc d’un signal d’horloge implicite.

Chaque cercle indique le nom d’un état (en haut) et les valeurs prises par les sortiesChaque cercle indique le nom d un état (en haut) et les valeurs prises par les sorties (en bas) lorsque la machine est dans cet état.

16

Page 17: VHDL Machine a Etat

Le Code donne le modèle VHDL correspondant.

Le modèle du Code déclare un type énuméré fsm_states à trois valeurs possibles et un signal local state qui représente le registre d’état de la

machine.

Les états sont par défaut encodés par des valeurs binaires successives en fonction de

l’énumération des états:l énumération des états:

S0 ("00") S1 ("01")S2 ("10" )( ) S1 ("01")

L’état "11 " est interdit.

17

Page 18: VHDL Machine a Etat

3.2. Machine de Mealy

Une machine de Mealy traditionnelle estUne machine de Mealy traditionnelle est caractérisée par les relations suivantes:

La Figure donne un exemple de machine de Mealy représentée par un diagramme d’états

Les sorties primaires peuvent dépendre directement des entrées primaires et leurs p

valeurs peuvent changer même si la machine reste dans le même état.

18

Page 19: VHDL Machine a Etat

Le Code donne le modèle VHDL correspondant.

Le changement principal par rapport au modèled l hi d M é id d l OLde la machine de Moore réside dans le processus OL

L t i ibl à dLe processus est aussi sensible à des événements sur les entrées primaires x et les valeurs des sorties primaires dépendent des valeurs des entrées primaires

19

valeurs des entrées primaires