SlideShare une entreprise Scribd logo
1  sur  70
1
Modèles de ‘Mealy’ et de ‘Moore’
Le modèle Mealy
 Les sorties sont fonction de l’état courante et des entrées
 Les sorties peuvent changer si les entrées changent
pendant la période d’horloge, c’est a dire que:
 Les sorties peuvent avoir de fausses valeurs temporaires
à moins que les entrées soient synchronisées avec les
horloges
Le modèle Moore
 Les sorties sont fonction de l’état courante uniquement
 Les sorties sont synchronisées avec les horloges
2
FSM (Machine d’État finie) type Moore
FSM type Mealy
Circuit
comb.
entrées Éléments
Mémoire
(FFs)
État
futur Circuit
comb.
sorties
État
courant
Circuit
comb.
entrées Éléments
Mémoire
(FFs)
État
futur Circuit
comb.
sorties
État
courant
3
Description de machines
d’état
Machine de Moore et de Mealy
description de circuits séquentiels, où on raisonne en
état présent état futur
avec des conditions de transitions
Circuit
combinatoire
Circuit
combinatoire
registre
État
futur
État présent
entrées
sorties
4
Exemple (1/2 )
Machine d’état
Etat 1
Etat 2
Etat 3
Condition 1
Condition 3
Condition 2
Condition 4
initialisation
Modèles de description
Fonctions séquentielles
 graphes d ’états (Finite State Machines) FSM
 Un système séquentiel quelconque peut être décrit par
 un ensemble fini d ’états (X),
 Un ensemble fini d’entrées (E)
 Une fonction de transition G: XxE-> X. Une
certaine entrée dans un certain état fait passer
le système à un autre état.
 Deux Modèles de machines d ’états
 Moore : les sorties dépendent exclusivement
des états du système
 Mealy : les sorties dépendent des états et des
entrées.
Représentation graphique des machines d’états
Représentation par un diagramme
 Les nœuds sont les états
 Les arcs définis par la fonction de transition G(E, X)
 Des sorties définies par la fonction F(X) ou Fm(E, X)
D
11
C
10
B
01
A
00
! e
e
! e
e
!e
e
e
!e
s3
s2s1
s0
!y
0
y
1
!y
1
y
1
!y
0
y
1
!y
0
y
1
Conception des Machines
d'état
Circuit d'excitation
Calcul combinatoire
des états FUTURS
du système : G
c
D Q
Circuit
de sortie
F
Entrées
Horloge
X(t)X(t+1) S(t)
E(t)
S(t) = F(X(t))
X(t + 1) = G[E(t), X(t)]
Machine de Moore
Conception des Machines
d'état
Machine de Mealy
Circuit d'excitation
Calcul combinatoire
des états FUTURS
du système : G
c
D Q
Circuit
de sortie
F
Entrées
Horloge
X(t)X(t+1)
S(t)
E(t)
S(t) = F[X(t), E(t)]
X(t + 1) = G[E(t), X(t)]
Détermination des équations
Méthode manuelle pour la détermination des
équations de G et F
 Définir la taille N du registre : pour E états
 log2(E)< N ≤ E 2Nmin
≤ E ; Nmax ≤ E
 Coder les états (attribuer une valeur numérique à chaque
état)
 Etablir la table de transition
 En déduire les équations logiques d'excitation (G) et de
sortie (F)
E X(t) X(t+1) S
Etats de
sortie
États futursEtats initiauxConditions
LES MACHINES SYNCHRONES À
NOMBRE FINIS D’ÉTATS
Une machine à états (M.A.E.) en anglais
Finite State Machine (F.S.M.) est un
système dynamique, qui peut se trouver, à
chaque instant, dans une position parmi
un nombre fini de positions possibles. Elle
parcourt des cycles, en changeant
éventuellement d’état lors des transitions
actives de l’horloge.
L’architecture générale d’une machine à
état est présentée ci-dessous.
HORLOGE, REGISTRE D’ÉTAT ET
TRANSITIONS
Le registre d’état, piloté par son horloge,
constitue le coeur d’une machine à états.Les
autres blocs fonctionnels sont à son service.
Il est constitué de n bascules synchrones. Son
contenu représente l’état actuel de la
machine. Il s’agit d’un nombre codé en binaire
sur n bits. L’entrée du registre d’état constitue
l’état futur, celui qui sera chargé lors de la
prochaine transition active de l’horloge. Le
registre d’état est la mémoire de la machine.
La taille du registre d’état fixe le nombre d’états
accessibles. Si n est le nombre de bascules, le
nombre d’états N = 2^n .
Le rôle de l’horloge est de fixer les instants où
les transitions entre états sont prises en
compte. Entre deux fronts consécutifs de
l’horloge, la machine est figée en position
mémoire.
LES DIFFÉRENTES
ARCHITECTURES
On distingue deux types de machines à états :
les machines de Moore et les machines de
Mealy.
Dans les premières les sorties ne dépendent
que de l’état actuel (la liaison en trait
interrompue est absente),
pour les secondes les sorties dépendent de
l’état actuel et des entrées (la liaison en
trait interrompu est présente).
LE DIAGRAMME DE TRANSITION
On associe à chaque valeur possible du registre
d’état, une case.
L’évolution du système est représentée par des
flèches représentant les transitions.
Pour qu’une transition soit activée il faut que les trois
conditions suivantes soient vérifiées :
1. Le système se trouve dans l’état «source »
considéré
2. La condition de réalisation sur les entrées est vraie
3. Un front actif de l’horloge survient
Pour les machines de Moore les sorties évoluent
après l’activation de la transition.
Les valeurs des sorties seront représentées dans les
cases du diagramme.
Pour les machines de Mealy les sorties
évoluent après l’évolution des entrées.
Les valeurs des sorties seront représentées sur
les flèches du diagramme.
EXEMPLES
SYNTHÈSE D’UN SÉQUENCEUR
On désire réaliser une fonction dont la sortie S recopie
l’état logique présent sur son entrée E si celle-ci est
restée stable après 2 coups d’horloge successifs.
L’entrée RAZ a été rajoutée afin que l’état initial
du système soit défini. De façon plus générale,
un système séquentiel doit toujours être
initialisé, de plus cette initialisation doit être
asynchrone.
TRACÉ DES
CHRONOGRAMMES
REPRÉSENTATION DU DIAGRAMME
DE TRANSITION.
Exemple
Compteur 2 bits avec Enable
D
11
C
10
B
01
A
00
! e
e
! e
e
!e
e
e
!e
Exemple du compteur
 Registre : 2bits Q1 ; Q0
 Table de transition
 Equations
 Q1+
= Q1.(!E+!Q0)+!Q1.Q0.E
 Q0+
= E.!Q0+Q0.!E
 Q0+
= D0
 Q1+
= D1
Annotation d'un graphe de
Mealy
s3
s2s1
s0
!y
0
y
1
!y
1
y
1
!y
0
y
1
!y
0
y
1
Machines d'état (FSM)
Description VHDL
Les FSM sont composées
 de trois parties,
 deux fonctions combinatoires et un registre.
Chacune de ces parties peut être décrite séparément ou de
manière composée avec une autre .
 Les états peuvent être identifiés explicitement à l'aide d'un
type énuméré approprié !
Exemple :
TYPE state IS (lecture, incrément, décode, exécute) ;
Systèmes Séquentiels
Pe
c
Pr Ps
Horloge
etatetat_futur
S
E
(c) Hiver 2003, Rachid
Beguenane DSA-UQAC 27
Description à trois parties
ARCHITECTURE FSM3p of exemple IS
TYPE state IS (lecture, incrément, décode, exécute) ;
signal etat, etat_futur : state ;
BEGIN
Pr : process(horloge)
..... IF horloge'event ....
...... etat <= etat_futur ;
ps : process(etat)
..... S <= ....
pe : process(E, etat)
...... etat_futur <= ...
(c) Hiver 2003, Rachid
Beguenane DSA-UQAC 28
Exemple de machine d'état
Commande d'essuie glace
Commande d'essuie glace
On considère un essuie glace avec pompe de lavage. Le
maintien de la commande E active le moteur M de balayage
simultanément au moteur de pompe P. La libération de E arrête
la pompe P. Le moteur M reste activé pendant deux cycles
complet de balayage. Le système est équipé d'un contact de fin
de course f.
Représenter le graphe de la machine d'état du dispositif. Décrire la
machine en VHDL.
Systèmes Séquentiels
cyc_2
M , !P
cyc_1
M, !P
lavage
M, P
repos
!M, !P
! F
F
E
! F
F
E
E
!E
E
!E
(c) Hiver 2003, Rachid
Beguenane DSA-UQAC 30
Type state is (repos, lavage, cyc_1, cyc_2)
signal etat, etat_f : state;
P1 : process(clk)
begin
if clk'event and clk='1' then
etat <= etat_f;
end if;
end process P1;
P2 : process(etat)
begin
if etat= repos then
M <= '0'; P <= '0';
elsif etat = lavage then
M <= '1'; P <= '1';
else
M <= '1'; P <= '0';
end if;
end process P2;
Description
des sorties
Registre
Exemple de machine d'état
Systèmes Séquentiels
P3 : process(F, E, etat)
begin
case etat is
when repos => if E='1' then
etat_f <= lavage ;
else etat_f <= etat; end if;
when lavage => if E = '0' then
etat_f <= cyc_1 ;
else etat_f <= etat; end if;
when cyc_1 => if E ='1' then
etat_f <= lavage ;
elsif F= '1' then etat_f <= cyc_2 ;
else etat_f <= etat; end if;
when cyc_2 => if E = '1' then
etat_f <= lavage ;
elsif F= '1' then etat_f <= repos ;
else etat_f <= etat; end if;
end process P3;
Circuit
d'excitation
(c) Hiver 2003, Rachid
Beguenane DSA-UQAC 32
Simplification de l'écriture
Il est possible de regrouper les parties
combinatoires dans un processus, ce
qui allège l'écriture au détriment de la
lisibilité.
Pour l'exemple cela donne :
Type state is (repos, lavage, cyc_1, cyc_2)
signal etat, etat_f : state;
reg : process(clk)
begin
if clk'event and clk='1' then
etat <= etat_f;
end if;
end process reg ;
Machine d'état
Systèmes Séquentiels
P3 : process(F, E, etat)
begin
case etat is
when repos => M <= '0'; P <= '0'
if E='1' then etat_f <= lavage ;
else etat_f <= etat; end if;
when lavage => M <= '1'; P <= '1';
if E = '0' then etat_f <= cyc_1 ;
else etat_f <= etat; end if;
when cyc_1 => M <= '1'; P <= '0';
if E ='1' then etat_f <= lavage ;
elsif F= '1' then etat_f <= cyc_2 ;
else etat_f <= etat; end if;
when cyc_2 => M <= '1'; P <= '0';
if E = '1' then etat_f <= lavage ;
elsif F= '1' then etat_f <= repos ;
else etat_f <= etat; end if;
end process P3;
Etats de sorties
Etat futur
Limites des FSM
Un nombre de variables et d ’états trop important
 rend la lecture difficile
 ralentit la conception
 rend la synthèse manuelle fastidieuse
Remèdes
 Utilisation de langages HDL pour la synthèse
 Utilisation de fonctions génériques (compteurs,
registres…)
 Décomposition architecturale
 Utiliser des graphes de tâches
35
Exemple (2/2)
Architecture machine_arch of machine is
signal etat : integer range 1 to 3;
begin
process (clk)
begin
if clk’event and clk=‘1’ then
if initialisation = ‘1’ then etat <= 1;
else
case etat is
when 1=> if condition 1 then etat <=3;
elsif condition 2 then etat <=2;
end if;
when 2 => if condition 3 then etat <= 3; end if;
when 3 => if condition 4 then etat <=1; end if;
end case;
end if;
end process;
end machine-arch;
Remarque :on peut définir un type état
architecture ……is
type etat_type is (etat1, etat2, etat3);
signal etat : etat_type;
begin
……..
Le type état est un type énuméré, le nom
des état peut être quelconque (début, fin,
vitesse, marche, arrêt,…..
Machine d’état
Sequential Circuit Design
36
Sequence Recognizer
Example
Example: Recognize the sequence 1101
 Example: the sequence 1111101 contains 1101
Thus, the sequential machine must remember that the
first two one's have occurred as it receives another
symbol
Also, the sequence 1101101 contains 1101 as both an
initial subsequence and a final subsequence with some
overlap, i. e., 1101101 or 1101101
The 1 in the middle, 1101101, is in both subsequences
The sequence 1101 must be recognized each time it
occurs in the input sequence
Sequential Circuit Design
37
Example: Recognize 1101
Define states for the sequence to be recognized:
 Assuming it starts with first symbol
 Continues through each symbol in the sequence to be
recognized
 Uses output 1 to mean the full sequence has occurred
 With output 0 otherwise
Start in the initial state
 State ‘A’ is the initial state
 Add a state ‘B’ that recognizes the first ‘1’
 State ‘B’ is the state which represents the fact that the first ‘1’ in
the input subsequence has occurred. The output symbol ‘0’
means that the full recognized sequence has not yet occurred
A B
1/0
Sequential Circuit Design
38
After one more ‘1’, we have:
 C is the state obtained when
the input sequence has two ‘1’s.
Finally, after ‘110’ and a ‘1’, we have:
 Transition arcs are used to denote the output function
 Output ‘1’ on the arc from D means the sequence is
recognized
 To what state should the arc from state D go? recall 1101101
Example: Recognize 1101
(continued)
A B
1/0
A B
1/0
C
1/0 0/0
C
1/0
D
1/1
?
Sequential Circuit Design
39
Example: Recognize 1101
(continued)
Clearly the final ‘1’ in the recognized sequence
1101 is a sub-sequence of 1101. It follows a ‘0’
which is not a sub-sequence of 1101. Thus it
should represent the same state reached from
the initial state after a first ‘1’ is observed. We
obtain:
A B1/0
C
1/0 0/0
DA B1/0
C
1/0 0/0
1/1
D
1/1
Sequential Circuit Design
40
Example: Recognize 1101
(continued)
The states have the following meanings:
 A: Start state, no sub-sequence has occurred
 B: The sub-sequence ‘1’ has occurred
 C: The sub-sequence ‘11’ has occurred
 D: The sub-sequence ‘110’ has occurred
 The 1/1 on the arc from D to B means that the last ‘1’
in 1101 has occurred and thus, the output is ‘1’
1/1
A B
1/0
C
1/0
D
0/0
Sequential Circuit Design
41
Example: Recognize 1101
(continued)
The other arcs are added to each state for
inputs are not yet listed. Which arcs are
missing?
Answer:
 ‘0’ arc from state A
 ‘0’ arc from state B
 ‘1’ arc from state C
 ‘0’ arc from state D
1/1
A B
1/0
C
1/0
D
0/0
Sequential Circuit Design
42
Example: Recognize 1101
(continued)
Add the arcs for missing inputs at any state to
make the state diagram complete. We get:
The ‘1’ arc from state C to itself implies that
State C means two or more 1's have
occurred.
C
1/1
A B
1/0 1/0
D
0/0
0/0
0/0 1/0
0/0
Sequential Circuit Design
43
Formulation: Find the State
Table
From the State Diagram, we can fill in the State Table
There are 4 states, one
input, and one output
We will draw a table
with four rows, one for
each current state
From State A, the ‘0’ and
‘1’ input transitions have
been filled in along with
the outputs
1/0
0/0
0/0
1/1
A B
1/0
C
1/0
D
0/0
0/0
Present
State
Next State
x=0 x=1
Output
x=0 x=1
A
B
C
D
1/0
B 0
0/0
A 0
Sequential Circuit Design
44
Formulation: Find State Table
From the state diagram, we obtain the state
table 1/00/0
0/0
0/0
1/1
A B
1/0
C
1/0
D
0/0
State
Present Next State
x=0 x=1
Output
x=0 x=1
A A B 0 0
B A C 0 0
C D C 0 0
D A B 0 1
Sequential Circuit Design
45
State Assignment
Each state must be assigned a unique code
Minimum number of bits required for m states
in the state diagram is n such that
n ≥ log2 m , where x is the smallest integer
≥ x
There are useful state assignments that use
more than the minimum number of bits
If n bits are used, there are 2n
– m unused
states
Sequential Circuit Design
46
What is the minimum number of bits to code 4 states?
 Answer: 2 bits (log2 4 = 2). Therefore, 2 flip-flops are required
 With 2 bits, we can have 4 codes: 00, 01, 10, and 11
How may assignments of 2-bit codes to the 4 states?
 Answer: 4 × 3 × 2 × 1 = 24 possible assignments
Does code assignment make a difference in cost?
 Answer: yes, it affects the cost of the combinational logic
State Assignment – Example
Present
State
Next State
x=0 x=1
Output
x=0 x=1
A A B 0 0
B A C 0 0
C D C 0 0
D A B 0 1
Sequential Circuit Design
47
One possible assignment is Counting Order
A = 00, B = 01, C = 10, D = 11
The resulting coded state table:
Counting Order State
Assignment
Present State
Y1 Y2
Next State
x = 0 x = 1
Output Z
x = 0 x = 1
A = 0 0 0 0 0 1 0 0
B = 0 1 0 0 1 0 0 0
C = 1 0 1 1 1 0 0 0
D = 1 1 0 0 0 1 0 1
Sequential Circuit Design
48
General Structure of Sequence
Detector
To implement the 1101 sequence detector
 Choose the type of flip-flops that will be used as memory
elements
 Determine and minimize the next state and output equations
 These equations are functions of input and current state
 Implement the next state and output combinational logic
Next State and
Output Logic
Memory
Elements
Input
X
Output
Z
Next
State
Current
State
Sequential Circuit Design
49
Find Next State and Output K-
maps
D1 D2 Z
 Assume D flip-flops & counting order assignment
 Obtain the K-maps for flip-flop inputs D1, D2, and
output Z
Y1Y2
X
1
0
00
00
1
1
0 1
00
01
11
10
Y1Y2
X
0
0
10
10
0
1
0 1
00
01
11
10
Y1Y2
X
0
0
00
10
0
0
0 1
00
01
11
10
Sequential Circuit Design
50
Perform two-level optimization
D1 = Y1Y2 + XY1Y2
D2 = XY1Y2 + XY1Y2 + XY1Y2
Z = XY1Y2 Gate Input Cost = 22
Y2
Y1
X
0
0
10
10
0
1
Y2
Y1
X
1
0
00
00
1
1
D1 D2
Z
Y2
Y1
X
0
0
00
10
0
0
Sequential Circuit Design
51
Another possible assignment is Gray Code:
A = 00, B = 01, C = 11, D = 10
The resulting coded state table:
Gray Code State Assignment
Present State
Y1 Y2
Next State
x = 0 x = 1
Output Z
x = 0 x = 1
A = 0 0 0 0 0 1 0 0
B = 0 1 0 0 1 1 0 0
C = 1 1 1 0 1 1 0 0
D = 1 0 0 0 0 1 0 1
Sequential Circuit Design
52
K-Maps for Gray Code State Assignment
Y2
Y1
X
1
0
00
00
0
0
Y2
Y1
X
1
0
10
10
1
0
Y2
Y1
X
0
0
00
11
1
0
Assume D flip-flops and gray code
assignment
Obtain K-maps for D1, D2, and Z:
D1 D2
Z
Sequential Circuit Design
53
Perform two-level optimization
D1 = Y1Y2 + XY2 Gate Input Cost = 9
D2 = X Select this state assignment to
Z = XY1Y2 complete the design
Y2
Y1
X
1
0
00
00
0
0
Y2
Y1
X
1
0
10
10
1
0
Y2
Y1
X
0
0
00
11
1
0
D1 D2
Z
Sequential Circuit Design
54
Library: D-type Flip-Flops with Reset input
 Reset input is used to reset to start state: Y1 Y2 =
‘00’
Map to Technology
Clock
D
D
C
R
Y2
Z
C
R
Y1
X
Reset
Y2
D1
D2
Sequential Circuit Design
55
Circuit Implementation with
NAND
Clock
D
D
C
R
Y2
Z
C
R
Y1
X
Reset
Y2
D1
D2
Sequential Circuit Design
56
Using SR, JK, and T Flip-Flop
Types
Characteristic table (used in analysis)
 Defines the next state of the flip-flop in terms of flip-
flop inputs and current state
Characteristic equation (used also in analysis)
 Obtained from characteristic table
 Defines the next state of the flip-flop as a Boolean
function of the flip-flop inputs and the current state
Excitation table (used in design)
 Defines the flip-flop input variable values as function
of the current state and next state
Sequential Circuit Design
57
 Characteristic Equation
Q(t+1) = S + R Q(t)
S R = 0 (S and R cannot be 1
simultaneously)
SR Flip-Flop
Characteristic Table
Excitation Table
Operation
No change
Set
Reset
No change
S
X
0
1
0
Q(t+1)
0
1
1
0
Q(t)
0
0
1
1
R
X
0
1
0
0
0
1
1
OperationS
0
1
0
1
R
No change
Reset
Set
Undefined
0
1
?
Q(t +1)
Q(t)
S
C
R
Symbol
Q
Q
Sequential Circuit Design
58
JK Flip-Flop
Characteristic Table
Excitation Table J
C
K
Symbol
Q
Q
0
0
1
1
No change
Set
Reset
Complement
OperationJ
0
1
0
1
K
0
1
Q(t+1)
Q(t)
Q(t)
Q(t +1)
0
1
1
0
Q(t)
0
0
1
1
Operation
X
X
0
1
K
0
1
X
X
J
No change
Set
Reset
No Change
 Characteristic Equation
Q(t+1) = J Q(t) + K Q(t)
Sequential Circuit Design
59
T Flip-Flop
Characteristic Table
Excitation Table T
C
Symbol
Q
Q
 Characteristic Equation
Q(t+1) = T ⊕ Q(t)
No change
Complement
Operation
0
1
T Q(t+1)
Q(t)
Q(t)
Q(t +1)
0
1
1
0
Q(t)
0
0
1
1
Operation
0
1
0
1
T
No change
Complement
Complement
No Change
Sequential Circuit Design
60
Obtaining Excitation Table for Flip Flops
Use T flip flop for Y1 and JK flip flop for Y2
Use Gray code assignment for states
Obtain Excitation table for T and JK inputs:
Present
State
Next
State
T input
for Y1
JK input
for Y2
Output
Z
Y1 Y2 x=0 x=1 x=0 x=1 x=0 x=1 x=0 x=1
A = 0 0 0 0 0 1 0 0 0 X 1 X 0 0
B = 0 1 0 0 1 1 0 1 X 1 X 0 0 0
C = 1 1 1 0 1 1 0 0 X 1 X 0 0 0
D = 1 0 0 0 0 1 1 1 0 X 1 X 0 1
Sequential Circuit Design
61
Optimize Equations for T, J,
and K
T = Y1 Y2 + X Y1 Y2, J = X, K = X
Z = X Y1 Y2 (no change)
Total Gate Input Cost = 7 + 3 = 10
T J K
Y1Y2
x
1
0
00
00
1
1
0 1
00
01
11
10
Y1Y2
x
1
X
10
XX
X
0
0 1
00
01
11
10
Y1Y2
x
X
1
XX
01
0
X
0 1
00
01
11
10
Sequential Circuit Design
62
Reset input is used to reset Y1Y2 to ‘00’ (start
state)
Circuit Implementation
Clock
T
J
C
R
Y2
Z
C
R
Y1
X
Reset
Y2
K
X
Y1
Sequential Circuit Design
63
One-Hot Assignment
Use one flip-flop per state: m states ⇒ m flip-
flops
 Y3Y2Y1Y0 = 0001 (state A), 0010 (B), 0100 (C), 1000
(D)
Flip-flop cost is higher but combinational logic
might be simpler
Provides simplified analysis and design
 In equations, need to include only the variable that is
1 for the state, e. g., state with code 0001, is
represented in equations by Y0 instead of Y3 Y2 Y1 Y0
because if Y0 is ‘1’ then the remaining state variables
Sequential Circuit Design
64
A = 0001, B = 0010, C = 0100, D = 1000
The resulting coded state table:
One-Hot State Assignment
Present State
Y3 Y2 Y1 Y0
Next State
x = 0 x = 1
Output
x = 0 x = 1
0001 0001 0010 0 0
0010 0001 0100 0 0
0100 1000 0100 0 0
1000 0001 0010 0 1
Sequential Circuit Design
65
Optimization: One Hot
Assignment
No need for K-map, flip-flop input equations can
be obtained directly from the state table
Assume D Flip-Flops
D0 = X(Y0+ Y1 + Y3) or X Y2
D1 = X(Y0+ Y3) = X Y1 Y2
D2 = X(Y1+ Y2) = X Y0 Y3
D3 = X Y2
Z = XY3 Gate Input Cost = 12
Total cost = combinational circuit cost + cost of
four flip-flops
Sequential Circuit Design
66
Mealy and Moore Sequential
Circuits
Two ways to design clocked sequential circuits
 Mealy and Moore type sequential circuits
Mealy type sequential circuit
 Output is a function of current state and input
 Example: 1101 sequence detector discussed above
Next State and
Output Logic
Memory
Elements
Input
X
Output
Z
Next
State
Current
State
Sequential Circuit Design
67
Moore Type Sequential
Circuits
Output depends on current state only
 Output does not depend on input
Combinational logic is divided into two parts
 Next state logic depends on input and current state
 Output logic depends on current state only
Next State
Logic
Memory
Elements
Input
X
Output
Z
Next
StateCurrent
State
Output
Logic
Sequential Circuit Design
68
Moore Model for Sequence 1101 Detector
For the Moore Model, outputs depend on states
We need to add a state E with output value ‘1’
for the final ‘1’ in the recognized input sequence
 This new state E, though similar to B, would generate
an output of ‘1’ and thus be different from state B
The Moore model for a sequence recognizer
usually has more states than the Mealy model
Sequential Circuit Design
69
Moore State Diagram
We mark outputs on
states for Moore model
For Mealy, outputs
were marked on arcs
Arcs now show state
transitions and input only
Add a new state E to
produce the output 1
Note that the new state E
produces the same behavior as
state B, but gives a different output: ‘1’ rather than ‘0’
A/0 B/0 C/0 D/0
0
E/1
0
0
0
11
1
1
10
Sequential Circuit Design
70
Moore State Table
State and output tables
are shown below
Observe that output y
does not depend on input x
A/0 B/0 C/0 D/0
0
E/1
0
0
0
11
1
1
10
Present
State
Next State
x=0 x=1
Output
y
A A B 0
B A C 0
C D C 0
D A E 0
E A C 1
Moore state
diagram
typically results
in More states

Contenu connexe

Tendances

Rapport regulation-de-temperature
Rapport regulation-de-temperatureRapport regulation-de-temperature
Rapport regulation-de-temperatureMarwa Bhouri
 
144603938 exercices-capteur
144603938 exercices-capteur144603938 exercices-capteur
144603938 exercices-capteurMohammed moudine
 
Slides_Choppers_2022.pdf
Slides_Choppers_2022.pdfSlides_Choppers_2022.pdf
Slides_Choppers_2022.pdfmouadbouaicha
 
Tp informatique industrielle
Tp informatique industrielleTp informatique industrielle
Tp informatique industrielleHajer Dahech
 
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
 
Chapitre 3 robotique e
Chapitre 3 robotique eChapitre 3 robotique e
Chapitre 3 robotique eMouna Souissi
 
Conception, automatisation et supervision d’une machine d’assemblage connec...
  Conception, automatisation et supervision d’une machine d’assemblage connec...  Conception, automatisation et supervision d’une machine d’assemblage connec...
Conception, automatisation et supervision d’une machine d’assemblage connec...Hamza Jmili
 
Rapport de stage
Rapport de stageRapport de stage
Rapport de stageIḾen La
 
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
 
35039817-elements-finis.pdf
35039817-elements-finis.pdf35039817-elements-finis.pdf
35039817-elements-finis.pdffabrice dilukila
 
Projet réalisé par ameny Khedhira & Arij Mekki
Projet réalisé par  ameny Khedhira & Arij MekkiProjet réalisé par  ameny Khedhira & Arij Mekki
Projet réalisé par ameny Khedhira & Arij MekkiAmeny Khedhira
 
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
 
introduction automatisme industriel
introduction automatisme industrielintroduction automatisme industriel
introduction automatisme industrielAdnane Ahmidani
 
2011 05-instrumentationetrgulation-120627023358-phpapp02 (1)
2011 05-instrumentationetrgulation-120627023358-phpapp02 (1)2011 05-instrumentationetrgulation-120627023358-phpapp02 (1)
2011 05-instrumentationetrgulation-120627023358-phpapp02 (1)Salah Hammami
 
Etude et simulation d’un système Automatisée sur le Réseaux Informatique
Etude et simulation d’un système Automatisée sur le Réseaux Informatique Etude et simulation d’un système Automatisée sur le Réseaux Informatique
Etude et simulation d’un système Automatisée sur le Réseaux Informatique Ahmedelect19
 
Conception robot mobile
Conception robot mobile Conception robot mobile
Conception robot mobile Mouna Souissi
 
TP Les bascules - logique combinatoire
TP Les bascules - logique combinatoire TP Les bascules - logique combinatoire
TP Les bascules - logique combinatoire bilal001
 

Tendances (20)

Rapport regulation-de-temperature
Rapport regulation-de-temperatureRapport regulation-de-temperature
Rapport regulation-de-temperature
 
144603938 exercices-capteur
144603938 exercices-capteur144603938 exercices-capteur
144603938 exercices-capteur
 
Cours robotique
Cours robotiqueCours robotique
Cours robotique
 
Slides_Choppers_2022.pdf
Slides_Choppers_2022.pdfSlides_Choppers_2022.pdf
Slides_Choppers_2022.pdf
 
Tp informatique industrielle
Tp informatique industrielleTp informatique industrielle
Tp informatique industrielle
 
Rapport PFE Génie Electrique (2016)
Rapport PFE Génie Electrique (2016)Rapport PFE Génie Electrique (2016)
Rapport PFE Génie Electrique (2016)
 
Chapitre 3 robotique e
Chapitre 3 robotique eChapitre 3 robotique e
Chapitre 3 robotique e
 
Conception, automatisation et supervision d’une machine d’assemblage connec...
  Conception, automatisation et supervision d’une machine d’assemblage connec...  Conception, automatisation et supervision d’une machine d’assemblage connec...
Conception, automatisation et supervision d’une machine d’assemblage connec...
 
Cours capteur final
Cours capteur finalCours capteur final
Cours capteur final
 
Rapport de stage
Rapport de stageRapport de stage
Rapport de stage
 
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
 
35039817-elements-finis.pdf
35039817-elements-finis.pdf35039817-elements-finis.pdf
35039817-elements-finis.pdf
 
Projet réalisé par ameny Khedhira & Arij Mekki
Projet réalisé par  ameny Khedhira & Arij MekkiProjet réalisé par  ameny Khedhira & Arij Mekki
Projet réalisé par ameny Khedhira & Arij Mekki
 
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
 
introduction automatisme industriel
introduction automatisme industrielintroduction automatisme industriel
introduction automatisme industriel
 
2011 05-instrumentationetrgulation-120627023358-phpapp02 (1)
2011 05-instrumentationetrgulation-120627023358-phpapp02 (1)2011 05-instrumentationetrgulation-120627023358-phpapp02 (1)
2011 05-instrumentationetrgulation-120627023358-phpapp02 (1)
 
Etude et simulation d’un système Automatisée sur le Réseaux Informatique
Etude et simulation d’un système Automatisée sur le Réseaux Informatique Etude et simulation d’un système Automatisée sur le Réseaux Informatique
Etude et simulation d’un système Automatisée sur le Réseaux Informatique
 
Rapport
RapportRapport
Rapport
 
Conception robot mobile
Conception robot mobile Conception robot mobile
Conception robot mobile
 
TP Les bascules - logique combinatoire
TP Les bascules - logique combinatoire TP Les bascules - logique combinatoire
TP Les bascules - logique combinatoire
 

Similaire à Cours mooremealy [autosaved]

machines_a_etats.pdf
machines_a_etats.pdfmachines_a_etats.pdf
machines_a_etats.pdfZHMed
 
PréSentation Tsx37
PréSentation Tsx37PréSentation Tsx37
PréSentation Tsx37youri59490
 
Polycop synchrone
Polycop synchronePolycop synchrone
Polycop synchroneomar971638
 
CoursAutomatique_machi_d_ostade.pptx
CoursAutomatique_machi_d_ostade.pptxCoursAutomatique_machi_d_ostade.pptx
CoursAutomatique_machi_d_ostade.pptxHassanMoufassih
 
Moteur Asynchrone
Moteur AsynchroneMoteur Asynchrone
Moteur AsynchroneMed Amine
 
Ch3 ing
Ch3 ingCh3 ing
Ch3 inginfcom
 
Cours2 Réponse temporelle des systèmes dynamiques continus LTI
Cours2 Réponse temporelle des systèmes dynamiques continus LTICours2 Réponse temporelle des systèmes dynamiques continus LTI
Cours2 Réponse temporelle des systèmes dynamiques continus LTIsarah Benmerzouk
 
Chap02 fsm-mpssr-ht
Chap02 fsm-mpssr-htChap02 fsm-mpssr-ht
Chap02 fsm-mpssr-htinfcom
 
INTRODUCTION A LA LOGIQUE SEQUENTIELLE
INTRODUCTION A LA LOGIQUE SEQUENTIELLEINTRODUCTION A LA LOGIQUE SEQUENTIELLE
INTRODUCTION A LA LOGIQUE SEQUENTIELLEsarah Benmerzouk
 
Cours10 Liens entre fonction de transfert et représentations d'état d'un système
Cours10 Liens entre fonction de transfert et représentations d'état d'un systèmeCours10 Liens entre fonction de transfert et représentations d'état d'un système
Cours10 Liens entre fonction de transfert et représentations d'état d'un systèmesarah Benmerzouk
 
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
 
Cours8 Introduction à la représentation d'état
Cours8 Introduction à la représentation d'étatCours8 Introduction à la représentation d'état
Cours8 Introduction à la représentation d'étatsarah Benmerzouk
 
VLSI-Chapitre1-Diaporama-2022.pptx
VLSI-Chapitre1-Diaporama-2022.pptxVLSI-Chapitre1-Diaporama-2022.pptx
VLSI-Chapitre1-Diaporama-2022.pptxmouadmourad1
 
17281795 commande-d-une-machine-a-courant-continu-a-vitesse-variable
17281795 commande-d-une-machine-a-courant-continu-a-vitesse-variable17281795 commande-d-une-machine-a-courant-continu-a-vitesse-variable
17281795 commande-d-une-machine-a-courant-continu-a-vitesse-variableMayssa Rjaibia
 
Programmation En Langage Pl7 2
Programmation En Langage Pl7 2Programmation En Langage Pl7 2
Programmation En Langage Pl7 2youri59490
 

Similaire à Cours mooremealy [autosaved] (20)

machines_a_etats.pdf
machines_a_etats.pdfmachines_a_etats.pdf
machines_a_etats.pdf
 
PréSentation Tsx37
PréSentation Tsx37PréSentation Tsx37
PréSentation Tsx37
 
Le grafcet
Le grafcetLe grafcet
Le grafcet
 
Polycop synchrone
Polycop synchronePolycop synchrone
Polycop synchrone
 
CoursAutomatique_machi_d_ostade.pptx
CoursAutomatique_machi_d_ostade.pptxCoursAutomatique_machi_d_ostade.pptx
CoursAutomatique_machi_d_ostade.pptx
 
Bascules
BasculesBascules
Bascules
 
Moteur Asynchrone
Moteur AsynchroneMoteur Asynchrone
Moteur Asynchrone
 
Ch3 ing
Ch3 ingCh3 ing
Ch3 ing
 
Cours2 Réponse temporelle des systèmes dynamiques continus LTI
Cours2 Réponse temporelle des systèmes dynamiques continus LTICours2 Réponse temporelle des systèmes dynamiques continus LTI
Cours2 Réponse temporelle des systèmes dynamiques continus LTI
 
Chap02 fsm-mpssr-ht
Chap02 fsm-mpssr-htChap02 fsm-mpssr-ht
Chap02 fsm-mpssr-ht
 
INTRODUCTION A LA LOGIQUE SEQUENTIELLE
INTRODUCTION A LA LOGIQUE SEQUENTIELLEINTRODUCTION A LA LOGIQUE SEQUENTIELLE
INTRODUCTION A LA LOGIQUE SEQUENTIELLE
 
Cours10 Liens entre fonction de transfert et représentations d'état d'un système
Cours10 Liens entre fonction de transfert et représentations d'état d'un systèmeCours10 Liens entre fonction de transfert et représentations d'état d'un système
Cours10 Liens entre fonction de transfert et représentations d'état d'un système
 
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
 
Api
ApiApi
Api
 
Cours8 Introduction à la représentation d'état
Cours8 Introduction à la représentation d'étatCours8 Introduction à la représentation d'état
Cours8 Introduction à la représentation d'état
 
VLSI-Chapitre1-Diaporama-2022.pptx
VLSI-Chapitre1-Diaporama-2022.pptxVLSI-Chapitre1-Diaporama-2022.pptx
VLSI-Chapitre1-Diaporama-2022.pptx
 
17281795 commande-d-une-machine-a-courant-continu-a-vitesse-variable
17281795 commande-d-une-machine-a-courant-continu-a-vitesse-variable17281795 commande-d-une-machine-a-courant-continu-a-vitesse-variable
17281795 commande-d-une-machine-a-courant-continu-a-vitesse-variable
 
Programmation En Langage Pl7 2
Programmation En Langage Pl7 2Programmation En Langage Pl7 2
Programmation En Langage Pl7 2
 
Msr05 Control
Msr05 ControlMsr05 Control
Msr05 Control
 

Cours mooremealy [autosaved]

  • 1. 1 Modèles de ‘Mealy’ et de ‘Moore’ Le modèle Mealy  Les sorties sont fonction de l’état courante et des entrées  Les sorties peuvent changer si les entrées changent pendant la période d’horloge, c’est a dire que:  Les sorties peuvent avoir de fausses valeurs temporaires à moins que les entrées soient synchronisées avec les horloges Le modèle Moore  Les sorties sont fonction de l’état courante uniquement  Les sorties sont synchronisées avec les horloges
  • 2. 2 FSM (Machine d’État finie) type Moore FSM type Mealy Circuit comb. entrées Éléments Mémoire (FFs) État futur Circuit comb. sorties État courant Circuit comb. entrées Éléments Mémoire (FFs) État futur Circuit comb. sorties État courant
  • 3. 3 Description de machines d’état Machine de Moore et de Mealy description de circuits séquentiels, où on raisonne en état présent état futur avec des conditions de transitions Circuit combinatoire Circuit combinatoire registre État futur État présent entrées sorties
  • 4. 4 Exemple (1/2 ) Machine d’état Etat 1 Etat 2 Etat 3 Condition 1 Condition 3 Condition 2 Condition 4 initialisation
  • 5. Modèles de description Fonctions séquentielles  graphes d ’états (Finite State Machines) FSM  Un système séquentiel quelconque peut être décrit par  un ensemble fini d ’états (X),  Un ensemble fini d’entrées (E)  Une fonction de transition G: XxE-> X. Une certaine entrée dans un certain état fait passer le système à un autre état.  Deux Modèles de machines d ’états  Moore : les sorties dépendent exclusivement des états du système  Mealy : les sorties dépendent des états et des entrées.
  • 6. Représentation graphique des machines d’états Représentation par un diagramme  Les nœuds sont les états  Les arcs définis par la fonction de transition G(E, X)  Des sorties définies par la fonction F(X) ou Fm(E, X) D 11 C 10 B 01 A 00 ! e e ! e e !e e e !e s3 s2s1 s0 !y 0 y 1 !y 1 y 1 !y 0 y 1 !y 0 y 1
  • 7. Conception des Machines d'état Circuit d'excitation Calcul combinatoire des états FUTURS du système : G c D Q Circuit de sortie F Entrées Horloge X(t)X(t+1) S(t) E(t) S(t) = F(X(t)) X(t + 1) = G[E(t), X(t)] Machine de Moore
  • 8. Conception des Machines d'état Machine de Mealy Circuit d'excitation Calcul combinatoire des états FUTURS du système : G c D Q Circuit de sortie F Entrées Horloge X(t)X(t+1) S(t) E(t) S(t) = F[X(t), E(t)] X(t + 1) = G[E(t), X(t)]
  • 9. Détermination des équations Méthode manuelle pour la détermination des équations de G et F  Définir la taille N du registre : pour E états  log2(E)< N ≤ E 2Nmin ≤ E ; Nmax ≤ E  Coder les états (attribuer une valeur numérique à chaque état)  Etablir la table de transition  En déduire les équations logiques d'excitation (G) et de sortie (F) E X(t) X(t+1) S Etats de sortie États futursEtats initiauxConditions
  • 10. LES MACHINES SYNCHRONES À NOMBRE FINIS D’ÉTATS
  • 11. Une machine à états (M.A.E.) en anglais Finite State Machine (F.S.M.) est un système dynamique, qui peut se trouver, à chaque instant, dans une position parmi un nombre fini de positions possibles. Elle parcourt des cycles, en changeant éventuellement d’état lors des transitions actives de l’horloge. L’architecture générale d’une machine à état est présentée ci-dessous.
  • 12. HORLOGE, REGISTRE D’ÉTAT ET TRANSITIONS Le registre d’état, piloté par son horloge, constitue le coeur d’une machine à états.Les autres blocs fonctionnels sont à son service. Il est constitué de n bascules synchrones. Son contenu représente l’état actuel de la machine. Il s’agit d’un nombre codé en binaire sur n bits. L’entrée du registre d’état constitue l’état futur, celui qui sera chargé lors de la prochaine transition active de l’horloge. Le registre d’état est la mémoire de la machine.
  • 13. La taille du registre d’état fixe le nombre d’états accessibles. Si n est le nombre de bascules, le nombre d’états N = 2^n . Le rôle de l’horloge est de fixer les instants où les transitions entre états sont prises en compte. Entre deux fronts consécutifs de l’horloge, la machine est figée en position mémoire.
  • 14. LES DIFFÉRENTES ARCHITECTURES On distingue deux types de machines à états : les machines de Moore et les machines de Mealy. Dans les premières les sorties ne dépendent que de l’état actuel (la liaison en trait interrompue est absente), pour les secondes les sorties dépendent de l’état actuel et des entrées (la liaison en trait interrompu est présente).
  • 15. LE DIAGRAMME DE TRANSITION On associe à chaque valeur possible du registre d’état, une case. L’évolution du système est représentée par des flèches représentant les transitions. Pour qu’une transition soit activée il faut que les trois conditions suivantes soient vérifiées : 1. Le système se trouve dans l’état «source » considéré 2. La condition de réalisation sur les entrées est vraie 3. Un front actif de l’horloge survient Pour les machines de Moore les sorties évoluent après l’activation de la transition. Les valeurs des sorties seront représentées dans les cases du diagramme.
  • 16.
  • 17. Pour les machines de Mealy les sorties évoluent après l’évolution des entrées. Les valeurs des sorties seront représentées sur les flèches du diagramme.
  • 18. EXEMPLES SYNTHÈSE D’UN SÉQUENCEUR On désire réaliser une fonction dont la sortie S recopie l’état logique présent sur son entrée E si celle-ci est restée stable après 2 coups d’horloge successifs.
  • 19. L’entrée RAZ a été rajoutée afin que l’état initial du système soit défini. De façon plus générale, un système séquentiel doit toujours être initialisé, de plus cette initialisation doit être asynchrone.
  • 22.
  • 23. Exemple Compteur 2 bits avec Enable D 11 C 10 B 01 A 00 ! e e ! e e !e e e !e
  • 24. Exemple du compteur  Registre : 2bits Q1 ; Q0  Table de transition  Equations  Q1+ = Q1.(!E+!Q0)+!Q1.Q0.E  Q0+ = E.!Q0+Q0.!E  Q0+ = D0  Q1+ = D1
  • 25. Annotation d'un graphe de Mealy s3 s2s1 s0 !y 0 y 1 !y 1 y 1 !y 0 y 1 !y 0 y 1
  • 26. Machines d'état (FSM) Description VHDL Les FSM sont composées  de trois parties,  deux fonctions combinatoires et un registre. Chacune de ces parties peut être décrite séparément ou de manière composée avec une autre .  Les états peuvent être identifiés explicitement à l'aide d'un type énuméré approprié ! Exemple : TYPE state IS (lecture, incrément, décode, exécute) ; Systèmes Séquentiels Pe c Pr Ps Horloge etatetat_futur S E
  • 27. (c) Hiver 2003, Rachid Beguenane DSA-UQAC 27 Description à trois parties ARCHITECTURE FSM3p of exemple IS TYPE state IS (lecture, incrément, décode, exécute) ; signal etat, etat_futur : state ; BEGIN Pr : process(horloge) ..... IF horloge'event .... ...... etat <= etat_futur ; ps : process(etat) ..... S <= .... pe : process(E, etat) ...... etat_futur <= ...
  • 28. (c) Hiver 2003, Rachid Beguenane DSA-UQAC 28 Exemple de machine d'état Commande d'essuie glace Commande d'essuie glace On considère un essuie glace avec pompe de lavage. Le maintien de la commande E active le moteur M de balayage simultanément au moteur de pompe P. La libération de E arrête la pompe P. Le moteur M reste activé pendant deux cycles complet de balayage. Le système est équipé d'un contact de fin de course f. Représenter le graphe de la machine d'état du dispositif. Décrire la machine en VHDL.
  • 29. Systèmes Séquentiels cyc_2 M , !P cyc_1 M, !P lavage M, P repos !M, !P ! F F E ! F F E E !E E !E
  • 30. (c) Hiver 2003, Rachid Beguenane DSA-UQAC 30 Type state is (repos, lavage, cyc_1, cyc_2) signal etat, etat_f : state; P1 : process(clk) begin if clk'event and clk='1' then etat <= etat_f; end if; end process P1; P2 : process(etat) begin if etat= repos then M <= '0'; P <= '0'; elsif etat = lavage then M <= '1'; P <= '1'; else M <= '1'; P <= '0'; end if; end process P2; Description des sorties Registre
  • 31. Exemple de machine d'état Systèmes Séquentiels P3 : process(F, E, etat) begin case etat is when repos => if E='1' then etat_f <= lavage ; else etat_f <= etat; end if; when lavage => if E = '0' then etat_f <= cyc_1 ; else etat_f <= etat; end if; when cyc_1 => if E ='1' then etat_f <= lavage ; elsif F= '1' then etat_f <= cyc_2 ; else etat_f <= etat; end if; when cyc_2 => if E = '1' then etat_f <= lavage ; elsif F= '1' then etat_f <= repos ; else etat_f <= etat; end if; end process P3; Circuit d'excitation
  • 32. (c) Hiver 2003, Rachid Beguenane DSA-UQAC 32 Simplification de l'écriture Il est possible de regrouper les parties combinatoires dans un processus, ce qui allège l'écriture au détriment de la lisibilité. Pour l'exemple cela donne : Type state is (repos, lavage, cyc_1, cyc_2) signal etat, etat_f : state; reg : process(clk) begin if clk'event and clk='1' then etat <= etat_f; end if; end process reg ;
  • 33. Machine d'état Systèmes Séquentiels P3 : process(F, E, etat) begin case etat is when repos => M <= '0'; P <= '0' if E='1' then etat_f <= lavage ; else etat_f <= etat; end if; when lavage => M <= '1'; P <= '1'; if E = '0' then etat_f <= cyc_1 ; else etat_f <= etat; end if; when cyc_1 => M <= '1'; P <= '0'; if E ='1' then etat_f <= lavage ; elsif F= '1' then etat_f <= cyc_2 ; else etat_f <= etat; end if; when cyc_2 => M <= '1'; P <= '0'; if E = '1' then etat_f <= lavage ; elsif F= '1' then etat_f <= repos ; else etat_f <= etat; end if; end process P3; Etats de sorties Etat futur
  • 34. Limites des FSM Un nombre de variables et d ’états trop important  rend la lecture difficile  ralentit la conception  rend la synthèse manuelle fastidieuse Remèdes  Utilisation de langages HDL pour la synthèse  Utilisation de fonctions génériques (compteurs, registres…)  Décomposition architecturale  Utiliser des graphes de tâches
  • 35. 35 Exemple (2/2) Architecture machine_arch of machine is signal etat : integer range 1 to 3; begin process (clk) begin if clk’event and clk=‘1’ then if initialisation = ‘1’ then etat <= 1; else case etat is when 1=> if condition 1 then etat <=3; elsif condition 2 then etat <=2; end if; when 2 => if condition 3 then etat <= 3; end if; when 3 => if condition 4 then etat <=1; end if; end case; end if; end process; end machine-arch; Remarque :on peut définir un type état architecture ……is type etat_type is (etat1, etat2, etat3); signal etat : etat_type; begin …….. Le type état est un type énuméré, le nom des état peut être quelconque (début, fin, vitesse, marche, arrêt,….. Machine d’état
  • 36. Sequential Circuit Design 36 Sequence Recognizer Example Example: Recognize the sequence 1101  Example: the sequence 1111101 contains 1101 Thus, the sequential machine must remember that the first two one's have occurred as it receives another symbol Also, the sequence 1101101 contains 1101 as both an initial subsequence and a final subsequence with some overlap, i. e., 1101101 or 1101101 The 1 in the middle, 1101101, is in both subsequences The sequence 1101 must be recognized each time it occurs in the input sequence
  • 37. Sequential Circuit Design 37 Example: Recognize 1101 Define states for the sequence to be recognized:  Assuming it starts with first symbol  Continues through each symbol in the sequence to be recognized  Uses output 1 to mean the full sequence has occurred  With output 0 otherwise Start in the initial state  State ‘A’ is the initial state  Add a state ‘B’ that recognizes the first ‘1’  State ‘B’ is the state which represents the fact that the first ‘1’ in the input subsequence has occurred. The output symbol ‘0’ means that the full recognized sequence has not yet occurred A B 1/0
  • 38. Sequential Circuit Design 38 After one more ‘1’, we have:  C is the state obtained when the input sequence has two ‘1’s. Finally, after ‘110’ and a ‘1’, we have:  Transition arcs are used to denote the output function  Output ‘1’ on the arc from D means the sequence is recognized  To what state should the arc from state D go? recall 1101101 Example: Recognize 1101 (continued) A B 1/0 A B 1/0 C 1/0 0/0 C 1/0 D 1/1 ?
  • 39. Sequential Circuit Design 39 Example: Recognize 1101 (continued) Clearly the final ‘1’ in the recognized sequence 1101 is a sub-sequence of 1101. It follows a ‘0’ which is not a sub-sequence of 1101. Thus it should represent the same state reached from the initial state after a first ‘1’ is observed. We obtain: A B1/0 C 1/0 0/0 DA B1/0 C 1/0 0/0 1/1 D 1/1
  • 40. Sequential Circuit Design 40 Example: Recognize 1101 (continued) The states have the following meanings:  A: Start state, no sub-sequence has occurred  B: The sub-sequence ‘1’ has occurred  C: The sub-sequence ‘11’ has occurred  D: The sub-sequence ‘110’ has occurred  The 1/1 on the arc from D to B means that the last ‘1’ in 1101 has occurred and thus, the output is ‘1’ 1/1 A B 1/0 C 1/0 D 0/0
  • 41. Sequential Circuit Design 41 Example: Recognize 1101 (continued) The other arcs are added to each state for inputs are not yet listed. Which arcs are missing? Answer:  ‘0’ arc from state A  ‘0’ arc from state B  ‘1’ arc from state C  ‘0’ arc from state D 1/1 A B 1/0 C 1/0 D 0/0
  • 42. Sequential Circuit Design 42 Example: Recognize 1101 (continued) Add the arcs for missing inputs at any state to make the state diagram complete. We get: The ‘1’ arc from state C to itself implies that State C means two or more 1's have occurred. C 1/1 A B 1/0 1/0 D 0/0 0/0 0/0 1/0 0/0
  • 43. Sequential Circuit Design 43 Formulation: Find the State Table From the State Diagram, we can fill in the State Table There are 4 states, one input, and one output We will draw a table with four rows, one for each current state From State A, the ‘0’ and ‘1’ input transitions have been filled in along with the outputs 1/0 0/0 0/0 1/1 A B 1/0 C 1/0 D 0/0 0/0 Present State Next State x=0 x=1 Output x=0 x=1 A B C D 1/0 B 0 0/0 A 0
  • 44. Sequential Circuit Design 44 Formulation: Find State Table From the state diagram, we obtain the state table 1/00/0 0/0 0/0 1/1 A B 1/0 C 1/0 D 0/0 State Present Next State x=0 x=1 Output x=0 x=1 A A B 0 0 B A C 0 0 C D C 0 0 D A B 0 1
  • 45. Sequential Circuit Design 45 State Assignment Each state must be assigned a unique code Minimum number of bits required for m states in the state diagram is n such that n ≥ log2 m , where x is the smallest integer ≥ x There are useful state assignments that use more than the minimum number of bits If n bits are used, there are 2n – m unused states
  • 46. Sequential Circuit Design 46 What is the minimum number of bits to code 4 states?  Answer: 2 bits (log2 4 = 2). Therefore, 2 flip-flops are required  With 2 bits, we can have 4 codes: 00, 01, 10, and 11 How may assignments of 2-bit codes to the 4 states?  Answer: 4 × 3 × 2 × 1 = 24 possible assignments Does code assignment make a difference in cost?  Answer: yes, it affects the cost of the combinational logic State Assignment – Example Present State Next State x=0 x=1 Output x=0 x=1 A A B 0 0 B A C 0 0 C D C 0 0 D A B 0 1
  • 47. Sequential Circuit Design 47 One possible assignment is Counting Order A = 00, B = 01, C = 10, D = 11 The resulting coded state table: Counting Order State Assignment Present State Y1 Y2 Next State x = 0 x = 1 Output Z x = 0 x = 1 A = 0 0 0 0 0 1 0 0 B = 0 1 0 0 1 0 0 0 C = 1 0 1 1 1 0 0 0 D = 1 1 0 0 0 1 0 1
  • 48. Sequential Circuit Design 48 General Structure of Sequence Detector To implement the 1101 sequence detector  Choose the type of flip-flops that will be used as memory elements  Determine and minimize the next state and output equations  These equations are functions of input and current state  Implement the next state and output combinational logic Next State and Output Logic Memory Elements Input X Output Z Next State Current State
  • 49. Sequential Circuit Design 49 Find Next State and Output K- maps D1 D2 Z  Assume D flip-flops & counting order assignment  Obtain the K-maps for flip-flop inputs D1, D2, and output Z Y1Y2 X 1 0 00 00 1 1 0 1 00 01 11 10 Y1Y2 X 0 0 10 10 0 1 0 1 00 01 11 10 Y1Y2 X 0 0 00 10 0 0 0 1 00 01 11 10
  • 50. Sequential Circuit Design 50 Perform two-level optimization D1 = Y1Y2 + XY1Y2 D2 = XY1Y2 + XY1Y2 + XY1Y2 Z = XY1Y2 Gate Input Cost = 22 Y2 Y1 X 0 0 10 10 0 1 Y2 Y1 X 1 0 00 00 1 1 D1 D2 Z Y2 Y1 X 0 0 00 10 0 0
  • 51. Sequential Circuit Design 51 Another possible assignment is Gray Code: A = 00, B = 01, C = 11, D = 10 The resulting coded state table: Gray Code State Assignment Present State Y1 Y2 Next State x = 0 x = 1 Output Z x = 0 x = 1 A = 0 0 0 0 0 1 0 0 B = 0 1 0 0 1 1 0 0 C = 1 1 1 0 1 1 0 0 D = 1 0 0 0 0 1 0 1
  • 52. Sequential Circuit Design 52 K-Maps for Gray Code State Assignment Y2 Y1 X 1 0 00 00 0 0 Y2 Y1 X 1 0 10 10 1 0 Y2 Y1 X 0 0 00 11 1 0 Assume D flip-flops and gray code assignment Obtain K-maps for D1, D2, and Z: D1 D2 Z
  • 53. Sequential Circuit Design 53 Perform two-level optimization D1 = Y1Y2 + XY2 Gate Input Cost = 9 D2 = X Select this state assignment to Z = XY1Y2 complete the design Y2 Y1 X 1 0 00 00 0 0 Y2 Y1 X 1 0 10 10 1 0 Y2 Y1 X 0 0 00 11 1 0 D1 D2 Z
  • 54. Sequential Circuit Design 54 Library: D-type Flip-Flops with Reset input  Reset input is used to reset to start state: Y1 Y2 = ‘00’ Map to Technology Clock D D C R Y2 Z C R Y1 X Reset Y2 D1 D2
  • 55. Sequential Circuit Design 55 Circuit Implementation with NAND Clock D D C R Y2 Z C R Y1 X Reset Y2 D1 D2
  • 56. Sequential Circuit Design 56 Using SR, JK, and T Flip-Flop Types Characteristic table (used in analysis)  Defines the next state of the flip-flop in terms of flip- flop inputs and current state Characteristic equation (used also in analysis)  Obtained from characteristic table  Defines the next state of the flip-flop as a Boolean function of the flip-flop inputs and the current state Excitation table (used in design)  Defines the flip-flop input variable values as function of the current state and next state
  • 57. Sequential Circuit Design 57  Characteristic Equation Q(t+1) = S + R Q(t) S R = 0 (S and R cannot be 1 simultaneously) SR Flip-Flop Characteristic Table Excitation Table Operation No change Set Reset No change S X 0 1 0 Q(t+1) 0 1 1 0 Q(t) 0 0 1 1 R X 0 1 0 0 0 1 1 OperationS 0 1 0 1 R No change Reset Set Undefined 0 1 ? Q(t +1) Q(t) S C R Symbol Q Q
  • 58. Sequential Circuit Design 58 JK Flip-Flop Characteristic Table Excitation Table J C K Symbol Q Q 0 0 1 1 No change Set Reset Complement OperationJ 0 1 0 1 K 0 1 Q(t+1) Q(t) Q(t) Q(t +1) 0 1 1 0 Q(t) 0 0 1 1 Operation X X 0 1 K 0 1 X X J No change Set Reset No Change  Characteristic Equation Q(t+1) = J Q(t) + K Q(t)
  • 59. Sequential Circuit Design 59 T Flip-Flop Characteristic Table Excitation Table T C Symbol Q Q  Characteristic Equation Q(t+1) = T ⊕ Q(t) No change Complement Operation 0 1 T Q(t+1) Q(t) Q(t) Q(t +1) 0 1 1 0 Q(t) 0 0 1 1 Operation 0 1 0 1 T No change Complement Complement No Change
  • 60. Sequential Circuit Design 60 Obtaining Excitation Table for Flip Flops Use T flip flop for Y1 and JK flip flop for Y2 Use Gray code assignment for states Obtain Excitation table for T and JK inputs: Present State Next State T input for Y1 JK input for Y2 Output Z Y1 Y2 x=0 x=1 x=0 x=1 x=0 x=1 x=0 x=1 A = 0 0 0 0 0 1 0 0 0 X 1 X 0 0 B = 0 1 0 0 1 1 0 1 X 1 X 0 0 0 C = 1 1 1 0 1 1 0 0 X 1 X 0 0 0 D = 1 0 0 0 0 1 1 1 0 X 1 X 0 1
  • 61. Sequential Circuit Design 61 Optimize Equations for T, J, and K T = Y1 Y2 + X Y1 Y2, J = X, K = X Z = X Y1 Y2 (no change) Total Gate Input Cost = 7 + 3 = 10 T J K Y1Y2 x 1 0 00 00 1 1 0 1 00 01 11 10 Y1Y2 x 1 X 10 XX X 0 0 1 00 01 11 10 Y1Y2 x X 1 XX 01 0 X 0 1 00 01 11 10
  • 62. Sequential Circuit Design 62 Reset input is used to reset Y1Y2 to ‘00’ (start state) Circuit Implementation Clock T J C R Y2 Z C R Y1 X Reset Y2 K X Y1
  • 63. Sequential Circuit Design 63 One-Hot Assignment Use one flip-flop per state: m states ⇒ m flip- flops  Y3Y2Y1Y0 = 0001 (state A), 0010 (B), 0100 (C), 1000 (D) Flip-flop cost is higher but combinational logic might be simpler Provides simplified analysis and design  In equations, need to include only the variable that is 1 for the state, e. g., state with code 0001, is represented in equations by Y0 instead of Y3 Y2 Y1 Y0 because if Y0 is ‘1’ then the remaining state variables
  • 64. Sequential Circuit Design 64 A = 0001, B = 0010, C = 0100, D = 1000 The resulting coded state table: One-Hot State Assignment Present State Y3 Y2 Y1 Y0 Next State x = 0 x = 1 Output x = 0 x = 1 0001 0001 0010 0 0 0010 0001 0100 0 0 0100 1000 0100 0 0 1000 0001 0010 0 1
  • 65. Sequential Circuit Design 65 Optimization: One Hot Assignment No need for K-map, flip-flop input equations can be obtained directly from the state table Assume D Flip-Flops D0 = X(Y0+ Y1 + Y3) or X Y2 D1 = X(Y0+ Y3) = X Y1 Y2 D2 = X(Y1+ Y2) = X Y0 Y3 D3 = X Y2 Z = XY3 Gate Input Cost = 12 Total cost = combinational circuit cost + cost of four flip-flops
  • 66. Sequential Circuit Design 66 Mealy and Moore Sequential Circuits Two ways to design clocked sequential circuits  Mealy and Moore type sequential circuits Mealy type sequential circuit  Output is a function of current state and input  Example: 1101 sequence detector discussed above Next State and Output Logic Memory Elements Input X Output Z Next State Current State
  • 67. Sequential Circuit Design 67 Moore Type Sequential Circuits Output depends on current state only  Output does not depend on input Combinational logic is divided into two parts  Next state logic depends on input and current state  Output logic depends on current state only Next State Logic Memory Elements Input X Output Z Next StateCurrent State Output Logic
  • 68. Sequential Circuit Design 68 Moore Model for Sequence 1101 Detector For the Moore Model, outputs depend on states We need to add a state E with output value ‘1’ for the final ‘1’ in the recognized input sequence  This new state E, though similar to B, would generate an output of ‘1’ and thus be different from state B The Moore model for a sequence recognizer usually has more states than the Mealy model
  • 69. Sequential Circuit Design 69 Moore State Diagram We mark outputs on states for Moore model For Mealy, outputs were marked on arcs Arcs now show state transitions and input only Add a new state E to produce the output 1 Note that the new state E produces the same behavior as state B, but gives a different output: ‘1’ rather than ‘0’ A/0 B/0 C/0 D/0 0 E/1 0 0 0 11 1 1 10
  • 70. Sequential Circuit Design 70 Moore State Table State and output tables are shown below Observe that output y does not depend on input x A/0 B/0 C/0 D/0 0 E/1 0 0 0 11 1 1 10 Present State Next State x=0 x=1 Output y A A B 0 B A C 0 C D C 0 D A E 0 E A C 1 Moore state diagram typically results in More states