conception de machines synchrones et principalement

ELE4301 – Systèmes logiques II
ELE3301 – Systèmes numériques programmables
Chapitre 6: conception de machines
synchrones et principalement synchrones
 Machines synchrones






Rappel
Vérification des impasses
Élimination des états redondants
Minimisation des étages IFL et OFL
Étage OFL avec sortie retardée (DSB, DSE)
Élimination des transitoires sur les sorties
 Machines principalement synchrones
 Rappel
 États erronés
 Synchronisation des signaux d’entrée
Mohamad Sawan, ing., Ph.D.
Stéphane Boyer, b. ing.
ELE4301 – Systèmes logiques II
ELE3301 – Systèmes numériques programmables
Page 2
M. Sawan & S. Boyer
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 descendant de l'horloge.
0
1
2
3
4
5
6
7
8
9
CLK
X
Les entrées changent sur
les fronts descendant
MSA active sur
le front montant
Q1
Q0
Z
ELE4301 – Systèmes logiques II
ELE3301 – Systèmes numériques programmables
Page 3
M. Sawan & S. Boyer
Machines synchrones (suite)
 Rappel – design de MSA
 Diviseur de fréquence (cas particulier)
fin
Diviseur
par p
fout
e0
soit
f
T
p  in  out
f out Tin
2m 1  p  2m
m = nombre de bascules
e1
ep-2
p = nombre d'états permanents
ep-1 Zp
SB
SE
1
ELE4301 – Systèmes logiques II
ELE3301 – Systèmes numériques programmables
Page 4
M. Sawan & S. Boyer
Machines synchrones (suite)
 Rappel – design de MSA (suite)
 Diviseur de fréquence (suite)
Exemple
fin = 400 kHz
fout = 25 kHz
•
•


p = 400 / 25
m = log2 16
14
15
0
1
2
3
4
5
6
p = 16 états (e0, e1, …, e15)
m = 4 bascules
7
8
9
10
11
12
13
14
15
0
1
CLK
Zp
ELE4301 – Systèmes logiques II
ELE3301 – Systèmes numériques programmables
Page 5
M. Sawan & S. Boyer
Machines synchrones (suite)
 Vérification des impasses
 Compteur séquentiel
1. Diagramme d'état
Q1Q0
2. Table d'excitation
01
a
d
11
b
00
d
a
c
b
10
c
Q1+ Q0+
Q1 Q0
0
0
1
1
0
1
0
1
D1 D0
X
b
a
c
x
1
0
1
x
1
1
0
État facultatif
ELE4301 – Systèmes logiques II
ELE3301 – Systèmes numériques programmables
Page 6
M. Sawan & S. Boyer
Machines synchrones (suite)
 Vérification des impasses (suite)
 Compteur séquentiel (suite)
3. Équations d'excitations
D1
Q1
Q0
0
1
D0
0
1
X
0
1
Q1
Q0
D1 = Q 0
1
0
1
0
X
1
1
1
0
D0 = Q 0  Q1
4. Vérification d'impasses (sur les états facultatifs)
Q1+ Q0+
Q1 Q0
d
0 0
D1 D0
d
0 0
2
ELE4301 – Systèmes logiques II
ELE3301 – Systèmes numériques programmables
Page 7
M. Sawan & S. Boyer
Machines synchrones (suite)
 Vérification des impasses (suite)
 Compteur séquentiel (suite)
D1
Q1
Q0
5. État forcé au lieu de facultatif
d
00
Q1Q0
Q1+ Q0+
Q1 Q0
D1 D0
11
b
d
a
c
b
10
c
0
0
1
1
0
1
0
1
a
b
a
c
0
1
0
1
1
X
1
1
0
1
D1 = Q1
01
a
0
0
D0
1
1
1
0
Q1
0
1
0
1
1
1
1
0
D0 = Q0  Q1
ELE4301 – Systèmes logiques II
ELE3301 – Systèmes numériques programmables
Page 8
M. Sawan & S. Boyer
Machines synchrones (suite)
 Élimination des états redondants
 Un état est redondant à un autre état et peut être éliminé:
•
•
États
redondants
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).
a
a
'0'
X
'0'
'1'
b
c
Z
X
'1'
Simplification
c
Z
b
d
ELE4301 – Systèmes logiques II
ELE3301 – Systèmes numériques programmables
Page 9
M. Sawan & S. Boyer
Machines synchrones (suite)
 Élimination des états redondants (suite)
États
redondants
a
'0'
X
a
'1'
'0'
X
'1'
Simplification
c
'0'
b
X
'1'
b
Z
Z
3
ELE4301 – Systèmes logiques II
ELE3301 – Systèmes numériques programmables
Page 10
M. Sawan & S. Boyer
Machines synchrones (suite)
 Élimination des états redondants (suite)
a
'0'
b
Z
X
'1'
SB
SE
États non-redondants
(sorties différentes)
c
d
SB
DSB
Z
ELE4301 – Systèmes logiques II
ELE3301 – Systèmes numériques programmables
Page 11
M. Sawan & S. Boyer
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.
États adjacents
a
a
'0'
b
X
'1'
b
c
'0'
X
c
Z
États adjacents
'1'
Q0
Q1
0
1
0
a
b
1
c
-
d
ELE4301 – Systèmes logiques II
ELE3301 – Systèmes numériques programmables
Page 12
M. Sawan & S. Boyer
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.
a
'0'
b
X
'1'
c
Q0
Q1
0
1
0
a
b
1
-
c
États adjacents
4
ELE4301 – Systèmes logiques II
ELE3301 – Systèmes numériques programmables
Page 13
M. Sawan & S. Boyer
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.
a
'0'
b Z
X
SB
SE
'1'
c
d Z
Q0
Q1
0
0
a
c
1
b
d
1
SB
SE
États adjacents
ELE4301 – Systèmes logiques II
ELE3301 – Systèmes numériques programmables
Page 14
M. Sawan & S. Boyer
Machines synchrones (suite)
 Minimisation des étages IFL et OFL (suite)
 Pour obtenir une logique d'entrée et de sortie minimale,
les principe de minimisation doivent respecter les priorités
suivantes:
•
•
Le principe 1 à priorité sur les principes 2 et 3.
Le principe 2 à priorité sur le principe 3.
 Exemples d'application
ELE4301 – Systèmes logiques II
ELE3301 – Systèmes numériques programmables
Page 15
M. Sawan & S. Boyer
Machines synchrones (suite)
 Étage OFL avec sortie retardée
b
 Types de sorties
0
1
c
2
d
3
4
5
CLK
X
b
c
d
Z
Z0
Z0
Z0
SB
SE
Z1
Z1
Z1
DSB
DSE
Z2
Z2
Z2
DSB
SE
Z3
Z3
Z3
SB
DSB
Z4
Z4
SB
Z5
Z5
DSB
5
ELE4301 – Systèmes logiques II
ELE3301 – Systèmes numériques programmables
Page 16
M. Sawan & S. Boyer
Machines synchrones (suite)
 Étage OFL avec sortie retardée (suite)
 Sortie inconditionnelle active entre SB et DSB
MÉMOIRES
OFL
D
Q
Z3
b
clk
Z3
Z3
D
SB
DSB
Q
0
1
c
2
d
3
4
5
CLK
état
c
clk
Z3
Transitoire (glitch)
ELE4301 – Systèmes logiques II
ELE3301 – Systèmes numériques programmables
Page 17
M. Sawan & S. Boyer
Machines synchrones (suite)
 Étage OFL avec sortie retardée (suite)
 Sortie inconditionnelle active entre SB et DSB (suite)
MÉMOIRES
OFL
D
Q
Z3
b
0
clk
Z3
Z3
SB
DSB
D
c
2
d
3
4
5
CLK'
Q
clk
1
CLK
état
clk'
c
Z3
ELE4301 – Systèmes logiques II
ELE3301 – Systèmes numériques programmables
Page 18
M. Sawan & S. Boyer
Machines synchrones (suite)
 Étage OFL avec sortie retardée (suite)
 Sortie inconditionnelle active entre DSB et SE
b
c
Z
DSB
SE
Z  état CLK
d
6
ELE4301 – Systèmes logiques II
ELE3301 – Systèmes numériques programmables
Page 19
M. Sawan & S. Boyer
Machines synchrones (suite)
 Étage OFL avec sortie retardée (suite)
 Sortie inconditionnelle active entre DSB et SE (suite)
Solution 1:
Utiliser l'inverse de l'horloge
Z  état CLK
b
0
D
Q
1
c
d
2
3
4
5
CLK
Z
CLK'
clk
D
Transitoires
(glitches)
Q
clk
clk'
état
c
Z
ELE4301 – Systèmes logiques II
ELE3301 – Systèmes numériques programmables
Page 20
M. Sawan & S. Boyer
Machines synchrones (suite)
 Étage OFL avec sortie retardée (suite)
 Sortie inconditionnelle active entre DSB et SE (suite)
Z  état CLK
Solution 2:
Désactiver l'OFL avant
le changement d'état
b
0
D
Q
Z
1
c
d
2
3
4
5
CLK
CLK'
D
état
Q
c
Z
clk
clk'
ELE4301 – Systèmes logiques II
ELE3301 – Systèmes numériques programmables
Page 21
M. Sawan & S. Boyer
Machines synchrones (suite)
 Étage OFL avec sortie retardée (suite)
 Sortie conditionnelle active entre DSB et SE
b
Z  état CLK  X
c
'1'
X
'0'
DSB
SE
Z
d
7
ELE4301 – Systèmes logiques II
ELE3301 – Systèmes numériques programmables
Page 22
M. Sawan & S. Boyer
Machines synchrones (suite)
 Étage OFL avec sortie retardée (suite)
 Sortie conditionnelle active entre DSB et SE (suite)
Z  état CLK  X
Solution 1:
Activer l'OFL après l'entrée (X)
b
0
c
1
2
d
3
4
5
CLK
X*
D
Z
Q
CLK'
clk
X
D
Q
clk
clk'
état
Transitoires
(glitches)
c
Z
ELE4301 – Systèmes logiques II
ELE3301 – Systèmes numériques programmables
Page 23
M. Sawan & S. Boyer
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
b
0
X*
D
c
1
2
d
3
4
5
CLK
Z
Q
CLK'
X
D
Q
état
clk
c
Z
clk'
ELE4301 – Systèmes logiques II
ELE3301 – Systèmes numériques programmables
Page 24
M. Sawan & S. Boyer
Machines synchrones (suite)
 Étage OFL avec sortie retardée (suite)
 Sortie inconditionnelle active entre DSB et DSE
D
Q
b
D
Z
Q
clk
c
Z
DSB
DSE
D
Q
d
c
clk
0
1
b
2
c
3
4
5
CLK
état
c
c
Z
8
ELE4301 – Systèmes logiques II
ELE3301 – Systèmes numériques programmables
Page 25
M. Sawan & S. Boyer
Machines synchrones (suite)
 Élimination des transitoires de sortie
 Sortie inconditionnelle – méthode des registres
D
D
Q
Z
Q
clk
c
SB
SE
Z
D
Q
clk
D
c
DSB
DSE
Z
Z
D
Q
Q
clk
D
Q
clk
ELE4301 – Systèmes logiques II
ELE3301 – Systèmes numériques programmables
Page 26
M. Sawan & S. Boyer
Machines synchrones (suite)
 Élimination des transitoires de sortie (suite)
 Sortie conditionnelle – méthode des registres
b
X*
D
D
Q
c
'1'
Z
Q
clk
X
'0'
D
DSB
DSE
Z
Q
clk
d
ELE4301 – Systèmes logiques II
ELE3301 – Systèmes numériques programmables
Page 27
M. Sawan & S. Boyer
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.
0
1
2
3
4
5
CLK
X
9
ELE4301 – Systèmes logiques II
ELE3301 – Systèmes numériques programmables
Page 28
M. Sawan & S. Boyer
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.
D
IFL
X
OFL
Q
Z
clk
Entrée
asynchrone
'0'
01
Q +?
Q1Q0
00
a
'1'
X
b
1
2
3
4
5
X
D
a
d
10
c
0
CLK
tsu
th
ELE4301 – Systèmes logiques II
ELE3301 – Systèmes numériques programmables
Page 29
M. Sawan & S. Boyer
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.
IFL
Q1*
X
MÉMOIRES
0
Q0*
D1
Q
a
2
d
3
a
4
a
5
X
clk
Q1*
1
CLK
Q0*
D0
D1
Q
D0
clk
th
tsu
ELE4301 – Systèmes logiques II
ELE3301 – Systèmes numériques programmables
Page 30
M. Sawan & S. Boyer
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.
États futurs:
b
101
c
110
QQQ
000
États possibles:
1xx
2
1
0
a
'0'
101
b
X
'1'
c
110
États respectant b
le diagramme: c
États erronés:
ee0
ee1
101
110
100
111
10
ELE4301 – Systèmes logiques II
ELE3301 – Systèmes numériques programmables
Page 31
M. Sawan & S. Boyer
Machines principalement synchrones (suite)
 États erronés (suite)
'0'
a
b
États possibles:
000
101
x0x
États respectant a
le diagramme: b
000
101
États futurs:
Q2Q1Q0
a
000
X
'1'
b
101
ee0
ee1
États erronés:
001
100
ELE4301 – Systèmes logiques II
ELE3301 – Systèmes numériques programmables
Page 32
M. Sawan & S. Boyer
Machines principalement synchrones (suite)
 États erronés (suite)
 Les états erronés se trouvent parmi les états adjacents aux
états futurs.
QQ
Q0
Q2Q1Q0
a
'0'
2
1
00
01
0
a
ee1
1
ee0
b
11
10
000
X
'1'
b
États futurs:
011
a
b
000
011
0xx
ee0
ee1
001
010
États possibles:
États erronés:
ELE4301 – Systèmes logiques II
ELE3301 – Systèmes numériques programmables
Page 33
M. Sawan & S. Boyer
Machines principalement synchrones (suite)
 Synchronisation des signaux d'entrée
 Transition d'état alternée (AST)
Alternate State Transition
X
X_REG
D
1
Q
D
IFL
2
Q
OFL
Z
0
clk
1
2
3
4
5
CLK
X
X_REG
tsu (1)
tsu (2)
11
ELE4301 – Systèmes logiques II
ELE3301 – Systèmes numériques programmables
Page 34
M. Sawan & S. Boyer
Machines principalement synchrones (suite)
 Synchronisation des signaux d'entrée (suite)
 Transition d'état retardée (DST)
Delayed State Transition
X
X_REG
D
1
D
Q
IFL
2
Q
Z
OFL
0
clk
1
2
3
4
5
CLK
X
X_REG
tsu (1)
tsu (2)
état
ELE4301 – Systèmes logiques II
ELE3301 – Systèmes numériques programmables
Page 35
M. Sawan & S. Boyer
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
000
Q2Q1
Q0
00
a
X
'0'
0
01
11
10
a
'1'
001
1
b
a et b doivent être adjacents
•
•
Solution efficace mais coûteuse au niveau du nombre d'états
Ne peut être appliqué à tous les designs
ELE4301 – Systèmes logiques II
ELE3301 – Systèmes numériques programmables
Page 36
M. Sawan & S. Boyer
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)
12