Master EEA

Machine à Etats Finis, VHDL, Systèmes numériques · course

Voir tous les documents en électronique et automatique

Master EEA

Universit de Rennes 1 ISTIC

CentraleSup lec Rennes

Machine Etats Finis

en VHDL

Samuel CRAND

Laboratoire IETR - CNRS UMR 6164

B t. 11 B

T l : 02 23 23 65 04

E-mail : [email protected]

1

Syst me num rique

Unit de traitement

des donn es

  • Combinatoire
  • Additionneur
  • Comparateur
  • UAL
  • S quentiel
  • Registre d calage
  • Compteur

Unit de contr le

  • Synchronisation des t ches
  • Automate
  • S quenceur
  • Machine tats finis

Commandes

Unit de contr le

Unit de traitement

des donn es

Signaux

de contr le

Donn es (entr e)

Donn es

(sortie)

2

Machines synchrones tats finis

Automate : Op rateur s quentiel

Automate : 1 tat parmi N

Passage dun tat l tat suivant : front montant ou descendant de lhorloge

Clock

Entr es

Sorties

Automate

3

Machine de MOORE

Machine de MEALY

Sorties = f( tats)

Sorties = f( tats, entr es)

D finition dune machine :

Entr es : Entr est

Sorties : Sortiest

Etat initial : Etat0

Etat pr sent : Etatt

Etat futur : Etatt+1

4

Machine tats finis

Machine de MOORE

. Caract ristique

Les sorties d pendent seulement de l' tat interne

. Avantages

Structure plus r guli re

Synchronisme des sorties

Filtrage de perturbations sur les entr es

. Inconv nient

Temps de r ponse = un cycle d'horloge

Et

Xt

St

Xt+1

5

4.3.2 Machines synchrones tats finis

Machine de MOORE

Equations :

Sortiest = f (Etatst)

Etatst+1 = f(Entr est, Etatst)

Entr est

Etatst

R seau

combinatoire

d'entr es

Etatst

Publicité

Bascules D

Sortiest

R seau

combinatoire

de sorties

Etatst+1

6

VHDL pour la synth se : exemples

Machine de MEALY

. Caract ristiques :

  • Les sorties voluent lorsque les entr es voluent
  • Les sorties ne sont pas toujours synchrones

Et

Xt

. Inconv nient :

  • Asynchronisme des sorties

. Avantages :

  • Simplification des sorties
  • R duction des temps de r ponse

St

Xt+1

7

4.3.2 Machines synchrones tats finis

Machine de MEALY

Equations :

Sortiest = f (Etatst, Entr est)

Etatst+1 = f(Etatst, Entr est)

Entr est

Etatst

R seau

combinatoire

d'entr es

Entr est

Bascules D

Etatst+1

Etatst

Sortiest

R seau

combinatoire

de sorties

8

Machine de MOORE

Machine de MEALY

Les sorties d pendent seulement de

l' tat interne

Les sorties voluent lorsque les entr es voluent

Les sorties ne sont pas toujours synchrones

Avantages

Synchronisme des sorties

Filtrage de perturbations sur les entr es

Simplification des sorties

R duction des temps de r ponse

Inconv nients

Temps de r ponse = un cycle d'horloge

Asynchronisme des sorties

9

4.3.2 Machines synchrones tats finis

Repr sentation dune machine tats finis => Diagramme d tats

Action n-1

En-1

Cn-1

Action i

E2

C2

Ei

Action 2

Action 1

E1

C1

Ci

i = 0 n-1

Passage dun tat un autre tat => Condition logique

C1 : Condition de passage de l tat Ei l tat E1

Maintien dans un tat => Condition logique

Ci : Condition de maintien dans l tat Ei

10

4.3.2 Machines synchrones tats finis

Repr sentation dune machine tats finis => Diagramme d tats

Publicité

Transition conditionnelle

. Prise en compte de la condition sur les entr es uniquement

sur front de lhorloge

. Minimum 2 transitions conditionnelles partir dun tat

Transition inconditionnelle

. Prise en compte imm diate sur front de lhorloge

. Une seule transition inconditionnelle par tat

11

4.3.2 Machines synchrones tats finis

Relations logiques respecter dans un graphe d tats

Loi dexclusion mutuelle

A partir dun tat, toutes les

conditions doivent tre d finies

A partir dun tat, une seule

condition v rifi e

=> un seul tat activ

12

Machine tats finis

Codeur 1 -> 2

Sp cifications initiales

Codage

ou

Si din = 0 alors

Si din = 1 alors

ou

dout = 00

dout = 01

dout = 10 en alternance

Machine de MEALY

ou

Machine de MOORE

Diagramme d' tats

13

clk t t t din dout 10 01 Machine tats finis

Codage en VHDL

S quentialit -> Process

Etats de la machine :

. Signal : Assignation diff r e

  • Prise en compte la fin du process
  • Synchronisme
  • Etat pr sent et tat futur par nature

. Variable : Assignation imm diate

  • Prise en compte imm diate

Instructions VHDL

. CASE & IS

WHEN &

...

END CASE

14

Implantation d'une machine de MOORE en VHDL

1er cas : Un seul process et utilisation d'un signal pour l' tat de la machine

PROCESS(clk)

BEGIN

IF rising_edge(clk) THEN

CASE etat IS

WHEN etat1 =>

Sortie <= &;

IF entree = & THEN

etat <= etat2;

END IF;

&

END CASE;

END IF;

END PROCESS;

R sultat de la synth se

  • Machine de MOORE
  • Utilisation de 2 registres
  • Effet de pipeline (latence d'un cycle)

Etat

Registres

Logique

combinatoire

d'entr e

entr es

clk

Logique

combinatoire

de sortie

Registres

sortie

Publicité

15

Implantation d'une machine de MOORE en VHDL

2 me cas : 2 process et utilisation d'un signal pour l' tat de la machine

Synchrone : PROCESS(clk)

BEGIN

IF rising_edge(clk) THEN

CASE etat IS

WHEN etat1 =>

IF entree = & THEN

etat <= etat2;

END IF;

&

END CASE;

END PROCESS Synchrone;

Combinatoire : PROCESS(etat)

BEGIN

CASE etat IS

WHEN etat1 =>

sortie <= &;

...

END CASE;

END PROCESS Combinatoire;

Etat

Registres

Logique

combinatoire

d'entr e

entr es

clk

Machine de MOORE ? OUI

Logique

combinatoire

de sortie

sortie

16

Implantation d'une machine de MEALY en VHDL

2 process et utilisation d'un signal pour l' tat de la machine

Synchrone : PROCESS(clk)

BEGIN

IF rising_edge(clk) THEN

CASE etat IS

WHEN etat1 =>

IF entree = & THEN

etat <= etat2;

END IF;

&

END CASE;

END PROCESS Synchrone;

Combinatoire : PROCESS(etat, entree)

BEGIN

CASE etat IS

WHEN etat1 =>

IF entree = & THEN

sortie <= &;

ELSIF ...;

END IF;

END CASE;

END PROCESS Combinatoire;

Etat

Registres

Logique

combinatoire

d'entr e

entr es

clk

Machine de MEALY ? OUI

Logique

combinatoire

de sortie

sortie

17

Machine tats finis

Codeur 1 -> 2

LIBRARY IEEE;

USE IEEE.STD_LOGIC_1164.ALL;

ENTITY codeur IS

Publicité

PORT ( clk,reset,din : in std_logic;

dout : out std_logic_vector (0 TO 1));

END;

18

Codeur 1 -> 2

Machine tats finis

ARCHITECTURE comp OF codeur IS

TYPE liste_etat IS (E0,E1,E2,E3) ;

SIGNAL etat : liste_etat;

BEGIN

P1 : process (clk,reset)

BEGIN

IF reset ='0' THEN etat <= E0;

ELSIF (clk='1' AND clk'event) THEN

CASE etat IS

WHEN E0 => IF din='1' THEN etat <= E1;END IF;

WHEN E1 => IF din='1' THEN etat <= E3;

ELSE etat <= E2;END IF;

WHEN E2 => IF din='1' THEN etat <= E3;END IF;

WHEN others => IF din='0' THEN etat <= E0;

ELSE etat <= E1;END IF;

END CASE;

END IF;

END process P1;

P2 : process(etat)

begin

CASE etat IS

WHEN E0 => dout <= "00";

WHEN E1 => dout <= "01";

WHEN E2 => dout <= "00";

WHEN others => dout <= "10";

END CASE;

END PROCESS P2;

END comp;

19

Protocole de communication

Echanges dinformations entre 2 composants

data1to2

Composant 1

Composant 2

Contr le

Composant 1 :

  • Transmission des donn es data1to2, quand ?
  • R ception des donn es data1to2, garantie ?

Composant 2 :

  • Disponibilit du composant 2 pour recevoir les donn es data1to2 ?
  • R ception des donn es data1to2, garantie ?

20

Protocole de communication

Echanges dinformations entre 2 composants

Composant 1

(Master)

data1to2

REQ

ACK

Composant 2

(Slave)

REQ : Requ te (REQuest)

  • Information denvoi des donn es data1to2

ACK : Acquittement (ACKnowledgment)

  • Information de la r ception des donn es data1to2

2 Machines tats finis

Composant 1

Composant 2

21

Protocole de demande-r ponse entrelac es (hand-shake)

avec requ te (REQuest) et acquittement (ACKnowledgment)

REQ

ACK

` lutilisateur envoie X et le signale par REQ=1

a la machine prend en compte X et le signale par ACK=1

b lutilisateur a vu que la machine a pris en compte X et signale par REQ=0

c la machine a vu que lutilisateur avait vu que la machine avait pris en compte X

et le signale par ACK=0)

Source : Steven Derrien - ISTIC

22