chapitre 6: conception de machines synchrones et ... · synchrones et principalement synchrones...
TRANSCRIPT
Mohamad Sawan et collaborateurs
ELE3311 –
Systèmes logiques programmables
Chapitre 6: conception de machines
synchrones et principalement synchrones
▪ Machines synchrones
➢ Compteurs, diviseurs et vérification des impasses
➢ États redondants (P8)
➢ Minimisation des étages IFL (P11) et OFL (P13)
➢ Assignation bit par état (One-hot encoding) (P15)
➢ Transitoires produites par l’étage OFL (P16)
➢ Diverses sorties générées par l’étage OFL
➢ Élimination de transitoires (P19)
▪ Machines principalement synchrones
➢ Rappel
➢ États erronés
➢ Synchronisation des signaux d’entrée.
ELE3311 –
Systèmes logiques programmables Page 2
Machines synchrones
▪ Rappel
➢ Une machine séquentielle algorithmique est synchrone
lorsque tous les signaux affectant la logique d'entrée (IFL)
sont synchrones par rapport à l'horloge.
➢ De manière générale, pour une machine active sur le
front montant de l'horloge, les transitions sur les entrées
se produisent aux fronts descendants de l'horloge.0 1 2 3 4 5 6 7 8 9
CLK
X
Q1
Q0
Z
Les entrées
changent sur
les fronts
descendants
MSA
active sur
le front
montant
ELE3311 –
Systèmes logiques programmables Page 3
Machines synchrones (suite)
▪ Rappel – design de MSA
➢ Diviseur de fréquence (cas particulier)
Diviseur
par pfin
fout
soit in out
out in
f Tp
f T= =
12 2
m = nombre de bascules
p = nombre d'états permanents
m mp- ≺ ≺
e0
e1
ep-2
ep-1
Zp
SB
SE
ELE3311 –
Systèmes logiques programmables Page 4
Machines synchrones (suite)
▪ Rappel – design de MSA (suite)
➢ Diviseur de fréquence (suite)
Exemple
fin = 400 kHz
fout = 25 kHz
• p = 400 / 25 → p = 16 états (e0, e1, …, e15)
• m = log2 16 → m = 4 bascules
14 15 0 1 2 3 4 5 6 7
CLK
Zp
8 9 10 11 12 13 14 15 0 1
ELE3311 –
Systèmes logiques programmables Page 5
Machines synchrones (suite)
▪ Vérification des impasses
➢ Compteur séquentiel
a
b
c
01
Q1Q
0
11
10
d00
1. Diagramme d'état
Q1
Q0
Q1
+ Q0+
D1
D0
0 0
0 1
1 0
1 1
d
a
c
b
x x
1 1
0 1
1 0
X
b
a
c
2. Table d'excitation
État facultatif
ELE3311 –
Systèmes logiques programmables Page 6
Machines synchrones (suite)
▪ Vérification des impasses (suite)
➢ Compteur séquentiel (suite)
3. Équations d'excitations
Q1
0 1
X
Q0
0
1 1
0
1
D1
Q1
0 1
X
Q0
0
1 1
1
0
D0
Q1
Q0
Q1
+ Q0+
D1
D0
0 0d 0 0d
4. Vérification d'impasses (sur les états facultatifs)
1 0D = Q 0 0 1D = Q QÅ
ELE3311 –
Systèmes logiques programmables Page 7
Machines synchrones (suite)
▪ Vérification des impasses (suite)
➢ Compteur séquentiel (suite)
5. État forcé au lieu de facultatif
Q1
0 1
0
Q0
0
1 1
0
1
D1
Q1
0 1
10
1 1
1
0
D0
Q0
1 0D = Q
0 0 1D = Q Q+
Q1
Q0
Q1
+ Q0+
D1
D0
0 0
0 1
1 0
1 1
d
a
c
b
0 1
1 1
0 1
1 0
a
b
a
c
a
b
c
01
Q1Q
0
11
10
d00
ELE3311 –
Systèmes logiques programmables Page 8
Machines synchrones (suite)
▪ Élimination des états redondants
➢ Un état est redondant à un autre état et peut être éliminé:
• lorsqu'il aboutit dans les mêmes états pour des conditions
identiques (les mêmes entrées affectées des mêmes valeurs);
• lorsqu'il possède les mêmes sorties actives pendant la même
période (SB-SE).États
redondants
'1''0'
a
c
d
Z
X
bSimplification
'1''0'
a
c Z
X
b
ELE3311 –
Systèmes logiques programmables Page 9
Machines synchrones (suite)
▪ Élimination des états redondants (suite)
'1''0'
a
X
b
c
'0' '1'X
Z
États
redondants
'1''0'
a
X
b Z
Simplification
ELE3311 –
Systèmes logiques programmables Page 10
Machines synchrones (suite)
▪ Élimination des états redondants (suite)
'1''0'
a
c
d
X
b ZSB
SE
ZSB
DSB
États non-redondants
(sorties différentes)
ELE3311 –
Systèmes logiques programmables Page 11
Machines synchrones (suite)
▪ Minimisation des étages IFL et OFL
➢ Principe 1: (IFL)
Des états ayant le même état futur doivent avoir une
assignation adjacente.
ba
c
X'1''0'
'1''0'
c
d
Z
X
b
aÉtats adjacents
États adjacents
Q0 0 1
a b
c -
Q1
0
1
ELE3311 –
Systèmes logiques programmables Page 12
Machines synchrones (suite)
▪ Minimisation des étages IFL et OFL (suite)
➢ Principe 2: (IFL)
Des états ayant le même état précédent doivent avoir une
assignation adjacente.
cb
a
X'1''0'
États adjacents
Q0 0 1
a b
- c
Q1
0
1
ELE3311 –
Systèmes logiques programmables Page 13
Machines synchrones (suite)
▪ Minimisation des étages IFL et OFL (suite)
➢ Principe 3: (OFL)
Des états ayant une même sortie active doivent avoir une
assignation adjacente.
Q0 0 1
a c
b d
Q1
0
1
États
adjacents
'1''0'
a
c
d
X
b ZSB
SE
ZSB
SE
e
ELE3311 –
Systèmes logiques programmables Page 14
Machines synchrones (suite)
▪ Minimisation des étages IFL et OFL (suite)
➢ Pour obtenir une logique d'entrée et de sortie minimale,
les principes de minimisation doivent respecter les
priorités suivantes:
• Le principe 1 a priorité sur les principes 2 et 3.
• Le principe 2 a priorité sur le principe 3.
➢ Pour obtenir une logique d'entrée minimale, l’utilisation
des bascules JK serait un plus.
➢ Assignation bit par état.
ELE3311 –
Systèmes logiques programmables Page 15
Machines synchrones (suite)
▪ Minimisation (suite)
➢ Assignation conventionnelle
• Codage binaire,
– n variables d’états,
– n bascules,
– 2^n états
➢ Assignation bit par état (One-hot encoding)
• Codage bit par état,
– 2^n états,
– 2^n variables d’états,
– 2^n bascules.
ELE3311 –
Systèmes logiques programmables Page 16
Machines synchrones (suite)
▪ Transitoires produites par l’étage OFL
➢ Ces transitoires peuvent être causés par les délais entre:
• Portes logiques
• Bascules
➢ Autres aspects de conception
• Assignation d’états
– S’assurer de ne pas passer par un état facultatif lors de
transition, car elle peut générer un sortie.
• Minimisation de la partie combinatoire
– Simplification, états facultatifs
▪ Élimination de ces transitoires !
ELE3311 –
Systèmes logiques programmables Page 17
Machines synchrones (suite)
▪ Transitoires
➢ Conclusion
• Des fois, il est impossible d’éliminer les transitoires
par l’assignation d’états, on doit alors avoir recours à
d’autres méthodes, soit:
– Décalage d’horloge;
– Utilisation des registres à la sortie.
ELE3311 –
Systèmes logiques programmables Page 18
Machines synchrones (suite)
▪ Diverses sorties générées par l’étage OFL
➢ Types de sorties0 1 2 3 4 5
CLK
X
Z0
Z0
SBZ
0SE
Z1
Z2
cb d
Z1
DSBZ
1DSE
Z2
DSBZ
2SE
Z3
SBZ
3DSBZ
3
Z4
SBZ4
Z5
DSBZ5
b
c
d
Z
ELE3311 –
Systèmes logiques programmables Page 19
Machines synchrones (suite)
▪ Élimination de transitoires
➢ Sortie inconditionnelle active entre SB et DSB
➢ Sortie inconditionnelle active entre DSB et SE
➢ Sortie conditionnelle active entre DSB et SE
➢ Sortie inconditionnelle active entre DSB et DSE
➢ Sortie inconditionnelle – méthode des registres
➢ Sortie conditionnelle – méthode des registres.
ELE3311 –
Systèmes logiques programmables Page 20
Machines synchrones (suite)
▪ Étage OFL avec sortie retardée (suite)
➢ Sortie inconditionnelle active entre SB et DSB
QD
clk
MÉMOIRES OFL
QD
clk
Z3
Z3
SBZ
3DSB
0 1 2 3 4 5
CLK
cb d
Z3
état c
Transitoire (glitch)
ELE3311 –
Systèmes logiques programmables Page 21
Machines synchrones (suite)
▪ Étage OFL avec sortie retardée (suite)
➢ Sortie inconditionnelle active entre SB et DSB (suite)
QD
clk
MÉMOIRES OFL
QD
clk
Z3
Z3
SBZ
3DSB
clk'
0 1 2 3 4 5
CLK
cb d
Z3
état c
CLK'
ELE3311 –
Systèmes logiques programmables Page 22
Machines synchrones (suite)
▪ Étage OFL avec sortie retardée (suite)
➢ Sortie inconditionnelle active entre DSB et SE
QD
clk
QD
clk
Z
clk'
0 1 2 3 4 5
CLK
cb d
Z
état
CLK'
c
Solution 1:
Utiliser l'inverse de l'horloge
Transitoires
(glitches)
Z état CLK= ×b
c
d
ZSE
DSB
ELE3311 –
Systèmes logiques programmables Page 23
Machines synchrones (suite)
▪ Étage OFL avec sortie retardée (suite)
➢ Sortie inconditionnelle active entre DSB et SE (suite)
Solution 2:
Désactiver l'OFL avant
le changement d'état
QD
QD
clk
Z
clk'
Z état CLK= ×
0 1 2 3 4 5
CLK
cb d
Z
état
CLK'
c
ELE3311 –
Systèmes logiques programmables Page 24
0 1 2 3 4 5
CLK
cb d
Z
état
CLK'
c
X
Machines synchrones (suite)
▪ Étage OFL avec sortie retardée (suite)
➢ Sortie conditionnelle active entre DSB et SE (suite)
Z état CLK X= × ×
QD
clk
QD
clk
Z
X*
clk'
Solution 1:
Activer l'OFL après l'entrée (X)
Transitoires
(glitches)
'1'
'0'
X
b
c
d
ZSE
DSB
ELE3311 –
Systèmes logiques programmables Page 25
Machines synchrones (suite)
▪ Étage OFL avec sortie retardée (suite)
➢ Sortie conditionnelle active entre DSB et SE (suite)
Z état CLK X= × ×Solution 2:
Désactiver l'OFL avant le changement d'état
QD
QD
clk
Z
X*
clk'
0 1 2 3 4 5
CLK
cb d
Z
état
CLK'
c
X
ELE3311 –
Systèmes logiques programmables Page 26
Machines synchrones (suite)
▪ Étage OFL avec sortie retardée (suite)
➢ Sortie inconditionnelle active entre DSB et DSE
b
c
d
ZDSE
DSB
QD
clk
QD
clk
ZQ
D
0 1 2 3 4 5
CLK
bc c
Z
état cc
ELE3311 –
Systèmes logiques programmables Page 27
Machines synchrones (suite)
▪ Élimination des transitoires de sortie
➢ Sortie inconditionnelle – méthode des registres
QD
clk
QD
clk
ZQ
D
QD
clk
QD
clk
ZQ
D
c ZSE
SB
ZDSE
DSBc
ELE3311 –
Systèmes logiques programmables Page 28
Machines synchrones (suite)
▪ Élimination des transitoires de sortie
➢ Sortie inconditionnelle – méthode avec registre DDR
QD
clk
QD
clk
ZQ
D
QD
clk
QD
clk
ZQ
D
c ZSE
SB
ZDSE
DSBc
ELE3311 –
Systèmes logiques programmables Page 29
Machines synchrones (suite)
▪ Élimination des transitoires de sortie
➢ Registre DDR - Fonctionnement
ELE3311 –
Systèmes logiques programmables Page 30
Machines synchrones (suite)
▪ Élimination des transitoires de sortie (suite)
➢ Sortie conditionnelle – méthode des registres
'1'
'0'
X
b
c
d
ZDSE
DSB
QD
clk
QD
clk
ZQ
DX*
ELE3311 –
Systèmes logiques programmables Page 31
Machines principalement synchrones
▪ Rappel
➢ Une machine séquentielle algorithmique est
principalement synchrone lorsqu'au moins une entrée
n'est pas synchrone par rapport à l'horloge. Ce signal
d'entrée peut changer d'état à tout moment. Le changement
d'état reste synchronisé sur l'horloge.
ELE3311 –
Systèmes logiques programmables Page 32
Machines principalement synchrones (suite)
▪ États erronés
➢ Une machine principalement synchrone peut, lorsqu'une
entrée asynchrone change de niveau lorsque la machine se
prépare à passer dans un nouvel état, se retrouver dans un
état erroné ne respectant pas le diagramme d'états.
0 1 2 3 4 5
CLK
D
tsu
th
X
ZQ
DOFL
clk
XIFL
Q+?
'1''0'X
a
cb
00
Q1Q
0
01 10d
a
Entrée
asynchrone
ELE3311 –
Systèmes logiques programmables Page 33
Machines principalement synchrones (suite)
▪ États erronés (suite)
➢ Le passage à un état erroné est dû aux différents temps de
calcul pour chacun des bits d'états après la transition d'une
entrée asynchrone.
Q0*
Q1*
QD
1
clk
QD
0
clk
X
Q0*
Q1*
MÉMOIRESIFL0 1 2 3 4 5
CLK
D0
X
D1
a
tsu
th
d a a
ELE3311 –
Systèmes logiques programmables Page 34
Machines principalement synchrones (suite)
▪ États erronés (suite)
➢ Les états erronés ne dépendent que de l'assignation des
états futurs à l'état courant.
'1''0'X
a
cb
000
Q2Q
1Q
0
101 110
États futurs: b 101
c 110
États possibles: 1xx
État respectant b 101
État respectant c 110
États erronés: ee0 100
ee1 111
ELE3311 –
Systèmes logiques programmables Page 35
Machines principalement synchrones (suite)
▪ États erronés (suite)
'1'
'0'X
a
b
Q2Q
1Q
0
000
101
États futurs: a 000
b 101
États possibles: x0x
États respectant a 000
le diagramme: b 101
États erronés: ee0 001
ee1 100
ELE3311 –
Systèmes logiques programmables Page 36
Machines principalement synchrones (suite)
▪ États erronés (suite)
➢ Les états erronés se trouvent parmi les états adjacents aux
états futurs.
'1'
'0'X
a
b
Q2Q
1Q
0
000
011 États futurs: a 000
b 011
États possibles: 0xx
États erronés: ee0 001
ee1 010
Q2Q
100 01
a
Q0
0
1
11 10
ee1
bee0
ELE3311 –
Systèmes logiques programmables Page 37
Machines principalement synchrones (suite)
▪ Synchronisation des signaux d'entrée
➢ Transition d'état alternée (AST)
X_REG
1Q
D Z
2Q
DIFL
OFL
clk
X
Alternate State Transition
0 1 2 3 4 5
CLK
X_REG
X
tsu (1)
tsu (2)
ELE3311 –
Systèmes logiques programmables Page 38
Machines principalement synchrones (suite)
▪ Synchronisation des signaux d'entrée (suite)
➢ Transition d'état retardée (DST)Delayed State Transition
0 1 2 3 4 5
CLK
X_REG
X
tsu (1)
tsu (2)
état
X_REG
1Q
D Z
2Q
DIFL
OFL
clk
X
ELE3311 –
Systèmes logiques programmables Page 39
Machines principalement synchrones (suite)
▪ Synchronisation des signaux d'entrée (suite)
➢ Configuration Go – No-Go
• Dans le cas où l'on a un branchement à un seul état
• Solution efficace mais coûteuse au niveau du nombre d'états
• Ne peut être appliqué à tous les designs
'0'
'1'
a
b
X
000
001
a et b doivent être adjacents
ELE3311 –
Systèmes logiques programmables Page 40
Machines principalement synchrones (suite)
▪ Synchronisation des signaux d'entrée (suite)
➢ Essentiel pour éviter les états erronés
➢ Utiliser la configuration Go-No-Go
• Lorsque c'est possible
➢ Utiliser la méthode par transition d'état alternée (AST)