SlideShare une entreprise Scribd logo
1  sur  13
LA DESCRIPTION D’ETAT
Utilisée pour décrire des systèmes séquentiels quelconques ( state machine).
I) 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.
II) 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.
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; -- Ne pas oublier remise à 0 et horloge !
X, Y :IN STD_LOGIC;
S1, S2 :OUT STD_LOGIC);
END machine1;
II-B ) DEFINITION DE L’ARCHITECTURE :
*LE PROCESS SYNCHRONE :
------ Définir L'architecture de description d'état -----------------
ARCHITECTURE diagramme OF machine1 IS
TYPE etat_4 IS (M0, M1, M2, M3); --définir une liste des états...
SIGNAL etat,etat_suiv :etat_4 := M0; --et 2 signaux: états courant et
–-suivant, contenant la valeur d’un état de la liste (initialisée à M0) .
BEGIN
definir_etat:PROCESS( raz, horl) -- "definir_etat":label optionnel
BEGIN
If raz = '1' THEN
etat <= M0; --Le PACKAGE std_logic_1164
ELSIF rising_edge(horl) THEN --en permet l’utilisation.
etat <= etat_suiv ;
END IF; --Mise à jour de la variable
END PROCESS definir_etat; d’état par l’horloge.
II-C ) DEFINITION DES ETATS DES SORTIES :
*LE PROCESS ASYNCHRONE :
------------ Définir les états des sorties-------------------
sorties : process (etat, x, y) --Le PROCESS doit contenir une...
BEGIN structure de CAS unique dépendant
CASE etat IS de la variable d’état.
WHEN M0 => S1 <= '0'; S2<= '0';
IF Y='1' then etat_suiv <= M3;
elsif X='0' then etat_suiv <= M2;
ELSE etat_suiv <= M1;
PILLET JL TSEL 2/13 27/01/17
END IF;
--Le signal de l’état suivant n’est
attribué que dans la structure CASE
WHEN M1 => S1 <= '1'; S2<= '0';etat_suiv <= M2;
WHEN M2 => S1 <= '1'; S2<= '1';etat_suiv <= M3;
WHEN M3 => S1 <= '0'; S2<= '1';etat_suiv <= M0;
END CASE;
END process sorties ;
END diagramme ; -- ne pas oublier de terminer l’architecture !
Lors de la compilation de ce fichier, sélectionner les
librairies :
IEEE.lib, SYNTH.lib et SYNOPSYS.lib
III) SIMULATION :
Définir les entrées :
horl : période 200ns
Raz à 0ns =1 et à 150ns =0
x à 0ns =1 , à 950ns =0 et à 1200ns =1
Y à 0ns =0 et à 1550ns =1
Simuler pendant 2.5us
On obtient :
PILLET JL TSEL 3/13 27/01/17
On vérifie bien les différents cycles de fonctionnement du système séquentiel.
GESTION d’un CARREFOUR
Dans un premier temps, pour illustrer la méthode, on simplifie le problème à
l’extrême :
Au croisement de 2 routes, on place des feux tricolores :
AXE 2
F2 F1 R1 feu rouge de l’axe 1
O1 feu orange ----------
AXE 1 V1 feu vert -----------
R2 , O2, V2 idem pour
F1 F2 l’axe 2
HYPOTHESES de fonctionnement :
On définira les temps de fonctionnement des feux en fonction de la période de l’horloge de
base. Pour la simulation T de l’horloge fera 1 µs. Dans la réalité il suffira de connecter au
circuit une horloge de 1 seconde par exemple.
V1 dure 8 s, V2 dure 5s, et les feux oranges 1s.
On décrit donc le fonctionnement global comme suit :
L’axe 1 vient de passer au vert (V1=1, R1 et O1=0 ; V2 et O2=0, R2=1). 8 s plus tard il passe
au orange (O1=1, R2=1). On laisse par sécurité les 2 feux au rouge pendant une seconde (R1
et R2=1). 10 secondes se sont écoulées lorsqu’on ouvre le passage à l’axe 2 (V2 et R1=1). Le
cycle complet dure donc 17s.
L’initialisation doit placer le système en état de sécurité, soit R1 et R2=1 pendant une
seconde. On libère ensuite l’axe 1.
Il n’y a pas d’entrée (appel piéton...) dans cet exemple très simplifié.
DIAGRAMME :
Les dénominations des états sont choisies simples à se souvenir
INIT
R1=R2=1 V11 V12 V13 V14 V15 V16
V1=V2=0 R1=0 R1=0 R1=0 R1=0 R1=0 R1=0
O1=O2=0 V1=1 V1=1 V1=1 V1=1 V1=1 V1=1
V17
R1=0
V1=1
Par simplification ne sont mises que les sorties qui changent
OR2 Idem dans le programme, dans la définition des états des sorties
V2=0 V18
O2=1 R1=0
V1=1
V25 V24 V23 V22 V21 SEC OR1
R2=0 R2=0 R2=0 R2=0 R2=0 R1=1 V1=0
PILLET JL TSEL 4/13 27/01/17
V2=1 V2=1 V2=1 V2=1 V2=1 O1=0 O1=1
EXEMPLE DE FICHIER VHDL :
-- FEUX_1.vhd------------
-- Pillet jl 25/8/97 B. de C.-------------
-- Essai gestion carrefour simplifiée ------
---------------------------------------------
library ieee;
use IEEE.std_logic_1164.all;
library synth ;
use synth.VHDLSYNTH.all ;
----- Définition de l'entité-----------------
ENTITY feux_1 IS
PORT (RAZ, horl :in std_logic; -- Ne pas oublier remise à 0 et horloge !
V1, V2, R1, R2, O1, O2 :out std_logic);
END feux_1;
------ Définir L'architecture de description d'état -----------------
ARCHITECTURE diagramme OF feux_1 IS
TYPE etat_17 IS (INIT, V11, V12, V13, V14, V15, V16, V17, V18, OR1,
SEC, V21, V22, V23, V24, V25, OR2);
SIGNAL etat, nextetat :etat_17 ; --2 signaux :etats courant et suivant
Attribute ENCODING_STYLE of sorties: label is ONE_HOT;
BEGIN
definir_etat: PROCESS( raz, horl) -- "definir_etat" :label optionnel
BEGIN
If raz = '1' THEN
etat <= INIT;
ELSIF rising_edge(horl) THEN
etat <= nextetat;
END IF;
END PROCESS definir_etat;
------------ Définir les états des sorties-------------------
sorties : process (etat)
BEGIN
CASE etat IS
WHEN INIT => R1<='1';R2<='1';V1 <='0';V2<='0';O1<='0'; O2<='0';
nextetat <= V11;
WHEN V11 => R1<='0';V1<='1'; nextetat <= V12;
WHEN V12 =>R1<='0';V1<='1'; nextetat <= V13;
WHEN V13 => R1<='0';V1<='1'; nextetat <= V14;
WHEN V14 => R1<='0';V1<='1'; nextetat <= V15;
WHEN V15 =>R1<='0';V1<='1'; nextetat <= V16;
WHEN V16 => R1<='0';V1<='1'; nextetat <= V17;
WHEN V17 => R1<='0';V1<='1'; nextetat <= V18;
WHEN V18 => R1<='0';V1<='1'; nextetat <= OR1;
WHEN OR1 => V1<='0';O1<= '1'; nextetat <= SEC;
WHEN SEC => R1<='1'; O1 <='0';nextetat <= V21;
WHEN V21 => R2<='0'; V2<='1';nextetat <= V22
WHEN V22 => R2<='0'; V2<='1'; nextetat <= V23;
WHEN V23 => R2<='0'; V2<='1'; nextetat <= V24;
WHEN V24 => R2<='0'; V2<='1'; nextetat <= V25;
WHEN V25 => R2<='0'; V2<='1'; nextetat <= OR2;
PILLET JL TSEL 5/13 27/01/17
WHEN OR2 => V2<='0' ;O2<='1'; nextetat <= INIT;
END CASE;
END process sorties ;
END diagramme;
REGLAGE DU TEST BENCH :
horl demi période de 0.5us
raz à 0=1 à 0.75us =0
simuler 20us
RESULTAT DE SIMULATION :
PILLET JL TSEL 6/13 27/01/17
ENTREES SYNCHRONES & ASYNCHRONES
I) ENTREES SYNCHRONES (MOORE machine) :
Sur l’exemple précédent du carrefour, on rajoute un appel piéton (AP1) uniquement sur la
voie 1. De façon à ne pas trop interrompre le trafic, l’appel n’est pris en compte qu’à partir de
l’état V15.
INIT
R1=R2=1 V11 V12 V13 V14 V15 V16
V1=V2=0 R1=0 R1=0 R1=0 R1=0 R1=0 R1=0
O1=O2=0 V1=1 V1=1 V1=1 V1=1 V1=1 V1=1
AP1
V17
R1=0
V1=1
AP1=1
OR2 AP1
V2=0 V18
O2=1 R1=0
V1=1
V25 V24 V23 V22 V21 SEC OR1
R2=0 R2=0 R2=0 R2=0 R2=0 R1=1 V1=0
V2=1 V2=1 V2=1 V2=1 V2=1 O1=0 O1=1
Les seules modifications à apporter se situent dans le process asynchrone (Le type d’écriture
de fichier en 2 process, précédemment choisi, ne tolère pas dans le process synchrone d’autre
mise à jour de la variable d’état que par l’horloge et optionnellement par le reset):
WHEN V14 => R1<='0';V1<='1'; nextetat <= V15;
WHEN V15 =>R1<='0';V1<='1';
IF AP1='1'then nextetat <= OR1; -- INTERRUPTION !
ELSE nextetat <= V16; -- NORMAL
end if;
WHEN V16 => R1<='0';V1<='1';
IF AP1='1'then nextetat <= OR1;
ELSE nextetat <= V17;
end if;
WHEN V17 => R1<='0';V1<='1';
IF AP1='1'then nextetat <= OR1;
ELSE nextetat <= V18;
end if;
WHEN V18 => R1<='0';V1<='1'; nextetat <= OR1;
WHEN OR1 => V1<='0';O1<= '1'; nextetat <= SEC;
Réglage du TestBench :
horl demi période de 0.5us
raz à 0=1 à 0.75us=0
PILLET JL TSEL 7/13 27/01/17
AP1 à 0=0 à 5.75us=1 à 8us=0 à 12us=1
Simuler 20us
APPEL PIETON pendant V15
SIMULATION :
Le signal AP1 passe à 1 pendant V15. Il est donc pris en compte sur le front montant de V16,
qui branche à OR1. Le reste du fonctionnement ne change pas.
On est en fonctionnement synchrone car les entrées ne sont prises en compte que sur les fronts
d’horloge (ici front montant de V16). On peut vouloir aussi que les sorties soient affectées par
les entrées immédiatement (en tenant compte des temps de propagation !) ⇒ entrées
asynchrones.
II) ENTREES ASYNCHRONES (MEALY machine) :
L’affectation asynchrone de l’état des sorties, se fait dans le process ASYNCHRONE .
A partir de l’exemple précédent, si on veut que l’appel soit pris en compte instantanément :
------------ Définir les états des sorties-------------------
sorties : process (etat, AP1) --ne pas oublier AP1 !!
...
WHEN V14 => R1<='0';V1<='1'; nextetat <= V15;
WHEN V15 =>R1<='0';V1<='1';
IF AP1='1'then V1<='0'; O1<='1';nextetat <= OR1;
ELSE nextetat <= V16;
end if;
WHEN V16 => R1<='0';V1<='1';
IF AP1='1'then V1<='0'; O1<='1';nextetat <= OR1;
ELSE nextetat <= V17;
end if;
PILLET JL TSEL 8/13 27/01/17
WHEN V17 => R1<='0';V1<='1';
IF AP1='1'then V1<='0'; O1<='1';nextetat <= OR1;
ELSE nextetat <= V18;
end if;
WHEN V18 => R1<='0';V1<='1'; nextetat <= OR1;
WHEN OR1 => V1<='0';O1<= '1'; nextetat <= SEC;
WHEN SEC => R1<='1'; O1 <='0';nextetat <= V21;
Ce qui donne la simulation suivante, à partir d’un TestBench identique à celui précédemment
employé :
Les sorties O1 & V1 sont affectées immédiatement après l’appel AP1. L’état OR1 vient
ensuite avec évidemment les mêmes états des sorties O1 et V1.
PILLET JL TSEL 9/13 27/01/17
ANNEXE I
MACHINE D’ETAT A 2 PROCESS
Dans une machine d’état à 2 process :
• Le 1er
process (process SYNCHRONE) met à jour la variable d’état en cours ( signal :
etat), en la remplaçant par le contenu d’un autre signal appelé : etat_suiv . Ceci se fait à
chaque front d’horloge.
Ce 1er
Process gère aussi la remise à zéro (entrée : RAZ).
• L’autre process (process ASYNCHRONE) met à jour le signal etat-suiv en lui attribuant
la valeur d’un état de la liste (M0, M1…), en fonction de conditions sur les entrées ou de
l’ordre prévu des états.
Il attribue aussi les niveaux des sorties.
1ER
PROCESS (PROCESS SYNCHRONE) :
Il est appelé aussi « current state process ».
Il met à jour la variable d’état et doit posséder une condition IF sur un front d’horloge. Il peut
posséder une RAZ (optionnel). Il assigne (sans condition) la valeur de l’état suivant (next
state variable) à la variable d’état courante sur un front. Le RAZ si elle existe, assigne une
valeur statique à la variable d’état courante.
Ce process ne peut mettre à jour aucun autre signal (sortie par exemple) ou variable !
2ème
PROCESS (PROCESS ASYNCHRONE) :
Il est appelé aussi « next state process ».
Ne pas oublier de mettre dans sa liste de sensibilité les différents signaux (entrées) qui seront
pris en compte dans les états :
exemple : PROCESS ( etat, x, y, AP1)
Ce process est la partie combinatoire de la machine d’état et ne doit pas contenir de front
d’horloge.
Son architecture doit être une simple structure de CAS. L’expression testée dans les cas doit
être la variable d’état courante.
Les variables d’état courant et next state doivent être du même type (entier, std_logic vector,
std_logic...).
Ce 2éme process peut seulement assigner des valeurs à la next state variable (etat_suiv), mais
ne peut pas lire ses valeurs.
Les variables d’état courant et next state ne peuvent pas être un port de l’entité à laquelle
l’architecture appartient et aucune partie du corps de l’architecture ne peuvent lire ou écrire
leurs valeurs sauf les 2 process.
SI on synthétise avec un fichier source VHDL écrit sans suivre ces règles, La synthèse du
code sera faite mais pas en temps que state machine.
PILLET JL TSEL 10/13 27/01/17
ANNEXE II
STRUCTURES DE BASE DU LANGAGE VHDL
Sont regroupées dans cette annexe les descriptions utilisées et référencées dans le cours.
1)Entity :
An Entity is a primary library unit.
Syntax : entity entity_name is port (port_list); end entity_name;
2)Architecture :
An Architecture is a secondary design unit.
Syntax : architecture arch_name of entity_name is
declarations des signaux internes
begin concurrent statements
end arch_name;
REMARQUES :
L’ENTITE est une boite noire vue de l’EXTERIEUR (« composant » avec ses
entrées/sorties qui sont des PORTS).
BUS D’ADRESSES SORTIES
DECODEUR /DRAM, /ROM1, /IO ...
L’ARCHITECTURE est la structure interne de la boite (avec ses signaux internes reliés ou
pas aux sorties de l’entité).
& S1 SIGNAUX
SIGNAUX
SIGNAUX S2 S3 EXTERNES :
EXTERNES : >1 S4 & PORT DE
PORT DE S5 L’ENTITE
L’ENTITE INTERNES
&
On déclare des signaux internes si on a besoin de liaisons à l’intérieur du composant.
Il y a 3 classes d’objets :
 Les constantes : valeurs fixes après initialisation (voir Constant declaration).
 Les variables : modifiables après affectation ( voir Variable declaration).
PILLET JL TSEL 11/13 27/01/17
 Les Signaux : spécifiques à la description du matériel (fils, bus...). Un signal a un
passé, un futur et une valeur courante ( voir Signal declaration).
LES TYPES de SIGNAUX :
Ils sont généralement déclarés sous forme de bits ou de bus.
*Les déclarations de PORT :
syntaxe : PORT(nom_des_signaux : direction type ; …)
La norme standard (2ème
colonne) ne permet pas qu’un signal soit alimenté par plusieurs
sources. Ce qui pose problème pour utiliser la haute impédance et connecter plusieurs buffers
ensemble. La norme IEEE 1164 pallie à ceci avec le type std_logic(que l’on emploiera de
préférence).
Direction Type standard (sans déclaration) Type (resolved) norme IEEE.1164
IN BIT Std_logic
OUT * BIT Std_logic
IN BIT_VECTOR (x downto y) ** Std_logic_vector (x downto y )**
OUT * BIT_VECTOR (x downto y) ** Std_logic_vector (x downto y )**
INOUT *** BIT ou BIT_VECTOR ( ) Std_logic ou std_logic_vector( )
BUFFER **** BIT ou BIT_VECTOR ( ) Std_logic ou std_logic_vector( )
* le signal n’est pas utilisable simultanément à l’intérieur du composant.
** les 2 sens sont utilisables : (15 downto 0) mais aussi (0 to 15).
*** signaux bidirectionnels.
**** signal en sortie . Signal utilisable à l’intérieur du composant.
*Les déclarations de signaux :
Ils ne sont déclarés que dans une ARCHITECTURE. Les types sont aussi ceux du tableau
précédent. Mais ils n’ont pas de direction.
syntaxe : signal signal_name : type; ou signal signal_name : type := initial_value;
AFFECTATIONS :
A : = B affectation de B à la variable A.
A <= B affectation de signal ; crée un lien définitif entre A et B.
INCREMENTATION et DECREMENTATION :
I := I+1 ; C := C-1 ;
PILLET JL TSEL 12/13 27/01/17
PILLET JL TSEL 13/13 27/01/17

Contenu connexe

Tendances

Supervision industrielle www.automate pro.blogspot.com
Supervision industrielle www.automate pro.blogspot.comSupervision industrielle www.automate pro.blogspot.com
Supervision industrielle www.automate pro.blogspot.comAdnane Ahmidani
 
Rapport de stage de fin d'études ISI 2015
Rapport de stage de fin d'études ISI 2015Rapport de stage de fin d'études ISI 2015
Rapport de stage de fin d'études ISI 2015Anouar Kacem
 
Smart Parking: Stationnement intelligent État de l’art, Étude d’un exemple De...
Smart Parking: Stationnement intelligent État de l’art, Étude d’un exemple De...Smart Parking: Stationnement intelligent État de l’art, Étude d’un exemple De...
Smart Parking: Stationnement intelligent État de l’art, Étude d’un exemple De...Ayoub Rouzi
 
7 grafcet avec saut d'étape perceuse
7  grafcet avec saut d'étape perceuse7  grafcet avec saut d'étape perceuse
7 grafcet avec saut d'étape perceuseomar bllaouhamou
 
Rapport de Stage PFE - Développement d'un Projet ALTEN MAROC Concernant le Sy...
Rapport de Stage PFE - Développement d'un Projet ALTEN MAROC Concernant le Sy...Rapport de Stage PFE - Développement d'un Projet ALTEN MAROC Concernant le Sy...
Rapport de Stage PFE - Développement d'un Projet ALTEN MAROC Concernant le Sy...tayebbousfiha1
 
144603938 exercices-capteur
144603938 exercices-capteur144603938 exercices-capteur
144603938 exercices-capteurMohammed moudine
 
rapport PFE ingénieur génie logiciel INSAT
rapport PFE ingénieur génie logiciel INSATrapport PFE ingénieur génie logiciel INSAT
rapport PFE ingénieur génie logiciel INSATSiwar GUEMRI
 
Automatisme) www.cours-online.com
Automatisme) www.cours-online.comAutomatisme) www.cours-online.com
Automatisme) www.cours-online.commorin moli
 
Présentation projet de fin d'étude
Présentation projet de fin d'étudePrésentation projet de fin d'étude
Présentation projet de fin d'étudeDonia Hammami
 
Rapport PFE Génie Electrique (2016)
Rapport PFE Génie Electrique (2016)Rapport PFE Génie Electrique (2016)
Rapport PFE Génie Electrique (2016)Mohsen Sadok
 
les-automates-programmables-industriels
les-automates-programmables-industrielsles-automates-programmables-industriels
les-automates-programmables-industrielselectrolouhla
 
ARDUINO + LABVIEW : CONTRÔLE DE LA TEMPÉRATURE
ARDUINO + LABVIEW : CONTRÔLE DE LA TEMPÉRATUREARDUINO + LABVIEW : CONTRÔLE DE LA TEMPÉRATURE
ARDUINO + LABVIEW : CONTRÔLE DE LA TEMPÉRATUREHajer Dahech
 
Automatique systémes linéaires et non linéaires 2
Automatique   systémes linéaires et non linéaires 2Automatique   systémes linéaires et non linéaires 2
Automatique systémes linéaires et non linéaires 2badr zaimi
 
Conception et réalisation d’un MINI SMART HOME
Conception et réalisation  d’un MINI SMART HOMEConception et réalisation  d’un MINI SMART HOME
Conception et réalisation d’un MINI SMART HOMESoukainawarach
 
INTRODUCTION A LA LOGIQUE SEQUENTIELLE
INTRODUCTION A LA LOGIQUE SEQUENTIELLEINTRODUCTION A LA LOGIQUE SEQUENTIELLE
INTRODUCTION A LA LOGIQUE SEQUENTIELLEsarah Benmerzouk
 
Cours systèmes temps réel partie 1 Prof. Khalifa MANSOURI
Cours  systèmes temps réel partie 1 Prof. Khalifa MANSOURICours  systèmes temps réel partie 1 Prof. Khalifa MANSOURI
Cours systèmes temps réel partie 1 Prof. Khalifa MANSOURIMansouri Khalifa
 

Tendances (20)

Supervision industrielle www.automate pro.blogspot.com
Supervision industrielle www.automate pro.blogspot.comSupervision industrielle www.automate pro.blogspot.com
Supervision industrielle www.automate pro.blogspot.com
 
Ch42 reponses
Ch42 reponsesCh42 reponses
Ch42 reponses
 
Rapport de stage de fin d'études ISI 2015
Rapport de stage de fin d'études ISI 2015Rapport de stage de fin d'études ISI 2015
Rapport de stage de fin d'études ISI 2015
 
Smart Parking: Stationnement intelligent État de l’art, Étude d’un exemple De...
Smart Parking: Stationnement intelligent État de l’art, Étude d’un exemple De...Smart Parking: Stationnement intelligent État de l’art, Étude d’un exemple De...
Smart Parking: Stationnement intelligent État de l’art, Étude d’un exemple De...
 
Formation stm32
Formation stm32Formation stm32
Formation stm32
 
7 grafcet avec saut d'étape perceuse
7  grafcet avec saut d'étape perceuse7  grafcet avec saut d'étape perceuse
7 grafcet avec saut d'étape perceuse
 
Rapport de Stage PFE - Développement d'un Projet ALTEN MAROC Concernant le Sy...
Rapport de Stage PFE - Développement d'un Projet ALTEN MAROC Concernant le Sy...Rapport de Stage PFE - Développement d'un Projet ALTEN MAROC Concernant le Sy...
Rapport de Stage PFE - Développement d'un Projet ALTEN MAROC Concernant le Sy...
 
144603938 exercices-capteur
144603938 exercices-capteur144603938 exercices-capteur
144603938 exercices-capteur
 
rapport PFE ingénieur génie logiciel INSAT
rapport PFE ingénieur génie logiciel INSATrapport PFE ingénieur génie logiciel INSAT
rapport PFE ingénieur génie logiciel INSAT
 
Automatisme) www.cours-online.com
Automatisme) www.cours-online.comAutomatisme) www.cours-online.com
Automatisme) www.cours-online.com
 
Présentation projet de fin d'étude
Présentation projet de fin d'étudePrésentation projet de fin d'étude
Présentation projet de fin d'étude
 
Rapport PFE Génie Electrique (2016)
Rapport PFE Génie Electrique (2016)Rapport PFE Génie Electrique (2016)
Rapport PFE Génie Electrique (2016)
 
Rapport Projet Fin d'Études PFE
Rapport Projet Fin d'Études PFERapport Projet Fin d'Études PFE
Rapport Projet Fin d'Études PFE
 
les-automates-programmables-industriels
les-automates-programmables-industrielsles-automates-programmables-industriels
les-automates-programmables-industriels
 
Rapport De PFE
Rapport De PFERapport De PFE
Rapport De PFE
 
ARDUINO + LABVIEW : CONTRÔLE DE LA TEMPÉRATURE
ARDUINO + LABVIEW : CONTRÔLE DE LA TEMPÉRATUREARDUINO + LABVIEW : CONTRÔLE DE LA TEMPÉRATURE
ARDUINO + LABVIEW : CONTRÔLE DE LA TEMPÉRATURE
 
Automatique systémes linéaires et non linéaires 2
Automatique   systémes linéaires et non linéaires 2Automatique   systémes linéaires et non linéaires 2
Automatique systémes linéaires et non linéaires 2
 
Conception et réalisation d’un MINI SMART HOME
Conception et réalisation  d’un MINI SMART HOMEConception et réalisation  d’un MINI SMART HOME
Conception et réalisation d’un MINI SMART HOME
 
INTRODUCTION A LA LOGIQUE SEQUENTIELLE
INTRODUCTION A LA LOGIQUE SEQUENTIELLEINTRODUCTION A LA LOGIQUE SEQUENTIELLE
INTRODUCTION A LA LOGIQUE SEQUENTIELLE
 
Cours systèmes temps réel partie 1 Prof. Khalifa MANSOURI
Cours  systèmes temps réel partie 1 Prof. Khalifa MANSOURICours  systèmes temps réel partie 1 Prof. Khalifa MANSOURI
Cours systèmes temps réel partie 1 Prof. Khalifa MANSOURI
 

En vedette

8 grafcet avec reprise de séquence
8  grafcet avec reprise de séquence8  grafcet avec reprise de séquence
8 grafcet avec reprise de séquenceomar bllaouhamou
 
systeme automatises de production
systeme automatises de production systeme automatises de production
systeme automatises de production omar bllaouhamou
 
correction examen rattrapage 2012 transmission numérique
correction examen rattrapage 2012 transmission numérique correction examen rattrapage 2012 transmission numérique
correction examen rattrapage 2012 transmission numérique omar bllaouhamou
 
Cours master phys sc chap 2 2015
Cours master phys sc chap 2 2015Cours master phys sc chap 2 2015
Cours master phys sc chap 2 2015omar bllaouhamou
 

En vedette (7)

Examen sap master 2015
Examen sap master 2015Examen sap master 2015
Examen sap master 2015
 
8 grafcet avec reprise de séquence
8  grafcet avec reprise de séquence8  grafcet avec reprise de séquence
8 grafcet avec reprise de séquence
 
systeme automatises de production
systeme automatises de production systeme automatises de production
systeme automatises de production
 
correction examen rattrapage 2012 transmission numérique
correction examen rattrapage 2012 transmission numérique correction examen rattrapage 2012 transmission numérique
correction examen rattrapage 2012 transmission numérique
 
Microcontroleurs
MicrocontroleursMicrocontroleurs
Microcontroleurs
 
Cours master phys sc chap 2 2015
Cours master phys sc chap 2 2015Cours master phys sc chap 2 2015
Cours master phys sc chap 2 2015
 
Sap -mise_en_oeuvre
Sap  -mise_en_oeuvreSap  -mise_en_oeuvre
Sap -mise_en_oeuvre
 

Similaire à States machines (1)

Circuits séquentiels v5
Circuits séquentiels v5Circuits séquentiels v5
Circuits séquentiels v5linuxscout
 
Cours sur les AOP.pdf
Cours sur les AOP.pdfCours sur les AOP.pdf
Cours sur les AOP.pdfJeanKonan2
 
Systèmes de logiques séquentielles-Bascules
Systèmes de logiques séquentielles-BasculesSystèmes de logiques séquentielles-Bascules
Systèmes de logiques séquentielles-BasculesHatem Jebali
 
Atv11 user' s manual ie21 1623802
Atv11 user' s manual  ie21 1623802Atv11 user' s manual  ie21 1623802
Atv11 user' s manual ie21 1623802Juan Esteban
 
تمارين وحلول خاصة ببرمجة Ladder et instructions automates
تمارين وحلول خاصة ببرمجة Ladder et instructions automatesتمارين وحلول خاصة ببرمجة Ladder et instructions automates
تمارين وحلول خاصة ببرمجة Ladder et instructions automateselectrolouhla
 
Moteur Asynchrone
Moteur AsynchroneMoteur Asynchrone
Moteur AsynchroneMed Amine
 
C4 logique sequen
C4 logique sequenC4 logique sequen
C4 logique sequenghislane
 
Rectivar 11 __ variateur de vitesse
Rectivar 11    __  variateur de vitesseRectivar 11    __  variateur de vitesse
Rectivar 11 __ variateur de vitesseBoubakri Mohamed
 
Cours electronique conversion de donnees
Cours electronique conversion de donneesCours electronique conversion de donnees
Cours electronique conversion de donneesRachid Richard
 
Chapitre iii circuits séquentiels
Chapitre iii circuits séquentielsChapitre iii circuits séquentiels
Chapitre iii circuits séquentielsSana Aroussi
 
Etude du circuit ne 555
Etude du circuit ne 555Etude du circuit ne 555
Etude du circuit ne 555Mo Ur Ad Es-se
 
3ABSMODEL_www.cours-exercices.org.pdf
3ABSMODEL_www.cours-exercices.org.pdf3ABSMODEL_www.cours-exercices.org.pdf
3ABSMODEL_www.cours-exercices.org.pdfManalBoukrim
 
3ABSMODEL_www.cours-exercices.org.pdf
3ABSMODEL_www.cours-exercices.org.pdf3ABSMODEL_www.cours-exercices.org.pdf
3ABSMODEL_www.cours-exercices.org.pdfManalBoukrim
 
124776153 td-automatique-1 a-jmd-2011
124776153 td-automatique-1 a-jmd-2011124776153 td-automatique-1 a-jmd-2011
124776153 td-automatique-1 a-jmd-2011sunprass
 
3_cours_AOp_2021.pdf
3_cours_AOp_2021.pdf3_cours_AOp_2021.pdf
3_cours_AOp_2021.pdfYacineGR1
 
TP Les bascules - logique combinatoire
TP Les bascules - logique combinatoire TP Les bascules - logique combinatoire
TP Les bascules - logique combinatoire bilal001
 

Similaire à States machines (1) (20)

Ch4 3 reponses
Ch4 3 reponsesCh4 3 reponses
Ch4 3 reponses
 
Circuits séquentiels v5
Circuits séquentiels v5Circuits séquentiels v5
Circuits séquentiels v5
 
Bascules
BasculesBascules
Bascules
 
Cours sur les AOP.pdf
Cours sur les AOP.pdfCours sur les AOP.pdf
Cours sur les AOP.pdf
 
Systèmes de logiques séquentielles-Bascules
Systèmes de logiques séquentielles-BasculesSystèmes de logiques séquentielles-Bascules
Systèmes de logiques séquentielles-Bascules
 
Atv11 user' s manual ie21 1623802
Atv11 user' s manual  ie21 1623802Atv11 user' s manual  ie21 1623802
Atv11 user' s manual ie21 1623802
 
تمارين وحلول خاصة ببرمجة Ladder et instructions automates
تمارين وحلول خاصة ببرمجة Ladder et instructions automatesتمارين وحلول خاصة ببرمجة Ladder et instructions automates
تمارين وحلول خاصة ببرمجة Ladder et instructions automates
 
Moteur Asynchrone
Moteur AsynchroneMoteur Asynchrone
Moteur Asynchrone
 
C4 logique sequen
C4 logique sequenC4 logique sequen
C4 logique sequen
 
Sez 61.5
Sez 61.5Sez 61.5
Sez 61.5
 
Rectivar 11 __ variateur de vitesse
Rectivar 11    __  variateur de vitesseRectivar 11    __  variateur de vitesse
Rectivar 11 __ variateur de vitesse
 
Cours electronique conversion de donnees
Cours electronique conversion de donneesCours electronique conversion de donnees
Cours electronique conversion de donnees
 
Chapitre iii circuits séquentiels
Chapitre iii circuits séquentielsChapitre iii circuits séquentiels
Chapitre iii circuits séquentiels
 
Etude du circuit ne 555
Etude du circuit ne 555Etude du circuit ne 555
Etude du circuit ne 555
 
3ABSMODEL_www.cours-exercices.org.pdf
3ABSMODEL_www.cours-exercices.org.pdf3ABSMODEL_www.cours-exercices.org.pdf
3ABSMODEL_www.cours-exercices.org.pdf
 
3ABSMODEL_www.cours-exercices.org.pdf
3ABSMODEL_www.cours-exercices.org.pdf3ABSMODEL_www.cours-exercices.org.pdf
3ABSMODEL_www.cours-exercices.org.pdf
 
124776153 td-automatique-1 a-jmd-2011
124776153 td-automatique-1 a-jmd-2011124776153 td-automatique-1 a-jmd-2011
124776153 td-automatique-1 a-jmd-2011
 
Série révision. 2
Série révision. 2Série révision. 2
Série révision. 2
 
3_cours_AOp_2021.pdf
3_cours_AOp_2021.pdf3_cours_AOp_2021.pdf
3_cours_AOp_2021.pdf
 
TP Les bascules - logique combinatoire
TP Les bascules - logique combinatoire TP Les bascules - logique combinatoire
TP Les bascules - logique combinatoire
 

Plus de omar bllaouhamou

Plus de omar bllaouhamou (20)

Vib et-ondes-2006-2007
Vib et-ondes-2006-2007Vib et-ondes-2006-2007
Vib et-ondes-2006-2007
 
Traitement des images
Traitement des imagesTraitement des images
Traitement des images
 
Projet efficacité-version-finale
Projet efficacité-version-finaleProjet efficacité-version-finale
Projet efficacité-version-finale
 
Présentation2
Présentation2Présentation2
Présentation2
 
Performance (1)
Performance (1)Performance (1)
Performance (1)
 
Expose tr-de-chaleur-dans-un-cylindre
Expose tr-de-chaleur-dans-un-cylindreExpose tr-de-chaleur-dans-un-cylindre
Expose tr-de-chaleur-dans-un-cylindre
 
Expose dlimi (1)
Expose dlimi (1)Expose dlimi (1)
Expose dlimi (1)
 
Cours master phys sc chap 5 2015
Cours master phys sc chap 5 2015Cours master phys sc chap 5 2015
Cours master phys sc chap 5 2015
 
Cours master phys sc chap 4 2015
Cours master phys sc chap 4 2015Cours master phys sc chap 4 2015
Cours master phys sc chap 4 2015
 
Cours master phys sc chap 3 2015
Cours master phys sc chap 3 2015Cours master phys sc chap 3 2015
Cours master phys sc chap 3 2015
 
Cours master phys sc chap 1 2015
Cours master phys sc chap 1 2015Cours master phys sc chap 1 2015
Cours master phys sc chap 1 2015
 
Telecommunication haggege
Telecommunication   haggegeTelecommunication   haggege
Telecommunication haggege
 
9 grafcet à séquences simultanées 1 et 2
9  grafcet à séquences simultanées 1 et 29  grafcet à séquences simultanées 1 et 2
9 grafcet à séquences simultanées 1 et 2
 
5 grafcet à séquence unique chariot
5  grafcet à séquence unique chariot5  grafcet à séquence unique chariot
5 grafcet à séquence unique chariot
 
4 action conditionnelle
4  action conditionnelle4  action conditionnelle
4 action conditionnelle
 
2 verins
2  verins2  verins
2 verins
 
Les examens d'analyse numerique eest
Les examens d'analyse numerique eestLes examens d'analyse numerique eest
Les examens d'analyse numerique eest
 
Ray chp4
Ray chp4Ray chp4
Ray chp4
 
Ray chp3
Ray chp3Ray chp3
Ray chp3
 
Ray chp1
Ray chp1Ray chp1
Ray chp1
 

Dernier

GAL2024 - Méthane 2030 : une démarche collective française à destination de t...
GAL2024 - Méthane 2030 : une démarche collective française à destination de t...GAL2024 - Méthane 2030 : une démarche collective française à destination de t...
GAL2024 - Méthane 2030 : une démarche collective française à destination de t...Institut de l'Elevage - Idele
 
JTC 2024 - SMARTER Retour sur les indicateurs de santé .pdf
JTC 2024 - SMARTER Retour sur les indicateurs de santé .pdfJTC 2024 - SMARTER Retour sur les indicateurs de santé .pdf
JTC 2024 - SMARTER Retour sur les indicateurs de santé .pdfInstitut de l'Elevage - Idele
 
conception d'un batiment r+4 comparative de defferente ariante de plancher
conception d'un  batiment  r+4 comparative de defferente ariante de plancherconception d'un  batiment  r+4 comparative de defferente ariante de plancher
conception d'un batiment r+4 comparative de defferente ariante de planchermansouriahlam
 
GAL2024 - Situation laitière 2023-2024 : consommation, marchés, prix et revenus
GAL2024 - Situation laitière 2023-2024 : consommation, marchés, prix et revenusGAL2024 - Situation laitière 2023-2024 : consommation, marchés, prix et revenus
GAL2024 - Situation laitière 2023-2024 : consommation, marchés, prix et revenusInstitut de l'Elevage - Idele
 
JTC 2024 - Réglementation européenne BEA et Transport.pdf
JTC 2024 - Réglementation européenne BEA et Transport.pdfJTC 2024 - Réglementation européenne BEA et Transport.pdf
JTC 2024 - Réglementation européenne BEA et Transport.pdfInstitut de l'Elevage - Idele
 
Câblage, installation et paramétrage d’un réseau informatique.pdf
Câblage, installation et paramétrage d’un réseau informatique.pdfCâblage, installation et paramétrage d’un réseau informatique.pdf
Câblage, installation et paramétrage d’un réseau informatique.pdfmia884611
 
GAL2024 - Parcellaire des fermes laitières : en enjeu de compétitivité et de ...
GAL2024 - Parcellaire des fermes laitières : en enjeu de compétitivité et de ...GAL2024 - Parcellaire des fermes laitières : en enjeu de compétitivité et de ...
GAL2024 - Parcellaire des fermes laitières : en enjeu de compétitivité et de ...Institut de l'Elevage - Idele
 
JTC 2024 - Leviers d’adaptation au changement climatique, qualité du lait et ...
JTC 2024 - Leviers d’adaptation au changement climatique, qualité du lait et ...JTC 2024 - Leviers d’adaptation au changement climatique, qualité du lait et ...
JTC 2024 - Leviers d’adaptation au changement climatique, qualité du lait et ...Institut de l'Elevage - Idele
 
Algo II : les piles ( cours + exercices)
Algo II :  les piles ( cours + exercices)Algo II :  les piles ( cours + exercices)
Algo II : les piles ( cours + exercices)Sana REFAI
 
comprehension de DDMRP dans le domaine de gestion
comprehension de DDMRP dans le domaine de gestioncomprehension de DDMRP dans le domaine de gestion
comprehension de DDMRP dans le domaine de gestionyakinekaidouchi1
 
GAL2024 - Traite des vaches laitières : au coeur des stratégies d'évolution d...
GAL2024 - Traite des vaches laitières : au coeur des stratégies d'évolution d...GAL2024 - Traite des vaches laitières : au coeur des stratégies d'évolution d...
GAL2024 - Traite des vaches laitières : au coeur des stratégies d'évolution d...Institut de l'Elevage - Idele
 
GAL2024 - Renouvellement des actifs : un enjeu pour la filière laitière franç...
GAL2024 - Renouvellement des actifs : un enjeu pour la filière laitière franç...GAL2024 - Renouvellement des actifs : un enjeu pour la filière laitière franç...
GAL2024 - Renouvellement des actifs : un enjeu pour la filière laitière franç...Institut de l'Elevage - Idele
 
GAL2024 - L'élevage laitier cultive la biodiversité
GAL2024 - L'élevage laitier cultive la biodiversitéGAL2024 - L'élevage laitier cultive la biodiversité
GAL2024 - L'élevage laitier cultive la biodiversitéInstitut de l'Elevage - Idele
 
WBS OBS RACI_2020-etunhjjlllllll pdf.pdf
WBS OBS RACI_2020-etunhjjlllllll pdf.pdfWBS OBS RACI_2020-etunhjjlllllll pdf.pdf
WBS OBS RACI_2020-etunhjjlllllll pdf.pdfSophie569778
 
JTC 2024 La relance de la filière de la viande de chevreau.pdf
JTC 2024 La relance de la filière de la viande de chevreau.pdfJTC 2024 La relance de la filière de la viande de chevreau.pdf
JTC 2024 La relance de la filière de la viande de chevreau.pdfInstitut de l'Elevage - Idele
 
GAL2024 - Consommations et productions d'énergies dans les exploitations lait...
GAL2024 - Consommations et productions d'énergies dans les exploitations lait...GAL2024 - Consommations et productions d'énergies dans les exploitations lait...
GAL2024 - Consommations et productions d'énergies dans les exploitations lait...Institut de l'Elevage - Idele
 
GAL2024 - Changements climatiques et maladies émergentes
GAL2024 - Changements climatiques et maladies émergentesGAL2024 - Changements climatiques et maladies émergentes
GAL2024 - Changements climatiques et maladies émergentesInstitut de l'Elevage - Idele
 

Dernier (20)

GAL2024 - Méthane 2030 : une démarche collective française à destination de t...
GAL2024 - Méthane 2030 : une démarche collective française à destination de t...GAL2024 - Méthane 2030 : une démarche collective française à destination de t...
GAL2024 - Méthane 2030 : une démarche collective française à destination de t...
 
JTC 2024 - SMARTER Retour sur les indicateurs de santé .pdf
JTC 2024 - SMARTER Retour sur les indicateurs de santé .pdfJTC 2024 - SMARTER Retour sur les indicateurs de santé .pdf
JTC 2024 - SMARTER Retour sur les indicateurs de santé .pdf
 
conception d'un batiment r+4 comparative de defferente ariante de plancher
conception d'un  batiment  r+4 comparative de defferente ariante de plancherconception d'un  batiment  r+4 comparative de defferente ariante de plancher
conception d'un batiment r+4 comparative de defferente ariante de plancher
 
JTC 2024 - DeCremoux_Anomalies_génétiques.pdf
JTC 2024 - DeCremoux_Anomalies_génétiques.pdfJTC 2024 - DeCremoux_Anomalies_génétiques.pdf
JTC 2024 - DeCremoux_Anomalies_génétiques.pdf
 
GAL2024 - Situation laitière 2023-2024 : consommation, marchés, prix et revenus
GAL2024 - Situation laitière 2023-2024 : consommation, marchés, prix et revenusGAL2024 - Situation laitière 2023-2024 : consommation, marchés, prix et revenus
GAL2024 - Situation laitière 2023-2024 : consommation, marchés, prix et revenus
 
JTC 2024 - Réglementation européenne BEA et Transport.pdf
JTC 2024 - Réglementation européenne BEA et Transport.pdfJTC 2024 - Réglementation européenne BEA et Transport.pdf
JTC 2024 - Réglementation européenne BEA et Transport.pdf
 
Câblage, installation et paramétrage d’un réseau informatique.pdf
Câblage, installation et paramétrage d’un réseau informatique.pdfCâblage, installation et paramétrage d’un réseau informatique.pdf
Câblage, installation et paramétrage d’un réseau informatique.pdf
 
GAL2024 - Parcellaire des fermes laitières : en enjeu de compétitivité et de ...
GAL2024 - Parcellaire des fermes laitières : en enjeu de compétitivité et de ...GAL2024 - Parcellaire des fermes laitières : en enjeu de compétitivité et de ...
GAL2024 - Parcellaire des fermes laitières : en enjeu de compétitivité et de ...
 
JTC 2024 - Leviers d’adaptation au changement climatique, qualité du lait et ...
JTC 2024 - Leviers d’adaptation au changement climatique, qualité du lait et ...JTC 2024 - Leviers d’adaptation au changement climatique, qualité du lait et ...
JTC 2024 - Leviers d’adaptation au changement climatique, qualité du lait et ...
 
CAP2ER_GC_Presentation_Outil_20240422.pptx
CAP2ER_GC_Presentation_Outil_20240422.pptxCAP2ER_GC_Presentation_Outil_20240422.pptx
CAP2ER_GC_Presentation_Outil_20240422.pptx
 
Algo II : les piles ( cours + exercices)
Algo II :  les piles ( cours + exercices)Algo II :  les piles ( cours + exercices)
Algo II : les piles ( cours + exercices)
 
comprehension de DDMRP dans le domaine de gestion
comprehension de DDMRP dans le domaine de gestioncomprehension de DDMRP dans le domaine de gestion
comprehension de DDMRP dans le domaine de gestion
 
JTC 2024 Bâtiment et Photovoltaïque.pdf
JTC 2024  Bâtiment et Photovoltaïque.pdfJTC 2024  Bâtiment et Photovoltaïque.pdf
JTC 2024 Bâtiment et Photovoltaïque.pdf
 
GAL2024 - Traite des vaches laitières : au coeur des stratégies d'évolution d...
GAL2024 - Traite des vaches laitières : au coeur des stratégies d'évolution d...GAL2024 - Traite des vaches laitières : au coeur des stratégies d'évolution d...
GAL2024 - Traite des vaches laitières : au coeur des stratégies d'évolution d...
 
GAL2024 - Renouvellement des actifs : un enjeu pour la filière laitière franç...
GAL2024 - Renouvellement des actifs : un enjeu pour la filière laitière franç...GAL2024 - Renouvellement des actifs : un enjeu pour la filière laitière franç...
GAL2024 - Renouvellement des actifs : un enjeu pour la filière laitière franç...
 
GAL2024 - L'élevage laitier cultive la biodiversité
GAL2024 - L'élevage laitier cultive la biodiversitéGAL2024 - L'élevage laitier cultive la biodiversité
GAL2024 - L'élevage laitier cultive la biodiversité
 
WBS OBS RACI_2020-etunhjjlllllll pdf.pdf
WBS OBS RACI_2020-etunhjjlllllll pdf.pdfWBS OBS RACI_2020-etunhjjlllllll pdf.pdf
WBS OBS RACI_2020-etunhjjlllllll pdf.pdf
 
JTC 2024 La relance de la filière de la viande de chevreau.pdf
JTC 2024 La relance de la filière de la viande de chevreau.pdfJTC 2024 La relance de la filière de la viande de chevreau.pdf
JTC 2024 La relance de la filière de la viande de chevreau.pdf
 
GAL2024 - Consommations et productions d'énergies dans les exploitations lait...
GAL2024 - Consommations et productions d'énergies dans les exploitations lait...GAL2024 - Consommations et productions d'énergies dans les exploitations lait...
GAL2024 - Consommations et productions d'énergies dans les exploitations lait...
 
GAL2024 - Changements climatiques et maladies émergentes
GAL2024 - Changements climatiques et maladies émergentesGAL2024 - Changements climatiques et maladies émergentes
GAL2024 - Changements climatiques et maladies émergentes
 

States machines (1)

  • 1. LA DESCRIPTION D’ETAT Utilisée pour décrire des systèmes séquentiels quelconques ( state machine). I) 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. II) 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.
  • 2. 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; -- Ne pas oublier remise à 0 et horloge ! X, Y :IN STD_LOGIC; S1, S2 :OUT STD_LOGIC); END machine1; II-B ) DEFINITION DE L’ARCHITECTURE : *LE PROCESS SYNCHRONE : ------ Définir L'architecture de description d'état ----------------- ARCHITECTURE diagramme OF machine1 IS TYPE etat_4 IS (M0, M1, M2, M3); --définir une liste des états... SIGNAL etat,etat_suiv :etat_4 := M0; --et 2 signaux: états courant et –-suivant, contenant la valeur d’un état de la liste (initialisée à M0) . BEGIN definir_etat:PROCESS( raz, horl) -- "definir_etat":label optionnel BEGIN If raz = '1' THEN etat <= M0; --Le PACKAGE std_logic_1164 ELSIF rising_edge(horl) THEN --en permet l’utilisation. etat <= etat_suiv ; END IF; --Mise à jour de la variable END PROCESS definir_etat; d’état par l’horloge. II-C ) DEFINITION DES ETATS DES SORTIES : *LE PROCESS ASYNCHRONE : ------------ Définir les états des sorties------------------- sorties : process (etat, x, y) --Le PROCESS doit contenir une... BEGIN structure de CAS unique dépendant CASE etat IS de la variable d’état. WHEN M0 => S1 <= '0'; S2<= '0'; IF Y='1' then etat_suiv <= M3; elsif X='0' then etat_suiv <= M2; ELSE etat_suiv <= M1; PILLET JL TSEL 2/13 27/01/17
  • 3. END IF; --Le signal de l’état suivant n’est attribué que dans la structure CASE WHEN M1 => S1 <= '1'; S2<= '0';etat_suiv <= M2; WHEN M2 => S1 <= '1'; S2<= '1';etat_suiv <= M3; WHEN M3 => S1 <= '0'; S2<= '1';etat_suiv <= M0; END CASE; END process sorties ; END diagramme ; -- ne pas oublier de terminer l’architecture ! Lors de la compilation de ce fichier, sélectionner les librairies : IEEE.lib, SYNTH.lib et SYNOPSYS.lib III) SIMULATION : Définir les entrées : horl : période 200ns Raz à 0ns =1 et à 150ns =0 x à 0ns =1 , à 950ns =0 et à 1200ns =1 Y à 0ns =0 et à 1550ns =1 Simuler pendant 2.5us On obtient : PILLET JL TSEL 3/13 27/01/17
  • 4. On vérifie bien les différents cycles de fonctionnement du système séquentiel. GESTION d’un CARREFOUR Dans un premier temps, pour illustrer la méthode, on simplifie le problème à l’extrême : Au croisement de 2 routes, on place des feux tricolores : AXE 2 F2 F1 R1 feu rouge de l’axe 1 O1 feu orange ---------- AXE 1 V1 feu vert ----------- R2 , O2, V2 idem pour F1 F2 l’axe 2 HYPOTHESES de fonctionnement : On définira les temps de fonctionnement des feux en fonction de la période de l’horloge de base. Pour la simulation T de l’horloge fera 1 µs. Dans la réalité il suffira de connecter au circuit une horloge de 1 seconde par exemple. V1 dure 8 s, V2 dure 5s, et les feux oranges 1s. On décrit donc le fonctionnement global comme suit : L’axe 1 vient de passer au vert (V1=1, R1 et O1=0 ; V2 et O2=0, R2=1). 8 s plus tard il passe au orange (O1=1, R2=1). On laisse par sécurité les 2 feux au rouge pendant une seconde (R1 et R2=1). 10 secondes se sont écoulées lorsqu’on ouvre le passage à l’axe 2 (V2 et R1=1). Le cycle complet dure donc 17s. L’initialisation doit placer le système en état de sécurité, soit R1 et R2=1 pendant une seconde. On libère ensuite l’axe 1. Il n’y a pas d’entrée (appel piéton...) dans cet exemple très simplifié. DIAGRAMME : Les dénominations des états sont choisies simples à se souvenir INIT R1=R2=1 V11 V12 V13 V14 V15 V16 V1=V2=0 R1=0 R1=0 R1=0 R1=0 R1=0 R1=0 O1=O2=0 V1=1 V1=1 V1=1 V1=1 V1=1 V1=1 V17 R1=0 V1=1 Par simplification ne sont mises que les sorties qui changent OR2 Idem dans le programme, dans la définition des états des sorties V2=0 V18 O2=1 R1=0 V1=1 V25 V24 V23 V22 V21 SEC OR1 R2=0 R2=0 R2=0 R2=0 R2=0 R1=1 V1=0 PILLET JL TSEL 4/13 27/01/17
  • 5. V2=1 V2=1 V2=1 V2=1 V2=1 O1=0 O1=1 EXEMPLE DE FICHIER VHDL : -- FEUX_1.vhd------------ -- Pillet jl 25/8/97 B. de C.------------- -- Essai gestion carrefour simplifiée ------ --------------------------------------------- library ieee; use IEEE.std_logic_1164.all; library synth ; use synth.VHDLSYNTH.all ; ----- Définition de l'entité----------------- ENTITY feux_1 IS PORT (RAZ, horl :in std_logic; -- Ne pas oublier remise à 0 et horloge ! V1, V2, R1, R2, O1, O2 :out std_logic); END feux_1; ------ Définir L'architecture de description d'état ----------------- ARCHITECTURE diagramme OF feux_1 IS TYPE etat_17 IS (INIT, V11, V12, V13, V14, V15, V16, V17, V18, OR1, SEC, V21, V22, V23, V24, V25, OR2); SIGNAL etat, nextetat :etat_17 ; --2 signaux :etats courant et suivant Attribute ENCODING_STYLE of sorties: label is ONE_HOT; BEGIN definir_etat: PROCESS( raz, horl) -- "definir_etat" :label optionnel BEGIN If raz = '1' THEN etat <= INIT; ELSIF rising_edge(horl) THEN etat <= nextetat; END IF; END PROCESS definir_etat; ------------ Définir les états des sorties------------------- sorties : process (etat) BEGIN CASE etat IS WHEN INIT => R1<='1';R2<='1';V1 <='0';V2<='0';O1<='0'; O2<='0'; nextetat <= V11; WHEN V11 => R1<='0';V1<='1'; nextetat <= V12; WHEN V12 =>R1<='0';V1<='1'; nextetat <= V13; WHEN V13 => R1<='0';V1<='1'; nextetat <= V14; WHEN V14 => R1<='0';V1<='1'; nextetat <= V15; WHEN V15 =>R1<='0';V1<='1'; nextetat <= V16; WHEN V16 => R1<='0';V1<='1'; nextetat <= V17; WHEN V17 => R1<='0';V1<='1'; nextetat <= V18; WHEN V18 => R1<='0';V1<='1'; nextetat <= OR1; WHEN OR1 => V1<='0';O1<= '1'; nextetat <= SEC; WHEN SEC => R1<='1'; O1 <='0';nextetat <= V21; WHEN V21 => R2<='0'; V2<='1';nextetat <= V22 WHEN V22 => R2<='0'; V2<='1'; nextetat <= V23; WHEN V23 => R2<='0'; V2<='1'; nextetat <= V24; WHEN V24 => R2<='0'; V2<='1'; nextetat <= V25; WHEN V25 => R2<='0'; V2<='1'; nextetat <= OR2; PILLET JL TSEL 5/13 27/01/17
  • 6. WHEN OR2 => V2<='0' ;O2<='1'; nextetat <= INIT; END CASE; END process sorties ; END diagramme; REGLAGE DU TEST BENCH : horl demi période de 0.5us raz à 0=1 à 0.75us =0 simuler 20us RESULTAT DE SIMULATION : PILLET JL TSEL 6/13 27/01/17
  • 7. ENTREES SYNCHRONES & ASYNCHRONES I) ENTREES SYNCHRONES (MOORE machine) : Sur l’exemple précédent du carrefour, on rajoute un appel piéton (AP1) uniquement sur la voie 1. De façon à ne pas trop interrompre le trafic, l’appel n’est pris en compte qu’à partir de l’état V15. INIT R1=R2=1 V11 V12 V13 V14 V15 V16 V1=V2=0 R1=0 R1=0 R1=0 R1=0 R1=0 R1=0 O1=O2=0 V1=1 V1=1 V1=1 V1=1 V1=1 V1=1 AP1 V17 R1=0 V1=1 AP1=1 OR2 AP1 V2=0 V18 O2=1 R1=0 V1=1 V25 V24 V23 V22 V21 SEC OR1 R2=0 R2=0 R2=0 R2=0 R2=0 R1=1 V1=0 V2=1 V2=1 V2=1 V2=1 V2=1 O1=0 O1=1 Les seules modifications à apporter se situent dans le process asynchrone (Le type d’écriture de fichier en 2 process, précédemment choisi, ne tolère pas dans le process synchrone d’autre mise à jour de la variable d’état que par l’horloge et optionnellement par le reset): WHEN V14 => R1<='0';V1<='1'; nextetat <= V15; WHEN V15 =>R1<='0';V1<='1'; IF AP1='1'then nextetat <= OR1; -- INTERRUPTION ! ELSE nextetat <= V16; -- NORMAL end if; WHEN V16 => R1<='0';V1<='1'; IF AP1='1'then nextetat <= OR1; ELSE nextetat <= V17; end if; WHEN V17 => R1<='0';V1<='1'; IF AP1='1'then nextetat <= OR1; ELSE nextetat <= V18; end if; WHEN V18 => R1<='0';V1<='1'; nextetat <= OR1; WHEN OR1 => V1<='0';O1<= '1'; nextetat <= SEC; Réglage du TestBench : horl demi période de 0.5us raz à 0=1 à 0.75us=0 PILLET JL TSEL 7/13 27/01/17
  • 8. AP1 à 0=0 à 5.75us=1 à 8us=0 à 12us=1 Simuler 20us APPEL PIETON pendant V15 SIMULATION : Le signal AP1 passe à 1 pendant V15. Il est donc pris en compte sur le front montant de V16, qui branche à OR1. Le reste du fonctionnement ne change pas. On est en fonctionnement synchrone car les entrées ne sont prises en compte que sur les fronts d’horloge (ici front montant de V16). On peut vouloir aussi que les sorties soient affectées par les entrées immédiatement (en tenant compte des temps de propagation !) ⇒ entrées asynchrones. II) ENTREES ASYNCHRONES (MEALY machine) : L’affectation asynchrone de l’état des sorties, se fait dans le process ASYNCHRONE . A partir de l’exemple précédent, si on veut que l’appel soit pris en compte instantanément : ------------ Définir les états des sorties------------------- sorties : process (etat, AP1) --ne pas oublier AP1 !! ... WHEN V14 => R1<='0';V1<='1'; nextetat <= V15; WHEN V15 =>R1<='0';V1<='1'; IF AP1='1'then V1<='0'; O1<='1';nextetat <= OR1; ELSE nextetat <= V16; end if; WHEN V16 => R1<='0';V1<='1'; IF AP1='1'then V1<='0'; O1<='1';nextetat <= OR1; ELSE nextetat <= V17; end if; PILLET JL TSEL 8/13 27/01/17
  • 9. WHEN V17 => R1<='0';V1<='1'; IF AP1='1'then V1<='0'; O1<='1';nextetat <= OR1; ELSE nextetat <= V18; end if; WHEN V18 => R1<='0';V1<='1'; nextetat <= OR1; WHEN OR1 => V1<='0';O1<= '1'; nextetat <= SEC; WHEN SEC => R1<='1'; O1 <='0';nextetat <= V21; Ce qui donne la simulation suivante, à partir d’un TestBench identique à celui précédemment employé : Les sorties O1 & V1 sont affectées immédiatement après l’appel AP1. L’état OR1 vient ensuite avec évidemment les mêmes états des sorties O1 et V1. PILLET JL TSEL 9/13 27/01/17
  • 10. ANNEXE I MACHINE D’ETAT A 2 PROCESS Dans une machine d’état à 2 process : • Le 1er process (process SYNCHRONE) met à jour la variable d’état en cours ( signal : etat), en la remplaçant par le contenu d’un autre signal appelé : etat_suiv . Ceci se fait à chaque front d’horloge. Ce 1er Process gère aussi la remise à zéro (entrée : RAZ). • L’autre process (process ASYNCHRONE) met à jour le signal etat-suiv en lui attribuant la valeur d’un état de la liste (M0, M1…), en fonction de conditions sur les entrées ou de l’ordre prévu des états. Il attribue aussi les niveaux des sorties. 1ER PROCESS (PROCESS SYNCHRONE) : Il est appelé aussi « current state process ». Il met à jour la variable d’état et doit posséder une condition IF sur un front d’horloge. Il peut posséder une RAZ (optionnel). Il assigne (sans condition) la valeur de l’état suivant (next state variable) à la variable d’état courante sur un front. Le RAZ si elle existe, assigne une valeur statique à la variable d’état courante. Ce process ne peut mettre à jour aucun autre signal (sortie par exemple) ou variable ! 2ème PROCESS (PROCESS ASYNCHRONE) : Il est appelé aussi « next state process ». Ne pas oublier de mettre dans sa liste de sensibilité les différents signaux (entrées) qui seront pris en compte dans les états : exemple : PROCESS ( etat, x, y, AP1) Ce process est la partie combinatoire de la machine d’état et ne doit pas contenir de front d’horloge. Son architecture doit être une simple structure de CAS. L’expression testée dans les cas doit être la variable d’état courante. Les variables d’état courant et next state doivent être du même type (entier, std_logic vector, std_logic...). Ce 2éme process peut seulement assigner des valeurs à la next state variable (etat_suiv), mais ne peut pas lire ses valeurs. Les variables d’état courant et next state ne peuvent pas être un port de l’entité à laquelle l’architecture appartient et aucune partie du corps de l’architecture ne peuvent lire ou écrire leurs valeurs sauf les 2 process. SI on synthétise avec un fichier source VHDL écrit sans suivre ces règles, La synthèse du code sera faite mais pas en temps que state machine. PILLET JL TSEL 10/13 27/01/17
  • 11. ANNEXE II STRUCTURES DE BASE DU LANGAGE VHDL Sont regroupées dans cette annexe les descriptions utilisées et référencées dans le cours. 1)Entity : An Entity is a primary library unit. Syntax : entity entity_name is port (port_list); end entity_name; 2)Architecture : An Architecture is a secondary design unit. Syntax : architecture arch_name of entity_name is declarations des signaux internes begin concurrent statements end arch_name; REMARQUES : L’ENTITE est une boite noire vue de l’EXTERIEUR (« composant » avec ses entrées/sorties qui sont des PORTS). BUS D’ADRESSES SORTIES DECODEUR /DRAM, /ROM1, /IO ... L’ARCHITECTURE est la structure interne de la boite (avec ses signaux internes reliés ou pas aux sorties de l’entité). & S1 SIGNAUX SIGNAUX SIGNAUX S2 S3 EXTERNES : EXTERNES : >1 S4 & PORT DE PORT DE S5 L’ENTITE L’ENTITE INTERNES & On déclare des signaux internes si on a besoin de liaisons à l’intérieur du composant. Il y a 3 classes d’objets :  Les constantes : valeurs fixes après initialisation (voir Constant declaration).  Les variables : modifiables après affectation ( voir Variable declaration). PILLET JL TSEL 11/13 27/01/17
  • 12.  Les Signaux : spécifiques à la description du matériel (fils, bus...). Un signal a un passé, un futur et une valeur courante ( voir Signal declaration). LES TYPES de SIGNAUX : Ils sont généralement déclarés sous forme de bits ou de bus. *Les déclarations de PORT : syntaxe : PORT(nom_des_signaux : direction type ; …) La norme standard (2ème colonne) ne permet pas qu’un signal soit alimenté par plusieurs sources. Ce qui pose problème pour utiliser la haute impédance et connecter plusieurs buffers ensemble. La norme IEEE 1164 pallie à ceci avec le type std_logic(que l’on emploiera de préférence). Direction Type standard (sans déclaration) Type (resolved) norme IEEE.1164 IN BIT Std_logic OUT * BIT Std_logic IN BIT_VECTOR (x downto y) ** Std_logic_vector (x downto y )** OUT * BIT_VECTOR (x downto y) ** Std_logic_vector (x downto y )** INOUT *** BIT ou BIT_VECTOR ( ) Std_logic ou std_logic_vector( ) BUFFER **** BIT ou BIT_VECTOR ( ) Std_logic ou std_logic_vector( ) * le signal n’est pas utilisable simultanément à l’intérieur du composant. ** les 2 sens sont utilisables : (15 downto 0) mais aussi (0 to 15). *** signaux bidirectionnels. **** signal en sortie . Signal utilisable à l’intérieur du composant. *Les déclarations de signaux : Ils ne sont déclarés que dans une ARCHITECTURE. Les types sont aussi ceux du tableau précédent. Mais ils n’ont pas de direction. syntaxe : signal signal_name : type; ou signal signal_name : type := initial_value; AFFECTATIONS : A : = B affectation de B à la variable A. A <= B affectation de signal ; crée un lien définitif entre A et B. INCREMENTATION et DECREMENTATION : I := I+1 ; C := C-1 ; PILLET JL TSEL 12/13 27/01/17
  • 13. PILLET JL TSEL 13/13 27/01/17