Cours 6
Logique séquentielle (2)
ELP 304 : Electronique Numérique
R
Q*
Q
S
Bascule RS asynchrone
D
Q*
Q
E
Bascule D latch ou à verrouillage
synchronisation sur niveau
D
Q*
Q
CK
Bascule D flip-flop ou à
déclenchement sur fronts
synchronisation sur fronts
Bascules étudiées au cours 5
Ensemble de bascules permettant
• de stocker une information sous forme de mots binaires de n bits
• et, pour certains types de registres, d'effectuer des translations ou décalages sur ces mots,
Les registres de mémorisation
• stockage
Les registres à décalage
• stockage et décalage
Qu'est-ce qu'un registre ?
En-1
H
E2 En E1
Qn-1 Qn
Q1 Q2 D
CK
Q bascule
1
D
CK
Q bascule
2
D
CK
Q bascule
n-1
D
CK
Q bascule
n
Réalisation avec des bascules D latches ou D flip-flops
Le registre de mémorisation ou registre
tampon
Les bascules sont interconnectées
=> Utilisation exclusive de flip-flops (cf. PC 6-7)
Fonction décalage à droite
D
CK
Q D
CK
Q D
CK
E Q
H
D
CK Q bascule
1
bascule i-1
bascule i
bascule i+1
D
CK Q bascule
n
D
i= Q
i−1=> E sur Qn après n fronts actifs de H
Les registres à décalage (I)
Fonction décalage à gauche
D
CK
Q bascule
i-1
D
CK
Q bascule
i
D
CK
Q bascule
i+1
E
H
D
CK
Q bascule
n D
CK
Q bascule
1
Q1
D
i= Q
i+1=> E sur Q1 après n fronts actifs de H
Les registres à décalage (II)
Fonction de chargement parallèle
EP3
H
EP2 EP4 EP1
D
CK
Q bascule
4 D
CK
Q
bascule 3
LOAD LOAD LOAD
LOAD
ES D
CK
Q bascule
1
D
CK
Q
bascule 2
1 0
1 0
1 1 0
0
• LOAD = 1 , (EP1, ... , EPn) est chargé dans le registre
• LOAD = 0, mode décalage
Les registres à décalage (III)
Initialisation du registre
E
H
D
CK
Q bascule
1
bascule 2 D
CK
Q D
CK
Q bascule
3
D
CK
Q bascule
4
1 1
1 1
INIT
CL*
PR* PR* PR* PR*
CL* CL* CL*
registre initialisé à
0101 si INIT = 0
• Rappel : entrées prioritaires asynchrones des bascules
CLEAR ou RESET : Q est forcé à 0
SET ou PRESET : Q est forcé à 1
• La commande d'initialisation ne doit pas être activée
pendant le fonctionnement normal (synchrone) du circuit
Les registres à décalage (IV)
Dans les catalogues de circuits standard : registres multi-fonctions
H
En-1 En E2
E1
Qn-1 Qn Q1 Q2
SSG
sortie série gauche
SSD
sortie série droite ESG
entrée série gauche ESD
entrée série droite
REGISTRE UNIVERSEL
INIT MODE
SENS
} entrées parallèles
} sorties parallèles
• chargement série ou parallèle (MODE, ESD, ESG, Ei)
• décalage à droite et à gauche (SENS)
• lecture série ou parallèle (SSD, SSG, ou Qi)
• initialisation (INIT)
Le registre "universel"
Exemple de réalisation de la cellule de base d'un registre universel
D
CK
Q bascule 1 i
1 0
Qi +1 0
Qi -1
Qi (Qn+1 = ESG)
(Q0 = ESD)
INIT SENS MODE
H Ei
• MODE = 0, chargement parallèle
• MODE = 1, décalage
SENS = 1, décalage droite
SENS = 0, décalage gauche
Le registre "universel" : structure
Mémorisation temporaire d'une information
Conversion parallèle-série de mots binaires
• chargement parallèle puis décalage
En-1 En E2
E1
H S
n = 4
Yi
Xi Zi
Ei
(i =1, 2, 3, 4)
S X2 X1 Y4 Y3 Y2 Y1 Z4
H
MODE
f f / 4 f
Les registres : applications (I)
Conversion série-parallèle d'un train binaire
• mode décalage et récupération des mots binaires sur Q1 ... Qn
H E
Qn-1 Qn Q2
n = 4 Q1
E Y1 Y2 Y3 Y4 Z1
H
Q1 X2 Y2 Y3 Y4
Y1
Q2 Y2 Y3
Q3
X3
W3
Y2
X1
Q4
X2
X4
X3 X4 Y1 X3 X4
Y1
Y1 X4
X4 X3
X3 X2
X2
X1 X1
W4
W4
f
f / 4
X Y
f
Les registres : applications (II)
Ligne à retard numérique
• permet de retarder un train binaire de n périodes d'horloge
H
E S
Division et multiplication par 2
n• décalage à droite de n bits : division par 2n
0 1 0 1 1 0 → 22 : état initial
Ì Ì Ì Ì Ì
0 → 0 0 1 0 1 1 → 11 : après 1 front actif de H Ì Ì Ì Ì Ì
0 → 0 0 0 1 0 1 → 5 : après 2 fronts actifs de H
Les registres : applications (III)
• décalage à gauche de n bits : multiplication par 2n
0 0 0 1 1 1 → 7 : état initial
Ë Ë Ë Ë Ë Ë
0 0 1 1 1 0 ← 0 → 14 : après 1 front actif de H Ë Ë Ë Ë Ë Ë
0 1 1 1 0 0 ← 0 → 28 : après 2 fronts actifs de H
Les registres : applications (IV)
Réalisation de générateurs de séquences pseudo-aléatoires
• registre à décalage + OU exclusifs
D D D D D
CK CK CK CK CK
Q Q Q Q Q
h2 h3 hn-1 hn
h1
ck
Polynôme générateur
{ }
P X( ) = +1 h X1 + h X2 2+ +L hn−1X n−1 + h Xn n, hi ∈ 0 1;
Les registres : applications (V)
• Exemple de générateur pseudo-aléatoire
D D D D
CK CK CK CK
Q Q Q Q
ck
Q1 Q2 Q3 Q4
P X( ) = +1 X + X 4
1111 1010 1001 1000
0111 1101 0100 1100
1011 0110 0010 1110
0101 0011 0001 1111 ...
Les registres : applications (VI)
Définition
• Un compteur est un circuit dont la valeur des sorties est directement liée au nombre d'impulsions appliquées sur son entrée d'horloge
• Le plus souvent, énumération du code binaire naturel
Deux catégories de compteurs
• compteurs asynchrones
• compteurs synchrones
Un système séquentiel est synchrone (sur fronts) <=> les changements d'état du système (hors initialisation) sont conditionnés par les fronts actifs du signal d'horloge
• Exemple : les registres sont des circuits synchrones
Sinon, il est asynchrone
Les compteurs
C'est le compteur le plus simple : comptage binaire modulo 2
H
D
CK Q
H
Q
D = Q
Q*
Q
f f / 2 f / 2
contrainte : tp(CK → Q∗) > thold(toujours vérifié)
Le diviseur (de fréquence) par 2
Compteur asynchrone modulo 8
H
Q1 Q 2
D
CK
Q D
CK
Q D
CK Q
Q3
H Q1
Q2 Q 3
001
000 010 011 100 101 110 111
(Q3 Q2 Q1) 000 001
Q* Q* Q*
MSB LSB
Compteurs asynchrones modulo 2
n
Décompteur asynchrone modulo 8
H
Q1 Q2
D
CK
Q D
CK
Q D
CK Q
Q3
H Q1
Q2 Q 3
000 111 110 101 100 011 010 001
(Q3 Q2 Q1) 000 111
Q* Q* Q*
MSB LSB
Décompteurs asynchrones modulo 2
n
Cumul des temps de propagation des bascules
011 010 000 100
H Q1
Q3
Q2
Passage de l'état 011 à 100 du compteur modulo 8 tp(CK → Q)basc1
tp(CK → Q∗)basc1 + tp(CK → Q)basc2
t CK Q t CK Q
t CK Q
p basc p basc
p basc
( ) ( )
( )
→ + →
+ →
∗ ∗
1 2
3
tp n
totalα
les compteurs de grande taille sont lents
états transitoires parasites
Analyse temporelle des sorties d'un compteur /
décompteur asynchrone
Intérêt principal
• leur simplicité
Leurs (nombreux) inconvénients
• vitesse de fonctionnement limitée pour les compteurs de grande taille
• présence d'états transitoires indésirables sur les sorties après chaque front de l'horloge
• pas de méthode fiable pour réaliser des cycles incomplets ( ) ou d’autres énumérations que le code binaire
naturel≠ 2
n