Académique Documents
Professionnel Documents
Culture Documents
E. Amouri
Machines à états
2
Machines à états
❑ Notations :
❑ Entrée : E
❑ Etat Présent : EP
❑ Etat Futur : EF
❑ Sortie : S
❑ 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 : état de la machine à l’instant présent
❑ Etat Futur : état dans lequel se trouvera la machine après une impulsion
3
Machines à états
❑ Table de transition:
❑ 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
❑ Table de transition :
4
Machines à états
❑ Graphe d’état:
❑ Un diagramme ou graphe d’états permet d’avoir une représentation
graphique d’un système séquentiel.
❑ Il est constitué par l’énumération de tous les états possible du système.
5
Notations Transitions
6
Transitions
7
Etat d’initialisation
❑ Les transitions d’un état vers l’état initial par suite d’un RESET ASYNCHRONE ne
sont pas explicitées dans le graphe
8
Les machines à états
❑ Machine de Moore
❑ les signaux de sortie ne dépendent que de l’état courant
❑ machine de Mealy:
❑ les signaux de sortie dépendent de l’état et des signaux
d’entrée.
9
Graphe de Transition d’une machine Moore
❑ Sorties : Z2Z1Z0
10
Les machines à états en VHDL
❑ Utilisation de 3 process :
❑ Un process séquentiel de transition de l’état futur à l’état
présent.
❑ Un process de détermination des sorties
❑ Un process de détermination de l’état futur.
11
Machines de Moore - 3 process – entité
library ieee;
use ieee.std_logic_1164.all;
entity fsm is
port (
clk, rst : in std_logic; -- horloge, reset
x : in std_logic_vector(2 downto 0); -- entrées
z : out std_logic_vector(2 downto 0) -- sorties
);
end fsm;
12
Machine de Moore - 3 process – Architecture
❑ Utilisation de 2 process :
15
Machine de Moore - 2 process – Architecture
end case;
end process NextState; 16
Graphe de Transition d’une machine de
Mealy
❑ Sorties : Z2Z1Z0
17
Machine de Mealy - 2 process - Entité
library ieee;
use ieee.std_logic_1164.all;
entity fsm is
port (
clk, rst : in std_logic; -- horloge, reset
x : in std_logic_vector(2 downto 0); -- entrées
z : out std_logic_vector(2 downto 0) -- sorties
);
end fsm;
18
Machine de Mealy - 2 process - Architecture
19
Machine de Mealy - 2 process - Architecture
20
l’horloge : entrée implicite
21
FSM-Exemple: détecteur de séquence
22
Exemple: détecteur de séquence
❑ Machine de Moore
23
Exemple: détecteur de séquence
❑ Machine de Mealy
24
Exercice: Distributeur de boisson
25
Exercice: Distributeur de boisson
26
Exercice: Distributeur de boisson
Graphe de Transition
27
Exercice: Distributeur de boisson
Library IEEE ;
Use ieee.std_logic_1164.all;
USE IEEE.STD_LOGIC_UNSIGNED.ALL;
ENTITY machine IS
PORT (
clk : IN STD_LOGIC;
un_dollar : IN STD_LOGIC;
deux_dollars : IN STD_LOGIC;
boisson : OUT STD_LOGIC;
monnaie : OUT STD_LOGIC
);
END entity machine;
28
Exercice: Distributeur de boisson
ARCHITECTURE RTL OF machine IS WHEN
TYPE etats IS (zero, un , deux, trois, quatre,
cinq, six);
PROCESS ( )
BEGIN
CASE etat_present IS WHEN
WHEN
29
Exercice: Distributeur de boisson
WHEN WHEN
WHEN
END PROCESS;
WHEN
PROCESS ( )
BEGIN
END PRCESS;
◼ Le signal BSY est une entrée que reçoit l'arbitre. Ce signal est activé si l'un des
demandeurs, ayant reçu un acquittement de la part de l'arbitre, est en train de
traiter la donnée partagée.
◼ Selon l'état du signal BSY, l'arbitre active vers le demandeur sélectionné le signal
RETRY (ressource occupée, BSY = 1), ou ACK (ressource libre, BSY =0). Le signal
RETRY est maintenu tant que la demande REQ est présente et tant que la
ressource est occupée.
◼ Le signal ACK est maintenu tant que la demande REQ est présente.
La machine d'état est synchrone, rythmée par le signal d'horloge CLK.
◼ Enfin, le signal RESET (actif à l'état haut), permet une remise à zéro asynchrone.31
Exercice: Arbitre gérant l'accès à une ressource
partagée: Graphe de transition
32
Exercice: Arbitre gérant l'accès à une ressource
partagée
Library IEEE ;
Use ieee.std_logic_1164.all;
End arbitre;
33
Exercice: Arbitre gérant l'accès à une ressource
partagée
begin
35
Exercice: Arbitre gérant l'accès à une ressource
partagée