Vhdl machine d'état
Utilisée pour décrire des systèmes séquentiels quelconques ( state machine).
PRINCIPE :
La description du système se fait par un nombre fini d’états. Ci-dessous la représentation schématique d’un système à 4 états (M0 à M3), 2 sorties (S1 et S2), 2 entrées X et Y, sans oublier l’entrée d’horloge qui fait avancer le processus, et celle de remise à zéro qui permet de l’initialiser :
M0
S1= 0 M1 Y = 1 S2 = 0 S1 = 1 dénomination de l’état S2 = 0 M3 X= 0 M0 S1 = 0 S2 = 1 M2 S1 = 0 S2 = 0 S1 = 1 condition Y=1 Etat des sorties S2 = 1 de la transition conditionnelle transition inconditionnelle
L’état initial est M0. Les 2 sorties sont à 0. Au coup d’horloge on passe inconditionnellement à l’état M1 sauf si la condition Y=1 a été vérifiée, ce qui mène à l’état M3 ou si X=0 a été validé ce qui mène à M2.
De M3 on revient au coup d’horloge à M0. De M1 on passe à M2, et de M2 on passe à M 3...
Dans chaque état on définit les niveaux des sorties.
ECRITURE EN LANGAGE V.H.D.L. :
On va traduire et essayer l’exemple ci-dessus. En langage VHDL une des méthodes conseillée d’écriture des machines d’état est :
* une ENTITE
* une ARCHITECTURE de description d’état avec 2 PROCESS :
Un process asynchrone et un process synchrone.
[pic] Pour des précisions sur les règles d’écriture d’une machine d’état à 2 process voir l’ANNEXE I.
II-A ) DEFINITION DE L’ENTITE :
---Machine d’état exercice 1 ----
---PILLET jl 19/08/97 P.P.-----
--- machine1.VHD------
---- déclaration des librairies -- library ieee; use ieee.std_logic_1164.all;
library SYNTH ; use SYNTH.vhdlsynth.all ;
----- Définition de l'entité----
ENTITY machine1 IS
PORT (RAZ, horl :IN STD_LOGIC; --