Logique séquentielle

publicité
Unité 6: Logique séquentielle
Objectifs :
À la fin ce cette unité, vous comprendrez le fonctionnement des circuits
séquentiels (à mémoire) utilisés dans les ordinateurs.
Pour y arriver, vous devrez avoir atteint les objectifs suivants :
- décrire le fonctionnement d'un automate fini;
- distinguer un circuit asynchrone d'un circuit synchrone;
- synthétiser un circuit séquentiel synchrone simple;
- analyser un circuit séquentiel synchrone simple.
©Pierre Marchand, 2001
166
Unité 6: Logique séquentielle
5.3 Circuits séquentiels
Dans les circuits combinatoires, les signaux de sortie ne dépendent
que des signaux d ’entrée présents au même instant.
Dans les circuits séquentiels, il y a de la rétroaction : les signaux de
sortie ne dépendant pas uniquement des entrées, mais aussi de leur
séquence. Le circuit se rappelle des entrées et des états antérieurs :
il a une mémoire du passé.
L’étude des circuits combinatoires repose sur l’algèbre de Boole.
Celle des circuits séquentiels repose sur la théorie des automates
finis.
©Pierre Marchand, 2001
167
1
Unité 6: Logique séquentielle
5.3 Circuits séquentiels
5.3.1 Concept d’automate fini
Un automate fini possède un nombre fini d’éléments et de mémoires.
Un automate fini ne peut prendre que 2n états appelés états internes,
où n est le nombre de bits de mémoire.
On peut caractériser un automate par :
• Sa fonction de transfert
• Sa table de transition
• Son diagramme d’états ou de transition
168
©Pierre Marchand, 2001
Unité 6: Logique séquentielle
5.3 Circuits séquentiels
5.3.1 Concept d’automate fini
Exemple :
Diagramme d’état ou de transition
Table de transition
entrée / sortie
1/0
0/0
q=0
q=1
1/1
q(t) e(t) 0
0
0
1
0
1
1
1 q(t+1)
q(t)
0
1
1
0
1 s(t)
0/1
état
état
Fonction de transfert :
q(t+1) = e(t)
s(t) = q(t)
©Pierre Marchand, 2001
e(t) 0
0
1
169
2
Unité 6: Logique séquentielle
5.3 Circuits séquentiels
5.3.1 Concept d’automate fini
Automate de Moore
q(t+1) = f [e(t), q(t)]
s(t) = g [q(t)]
e(t)
Logique
combinatoire
État q(t)
Logique
combinatoire
s(t)
Les états futurs dépendent des entrées présentes e(t) et des états
internes présents q(t).
Les sorties ne dépendent que des états internes présents q(t).
170
©Pierre Marchand, 2001
Unité 6: Logique séquentielle
5.3 Circuits séquentiels
5.3.1 Concept d’automate fini
Automate de Mealy
q(t+1) = f [e(t), q(t)]
s(t) = g [e(t), q(t)]
e(t)
s(t)
Logique
combinatoire
État q(t)
q(t)
Les sorties s(t) dépendent des états internes présents q(t) et des
entrées présentes e(t).
©Pierre Marchand, 2001
171
3
Unité 6: Logique séquentielle
5.3 Circuits séquentiels
5.3.2 Circuits asynchrones et synchrones
Dans les circuits asynchrones, la sortie est modifiée dès qu’il y a un
changement de l’état des entrées.
Dans les circuits synchrones, la sortie ne change qu’après un signal
d’horloge. Les circuits synchrones sont plus simples à synthétiser et
à analyser.
5.3.3 Bistables
L’élément de base de tout circuit séquentiel est le bistable (bascule,
flip-flop), qui est un circuit, lui-même asynchrone, qui servira
d’élément de mémoire pour les circuits synchrones ou asynchrones.
172
©Pierre Marchand, 2001
Unité 6: Logique séquentielle
5.3 Circuits séquentiels
5.3.3 Bistables
Bistable RS
S
On observe que si S = 0 et R = 0, le
circuit est dans l’u n d e d e u x états
stables : Q1 = 0 et Q2 = 1 ou Q1 = 1 et
Q2 = 0.
0
0
0
1
1
1
0
©Pierre Marchand, 2001
R
Q2
Q1
0
0
0
0
1
173
4
Unité 6: Logique séquentielle
5.3 Circuits séquentiels
5.3.3 Bistables
Bistable RS
S
Si S = 1 et R = 0, alors Q1= 1 et Q2 = 0.
C’est la transition «SET».
Q2
Q1
R
Si S = 0 et R = 1, alors Q1 = 0 et Q2 = 1.
C ’est la transition «RESET».
1
0
0
1
0
0
1
1
1
0
©Pierre Marchand, 2001
1
0
174
Unité 6: Logique séquentielle
5.3 Circuits séquentiels
5.3.3 Bistables
Bistable RS
S
Si S = 1 et R = 1, alors Q1= 0 et Q2 = 0.
Mais cette combinaison n’est pas désirable, car si on remet nos entrées simultanément à 0, on ne peut pas prévoir l’état
final du circuit.
Q2
Q1
R
1
On remarque que dans les trois autres
cas, Q2 = Q1.
0
0
0
1
©Pierre Marchand, 2001
0
175
5
Unité 6: Logique séquentielle
5.3 Circuits séquentiels
5.3.3 Bistables
Bistable RS
On résume ce comportement dans le tableau suivant :
Sn Rn Q1n+1 Q2n+1
0
1
0
1
Q1n
1
0
0
0
0
1
1
Q1n
0
1
0
S
stable
set
reset
interdit
Q
Q
R
Ou encore :
Q1n+1 = Sn + Rn.Q1n
©Pierre Marchand, 2001
176
Unité 6: Logique séquentielle
5.3 Circuits séquentiels
5.3.3 Bistables
Bistable RS avec horloge
S
Q
C
Qn+1 = Sn + Rn.Qn
ou
Qn+1 = Cn.Qn + Cn(Sn+Rn.Qn)
Q
R
S Q
C
R Q
©Pierre Marchand, 2001
177
6
Unité 6: Logique séquentielle
5.3 Circuits séquentiels
C
0
0
1
1
5.3.3 Bistables
Bistable D avec horloge
D
Q
C
D Q
Dn
0
1
0
1
Qn+1
Qn
Qn
0
1
Qn+1 = Dn
ou
Qn+1 = DnC + QnC
C Q
Q
L’inverseur élimine complètement la possibilité d’avoir la combinaison 1-1 à l’entrée des NOR.
178
©Pierre Marchand, 2001
Unité 6: Logique séquentielle
5.3 Circuits séquentiels
5.3.3 Bistables
Bistable T asynchrone
T
D Q
C Q
ou
S Q
C
R Q
T
Bistable T synchrone
T
T
Q
Qn+1 = CnQn + Cn(TnQn + TnQn)
S Q
C
R Q
C
Qn+1 = TnQn + TnQn
C
T
Q
©Pierre Marchand, 2001
179
7
Unité 6: Logique séquentielle
5.3 Circuits séquentiels
5.3.3 Bistables
Application : registre D de 4 bits
D3
D2
D1
D Q
C Q
D Q
C Q
D0
D Q
C Q
D Q
C Q
écriture
lecture
D3
D2
D1
D0
180
©Pierre Marchand, 2001
Unité 6: Logique séquentielle
5.3 Circuits séquentiels
5.3.3 Bistables
Application : décaleur à droite
Q3
0
Q2
D3 Q
C Q
D2 Q
C Q
Q1
D1 Q
C Q
Q0
D0 Q
C Q
horloge
Qn+1
= D3n = 0
3
Qn+1
= D2n = Qn3
2
Qn+1 = Dn = Qn , etc.
1
©Pierre Marchand, 2001
1
2
181
8
Unité 6: Logique séquentielle
5.3 Circuits séquentiels
5.3.3 Bistables
Application : compteur binaire asynchrone modulo-16
A
Q
T Q
horloge
B
Q
T Q
C
Q
T Q
D
Q
T Q
horloge
A
0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
B
C
D
0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1
0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1
0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1
182
©Pierre Marchand, 2001
Unité 6: Logique séquentielle
5.3 Circuits séquentiels
5.3.3 Bistables
Bistables déclenchés par une montée ou une descente de
l’horloge (edge-triggered)
Dans les circuits précédents, il est sous-entendu que le signal
d’horloge est court, i.e. de l’ordre du temps de réponse du
circuit. Sinon, un circuit comme celui du bistable T pourrait basculer plusieurs fois pendant le temps où l’horloge est 1.
Ces circuits sont représentés par les diagrammes suivants :
D Q
D Q
Q
Q
Qn+1 = Dn
Leur sortie change seulement au moment de la transition, selon
la valeur de D à cet instant précis.
©Pierre Marchand, 2001
183
9
Unité 6: Logique séquentielle
5.3 Circuits séquentiels
5.3.4 Synthèse d’un circuit séquentiel
Pour faire la synthèse d’un circuit séquentiel, on établit d’abord
son diagramme de transition.
On contruit ensuite sa table d’états.
On réalise le circuit combinatoire associé à chaque bistable.
On réalise le circuit combinatoire associé à chaque sortie.
184
©Pierre Marchand, 2001
Unité 6: Logique séquentielle
5.3 Circuits séquentiels
5.3.4 Synthèse d’un circuit séquentiel
Exemple 1 : compteur binaire synchrone modulo-4 sans entrée
Diagramme de transition
Q1Q2
Table d’états
Q1n Q2n Q1n+1 Q2n+1
01
00
0
0
1
1
10
11
©Pierre Marchand, 2001
0
1
0
1
0
1
1
0
1
0
1
0
185
10
Unité 6: Logique séquentielle
5.3 Circuits séquentiels
5.3.4 Synthèse d’un circuit séquentiel
Exemple 1 : compteur binaire synchrone modulo-4 sans entrée
Réalisation au moyen de bistables D
Q1n Q2n Q1n+1 Q2n+1 D1n D2n
0
0
1
1
0
1
0
1
0
1
1
0
1
0
1
0
0
1
1
0
1
0
1
0
D1n = Q1n+1 = Q1n ⊕Q2n
D2n = Q2n+1 = Q2n
D2 Q2
D1 Q1
C Q2
C Q1
186
©Pierre Marchand, 2001
Unité 6: Logique séquentielle
5.3 Circuits séquentiels
5.3.4 Synthèse d’un circuit séquentiel
Exemple 1 : compteur binaire synchrone modulo-4 sans entrée
Réalisation au moyen de bistables T synchrones
Pour le tableau, T1n = 1 si Q1n+1 ≠ Q1n, sinon T1n = 0,
et T2n = 1 si Q2n+1 ≠ Q2n , sinon T2n = 0.
Q1n Q2n Q1n+1 Q2n+1 T1n T2n
0
0
1
1
0
1
0
1
0
1
1
0
©Pierre Marchand, 2001
1
0
1
0
0
1
0
1
1
1
1
1
T1n = Q2n
T2n = 1
1 T2 Q2
T1 Q1
C Q2
C Q1
187
11
Unité 6: Logique séquentielle
5.3 Circuits séquentiels
5.3.4 Synthèse d’un circuit séquentiel
Exemple 2 : compteur binaire synchrone modulo-4 avec entrée
Diagramme de transition
Table d’états
0/01
1/01
0/00
00
Q1n Q2n
01
Q1Q2
1/10
11
1/11
1/00
10
0
0
0
0
1
1
1
1
0/10
0/11
n+1
x Q1
0 0
1 0
0 0
1 1
0 1
1 1
0 1
1 0
0
0
1
1
0
0
1
1
Q2n+1
0
1
1
0
0
1
1
0
188
©Pierre Marchand, 2001
Unité 6: Logique séquentielle
5.3 Circuits séquentiels
5.3.4 Synthèse d’un circuit séquentiel
Exemple 2 : compteur binaire synchrone modulo-4 avec entrée
Réalisation au moyen de bistables T
Q1n
0
0
0
0
1
1
1
1
Q2n
0
0
1
1
0
0
1
1
©Pierre Marchand, 2001
xn
0
1
0
1
0
1
0
1
Q1n+1
0
0
0
1
1
1
1
0
Q2n+1
0
1
1
0
0
1
1
0
T1n T2n
0
0
0
1
0
0
0
1
0
1
0
1
0
1
0
1
Q1n Q2n
xn
00
01
11
10
0
0
0
0
0
1
0
1
1
0
T1n
T1n = x.Q2n
T2n = x
189
12
Unité 6: Logique séquentielle
5.3 Circuits séquentiels
5.3.4 Synthèse d’un circuit séquentiel
Exemple 2 : compteur binaire synchrone modulo-4 avec entrée
Réalisation au moyen de bistables T synchrones
x
x T2 Q2
T1 Q1
C Q2
C Q1
Nous ne nous sommes pas préoccupés des sorties, puisque selon
Le diagramme de transition, il est évident qu’elles sont égales à
Q2n+1 et Q1n+1 respectivement.
©Pierre Marchand, 2001
190
Unité 6: Logique séquentielle
5.3 Circuits séquentiels
5.3.4 Synthèse d’un circuit séquentiel
Exemple 2 : compteur binaire synchrone modulo-4 avec entrée
Réalisation au moyen de bistables D
xn
xn
Q1nQ2n 0 1
Q1nQ2n 0 1
Q1n Q2n xn Q1n+1 Q2n+1 D1n D2n
00 0 0
00 0 1
0 0 0
0
0
0 0
01
0
1
01 1 0
0 0 1
0
1
0 1
11
1
0
11 1 0
0 1 0
0
1
0 1
10
1
1
10 0 1
0 1 1
1
0
1 0
D1n
D2n
1 0 0
1
0
1 0
1 0 1
1
1
1 1
D2n = x n .Q2n + x n .Q2n = x n ⊕ Q2n
1 1 0
1
1
1 1
1 1 1
0
0
0 0
D1n = Q1n .Q2n + x n .Q1nQ2n + x n .Q1n .Q2n
= Q1n ⊕ x nQ2n
©Pierre Marchand, 2001
191
13
Unité 6: Logique séquentielle
5.3 Circuits séquentiels
5.3.4 Synthèse d’un circuit séquentiel
Exemple 2 : compteur binaire synchrone modulo-4 avec entrée
Réalisation au moyen de bistables D
x
D2 Q2
D1 Q1
C Q2 x
C Q1
©Pierre Marchand, 2001
192
Unité 6: Logique séquentielle
5.3 Circuits séquentiels
5.3.4 Synthèse d’un circuit séquentiel
Exemple 3 : Système de contrôle de feux de circulation
Les feux alternent de A à B à chaque
coup d’horloge quand x = 0. Dans
l’état A, la circulation se fait dans la
direction NS, dans l’état B, dans la
direction EO.
Un piéton peut traverser après avoir
appuyé sur le bouton (x = 1 ) car
quand x =1, on passe à l’état C dans
lequel les feux sont sous deux rouges
pour la durée d’une horloge ou tant
que le bouton est enfoncé.
©Pierre Marchand, 2001
x=0
A
x=0
x=1
x=0
B
x=1
C
x=1
193
14
Unité 6: Logique séquentielle
5.3 Circuits séquentiels
5.3.4 Synthèse d’un circuit séquentiel
Exemple 3 : Système de contrôle de feux de circulation
Cette réalisation un peu naïve présente quelques problèmes :
Si un malin appuie sans cesse sur le bouton, la circulation automobile
est complètement paralysée. D’autre part, comme le système une fois
dans l‘état C retourne toujours dans l’état A, il se pourrait qu’on
n’arrive presque jamais dans l’état B s’il y a fréquemment des piétons.
194
©Pierre Marchand, 2001
Unité 6: Logique séquentielle
5.3 Circuits séquentiels
5.3.4 Synthèse d’un circuit séquentiel
Exemple 3 : Système de contrôle de feux de circulation
Une meilleure réalisation serait la suivante :
x=0
A
x=0
x=1
C
Entrée
Sortie
État
présent présente x présente
0 1
z1z2
A
B C
01
B
A D
10
C
B B
00
D
A A
00
B
x=1
x=0
ou 1
D
État
suivant
©Pierre Marchand, 2001
195
15
Unité 6: Logique séquentielle
5.3 Circuits séquentiels
5.3.4 Synthèse d’un circuit séquentiel
Exemple 3 : Système de contrôle de feux de circulation
Codage des états : on attribue arbitrairement
Q1Q2 = 00 représente A
Q1Q2 = 01 représente B
Entrée
Sortie
État
Q1Q2 = 10 représente C
présente
x
présente
présent
Q1Q2 = 11 représente D
0 1
z1z2
00
01
10
11
10
00
01
00
10
11
01
00
01
10
00
00
État
suivant
196
©Pierre Marchand, 2001
Unité 6: Logique séquentielle
5.3 Circuits séquentiels
5.3.4 Synthèse d’un circuit séquentiel
Exemple 3 : Système de contrôle de feux de circulation
Table de transition
Entrée État
État
Sorties Bistables
x
présent suivant présentes D1D2
Q1Q2 Q1+Q2+
z1z2
0
00
01
01
01
0
01
00
10
00
0
10
01
00
01
0
11
00
00
00
1
00
10
01
10
1
01
11
10
11
1
10
01
00
01
1
11
00
00
00
©Pierre Marchand, 2001
197
16
Unité 6: Logique séquentielle
5.3 Circuits séquentiels
5.3.4 Synthèse d’un circuit séquentiel
Exemple 3 : Système de contrôle de feux de circulation
Tables de Karnaugh pour les entrées des bistables :
Q1Q2
x 00 01 11 10
0 0 0 0 0
1 1 1 0 0
Q1Q2
x 00 01 11 10
0 1 0 0 1
1 0 1 0 1
D2
D1
D1 = x.Q1
D2 = Q1.Q2 + x.Q2 + x.Q1.Q2
198
©Pierre Marchand, 2001
Unité 6: Logique séquentielle
5.3 Circuits séquentiels
5.3.4 Synthèse d’un circuit séquentiel
Exemple 3 : Système de contrôle de feux de circulation
Tables de Karnaugh pour les sorties :
Q1Q2
x 00 01 11 10
0 0 1 0 0
1 0 1 0 0
Q1Q2
x 00 01 11 10
0 1 0 0 0
1 1 0 0 0
z2
z1
z1 = Q1.Q2
©Pierre Marchand, 2001
z2 = Q1.Q2
199
17
Unité 6: Logique séquentielle
5.3 Circuits séquentiels
5.3.4 Synthèse d’un circuit séquentiel
Exemple 3 : Système de contrôle de feux de circulation
Circuit :
x
D1 Q1
Q1
D2 Q2
z1
z2
Q2
horloge
©Pierre Marchand, 2001
200
18
Téléchargement