Professional Documents
Culture Documents
Exemples:
Tableau dtat
Un tableau dtat (aussi appel tableau de transitions
dtat) est similaire une table de vrit. Il comporte
quatre sections : les tats prsents, les entres, les
tats prochains, et les sorties.
Si on a m bascules et n entres, le tableau a 2m + n
ranges en forme gnrale.
En forme compacte, le tableau na que 2m ranges.
On forme alors des colonnes pour couvrir les
diffrents cas des variables dentre.
Diagramme dtat
Les tats sont identifis par des cercles, avec leur nom et/ou leur
code binaire associ crit dans le cercle;
Les transitions entre les tats sont identifies par des flches entre
les cercles;
Machine de Moore
inputs
Next-state
Logic
excitation
State
Memory
current state
Output
Logic
outputs
G
clock input
clock
signal
Copyright 2000 by Prentice Hall, Inc.
Digital Design Principles and Practices, 3/e
Machine de Mealy
inputs
Next-state
Logic
excitation
State
Memory
current state
Output
Logic
outputs
G
clock input
clock
signal
State Memory
Output Logic G
output
input
MAX
excitation
EN
EN
D0
EN
D
CLK
Q0
Q0
Q0
D1
D
CLK
Q1
Q1
Q1
clock signal
current state
CLK
10
Exemple 1
variables dtat, quations dtat et quation de sortie
A+ =
B+ =
Z=
Tableau dtat
11
Exemple 1
variables dtat, quations dtat et quation de sortie
A+ = A B
B+ = B + X
Z = (A + B)
Z
Tableau dtat
Diagramme dtat ?
0
0
1
1
1
1
0
0
1
1
0
1
1
1
0
1
1
1
0
0
0
0
0
0
12
Exemple 2
variables dtat, quations dtat et quations de sortie
A+ =
B+ =
Y=
Z=
Tableau dtat
13
Exemple 2
variables dtat, quations dtat et quations de sortie
A+ = XA + XB
B+ = XA
Y
Y == (A+B)X
Z=AB
Tableau dtat
Diagramme dtat ?
0
0
0
1
0
1
0
1
0
1
0
1
0
0
0
0
0
0
1
0
1
0
1
0
0
0
1
1
1
1
0
0
14
15
16
17
18
process
process(state,
(state,in1,
in1,in2)
in2)
begin
begin
case
casestate
stateisis
when
whenstate_0
state_0=>
=>
ifif(in1='0')
(in1='0')then
then
next_state
next_state<=
<=
state_0;
state_0;
out1
out1<=
<='0';
'0';
else
else
next_state
next_state<=
<=
state_2;
state_2;
out1
out1<=
<=1';
1';
end
if;
end if;
when
whenstate_1
state_1=>
=>
end
endcase;
case;
end
endprocess;
process;
process
process(state
(state,,in1,
in1,in2)
in2)
begin
begin
case
casestate
stateisis
when
whenstate_0
state_0=>
=>
out1
out1<=
<='0';
'0';
ifif(in1='0')
(in1='0')then
then
next_state
next_state<=
<=
state_0;
state_0;
else
else
next_state
next_state<=
<=
state_2;
state_2;
end
endif;
if;
when
whenstate_1
state_1=>
=>
end
endcase;
case;
end
endprocess;
process;
end
endarchi
archi
end
endarchi;
archi;
-Partie combinatoire
Implmentation
Sylvain
Martel - INF1500de
Mealy
-Partie combinatoire
Implmentation de
Moore
19
Exercices
Q0+ =
Q1+ =
Q2+ =
Sylvain Martel - INF1500
20
21
22