Académique Documents
Professionnel Documents
Culture Documents
Cours de MR Jbilou PDF
Cours de MR Jbilou PDF
+5V
V0
S
Figure 1
Diverses notations peuvent être utilisées pour représenter ces deux états :
Pour étudier les fonctions de variables binaires on utilise une algèbre développée au
ème
XIX siècle par un mathématicien anglais : Georges Boole. Dans ce chapitre nous nous
proposons de présenter les fonctions de base de l'algèbre booléenne ainsi que leurs
représentations symboliques en électronique. Nous rappellerons également, sans prétendre à la
rigueur mathématique, les quelques notions élémentaires nécessaires à l'étude des circuits
électroniques.
L'algèbre de Boole concerne la logique des systèmes binaires. Une variable booléenne ne
peut prendre que deux valeurs possibles 0 ou 1. En électronique les deux états d'une telle variable
peuvent être associés à deux niveaux de tension : V(0) et V(1) pour les états 0 et 1
respectivement. On distingue les logiques positive et négative selon que V(1) > V(0) ou
1
V(1) < V(0). Ce que nous pouvons résumer dans la table suivante donnant la signification logique
des niveaux physiques :
Table 1
En pratique un niveau est défini par un domaine en tension ou en courant. Par exemple en
technologie TTL, un niveau sera dit haut s'il est compris entre +2 V et +5 V et un niveau sera bas
s'il est inférieur à +0.8 V.
V(1) V(1)
"1" "0"
V(0) V(0)
"0" "1"
Logique positive Logique négative
Figure 2
L'opération OU (OR), encore appelée addition logique, a au moins deux entrées. La sortie
d'une fonction OU est dans l'état 1 si au moins une de ses entrées est dans l'état 1. La fonction
OU, notée +, est représentée par le symbole indiqué sur la figure 3 et est définie par la table de
vérité suivante :
A B Y=A+B
0 0 0
0 1 1
1 0 1
1 1 1
Table 2
A
Y
B
Figure 3
II.3 Porte ET
A B Y=A•B
0 0 0
0 1 0
1 0 0
1 1 1
Table 3
A
Y
B
Figure 4
(A • B) • C = A • (B • C) = A • B • C Associativité
A•B=B•A Commutativité
A•A=A Idempotence
A•1=A Elément neutre
A•0=0
D'autre part, les opérations ET et OU sont distributives l'une par rapport à l'autre :
A • (B + C) = (A • B) + (A • C)
A + (B • C) = (A + B) • (A + C)
3
L'opération NON (NOT) a une seule entrée et une seule sortie. La sortie d'une fonction
NON prend l'état 1 si et seulement si son entrée est dans l'état 0. La négation logique est
symbolisée par un petit cercle dessiné à l'endroit où une ligne en entrée ou en sortie rejoint un
symbole logique, comme par exemple sur la figure 5. La table 4 donne la table de vérité
correspondante.
A Y= A
0 1
1 0
Table 4
A Y
Figure 5
AA
A A 1
AA 0
A AB AB
De Morgan a exprimé deux théorèmes qui peuvent se résumer sous la forme suivante :
A B C ... A B C ...
A B C ... A B C ...
Pour vérifier le premier théorème nous remarquons que si toutes les entrées sont à 1 les deux
membres de l'équation sont nuls. Par contre si une au moins des entrées est à 0 les deux membres
de l'équation sont égaux à 1. Il y a donc égalité quels que soient les états des diverses entrées. Le
second théorème se vérifie de la même manière : si toutes les entrées sont à 0 les deux membres
de l'équation sont à 1, par contre si au moins une des entrées est à 1 les deux expressions sont à 0.
Les théorèmes de De Morgan montrent qu'une fonction ET peut être fabriquée à partir des
fonctions OU et NON. De même une fonction OU peut être obtenue à partir des fonctions ET et
NON. La figure 6 montre la conversion d'une porte OU en porte ET et réciproquement, utilisant
le fait que :
4
AB AB AB
AB AB AB
De même, à partir des théorèmes de De Morgan nous pouvons montrer qu'une porte ET en
logique positive fonctionne comme une porte OU en logique négative et vice versa.
A A
A+B A.B
B B
A A
A.B A+B
B B
Figure 6
Une porte NON ET (NAND : NOT AND) est constituée par un inverseur à la sortie d'une
porte ET (fig 7). Une négation à la sortie d'une porte OU constitue une fonction NON OU (NOR :
NOT OR) symbolisée sur la figure 8. Leurs tables de vérité respectives sont données par les
tables 5 et 6 :
A B Y AB A B Y AB
0 0 1 0 0 1
0 1 1 0 1 0
1 0 1 1 0 0
1 1 0 1 1 0
Table 5 Table 6
A A
Y Y
B B
Figure 7 Figure 8
Comme les transistors qui interviennent comme éléments de base des portes sont par
essence des inverseurs, les portes NAND et NOR sont très usitées dans la réalisation des circuits
logiques. Grâce aux lois de De Morgan il est possible de réaliser des systèmes logiques avec
uniquement des portes NAND ou NOR. La figure 9 montre, par exemple, comment les portes
NOT, OR et AND peuvent être obtenues à partir de portes NOR.
5
A Y=A A
Y=A.B
A
Y=A+B B
B
Figure 9
La sortie d'une fonction OU exclusif (XOR) à deux entrées est dans l'état 1 si une entrée
et seulement une est dans l'état 1. La représentation symbolique d'une fonction XOR (notée )
est donnée sur la figure 10 et sa table de vérité est la suivante :
A B Y AB
0 0 0
0 1 1
1 0 1
1 1 0
Table 7
A
Y
B
Figure 10
A B (A B) (A B)
A B (A B) (B A)
A B (A B) (A B)
6
A B (A B) (A B)
A ces quatre relations logiques correspondent quatre circuits réalisant la fonction XOR à partir de
portes OR et AND.
A A
B B
A A
B B
Figure 11
La porte "3 états", ou tri-state", n'est pas une porte logique au sens strict. Elle est
principalement utilisée pour connecter une sortie sur une ligne commune à plusieurs circuits (un
bus par exemple). Elle remplace généralement une porte ET. En effet, la mise en parallèle sur une
même ligne de plusieurs portes ET introduit des capacités parasites. Ceci augmente les constantes
de temps et a pour effet de détériorer les fronts de montée et de descente des signaux. Cela peut
perturber le fonctionnement d'un système. Une porte 3 états est schématisée sur la figure
suivante :
A Y
C
Figure 12
C A Y sortie
1 0 0 faible impédance
1 1 1 faible impédance
0 X 0 haute impédance
Table 8
Lorsque la commande C est à 0 l'impédance de sortie est très grande : pratiquement déconnectée.
D'autre part, ces portes "3 états" fournissent une amplification de puissance.
7
II.9 Résumé des identités booléennes de base
Il est possible montrer que toute fonction booléenne d'un nombre quelconque de variables
peut s'écrire avec les trois fonctions de base ET, OU et NON. Nous avons rassemblé dans la table
9 les relations de base de l'algèbre de Boole qui nous seront utiles par la suite.
OU (A + B) + C = A + (B + C) = A + B + C Associativité
A+B=B+A Commutativité
A+A=A Idempotence
A+0=A Elément neutre
A+1=1
ET (A • B) • C = A • (B • C) = A • B • C Associativité
A•B=B•A Commutativité
A•A=A Idempotence
A•1=A Elément neutre
A•0=0
Distributivité A • (B + C) = (A • B) + (A • C)
A + (B • C) = (A + B) • (A + C)
NON AA
A A 1
AA 0
A + (A • B) = A
A • (A + B) = A
(A B) (A B) A
A (A B) A B
De Morgan A B C ... A B C ...
A B C ... A B C ...
OU exclusif A B (A B) (A B)
A B (A B) (B A)
A B (A B) (A B)
A B (A B) (A B)
Table 9
8
II.10 Ecritures canoniques d'une fonction logique
P0 P1 P2 P3 P4 P5 P6 P7
Ci x y z xyz xyz xyz xyz xyz xyz xyz xyz
0 0 0 0 1 0 0 0 0 0 0 0
1 0 0 1 0 1 0 0 0 0 0 0
2 0 1 0 0 0 1 0 0 0 0 0
3 0 1 1 0 0 0 1 0 0 0 0
4 1 0 0 0 0 0 0 1 0 0 0
5 1 0 1 0 0 0 0 0 1 0 0
6 1 1 0 0 0 0 0 0 0 1 0
7 1 1 1 0 0 0 0 0 0 0 1
Table 10
Pour toute fonction logique de trois variables x, y et z, nous pouvons écrire sa table de
vérité, c'est-à-dire expliciter sa valeur pour chacune des huit combinaisons Ci. Considérons, par
exemple, la fonction F dont la table de vérité est donnée dans la table 11 :
Ci x y z F P1 + P3 + P4
0 0 0 0 0 0
1 0 0 1 1 1
2 0 1 0 0 0
3 0 1 1 1 1
4 1 0 0 1 1
5 1 0 1 0 0
6 1 1 0 0 0
7 1 1 1 0 0
Table 11
Cette fonction F prend la valeur 1 pour la combinaison C1 comme le produit P1, la combinaison
C3 comme P3 et la combinaison C4 comme P4. La fonction F prenant la valeur 0 pour toutes les
autres combinaisons comme les produits P1, P3, P4, nous pouvons donc écrire que F est égale à la
fonction :
F = P1 + P3 + P 4
9
Nous pouvons vérifier cette identité dans la table 11. Nous pouvons donc exprimer F en fonction
des variables x, y et z sous la forme :
F x yzx yzx yz
Cette façon, très générale, d'écrire une fonction booléenne est appelée somme canonique de
produits.
Soient encore trois variables binaires x, y et z. Nous pouvons définir huit sommes
logiques des trois variables faisant intervenir x ou x , y ou y et z ou z . La table 12 donne les
tables de vérité de ces sommes. Nous constatons que chacune de ces fonctions ne prend la valeur
0 que pour une et une seule combinaison.
S0 S1 S2 S3 S4 S5 S6 S7
Ci x y z x yz xyz xyz xyz xyz xyz xyz xyz
0 0 0 0 0 1 1 1 1 1 1 1
1 0 0 1 1 0 1 1 1 1 1 1
2 0 1 0 1 1 0 1 1 1 1 1
3 0 1 1 1 1 1 0 1 1 1 1
4 1 0 0 1 1 1 1 0 1 1 1
5 1 0 1 1 1 1 1 1 0 1 1
6 1 1 0 1 1 1 1 1 1 0 1
7 1 1 1 1 1 1 1 1 1 1 0
Table 12
F (x y z) (x y z) (x y z) (x y z) (x y z)
Cette écriture est appelée produit canonique de sommes. Celle-ci est moins utilisée que la somme
canonique de produits.
Ci x y z F S0 • S2 • S5 • S6 • S7
0 0 0 0 0 0
1 0 0 1 1 1
2 0 1 0 0 0
3 0 1 1 1 1
4 1 0 0 1 1
5 1 0 1 0 0
6 1 1 0 0 0
10
7 1 1 1 0 0
Table 13
Simplifier une expression booléenne c'est lui trouver une forme plus condensée, faisant
intervenir moins d'opérateurs et conduisant à une réalisation matérielle plus compacte. On peut
simplifier une fonction par manipulation algébrique en utilisant par exemple les relations
rassemblées dans la table 9. Considérons la fonction F définie par la table de vérité suivante :
x y z F
0 0 0 0
0 0 1 0
0 1 0 0
0 1 1 1
1 0 0 0
1 0 1 1
1 1 0 1
1 1 1 1
Table 14
Cependant cette méthode, qui demande astuce et chance, n'est pas toujours très aisée à mettre en
œuvre. Nous allons maintenant décrire une méthode graphique très utile pour un nombre de
variables inférieur à 6.
11
(A B) (A B) A (B B) A
Elle est basée sur l'inspection visuelle de tableaux disposés de façon telle que les cases adjacentes
en ligne et en colonne ne diffèrent que par l'état d'une variable et une seule.
x
y 0 1
0
1
Tableau à 2 variables
Figure 13
xy
z 00 01 11 10
0
Tableau à 3 variables
Figure 14
xy
zt 00 01 11 10
00
01
11
10
Tableau à 4 variables
12
u
0 1
xy xy
zt 00 01 11 10 zt 00 01 11 10
00 00
01 01
11 11
10 10
Tableau à 5 variables
Figure 16
xyz
tu 000 001 011 010 110 111 101 100
00
01
11
10
Tableau à 5 variables
Figure 17
Chaque case d'un tableau correspond au seul minterm prenant la valeur 1 pour la combinaison
identifiée par la ligne et la colonne. Par exemple les trois cases coloriées dans les tableaux de la
figure 18 correspondent respectivement aux produits suivants :
x y z t, x y z t et x y z t
Il faut comprendre chaque ligne et chaque colonne comme une structure cyclique continue :
chaque case a toujours quatre voisins qu'il faut éventuellement chercher à l'autre extrémité de la
ligne ou de la colonne. Les tableaux de la figure 18 illustrent ce concept, les croix y matérialisent
les voisins des cases coloriées :
13
xy xy xy
zt 00 01 11 10 zt 00 01 11 10 zt 00 01 11 10
00 00 00
01 01 01
11 11 11
10 10 10
Figure 18
Dans le cas de la représentation en deux tableaux superposés chaque case a cinq voisins :
les quatre dans le même plan et une dans l'autre plan.
Gx ytx yt
G x y (t t ) x y
La variable t qui prend les deux valeurs 0 et 1 dans le groupement disparaît. Il ne reste que le
produit des variables x et y, qui gardent ici la valeur 1.
Dans un groupement de deux termes on élimine donc la variable qui change d'état et on
conserve le produit des variables qui ne changent pas. Dans un groupement de quatre on élimine
les deux variables qui changent d'état. Dans un groupement de huit on élimine trois variables,
etc…
Pour les cases isolées on ne peut éliminer aucune variable. On conserve donc le produit
caractérisant la case. L'expression logique finale est la réunion des groupements après élimination
des variables qui changent d'état.
Reprenons l'exemple de la fonction F définie par la table de vérité 14. La figure 19 donne
le tableau de Karnaugh correspondant :
14
xy
t 00 01 11 10
0 1 xy
1 1 1 1 xt
yt
Figure 19
Nous y observons trois groupements de deux termes, nous pouvons écrire pour la fonction :
F x yy zz x
Considérons une autre fonction F de quatre variables x, y, z et t définie par la table 15. La
figure 20 donne le tableau de Karnaugh équivalent. Sur cette figure nous avons également
matérialisé les trois groupements possibles : deux groupements de quatre termes, dont un
contenant les quatre coins, et un groupement de deux termes. Cette méthode nous permettent
d'écrire :
F x yy ty z t
x y z t F
0 0 0 0 1
0 0 0 1 0
0 0 1 0 1
0 0 1 1 0
0 1 0 0 0
0 1 0 1 1
0 1 1 0 0
0 1 1 1 0
1 0 0 0 1
1 0 0 1 1
1 0 1 0 1
1 0 1 1 1
1 1 0 0 0
1 1 0 1 1
1 1 1 0 0
1 1 1 1 0
Table 15
15
xy
zt 00 01 11 10
00 1 1
01 1 1 1
11 1
10 1 1
Figure 20
Logique combinatoire
Dans ce chapitre nous nous intéressons à une famille de circuits logiques pour lesquels la
sortie dépend uniquement des états des entrées.
III.1.a Demi-additionneur
Comme en décimal, nous devons donc tenir compte d'une éventuelle retenue (carry). La figure 1
montre la décomposition de l'addition de deux nombres binaires de quatre bits.
a3 a2 a1 a0 nombre A
+ b3 b2 b1 b0 nombre B
s3 s2 s1 s0 somme : S = A + B
r3 r2 r1 r0 retenues
Figure 1
16
L'addition des deux bits de bas poids (LSB : Least Significant Bit) a0 et b0, donne un résultat
partiel s0 et une retenue r0. On forme ensuite la somme des deux bits a1 et b1 et de la retenue r0.
Nous obtenons un résultat partiel s1 et une retenue r1. Et ainsi de suite, nous obtenons un résultat
sur quatre bits S et une retenue r3.
Considérons la cellule symbolisée sur la figure 2, comptant deux entrées A et B les deux bits à
sommer et deux sorties D le résultat de la somme et C la retenue.
A B
HA
C D
Figure 2
Ce circuit, qui permettrait d'effectuer l'addition des deux bits de plus bas poids est appelé demi-
additionneur (Half-Adder). Ecrivons la table de vérité de celui-ci :
A B C D
0 0 0 0
0 1 0 1
1 0 0 1
1 1 1 1
Table 1
Si nous écrivons ces deux fonctions sous leur forme canonique il vient :
D A B A B
C A B
D A B
C A B
Ce qui peut être réalisé par le circuit schématisé sur le logigramme de la figure 3.
17
A
D
B
Figure 3
III.1.b Additionneur
Il faut en fait tenir compte de la retenue des bits de poids inférieurs, un circuit
additionneur doit donc comporter trois entrées et deux sorties, comme représenté sur la figure 4.
A B R
FA
S C
Figure 4
R S
HA
S1 C2
A
C
HA
C1
B
Figure 5
Les entrées A et B représentent les bits à additionner et R le report de la retenue de l'addition des
bits de poids inférieurs. La sortie S représente le résultat de la somme et C la retenue. La table de
vérité de ce circuit est la suivante :
18
A B R S C
0 0 0 0 0
0 0 1 1 0
0 1 0 1 0
0 1 1 0 1
1 0 0 1 0
1 0 1 0 1
1 1 0 0 1
1 1 1 1 1
Table 2
A partir de cette table nous pouvons écrire pour S et C les expressions booléennes suivantes :
S A B R A B R A B R A B R
C A B R A B R A B R A B R
AB
R 00 01 11 10
0 1
1 1 1 1
Figure 6
Nous en déduisons :
C=AB+AR+BR
Le bit de carry est égal à 1 si au moins deux des entrées sont à 1. D'autre part, nous pouvons
remarquer qu'intervertir les 0 et les 1 dans la table 2 revient à permuter les lignes 1 et 8, 2 et 7, 3
et 6, 4 et 5. La table de vérité reste globalement invariante par inversion des entrées et des sorties,
nous avons donc :
C A B A R B R
A C A B R
B C A B R (A B R ) C A B R A B R A B R
R C A B R
19
Ce qui nous permet de réécrire l'expression de S :
S (A B R ) C A B R
La figure 7 donne un exemple de réalisation d'un additionneur 1 bit basé sur deux portes AOI
(AND OR INVERT), c'est-à-dire un ensemble de portes ET suivies d'une porte NON-OU.
A B R
Figure 7
L'addition de nombres comptant plusieurs bits peut se faire en série (bit après bit) ou en
parallèle (tous les bits simultanément). La figure 8 montre l'exemple d'un additionneur 4 bits
comptant quatre "Full Adders", comparables à celui schématisé figure 7, montés en parallèle ou
en cascade. Chaque additionneur FAi est affecté à l'addition des bits de poids i. L'entrée
correspondant au report de retenue pour FA0 est imposée à 0 (en logique positive). La retenue
finale C indique un dépassement de capacité si elle est égale à 1. Le temps d'établissement du
résultat correspondant au temps de propagation des retenues au travers des diverses cellules. Si t
est le temps réponse d'une cellule, la sortie S0 et la retenue R0 sont valables après un retard t, la
sortie S1 et la retenue R1 ne sont correctes qu'après un retard 2 t, et ainsi de suite. La figure 9
présente un exemple de réalisation logique d'un additionneur de deux mots de 2 bits.
20
A 3 B3 A 2 B2 A 1 B1 A 0 B0
FA 3 FA 2 FA 1 FA 0
C S3 S2 S1 S0
Figure 8
A 0 B0 R A1 B1
S0 S1
C1
Figure 9
Dans un additionneur séquentiel chacun des nombres A et B est représenté par un train
d'impulsions (figure 10) synchrones par rapport à un signal d'horloge. L'ordre chronologique
d'arrivée des impulsions correspond à l'ordre croissant des poids : le bit le moins significatif se
présentant le premier. Ces impulsions sont injectées sur les deux lignes d'entrée d'un additionneur
(figure 11). A chaque cycle d'horloge, la retenue provenant des bits de poids inférieurs doit être
mémorisée (par exemple, à l'aide d'une bascule D qui sera étudiée dans le chapitre suivant).
21
Un additionneur parallèle est plus rapide mais nécessite plus de composants.
LSB
A = 01101
B = 01011
D = 11000
0 1 2 3 4 t
2 2 2 2 2
Figure 10
A B R
FA
TD
S C
Figure 11
III.2 Soustraction
III.2.a Demi-soustracteur
La table de vérité pour un demi-soustracteur (ne tenant pas compte d'une éventuelle
retenue provenant des bits de poids inférieurs) est la suivante :
A B D C
0 0 0 0
0 1 1 1
1 0 1 0
1 1 0 0
Table 3
22
Où D représente le résultat de la soustraction A B et C la retenue. Nous en déduisons les
expressions logiques définissant D et C :
D A B A B A B
C A B
et le schéma correspondant :
A
D
B
Figure 12
III.2.b Additionneur-soustracteur
Nous savons qu'avec un mot de n bits nous pouvons représenter un entier positif dont la
valeur est comprise entre 0 et 2n 1. Le complémentaire d'un mot de n bits est obtenu entre
prenant le complément de chacun des n bits. Ainsi, si nous sommons un nombre et son
complément nous obtenons un mot dont tous les bits sont à 1. C'est-à-dire :
A A 2n 1
Attention : dans ce paragraphe le signe + représente l'opération addition et non la fonction logique
OU. Nous pouvons encore écrire :
A A 1 2n
2 n 0 (n bits)
C'est-à-dire qu'il est possible d’écrire un nombre entier négatif comme le "complément à 2" de sa
valeur absolue :
A A 1
Nous reviendrons sur les divers codages des entiers signés plus tard. Nous pouvons utiliser cette
propriété pour écrire la soustraction de deux mots de n bits sous la forme suivante :
A B A B 1 2 n A B 1 (n bits)
23
Ce résultat conduit au schéma de principe présenté sur la figure 13 combinant les fonctions
addition et soustraction. Celui-ci est basé sur l'emploi d'un additionneur n bits et d'un
multiplexeur à deux lignes d'entrée. Nous étudierons ce type de circuit un peu plus loin dans ce
chapitre. Selon le code opération O (0 pour une addition et 1 pour une soustraction) ce
multiplexeur permet de sélectionner une des deux entrées, B ou son complémentaire. Le code
opération est également injecté sur l'entrée report de retenue de l'additionneur. Pour simplifier le
schéma et éviter de représenter n lignes de connexion parallèles, on ne matérialise qu'une seule
ligne. Celle-ci est barrée et accompagnée d'une valeur qui indique le nombre réel de connexions.
A n n D
A
1 D
B n n D
n C
n 0
O
Figure 13
III.3 Comparaison
On rencontre très souvent la nécessité de comparer deux entiers (A = B, A > B ou A < B).
Ecrivons la table de vérité correspondant à ces trois fonctions de comparaison de 2 bits. La
fonction C doit être égale à 1 si et seulement si A > B, la fonction D si et seulement si A < B et la
fonction E si et seulement si A = B. Ce qui nous donne :
A B C (A > B) D (A < B) E (A = B)
0 0 0 0 1
0 1 0 1 0
1 0 1 0 0
1 1 0 0 1
Table 5
C A B
D A B
E A B A B A B C D
24
La figure 14 présente le diagramme d'un bloc logique comparant deux bits A et B.
C
A
B
E
Figure 14
La parité d'un mot binaire est définie comme la parité de la somme des bits, soit encore :
La fonction OU-exclusif donne la parité d'un sous-ensemble de deux bits. Le contrôle de parité
est basé sur la constatation que le mot de n+1 bits formé en adjoignant à un mot de n bits son bit
de parité est toujours de parité 0. La figure 15 représente le diagramme logique d'un générateur-
contrôleur de parité pour 4 bits. Si l'entrée P' est imposée à 0 ce circuit fonctionne comme
générateur de parité : la sortie P représente la parité du mot composé par les bits A, B, C et D.
A
B
C
D
P
P'
Figure 15
Le contrôle de la parité est utilisé, par exemple, pour augmenter la fiabilité d'un système
de transmission ou de stockage de données. La figure 16 montre l'utilisation du circuit précédent
en générateur de parité du côté de l'émission et contrôleur de parité du côté de la réception. La
sortie P2 doit être à 0 pour chaque mot transmis, sinon cela indique un problème de transmission.
Emetteur Récepteur
A A
B B
C P C P P2
D D
P' P'
Figure 16
25
Remarquons cependant que la parité ne permet de détecter qu'un nombre impair de bits en
erreur dans un mot. Par ailleurs il ne permet pas corriger les erreurs détectées. Pour ce faire il faut
utiliser des codes correcteurs d'erreur qui nécessitent plusieurs bits supplémentaires.
III.5 Décodage
Dans un système numérique les instructions, tout comme les nombres, sont transportées
sous forme de mots binaires. Par exemple un mot de 4 bits peut permettre d'identifier 16
instructions différentes : l'information est codée. Très souvent l'équivalent d'un commutateur à 16
positions permet de sélectionner l'instruction correspondant à un code. Ce processus est appelé
décodage. La fonction de décodage consiste à faire correspondre à un code présent en entrée sur n
lignes une seule sortie active parmi les N = 2n sorties possibles. A titre d'exemple, nous allons
étudier le décodage de la représentation DCB des nombres.
Le code DCB (ou en anglais BCD : Binary Coded Decimal) transforme les nombres
décimaux en remplaçant chacun des chiffres décimaux par 4 chiffres binaires. Cette
représentation conserve donc la structure décimale : unités, dizaines, centaines, milliers, etc…
Chaque chiffre est codé sur 4 bits selon le code de la table 6 :
Décimal DCB
0 0000
1 0001
2 0010
3 0011
4 0100
5 0101
6 0110
7 0111
8 1000
9 1001
Table 6
Par exemple le nombre décimal 294 sera codé en DCB : 0010 1001 0100. Ce type de codage
permet, par exemple, de faciliter l'affichage en décimal du contenu d'un compteur. Pour ce faire
on peut utiliser des tubes de Nixie, contenant 10 cathodes ayant chacune la forme d'un chiffre
(fig. 17) ou des afficheurs lumineux à sept segment (fig. 18).
26
centaines dizaines unités
4 4 4
10 10 10
N N N
i i i
x x x
i i i
e e e
Figure 17
La fonction de chaque décodeur est d'activer une des dix lignes en sortie et une seule en
fonction du code présent sur les quatre entrées. Par exemple, si ce code est égal à 5, la 6ème ligne
de sortie est mise dans l'état 1 et le chiffre 5 est affiché par le tube de Nixie.
4 4 4
7 7 7
Figure 18
27
D C B A L0 L1 L2 L3 L4 L5 L6 L7 L8 L9
0 0 0 0 1
0 0 0 1 1
0 0 1 0 1
0 0 1 1 1
0 1 0 0 1
0 1 0 1 1
0 1 1 0 1
0 1 1 1 1
1 0 0 0 1
1 0 0 1 1
Table 7
A chacune des lignes de sortie nous pouvons associer un produit prenant en compte
chacune des quatre entrées ou leur complément. Ainsi la ligne 5 correspond à :
ABCD
D'autre part, on souhaite souvent n'activer les lignes de sortie qu'en présence d'un signal
de commande global (strobe ou enable). Ce signal S est mis en coïncidence sur chacune des dix
portes de sortie. Dans l'exemple suivant, si S est dans l'état 0 le décodeur est bloqué et tous les
sorties sont également dans l'état 0.
S A B C D
Figure 19
III.6 Multiplexage
Le multiplexage est un dispositif qui permet de transmettre sur une seule ligne des
informations en provenance de plusieurs sources ou à destination de plusieurs cibles. La figure 20
28
en présente une analogie mécanique avec deux commutateurs à plusieurs positions. Choisir une
ligne revient à définir l'angle du levier ou une adresse.
multiplexeur démultiplexeur
Figure 20
III.6.a Démultiplexeur
Un démultiplexeur est un circuit comptant une entrée et N sorties et qui met en relation
cette entrée avec une sortie et une seule. Pour pouvoir sélectionner cette sortie il faut également
des lignes d'adressage : le code porté par ces lignes identifie la ligne de sortie à utiliser. Ce circuit
est très proche d'un décodeur. Considérons un démultiplexeur avec quatre lignes de sortie. Il faut
deux lignes d'adresse. Supposons que nous souhaitons également valider les données avec un
signal de contrôle E (pour laisser par exemple le temps aux niveaux d'entrée de se stabiliser). Par
convention nous choisissons de prendre en compte les données pour E = 0.
E B A Y0 Y1 Y2 Y3 Produit
0 0 0 D 0 0 0 ABED
0 0 1 0 D 0 0 ABED
0 1 0 0 0 D 0 ABED
0 1 1 0 0 0 D ABED
1 0 0 0 0 0 0
1 0 1 0 0 0 0
1 1 0 0 0 0 0
1 1 1 0 0 0 0
Table 8
29
D
0
E
D : données
E : enable
(A, B) : adresse A B
Figure 21
7
S
0
E D
7
A B C D E : adresse
S : données C B A
Figure 22
30
III.6.b Multiplexeur
Y A B E X 0 A B E X1 A B E X 2 A B E X 3
E B A Y
0 0 0 X0
0 0 1 X1
0 1 0 X2
0 1 1 X3
1 0 0 0
1 0 1 0
1 1 0 0
1 1 1 0
Table 9
X0
X1
Y
X2
X3
E A B
Figure 23
31
Tout comme pour les démultiplexeurs on peut cascader plusieurs multiplexeurs pour
obtenir un multiplexeur d'ordre supérieur. La figure 24 montre comment un multiplexeur à 32
entrées peut être réalisé à partir de quatre multiplexeurs à 8 entrées et d'un multiplexeur à 4
entrées.
15
Y
16
D E
23
24
31
A B CD E : adresse
A B C Y : sortie
Figure 24
Considérons un mot de n bits (par exemple 4) présent en parallèle sur les entrées d'un
multiplexeur :
Supposons que les lignes d'adresse A et B soient connectées aux sorties d'un compteur de période
T, nous aurons en fonction du temps :
32
t B A Y
[0,T] 0 0 X0
[T,2T] 0 1 X1
[2T,3T] 1 0 X2
[3T,4T] 1 1 X3
[4T,5T] 0 0 X0
Table 10
Les bits X0, X1, X2 et X3 se retrouvent en série dans le temps sur la sortie Y du multiplexeur.
III.7 Encodage
W0 W1 W2 W3 W4 W5 W6 W7 W8 W9 Y3 Y2 Y1 Y0
1 0 0 0 0 0 0 0 0 0 0 0 0 0
0 1 0 0 0 0 0 0 0 0 0 0 0 1
0 0 1 0 0 0 0 0 0 0 0 0 1 0
0 0 0 1 0 0 0 0 0 0 0 0 1 1
0 0 0 0 1 0 0 0 0 0 0 1 0 0
0 0 0 0 0 1 0 0 0 0 0 1 0 1
0 0 0 0 0 0 1 0 0 0 0 1 1 0
0 0 0 0 0 0 0 1 0 0 0 1 1 1
0 0 0 0 0 0 0 0 1 0 1 0 0 0
0 0 0 0 0 0 0 0 0 1 1 0 0 1
Table 11
Y0 W1 W3 W5 W7 W9
Y W W W W
1 2 3 6 7
Y
2 W4 W5 W6 W7
Y3 W8 W9
33
En effet Y0 est égal à 1 quand la ligne W1 est dans l'état 1, ou la ligne W3, ou la ligne W5, ou la
ligne W7, ou la ligne W9. La ligne Y0 est nulle dans tous les autres cas. Il est possible de réaliser
ces fonctions OU avec des diodes selon le montage de la figure suivante :
W0
W1
W2
W3
W4
W5
W6
W7
W8
W9
+
5V
-
Y3 Y2 Y1 Y0
Figure 25
DA
A
A B S
B S 0 0 DA et DB bloquées 0
DB +V 0 DA passante/DB bloquée +V
0 +V DA bloquée/DB passante +V
+V +V DA et DB passantes +V
Figure 26
34
Si nous traduisons la signification logique des niveaux haut et bas en logique positive, au circuit
de la figure 26 correspond la table de vérité 12. La fonction réalisée est donc un OU inclusif.
A B S
0 0 0
0 1 1
1 0 1
1 1 1
Table 12
La figure 25 représente un exemple de réalisation d’un encodeur DCB réalisé avec des
diodes. Le bon fonctionnement de ce codeur suppose qu'une seule ligne d'entrée peut être dans
l'état 1.
Par contre, si plusieurs entrées sont actives simultanément le résultat pourra ne pas avoir
de signification. Par exemple, si les deux lignes W7 et W8 sont dans l'état 1 (frappe simultanée
des deux touches), il en sera de même pour les quatre sorties. Pour éviter ce problème on utilise
un encodeur prioritaire. Pour ce type de circuit si plusieurs lignes d'entrée sont actives
simultanément le résultat correspondant à une seule parmi celles-ci est affiché en sortie. La règle
peut être, par exemple, de mettre en sortie le code correspondant à la ligne d'entrée d'indice le
plus élevé. Par exemple, si W7 et W8 sont dans l'état 1 l'encodeur prioritaire donne en sortie le
code correspondant à W8. La table de vérité correspondant à ce choix est donnée par la table 13.
Chaque croix indique que le code en sortie doit être indépendant de l'état de l'entrée concernée.
W0 W1 W2 W3 W4 W5 W6 W7 W8 W9 Y3 Y2 Y1 Y0
1 0 0 0 0 0 0 0 0 0 0 0 0 0
X 1 0 0 0 0 0 0 0 0 0 0 0 1
X X 1 0 0 0 0 0 0 0 0 0 1 0
X X X 1 0 0 0 0 0 0 0 0 1 1
X X X X 1 0 0 0 0 0 0 1 0 0
X X X X X 1 0 0 0 0 0 1 0 1
X X X X X X 1 0 0 0 0 1 1 0
X X X X X X X 1 0 0 0 1 1 1
X X X X X X X X 1 0 1 0 0 0
X X X X X X X X X 1 1 0 0 1
Table 13
Alors que les expressions logiques définissant les lignes de sortie Yi ne dépendaient que des 1
dans la table 11, il faut ici tenir compte des 0. Par exemple pour Y0 nous avons :
Y0 W1 W 2 W 3 W 4 W 5 W 6 W 7 W 8 W 9 W3 W 4 W 5 W 6 W 7 W 8 W 9
W5 W 6 W 7 W 8 W 9 W7 W 8 W 9 W9
35
Nous pouvons mettre le complémentaire de W9 en facteur dans les quatre premiers termes, puis
en utilisant l'identité :
AA B AB
Y0 W8 (W1 W 2 W3 W 4 W5 W 6 W 7 W3 W 4 W5 W 6 W 7 W5 W 6 W 7 W7 ) W9
Soit encore :
Y0 W8 (W1 W 2 W3 W 4 W5 W 6 W3 W 4 W5 W 6 W5 W 6 W7 ) W9
Y0 W8 (( W1 W 2 W3 W 4 W5 W3 W 4 W5 W5 ) W 6 W7 ) W9
Y0 W8 (( W1 W 2 W3 W 4 W3 W 4 W5 ) W 6 W7 ) W9
Y0 W8 ((( W1 W 2 W3 W3 ) W 4 W5 ) W 6 W7 ) W9
Y0 W8 ((( W1 W 2 W3 ) W 4 W5 ) W 6 W7 ) W9
Y1 W2 W 3 W 4 W 5 W 6 W 7 W 8 W 9 W3 W 4 W 5 W 6 W 7 W 8 W 9
W6 W 7 W 8 W 9 W7 W 8 W 9
Soit en factorisant :
En utilisant toujours la même identité nous pouvons simplifier cette expression, il vient en
réordonnant les termes :
Y1 W9 W8 (W7 W6 W5 W 4 (W3 W2 ))
Y2 W4 W5 W 6 W 7 W8 W9 W5 W 6 W 7 W8 W9 W6 W 7 W8 W9 W7 W8 W9
Soit encore :
36
Y2 W9 W8 (W7 W 7 (W6 W 6 (W5 W5 W4 )))
Y2 W9 W8 (W7 W6 W5 W4 )
Logique séquentielle
Dans le chapitre précédent portant sur la logique combinatoire nous avons fait abstraction
du temps : les signaux de sortie ne dépendaient que des états des variables d'entrée. Pour les
circuits de logique séquentielle nous devons tenir compte de l'état du système. Ainsi les sorties
dépendent des entrées mais également de l'état du système. Celui-ci dépend aussi des entrées. Si
nous notons Q l'état d'un système séquentiel, X ses entrées et Y ses sorties, nous avons de
manière générale :
Q f ( X, Q)
Y g ( X, Q)
La logique séquentielle permet de réaliser des circuits dont le comportement est variable
avec le temps. L'état d'un système constitue une mémoire du passé.
Lorsque les changements d'état des divers composants d'un circuit séquentiel se
produisent à des instants qui dépendent des temps de réponse des autres composants et des temps
de propagation des signaux on parle de logique séquentielle asynchrone. Cependant les retards
peuvent ne pas être identiques pour toutes les variables binaires et conduire à certains aléas.
Ceux-ci peuvent être évités en synchronisant la séquence des diverses opérations logiques sur les
signaux périodiques provenant d'une horloge. La logique séquentielle est alors dite synchrone :
tous les changements d'état sont synchronisés sur un signal de contrôle.
Nous commençons notre étude par celle des bascules, éléments de base des circuits
séquentiels. Puis nous étudierons les registres et les compteurs.
Une bascule (flip-flop) a pour rôle de mémoriser une information élémentaire. C'est une
mémoire à 1 bit. Une bascule possède deux sorties complémentaires Q et Q . La mémorisation
37
fait appel à un verrou (latch) ou système de blocage, dont le principe de rétro-action peut être
représenté de la façon suivante :
A Q
B Q
Figure 1
(Q 1) (B 1) (Q 0) (A 0) (Q 1)
(Q 0) (B 0) (Q 1) (A 1) (Q 0)
Une bascule ne peut donc être que dans deux états : "1" (Q 1, Q 0) et "0" (Q 0, Q 1) . Les
interconnexions du verrou interdisent les deux autres combinaisons : Q Q 1 ou Q Q 0 .
Ce type de circuit, qui n'a que deux états stables possibles, est encore appelé circuit bistable.
Un verrou permet de conserver un état, il nous faut maintenant savoir comment charger
cet état.
Les verrous les plus fréquemment rencontrés sont réalisés avec deux portes NOR ou
NAND. Considérons dans un premier temps le circuit suivant :
R
Q
Q
S
Figure 2
38
prédire laquelle : la configuration S = R = 1 conduit à une indétermination de l'état des sorties et
est donc inutilisable. La représentation d'une bascule RS est donnée sur la figure 4.
S R Q Q
0 0 Q Q Sorties inchangées
1 0 1 0 Set : Remise à Un : RAU
0 1 0 1 Reset : Remise à Zéro : RAZ
1 1 0 0 A proscrire
Table 1
S S
Q
Q
R
R
Figure 3
S R S R Q Q
0 0 1 1 Q Q
1 0 0 1 1 0
0 1 1 0 0 1
1 1 0 0 1 1
Table 2
L'utilisation des deux inverseurs sur les lignes d'entrée nous permet de retrouver une table de
vérité comparable à celle de la bascule RS précédente.
S Q
R Q
Figure 4
39
On est souvent amené à commander un état physique à l'aide d'un bouton poussoir ou d'un
inverseur (par exemple les touches d'un clavier). Cependant lorsqu'on ferme un interrupteur le
contact n'est pas franc instantanément et on peut observer une série de rebonds du signal avant
d'obtenir la position fermée (fig. 5). Pour éviter ce défaut on réalise un montage équivalent à celui
présenté sur la figure 6 faisant appel à un inverseur et une bascule.
+5 V
I
S S
I
t
Figure 5
+5 V I
1 2 1
S
Q S
2 I 1
Q
R
t1 t2 t3 t 4
Figure 6
40
IV.3 Bascule R.S.T ou R.S.Clock
La bascule R.S.T. est une bascule pour laquelle les entrées S et R ne sont prises en compte
qu'en coïncidence avec un signal de commande. Ce signal peut être fourni par une horloge, nous
avons alors une bascule synchrone. Ce circuit peut être réalisé de la façon suivante et sa
représentation est donnée sur la figure 8.
S
Q
Clk
Q
R
Figure 7
Lorsque le signal de commande, noté ici Clk, est à 1 la bascule fonctionne comme indiqué
précédemment et les sorties suivent les variations des entrées S et R. Par contre, lorsque le signal
de commande est à 0, la bascule est bloquée : Q est indépendant des éventuels changements de S
et R. L'état mémorisé correspond au dernier état avant le passage de la ligne de commande de 1 à
0.
S Q
ClK
R Q
Figure 8
Dans un système synchrone le signal de commande est fourni par une horloge (clock).
Celui-ci est constitué par une succession périodique d'impulsions de largeur tp, supposée petite
devant la période T. L'état de chacune des sorties restera donc bloqué pendant les intervalles
séparant deux impulsions. Nous notons Qn la valeur de la sortie Q pendant le nième intervalle
précédant la nième impulsion et Qn+1 la valeur correspondante dans l'intervalle suivant la nième
impulsion (fig 9).
Qn Q n+1
0 T (n-1)T nT (n+1)T t
Figure 9
41
mise à 0. Si S = R = 1 alors les deux sorties Q et Q sont toutes les deux à 1. Cet état est instable
et ne persiste pas lorsque le signal de commande revient à 0. L'état final sera indéterminé,
dépendant des vitesses relatives des portes. Cette situation ne doit pas être autorisée. L'état Q
reste ensuite figé jusqu'à (n+1)T. Si nous notons Sn et Rn les valeurs de S et R juste avant l'instant
t = nT nous pouvons écrire la table de vérité :
Sn Rn Qn+1
0 0 Qn
1 0 1
0 1 0
1 1 ?
Table 3
La bascule J-K permet de lever l'ambiguïté qui existe dans la table 3. Ceci peut être
obtenu en asservissant les entrées R et S aux sorties Q et Q selon le schéma logique indiqué sur
la figure 10.
J
S Q
Q
ClK
K
R Q
Q
Figure 10
Nous avons alors pour les signaux R et S :
S J Q
R K Q
Jn Kn Qn Qn S R Qn+1
0 0 0 1 0 0 0
0 0 1 0 0 0 1
0 1 0 1 0 0 0
0 1 1 0 0 1 0
1 0 0 1 1 0 1
1 0 1 0 0 0 1
1 1 0 1 1 0 1
1 1 1 0 0 1 0
Table 4
42
Nous constatons que nous ne rencontrons jamais la combinaison R = S = 1. Cette table peut se
résumer sous la forme suivante :
Jn Kn Qn+1
0 0 Qn
0 1 0
1 0 1
1 1 Qn
Table 5
La figure 11 explicite le diagramme logique d'une bascule J-K. Le rôle des entrées Pr et Cr sera
étudié dans le prochain paragraphe.
Pr
J
Q
Clk
Q
K
Cr
Figure 11
Qn Qn+1 Jn Kn
0 0 0 X
0 1 1 X
1 0 X 1
1 1 X 0
Table 6
Comme les deux entrées ne sont jamais spécifiées simultanément il est possible de choisir pour
simplifier l'égalité des deux entrées :
J=K
43
On utilise parfois l'expression logique donnant Qn+1 en fonction de Jn, Kn et Qn. Pour
cela nous pouvons par exemple construire le tableau de Karnaugh à partir de la table de vérité
(table 4) de la bascule J-K :
JK
Q 00 01 11 10
0 1 1
1 1 1
D'où nous tirons l'équation caractéristique qui exprime l'état futur en fonction de l'état présent et
des entrées :
Q n 1 J n Q n K n Q n
Pr Cr Q
1 1 Q
0 1 1
1 0 0
Table 7
La figure 12 donne la représentation symbolique d'une bascule J-K avec les entrées Preset et
Clear.
Pr
J Q
ClK
K Q
Cr
Figure 12
44
IV.4.c Bascule J-K Maître-Esclave
Jusqu'à présent nous avons construit les tables de vérité à partir de la logique
combinatoire qui suppose que les entrées sont indépendantes des sorties. Or dans la bascule J-K
nous avons introduit des connexions d'asservissement entre les entrées et les sorties. Ainsi
supposons qu'avant le signal d'horloge nous avons J = K = 1 et Q = 0 (notations de la figure 11).
Lorsque le signal d'horloge passe à 1 la sortie Q devient 1. Ce changement intervient après un
intervalle de temps t. Nous avons alors J = K = Q = 1. D'après la table 4 nous voyons que la
sortie Q doit alors revenir à 0. Ainsi la sortie Q va osciller entre 0 et 1 pendant toute la durée du
signal d'horloge rendant le résultat ambigu.
Pour éviter ce problème on monte deux bascules R-S en cascade (fig. 13) en asservissant
(traits épais) les entrées de la première (Maître) aux sorties de la seconde (Esclave). D'autre part,
le signal d'horloge parvenant à l'esclave est inversé.
(Q M 1, Q M 0) (S 1, R 0) (Q n 1 1, Q n 1 0)
(Q M 0, Q M 1) (S 0, R 1) (Q n 1 0, Q n 1 1)
L'état de la bascule maître est transféré à la bascule esclave lors de la transition 1 0 (front
descendant) du signal d'horloge.
Pr
QM S
J Q
Clk
K R Q
QM
Cr
Figure 13
45
IV.4.d Bascule D
Une bascule D (Delay) est obtenue à partir d'une bascule J-K en envoyant simultanément
une donnée sur l'entrée J et son inverse sur l'entrée K :
Pr
D J Q
H ClK
K Q
Cr
Figure 14
Ce qui peut se résumer par Qn+1 = Dn. Ainsi l'état de la bascule Q pendant l'intervalle n+1 est
égal à la valeur de l'entrée D pendant l'intervalle n. Une bascule D agit comme une unité à retard
pour laquelle la sortie suit l'entrée avec un cycle de retard. Sa représentation symbolique est
donnée par la figure 15.
Pr
D Q
ClK
Q
Cr
Figure 15
Preset
4
Clear 3 6 Q
H 2 5 Q
1
D
Figure 16
46
Dans ce deuxième type de bascule D c'est la valeur de l'entrée D présente au moment de
la transition 0 1 du signal d'horloge qui est chargée dans la bascule. Ensuite, que H soit égal à
1 ou à 0, la bascule est isolée de l'extérieur jusqu'au prochain front montant du signal H. L'entrée
doit être stabilisée un peu avant la transition de H et conserver cette valeur un certain temps
après.
Considérons le circuit schématisé sur la figure 16, dont la représentation symbolique est
donnée par la figure 17. Notons S1, S2, S3 et S4 les sorties des portes NAND numérotées
respectivement 1, 2, 3 et 4. En fonctionnement normal nous devons avoir Clear = 1 pour ne pas
bloquer les portes 1, 3 et 5 et Preset = 1 pour ne pas bloquer les portes 4 et 6. Pour H = 0 nous
avons S2 = S3 = 1. Considérons maintenant le passage de H à 1.
1er cas : D = 1
Porte 1 : D = S2 = Clear = 1 S1 = 0
Porte 2 : S1 = 0 S2 = 1
Porte 4 : S1 = 0 S4 = 1
Porte 3 : H = S4 = Clear = 1 S3 = 0
Porte 6 : S3 = 0 Q=1
Porte 5 : Q = S2 = Clear = 1 Q0
2ème cas : D = 0
Porte 1 : D=0 S1 = 1
Porte 2 : H = S1 = S3 = 1 S2 = 0
Porte 4 : S1 = S3 = Preset = 1 S4 = 0
Porte 3 : S4 = 0 S3 = 1
Porte 5 : S2 = 0 Q 1
Porte 6 : S3 Pr eset Q 1 Q=0
Dans les deux cas nous vérifions que Q = D. Maintenant considérons une transition de D alors
que le signal H est encore à 1.
Porte 1 : D=0 S1 = 1
Porte 2 : S3 = 0 S2 = 1
Porte 4 : S3 = 0 S4 = 1
Porte 3 : H = S4 = Clear = 1 S3 = 0
47
Porte 6 : S3 = 0 Q=1
Porte 5 : Q = S2 = Clear = 1 Q0
Porte 1 : S2 = 0 S1 = 1
Porte 2 : H = S1 = S3 = 1 S2 = 0
Porte 4 : S1 = S3 = Preset = 1 S4 = 0
Porte 3 : S4 = 0 S3 = 1
Porte 5 : S2 = 0 Q 1
Porte 6 : S3 Pr eset Q 1 Q=0
Dans les deux cas la sortie Q reste inchangée. Etudions maintenant les opérations de Remise à
Zéro et Remise à Un :
Preset = 0 et Clear = 1 :
Preset = 0 S4 = Q = 1
si H = 0 alors S2 = 1
si H = 1 alors H = S4 = Clear = 1 S3 = 0 S2 = 1
Preset = 1 et Clear = 0 :
Clear = 0 S1 S3 Q 1
S3 Q Pr eset 1 Q=0
Pr
D Q
ClK
Q
Cr
Figure 17
48
IV.4.f Bascule T
Pr
T J Q
H ClK
K Q
Cr
Figure 18
Tn Qn+1
1 Qn
0 Qn
Table 7
Pr
T Q
ClK
Q
Cr
Figure 19
49
E0 E1 E2 E3
D Q D Q D Q D Q
W
R
Q0 Q1 Q2 Q3
Figure 20
En synchronisme avec le signal d'écriture W le registre mémorise les états des entrées E0,
E1, E2 et E3. Ils sont conservés jusqu'au prochain signal de commande W. Dans cet exemple les
états mémorisés peuvent être lus sur les sorties Q0, Q1, Q2 et Q3 en coïncidence avec un signal de
validation R.
Dans un registre à décalage les bascules sont interconnectées de façon à ce que l'état
logique de la bascule de rang i puisse être transmis à la bascule de rang i+1 quand un signal
d'horloge est appliqué à l'ensemble des bascules. L'information peut être chargée de deux
manières dans ce type de registre.
- Entrée parallèle : comme dans le cas d'un registre de mémorisation. En général une porte
d'inhibition est nécessaire pour éviter tout risque de décalage pendant le chargement parallèle.
- Entrée série : l'information est présentée séquentiellement bit après bit à l'entrée de la première
bascule. A chaque signal d'horloge un nouveau bit est introduit pendant que ceux déjà
mémorisés sont décalés d'un niveau dans le registre. La figure 21 schématise le chargement d'un
registre 4 bits en quatre coups d'horloge.
a4
a3 a4 top n° 1
a2 a3 a4 top n° 2
a1 a2 a3 a4 top n° 3
a1 a2 a3 a4 top n° 4
Figure 21
50
De même l'information peut être lue en série ou en parallèle. D'autre part, certains
registres peuvent être capables de décaler à gauche et à droite. Un registre à décalage universel
serait donc constitué des entrées, des sorties et des commandes suivantes :
Sorties
parallèles
Sortie série Sortie série
Entrée décalage à gauche décalage à droite
série
Registre à décalage
Validation
entrée série
Horloge Entrées
parallèles
Décalage à droite
ou à gauche
Validation
entrées parallèles
Figure 22
La figure suivante donne un exemple de registre de 4 bits à entrée série et sortie parallèle
réalisé avec des bascules D.
S0 S1 S2 S3
E.S. D Q D Q D Q D Q S.S.
Figure 23
Ce type de registre permet de transformer un codage temporel (succession des bits dans le
temps) en un codage spatial (information stockée en mémoire statique).
La sortie série peut également être utilisée. L'intérêt d'utilisation d'un registre à décalage
en chargement et lecture série réside dans la possibilité d'avoir des fréquences d'horloge
différentes au chargement et à la lecture. Le registre constitue alors un tampon.
51
IV.6.b Entrée parallèle - sortie série
E.S. D Q D Q S.S.
Clk Clk
H
X
E0 E1
Figure 24
Un registre à décalage à entrée parallèle et sortie série transforme un codage spatial en codage
temporel.
Q0 Q1
Pr Pr
E.S. D Q D Q
ClK ClK
Cr Cr
H
E0 E1
Figure 25
52
La commande permet de sélectionner le mode de chargement et d'inhiber le signal
d'horloge en cas de chargement parallèle. Si X = 0 nous avons Pr = Cr = 1, ce qui garantit le
fonctionnement normal des bascules. Si X = 1 alors selon l'état de chacune des entrées nous
avons :
E i 1 (Pr 0, Cr 1) Q i 1
Q i E i
E i 0 (Pr 1, Cr 0) Q i 0
Clk H S0 S1 H (S0 S1 )
S0 S1 S0 S1 1
Pour sélectionner le décalage à droite (entrée E1, sortie QD) il nous faut S0 = 1 et S1 = 0 et pour
le décalage à gauche (entrée E0, sortie QA) S0 = 0 et S1 = 1. Ce que nous pouvons résumer dans
le tableau suivant :
S0 S1 Fonction
0 0 Registre bloqué
0 1 Décalage à gauche
1 0 Décalage à droite
1 1 Chargement parallèle
Table 8
53
E1 A B C D E0
S0
S1
Figure 26
54
S Q S Q S Q S Q
Clk Clk Clk Clk
R Cr R Cr R Cr R Cr
H
Clear
QA QB QC QD
IV.7 Compteurs
Un compteur est un ensemble de n bascules interconnectées par des portes logiques. Ils
peuvent donc mémoriser des mots de n bits. Au rythme d'une horloge ils peuvent décrire une
séquence déterminée c'est-à-dire occuper une suite d'états binaires. Il ne peut y avoir au
maximum que 2n combinaisons. Ces états restent stables et accessibles entre les impulsions
d'horloge. Le nombre total N des combinaisons successives est appelé le modulo du compteur.
On a N ≤ 2n. Si N < 2n un certain nombre d'états ne sont jamais utilisés.
Considérons par exemple (fig. 27) un compteur modulo 8 suivant le code binaire pur
constitué de trois bascules J-K maîtres-esclaves.
Q0 Q1 Q2
J Q J Q J Q
H ClK ClK ClK
K Q K Q K Q
"1"
Figure 27
Supposons les trois bascules à zéro à l'instant t = 0. Nous avons vu que pour une bascule
maître-esclave la sortie change d'état juste après le passage du signal d'horloge de l'état 1 à l'état 0
(front descendant). L'évolution temporelle des trois sorties Q0, Q1 et Q2 par rapport aux
impulsions d'horloge est représentée sur la figure 28. La sortie Q0 bascule sur chaque front
descendant du signal d'horloge. La sortie Q1 change d'état à chaque transition 1 0 de la sortie
Q0. De même le basculement de la sortie Q2 est déclenché par une transition 1 0 de la sortie
Q1.
55
H 1 2 3 4 5 6 7 8
Q0
Q1
Q2
Figure 28
A partir de ce chronogramme nous pouvons écrire la liste des états successifs des trois sorties :
Impulsion Q2 Q1 Q0
état initial 0 0 0
1 0 0 1
2 0 1 0
3 0 1 1
4 1 0 0
5 1 0 1
6 1 1 0
7 1 1 1
8 0 0 0
Table 9
Nous avons réalisé un compteur s'incrémentant d'une unité à chaque top d'horloge, avec un cycle
de huit valeurs de 0 à 7 (modulo 8).
Nous constatons que les sorties Q0, Q1 et Q2 fournissent des signaux périodiques de
fréquences respectivement 2, 4 et 8 plus faibles. La division de fréquence est une des applications
des compteurs.
X = 1 compteur;
X = 0 décompteur.
Qi Q i+1
"1"
X
Figure 29
Pour RAZ : R = 0
Chargement : (DS = 0, R = 1)
Dans ces deux cas nous obtenons Q = D. Nous sommes donc capable de charger chaque bit du
compteur avec une valeur donnée à présenter sur l'entrée D, donc d'initialiser le compteur.
57
Pr
J Q
ClK
K Q
Cr
D.S.
R
D
Figure 30
On peut souhaiter compter jusqu'à un nombre N qui ne soit pas une puissance de 2, par
exemple 10 (système décimal). Pour cela on utilise un compteur de n bascules, tel que 2 n > N. On
lui ajoute un asservissement de l'entrée Clear pour remettre le compteur à zéro tous les N coups.
Considérons par exemple un compteur modulo 10. Nous voulons que l'entrée Clear soit à
0 lorsque le compteur atteint 1010 = 10102. Pour cela nous pouvons écrire l'expression logique :
Cr Q3 Q 2 Q1 Q0
En fait dans ce cas particulier nous pouvons simplifier cette relation logique en ne tenant compte
que des sorties à 1 dans l'expression binaire de N. En effet il ne peut y avoir ambiguïté : toute
combinaison contenant les mêmes sorties à 1 et au moins une autre à 1 correspond à un nombre
plus grand que N et ne peut être rencontrée dans la séquence décrite par le compteur. Pour un
compteur modulo 10 nous pouvons donc utiliser :
Cr Q3 Q1
ce qui nous conduit au schéma suivant :
58
Q0 Q1 Q2 Q3
J Q J Q J Q J Q
H Clk Clk Clk Clk
K Cr K Cr K Cr K Cr
"1"
Figure 31
Q0
Q1
Q2
Q3
Figure 32
Dans un compteur synchrone toutes les bascules reçoivent en parallèle le même signal
d'horloge. Pour faire décrire au compteur une séquence déterminée il faut à chaque impulsion
d'horloge définir les entrées synchrones J et K. Pour cela on utilise la table de transition de la
bascule J-K (table 6). Nous avons déjà remarqué que cette table peut se simplifier. En effet, pour
59
chacune des quatre transitions possibles une seule des entrées J ou K est définie. Rien ne nous
interdit donc de les mettre dans le même état, c'est-à-dire J = K, comme dans une bascule T.
Prenons l'exemple d'un compteur synchrone 3 bits fonctionnant selon le code binaire pur.
Nous pouvons dresser un tableau précisant les valeurs des entrées J et K permettant d'obtenir
chaque transition (passage d'une ligne à la suivante). Pour qu'une bascule change d'état il faut que
ses deux entrées soient à 1.
# top Q2 Q1 Q0 J2 = K2 J1 = K1 J 0 = K0
0 0 0 0 0 0 1
1 0 0 1 0 1 1
2 0 1 0 0 0 1
3 0 1 1 1 1 1
4 1 0 0 0 0 1
5 1 0 1 0 1 1
6 1 1 0 0 0 1
7 1 1 1 1 1 1
8 0 0 0
Table 10
Chaque ligne de cette table correspond à une même tranche de temps. Il est assez facile d'en
déduire les expressions logiques reliant les entrées aux sorties :
J 0 K 0 1
J1 K1 Q 0
J 2 K 2 Q 0 Q1
De manière générale nous pouvons vérifier que les équations de commutation satisfont les
relations de récurrence suivantes :
J 0 K 0 1
J i K i Q 0 Q1 ... Q i 1
ou encore :
J 0 K 0 1
J i K i J i 1 Q i 1
Procédons de même pour réaliser un décompteur, nous écrivons la table des transitions
recherchées :
# top Q2 Q1 Q0 J2 = K2 J1 = K1 J 0 = K0
0 1 1 1 1 1 1
1 1 1 0 0 0 1
2 1 0 1 0 1 1
3 1 0 0 0 0 1
60
4 0 1 1 1 1 1
5 0 1 0 0 0 1
6 0 0 1 0 1 1
7 0 0 0 0 0 1
8 0 0 0
Table 11
J 0 K 0 1
J1 K 1 Q 0
J 2 K 2 Q 0 Q1
Nous constatons que les équations de commutation sont identiques en utilisant cette fois les
sorties complémentaires Q .
Aux deux manières d'exprimer les relations de récurrence des équations de commutation
correspondent deux types de circuits. Le premier (fig. 33) est dit à report parallèle, le second
(fig. 34) à report série. Dans le report série on utilise la fonction J i-1. On évite ainsi des portes à
multiples entrées. Par contre, il faut tenir compte du retard dans l'établissement de J i-1. Il faut
donc que la largeur des impulsions d'horloge soit assez grande et la vitesse maximum de
fonctionnement sera plus faible que pour le report parallèle.
Les deux schémas présentés sur les figures 33 et 34 correspondent à des compteurs-décompteurs
(X = 0 compteur, X = 1 décompteur).
J Q J Q J Q J Q
"1" Clk Clk Clk Clk
K Q K Q K Q K Q
Figure 33
61
X
J Q J Q J Q J Q
"1" Clk Clk Clk Clk
K Q K Q K Q K Q
Figure 34
62