ELP 304
Électronique numérique
Année scolaire 2008-2009 Majeure ELP
PC8 – PC9 – PC10 Corrigé
Thèmes abordés
Etude de compteurs (assemblage, synthèse...) Notion de chemin critique
Fréquence maximale de fonctionnement d'un opérateur synchrone Règles d'assemblage séquentiel
Problème d'aléa
EXERCICE 1
1- Le chargement parallèle se fait par les multiplexeurs commandés par 'Chargement'. Quand ce signal est inactif (Chargement = 0), les fonctions logiques présentes sur les entrées D des bascules réalisent la fonction de décomptage binaire.
D0 =Q0 ; D1 =Q1⊕Q0 ; D2 =Q2 ⊕Q Q1. 0
On rappelle que les équations générales d'un décompteur binaire sont de la forme : D0 =Q0 et
R Q . .Q . Q .Q
D Q Q R
n n 1 2 1 0
n n n n
=
= = ⊕
− +
K pour n > 0
Le 'R*' est appliqué sur les entrées prioritaires de remises à zéro des bascules.
2- Le décodage de l'instant "2" met le décompteur à "0". Le cycle de décomptage est le suivant : "0", "7", "6", "5", 4" et "3" (ce n'est pas un décompteur modulo 6).
La remise à zéro prioritaire durant l'instant "2" fait que cet état est furtif et remplacé rapidement par l'état "0".
Inconvénients :
− Apparition transitoire de l'état parasite '2' avant la remise à 0 des bascules.
− Risques d'aléas de fonctionnement : les sorties des bascules ne sont pas nécessairement chargées de la même manière, et les chemins de propagation de Qi vers R* ne sont pas de même longueur,
⇒ il peut apparaître sur le signal R* des impulsions parasites.
L'entrée 'Chargement' est à la masse. Les états de P0, P1 et P2 sont indifférents.
CONCLUSION : montage non fiable, NE PAS UTILISER ! 3-
DECOMPTEUR BINAIRE
X X X
P0 P1 P2
Q0
Q1
Q2
Chargement
H
R*
DECOMPTEUR BINAIRE
R* est positionné à 1 (sauf à l'initialisation)
P0 = 1 P1 = 0 P2 = 1
Q0 Q1
Q2 Chargement
H
Ce décompteur passe par les états "5", "4", "3", "2", "1" et "0". Les éventuelles impulsions parasites en sortie du NOR ne sont pas prises en compte car elles apparaissent après les fronts d'horloge de H.
Le blocage du compteur dans l'état présent peut être obtenu par rebouclage de chaque bascule sur elle même (CE=0). Pour CE=1, le décompteur doit fonctionner comme précédemment. On peut donc insérer entre le multiplexeur de chargement et l'entrée D de chaque bascule un multiplexeur commandé par CE :
Il est possible d'adopter le schéma suivant :
Le premier décompteur divise par 8 la fréquence de H, et décrémente le second (câblé en diviseur par 6) chaque fois qu'il se trouve à l'instant "0".
4- Table de transition du décompteur : Q0 Q1 Q2 Q0+
=D0 Q1+
=D1 Q2+
=D2
1 0 1 0 0 1
0 0 1 1 1 0
1 1 0 0 1 0
0 1 0 1 0 0
1 0 0 0 0 0
0 0 0 1 0 1
0
1 1
0
CE Charg.
Pi
basc. n°i Qi+
D Q
CK Q
Ch
CE DEC. BINAIRE
Ch
DEC. BINAIRE
Q1 Q4
1 0
1 0 1
X X X
Q0 Q2
Q3
Q5
CE H
R*
Q0 Q1
0 0 0 1 1 1 1 0
Q2 0 1 1 0 0
1 1 X X 0 D0 =Q0
Q0 Q1
0 0 0 1 1 1 1 0
Q2 0 0 0 1 0
1 1 X X 0 D1 =Q .Q0 2 +Q .Q0 1 (multiplexeur)
Q0 Q1
0 0 0 1 1 1 1 0
Q2 0 1 0 0 0
1 0 X X 1 D2 =Q .Q .Q0 1 2 +Q .Q0 2 (non-ou et multiplexeur, ou 2 multiplexeurs)
Les expressions obtenues (relativement simples par ailleurs) ne peuvent servir que pour ce décompteur (pas de généralisation possible, comme pour le décompteur MOD 2n.
Insertion d’une commande de remise à zéro statique (active à 1) :
5-
0 1 3 7 6 4 0 1 3 C'est un diviseur par 6, appelé compteur de Johnson.
LSB Q0
Q1 MSB Q2
H f
f/6
f/6 f/6
0 1
ZERO 0
basc. n°i
Qi D Q
CK Q
basc. n°i
Qi D Q
CK Q ZERO
Ù
Les sorties suivent un code continu (adjacence entre deux mots consécutifs. Par abus de langage, on parle parfois de code de Gray) => pas de parasite si décodage des sorties.
Pour un montage à n bascules, les sorties des bascules sont des signaux de fréquence f n 2 , si f est la fréquence de l'horloge.
Si Q0 = Q2 = 0 et Q1 = 1, le compteur démarre dans un état n'appartenant pas au cycle de comptage normal. On passe alors de l'état 010 à 101 : le compteur divise par 2!!!!
Si on veut retrouver une division par 6, il faut que l'un de ces deux états force le compteur dans l'une des combinaisons du code de Gray utilisé (ce 'forçage' doit se faire bien évidemment de manière synchrone).
EXERCICE 2
L'un des chemins critiques est représenté sur le schéma ci-après. Les sortances des différents éléments de ce chemin doivent tenir compte de l'entrance des XOR, égale à 2.
Temps de propagation maximal total tptotal
0,073 + 0,051 + 0,051 = 0,175 ns bascule XOR I XOR II
La période minimale d'horloge est alors tptotal +tsetup, c'est-à-dire 0,175+0,020 = 0,195 ns
==> Hmax # 5,1 GHz
Pour augmenter la fréquence de fonctionnement maximale, l'idée est de décomposer en deux le calcul lié aux XOR, en mémorisant dans une bascule le résultat en sortie du premier XOR.
Cela oblige à changer les "prises" du registre à décalage, afin d'anticiper le calcul.
f.o. = 2
f.o. = 2 f.i. = 2
I II
Le temps de propagation maximal sur le chemin critique vaut alors : tp (bascule, sortance 2) + tp (XOR, sortance 2)
0,071 ns 0,051 ns = 0,122 ns
En tenant compte du tsetup , il vient Hmax = 1/(0,122+0,020)E-9 # 7,0 GHz . EXERCICE 3
Premier montage : saisie de l'entrée E quand le compteur passe par l'instant "0".
Il existe toujours des impulsions parasites lorsqu'on décode un état de compteur ==> si elles sont prises en compte, E peut être validée à un moment non prévu.
Second montage : la sortie Carry (décodage du moment N-1 d’un compteur modulo N) du compteur est mémorisée sur un front montant de CK et lorsque l'entrée Val est à 1 ("filtrage"
de CK par Val).
Carry est retardée par rapport au front montant de CK ainsi que le signal d'horloge de la bascule ==> on ne sait pas quelle valeur de Qn est mémorisée et possibilité de non respect du thold ou du tsetup de la bascule.
Troisième montage : le décodage Q0 = Q2 = 1 remet à zéro la bascule.
Même problème que pour le premier montage : impulsions parasites sur une entrée prioritaire.
Quatrième montage : un chronogramme peut aider.
H Q Q H1 H2
==> réalisation de deux horloges à deux phases non-recouvrantes.
Les signaux Q et Q sont retardés par rapport au front montant de H. Des impulsions parasites peuvent apparaitre aux endroits marqués en pointillé sur le chronogramme (et ce sont des signaux d'horloge !!)
EXERCICE 4
Chaque bascule divise par 2.
Chronogramme : H
Q2
Q1
Q0
CL état compteur
C'est un décompteur binaire asynchrone : diviseur par 7.
Les retards apportés par les bascules risquent de faire apparaître des transitoires parasites. Par exemple le passage de l'instant "0" à l'instant "7" :
L'impulsion parasite sur CL peut remettre à zéro le compteur ==> blocage du compteur à l'instant "0".
Pour y remédier :
− opter pour une structure synchrone,
− faire la remise à zéro en utilisant l'entrée D des bascules (remise à zéro synchrone) : le décodage du moment "2" prépare l'instant suivant qui sera
"0". Par exemple : Décodage de"2"
(actif à 1) Di
Qi+
RAZ du compteur 0
0 0
1 1 1
0 1 1
1 0 1
0 0 1
1 1 0
0 1 0
0 0 0
1 1 1
0 7 6 5 4 3 2 0 7
Q = F(Q , Q , Qi+ 0 1 2) est la fonction qui décrit le décomptage binaire.
H Q0
Q2 Q1
CL