Version 2 (modified by 18 years ago) (diff) | ,
---|
TP1 : Synthèse d'automates d'états finis
1 Introduction
Un circuit combinatoire pur ne dispose pas
de registres internes. De ce fait, ses sorties ne dépendent que de ses entrées primaires.
A l'inverse, un circuit séquentiel synchrone disposant de registres internes voit ses sorties changer en fonction de ses entrées mais aussi des valeurs mémorisées dans ses registres.
En conséquence, l'état du circuit à l'instant t+1 dépend aussi de son état à l'instant t. Ce type de circuit peut être modélisé par un automate d'états finis.
FIG. 2 Automate d'états
2 Automates de MOORE et MEALY
L'automate de MOORE voit l'état de ses sorties changer uniquement sur front d'horloge. Les entrées peuvent donc bouger entre deux fronts sans modier les sorties. Par contre dans le cas d'un automate de MEALY, la variation des entrées peut modier à 2.3 SYF et VHDL An de décrire de tels automates, on utilise un style particulier de description VHDL qui dénit l'architecture "fsm" (finite-state machine). Le chier correspondant possède également l'extension fsm. A partir de ce chier, l'outil SYF effectue la synthèse d'automate et transforme cet automate abstrait en un réseau booléen. SYF génère donc un chier VHDL au format vbe. Comme la plupart des outils utilisés au laboratoire, il faut positionner certaines variables d'environnement avant d'utiliser SYF. Pour les connaître, reportez-vous au man de syf. 2.4 Exemple An de se familiariser avec la syntaxe de description d'un chier .fsm, un exemple de compteur de trois "1" successifs est présenté. Sa vocation est de détecter par exemple sur une liaison série une séquence de trois "1" successifs. Le graphe d'états que l'on cherche à décrire est représenté sur la gure 4. Le format fsm est également décrit dans une page man. Pensez à la consulter. E0 E1 E2 E3 o=0 o=1 0 0 0 0 1 1 1 1 reset reset reset o=0 o=0 FIG. 4 Graphe d'états d'un compteur de trois "1" successifs entity circuit is port ( ck, i, reset, vdd, vss : in bit ; o : out bit ) ; end circuit ; architecture MOORE of circuit is type ETAT_TYPE is (E0, E1, E2, E3) ; signal EF, EP : ETAT_TYPE; pragma CURRENT_STATE EP pragma NEXT_STATE EF pragma CLOCK CK begin process (EP, i, reset) begin ACSI M2 5 TP2 Synthèse logique et génération de chemin de données if (reset=’1’) then EF<=E0; else case EP is when E0 => if (i=’1’) then EF <= E1 ; else EF <= E0 ; end if ; when E1 => if (i=’1’) then EF <= E2 ; else EF <= E0 ; end if ; when E2 => if (i=’1’) then EF <= E3 ; else EF <= E0 ; end if ; when E3 => if (i=’1’) then EF <= E3 ; else EF <= E0 ; end if ; when others => assert (’1’) report "etat illegal"; end case ; end if ; case EP is when E0 => o <= ’0’ ; when E1 => o <= ’0’ ; when E2 => o <= ’0’ ; when E3 => o <= ’1’ ; when others => assert (’1’) report "etat illegal" ; end case ; end process ; process(ck) begin if (ck=’1’ and not ck’stable) then EP <= EF ; end if ; end process ; end MOORE ; TP2 Synthèse logique et génération de chemin de données
5 Travail à effectuer
Ecrire la description d'un compteur de cinq "un" successifs sous la forme d'un automate de Moore. Positionner les variables d'environnement. Lancer SYF avec les options de codage -a, -j, -m, -o, -r et en utilisant les options -CEV.
syf -CEV -a <fsm_source> -
Un chier Makele vous est fourni pour vous faciliter la vie ! répertoire : ~trncomun/TP/2006/TP2/Fichiers/Fournis/Compteur5/. Utilisez ce Make le à compléter. Visualiser les chiers .enc. Ecrire un chier de vecteurs de test et simuler sous ASIMUT. Que se passe-t-il si le reset n'est pas positionné en début de pattern ? Pourquoi ?
TP2 Synthèse logique et génération de chemin de données 3 Automate pour digicode
2.5 Travail à effectuer Ecrire la description d'un compteur de cinq "un" successifs sous la forme d'un automate de Moore. Positionner les variables d'environnement. Lancer SYF avec les options de codage -a, -j, -m, -o, -r et en utilisant les options -CEV.
syf -CEV -a <fsm_source> -
Un chier Makele vous est fourni pour vous faciliter la vie ! répertoire : ~trncomun/TP/2006/TP2/Fichiers/Fournis/Compteur5/. Utilisez ce Make le à compléter. Visualiser les chiers .enc. Ecrire un chier de vecteurs de test et simuler sous ASIMUT. Que se passe-t-il si le reset n'est pas positionné en début de pattern ? Pourquoi ?
Attachments (5)
- automate.jpg (33.6 KB) - added by 18 years ago.
- ex_digicode.jpg (12.7 KB) - added by 18 years ago.
- synthese.jpg (10.8 KB) - added by 18 years ago.
- graphe1.jpg (29.8 KB) - added by 18 years ago.
- T_RC.jpg (8.8 KB) - added by 16 years ago.
Download all attachments as: .zip