Cours Gabon
Cours Gabon
Cours Gabon
ARCHITECTURE DES
SYSTEMES
INFO-SUP
F. GABON
Sommaire
SYSTEMES DE NUMERATION..................................................................................................... 7
I. MULTIPLEXEUR...................................................................................................................................................35
II. DECODEUR ........................................................................................................................................................36
III. DEMULTIPLEXEUR ...............................................................................................................................................36
IV. EXERCICES : MULTIPLEXAGE, DECODAGE ET DEMULTIPLEXAGE .......................................................................................37
V. EXERCICES : DECODAGE D'ADRESSES (SIMPLIFIE) D'UN SYSTEME INFORMATIQUE ...............................................................39
VI. EXERCICES : UNITE LOGIQUE ..................................................................................................................................40
I. INTRODUCTION...................................................................................................................................................41
II. LES BASCULES RS ASYNCHRONES ............................................................................................................................42
III. LES BASCULES RS SYNCHRONES ..............................................................................................................................44
IV. LES BASCULES D..................................................................................................................................................46
V. LES BASCULES JK.................................................................................................................................................47
VI. EXERCICES : LES BASCULES RS ASYNCHRONES ............................................................................................................48
VII. EXERCICES : LES BASCULES RS SYNCHRONES ..............................................................................................................49
VIII. EXERCICES : LES BASCULES D..................................................................................................................................51
IX. EXERCICES : LES BASCULES JK.................................................................................................................................53
LES COMPTEURS.......................................................................................................................... 55
I. INTRODUCTION...................................................................................................................................................55
II. LES COMPTEURS ASYNCHRONES .............................................................................................................................55
III. LES DECOMPTEURS ASYNCHRONES ..........................................................................................................................56
IV. LES COMPTEURS SYNCHRONES ...............................................................................................................................58
V. EXERCICES : LES COMPTEURS ASYNCHRONES .............................................................................................................60
VI. EXERCICES : LES COMPTEURS SYNCHRONES ...............................................................................................................62
I. PRESENTATION ...................................................................................................................................................63
II. APPLICATIONS ....................................................................................................................................................63
III. EXERCICES : REALISATION D'UN REGISTRE A DECALAGE ................................................................................................64
IV. EXERCICES : INTRODUCTION AU TRAITEMENT SEQUENTIEL ............................................................................................65
CORRECTION ................................................................................................................................ 66
1. Livres
2. Sites WEB
I. PORTES LOGIQUES
n entrées d’adresses affectées d’un poids (c.à.d. formant un nombre binaire) : N …. CBA
2n entrées de données : E0 …. E 2n 1
1 sortie : S telle que si (N …. CBA)2 = i10 alors S = Ei
n entrées d’adresses affectées d’un poids (c.à.d. formant un nombre binaire) : N …. CBA
2n sorties : Y0 …. Y2n 1 telles que si (N …. CBA)2 = i10 alors seule la sortie Yi est activée
V. BASCULES
- état actif sur l'une des entrées : la sortie Q se met dans l'état demandé.
- aucun état actif : aucun changement : état mémoire
- état actif sur les deux entrées : état interdit
L’état présent sur l'entrée D au moment du front (ou pendant l'état actif de l'entrée
d'horloge) est recopié sur la sortie Q (sauf si l'une des entrées de forçage à 0 ou à 1 est
active)
3) bascules JK
Les changements d'état des sorties se font (éventuellement)au moment du front (sauf
si l'une des entrées de forçage est active : voir ci-dessous)
VI. SYNCHRONISATION
Il existe 3 façons différentes de synchroniser les changements d’état des sorties par rapport à
l’entrée d’horloge.
1) Synchronisation sur niveau (ou "état") qui peut être haut (= 1) ou bas (= 0).
Tant que l’horloge est dans l’état actif ("1" en général), les sorties "réagissent"
immédiatement aux changements d'état des entrées.
L’état actif (en général 0) sur l’une des 2 entrées de forçage fait immédiatement passer la
sortie Q dans l’état demandé, sans tenir compte de l’horloge.
Quand on voit le nombre 537, on sait que le chiffre 5 correspond aux centaines, le chiffre 3 aux
dizaines et le chiffre 7 aux unités.
On peut écrire ce nombre sous la forme d'un polynôme : 537 = 5.102 + 3.101 + 7.100.
La base dans lequel ce nombre est écrit est la base 10 car nous avons … 10 doigts (si, si …)
En base 10, il existe 10 symboles (appelés chiffres) de 0 à 9.
Le rang d'un chiffre est par définition sa position dans le nombre en partant du rang 0 et en
commençant par le chiffre de droite (celui des unités)
Dans l'exemple ci-dessus, le rang de 7 est 0, celui de 3 est 1 et celui de 5 est 2.
Mais, vu sa place, le chiffre 5 "pèse" plus lourd que le chiffre 7 bien que sa valeur propre
soit plus petite.
Le poids d'un chiffre x est la base élevée à la puissance de son rang : poids (x) = 10 rang(x).
Le chiffre de droite s'appelle le chiffre de poids faible (pf) et celui de gauche le chiffre de
poids fort (PF).
n
Généralisation à un nombre de n + 1 chiffres : N a i .10i avec ai {0, 1, 2, 3, 4, 5, 6, 7, 8, 9}
i 0
Si l'on n'avait que 8 doigts, on ne compterait sûrement pas en base 10 mais en base 8, on parlerait de
"huitaines" de "soixante-quatraines" etc…, il n'y aurait que 8 symboles (de 0 à 7) et le poids d'un
chiffre x vaudrait 8 rang(x) mais, à cela près, toutes les définitions resteraient identiques.
n
On peut donc écrire de façon générale : N a i .b i avec ai {0, 1, 2, … (b-1)}
i 0
Un symbole devant correspondre à un chiffre, si la base est supérieure à 10, on prendra par
convention comme symboles supplémentaires les lettres majuscules de l'alphabet en commençant
par A.
La base 2 : le système est dit binaire (chaque chiffre binaire 0 ou 1 est appelé BIT de
l'anglais BInary digiT)
La base 8 : le système est dit octal
La base 16 : le système est dit hexadécimal
La base se note en indice après le nombre. Toutefois on peut ne pas la noter en bases 2, 10 ou 16, à
condition qu'il n'y ait aucun risque d'erreur.
ex : 100 est ambigu (10010 ou 1002 soit 410) sauf si le contexte est évident.
A16 = 1010 ; B16 = 1110 ; C16 = 1210 ; D16 = 1310 ; E16 = 1410 ; F16 = 1510
ex : 5378 = 5.82 + 3.81 + 7.80 ; 53712 = 5.122 + 3.121 + 7.120 ; 11012 = 1.23 + 1.22 + 0.21 + 1.20
mais 53676 est incorrect à cause du 6 et du 7 qui ne peuvent pas exister en base 6.
Il suffit d'utiliser la forme polynomiale vue ci-dessus, de remplacer éventuellement les lettres par
leurs valeurs décimales et d'effectuer l'addition.
ex : 5378 = 5.82 + 3.8 + 7 = 5.64 + 3.8 + 7 = 35110 ABF16 = 10.162 + 11.16 + 15 = 275110
351 / 8 = 43 reste 7
43 / 8 = 5 reste 3 35110 = 5378 … comme on s'y attendait !
5 /8 =0 reste 5
Cette règle, appliquée à la conversion en binaire des nombres décimaux de 0 à 15 donne les
résultats suivants qu'il faut connaître par cœur car ils seront très utilisés.
Attention : chaque chiffre octal devra être écrit avec 3 bits, et chaque chiffre hexadécimal devra
l'être avec 4.
Rem : les 0 à gauche peuvent être omis mais le 0 de rang 1 dans 3506 se code sur 3 "0" binaires si
le nombre était en octal et sur 4 "0" si le nombre était en hexadécimal.
Pour convertir un nombre binaire en octal ou hexadécimal, on découpe les bits par paquets
de 3 (pour l'octal) ou de 4(pour l'hexadécimal) … en partant de la droite!
Ex : 11|100|101|110|011|000|0112 = 34563038
mais le même nombre binaire donne en base 16 : 1110|0101|1100|1100|00112 = E5CC316
Ces transformations rapides sont pratiques et très utilisées en particulier quand on programme en
assembleur.
La seule solution est de passer par le décimal sauf si les 2 bases sont des puissances de 2 ; dans ce
cas, il est plus simple de passer par le binaire comme il a été vu ci-dessus.
Architecture EPITA INFO-SUP F. Gabon 9
IV. Changements de base (nombres fractionnaires)
1. Conversion d'un nombre en base quelconque vers la base 10
Pour la partie entière, on procède comme pour les nombres entiers par divisions successives.
Multiplier la partie fractionnaire du nombre décimal par la base dans laquelle on veut la
convertir.
Répéter l'opération pour atteindre la précision voulue.
Ecrire toutes les parties entières dans l'ordre dans lequel on les a obtenues.
Si la base d'arrivée est > 10, convertir les parties entières > 9 en lettres.
Vérification : si l'on retransforme 0,74268 en décimal on obtient 0,9429 soit pratiquement 0,943
Si l'on s'était contenté de 3 chiffres après la virgule (soit 0,742) on aurait obtenu 0,9414
On voit que plus la base est petite, plus il faut de décimales pour conserver la précision initiale.
En base 10, 3 chiffres après la virgule correspondent à une précision de 1/10 3 soit 0,001.
En base 8, 3 chiffres après la virgule correspondent à une précision de 1/8 3 soit 0,002.
Si l'on veut convertir un nombre décimal en binaire avec une précision du millième, il faut aller
jusqu'à 10 chiffres binaires après la virgule (en effet 1/2 10 = 1/1024 0,001).
De façon générale, les règles habituelles utilisées en décimal ne changent pas mais bien sur il faut
tenir compte de la base de travail :
Jusqu'ici, nous n'avons traité que les nombres positifs et on pourrait imaginer de traiter les nombres
négatifs en mettant un signe moins devant comme d'habitude mais l'informatique, qui ne connaît
que les 1 et les 0, traite différemment les nombres négatifs.
1. Complément à 1
En décimal, on forme le complément à 10 d'un nombre en remplaçant le chiffre des unités par sa
différence avec 10 et les autres chiffres de ce nombre par leur différence avec 9.
On peut aussi dire que le complément à 10 d'un nombre s'obtient en le soustrayant de la puissance
de 10 immédiatement supérieure à ce nombre : en effet 3527 = 10000 - 6473
On peut aussi dire que le complément à 2 d'un nombre s'obtient en le soustrayant de la puissance de
2 immédiatement supérieure à ce nombre : en effet 00110 = 100000 - 11010
Une astuce permet d'éviter cette addition : pour obtenir le complément à 2 d'un nombre, on part de
la droite (le poids faible), on conserve tous les "0" ET le 1er "1" que l'on rencontre, puis on inverse
tous les bits en allant vers la gauche (s'il y a un "1" en poids faible, c'est le seul bit qui ne change
pas !).
a) En décimal
Comme 568 = 1000 – 432, on peut écrire 742 – 568 = 742 – (1000 – 432) = 742 + 432 – 1000 = 174
Au lieu de soustraire 1000, il aurait suffit de négliger la dernière retenue dans le résultat.
b) En binaire
Comme l'ordinateur ne comprend pas les signes + et -, on va les représenter par un bit de la façon
suivante :
On commence par normaliser la taille à un nombre précis de bits par exemple 8 soit un octet.
On décide que le bit de gauche sera égal à 0 si le nombre est positif ou nul et à 1 si le nombre est
négatif. Ce bit est appelé bit de signe et les nombres codés ainsi s'appellent nombres signés.
Ex : 68 = 0100 0100 ; - 67 : |- 67| = 0100 0011 donc – 67 = C2(0100 0011) = 1011 1101
ex : 0111 0100 = 116 ; 1010 0010 : le bit de signe = 1 : le nombre est négatif : on en prend le
complément à 2 soit 0101 1110. On le convertit en décimal soit 94.
Donc 1010 0010 = - 94
c) Limites
Comme on s'est limité à 8 bits, on ne pourra coder en binaire que 256 valeurs différentes.
En nombres non signés (donc exclusivement positifs) on pouvait aller de 0 10 (= 0000 00002)
à 25510 (= 1111 11112) soit 256 valeurs en tout car 256 = 28.
En nombres signés, le plus grand nombre commençant par un 0 (donc positif) est 0111 1111 = 127
Le nombre binaire suivant est 1000 0000 mais, comme il commence par un 1, il doit être considéré
comme négatif : pour trouver sa valeur décimale, on en prend le complément à 2 soit 1000 0000
(c'est le même !) qui, converti en décimal, donne 128.
128 est donc la valeur absolue de 1000 0000 et on obtient en définitive 1000 0000 = - 128
Sur un octet les 256 valeurs codables en nombres signés vont donc de – 128 à + 127.
En nombres signés sur n bits, on peut coder les nombres de – 2 n-1 à 2 n-1 – 1.
base 10 base 2 base 16 On constate que les valeurs positives sont codées
127 0111 1111 7F en hexadécimal de 00 à 7F et que les valeurs 8016
126 0111 1110 7E correspondent à des nombres négatifs.
2 0000 0010 02
1 0000 0001 01
0 0000 0000 00
-1 1111 1111 FF
-2 1111 1110 FE
-127 1000 0001 81
-128 1000 0000 80
Puisqu'on sait maintenant noter les nombres négatifs, on peut effectuer la soustraction x – y avec
x < y : le résultat est négatif, son bit de signe est à 1 et il suffit de le convertir comme vu ci-dessus.
Ex : 0011 11 00 – 0101 0101 = 0011 1100 + 1010 1011 = 1110 0111 qui correspond à un nombre
négatif à cause du 1 de gauche.
Pour calculer sa valeur décimale, on en prend le complément à 2 soit 0001 1001 et on le
convertit en décimal soit 25. Le résultat de la soustraction est donc – 25.
Attention : dans la mesure où les nombres sont codés sur 8 bits, le résultat doit rester compris dans
l'intervalle – 128 … + 127. Un dépassement doit générer une erreur.
Jusque là, nous avons travaillé avec le code binaire dit naturel qui est le plus simple et le plus
pratique pour effectuer des opérations arithmétiques, mais, en informatique, il existe différentes
façons de représenter les nombres selon les besoins et les contraintes. Nous allons en voir quelques
unes.
1. Code Gray
En code binaire naturel, quand on passe de 7 à 8, donc de 0111 à 1000, les quatre bits changent à la
fois. Cela peut être gênant car les changements ne sont jamais totalement simultanés et de très
faibles écarts peuvent entraîner des erreurs. Le code Gray élimine ce risque car, dans ce code, un
seul bit change à la fois entre deux valeurs consécutives. On parle alors de code à distance unité.
On l'appelle aussi code réfléchi car sa construction s'opère par réflexion au sens géométrique du
terme, c'est à dire par "pliage" autour d'un axe de réflexion.
Pour l'affichage des nombres, le code binaire naturel n'est pas pratique : en effet 13 10 se code en
binaire naturel 1101 mais pour l'afficher par exemple sur une calculatrice, il faut séparer le 1 du 3 et
envoyer chaque chiffre sur l'afficheur à cristaux liquides correspondant.
D'où l'idée qui consiste à coder chaque chiffre décimal sur 4 bits : c'est le code BCD. C'est le même
que le code binaire naturel mais il s'arrête à 9.
Pour coder 1310, on code le 1 puis le 3 sur 4 bits : 1310 = 0001 0011 en BCD
Rem : les "0" apparaissent même en poids fort car chaque chiffre décimal doit être codé sur 4 bits.
Ex : a = 0110 0001 ; A = 0100 0001 ; 0 = 0011 0000 ; ESC(ape) = 0001 1011 etc…
4. Autres codes
Les codes détecteurs d'erreurs ou détecteurs et correcteurs d'erreurs sont très utilisés dans les
transmissions.
2) Convertir les nombres ci-dessous (donnés en base 10) dans la base indiquée
194 en base 2 ; 254 en base 2 ; 687 en base 16 ; 3021 en base 16 ; 1234 en base 8
5) Déterminer les plus petites bases possibles (a et b) pour que les égalités ci-dessous soient vraies.
6) Prouver que 1331 est un cube dans toute base supérieure à 3. Quel est le plus petit cube
répondant à cette définition (exprimé en décimal) ?
Pourquoi faut-il garder 7 chiffres après la virgule pour convertir (42,42) 10 en binaire ?
(11011000110,001011011)2 16 ; (1011110100,1110111)2 8
en binaire
10101010 + 11001110 ; 110111 + 101110 + 110011 ; 1110011 + 1111111 + 1101011 + 101110
en octal (base 8) : 465 + 673 ; 276 + 653 + 25
en hexadécimal (base 16) : B796 + CAFE ; 8965 + 3979 ; 324 + 697 + B2A
101100 / 101 (5 chiffres après la virgule) ; 101011010 / 1101 (4 chiffres après la virgule)
5) a) Combien peut-on écrire de nombres différents sur 1bit, 2 bits, 3 bits, n bits ?
b) Une mémoire comporte 13 fils d'adresses (chacun d'entre eux pouvant être à 0 ou 1)
Quelle est sa capacité mémoire ? Exprimer le résultat en puissance de 2, en décimal puis en
hexadécimal (sans effectuer la division par 16)
Si l'adresse basse est 0, quelle sera l'adresse haute (en hexa) ?
d) Un système informatique comporte 4 mémoires (M1, M2, M3 et M4), les 2 premières ayant 13
fils d'adresses, les 2 dernières ayant 15 fils d'adresses. Elles sont rangées par ordre croissant,
l'adresse basse de la première étant 0.
Donner dans un tableau les adresses basses et hautes de chaque mémoire.
Quelle est la capacité mémoire totale de ce système ?
Combien de fils d'adresses sont nécessaires en tout sur le microprocesseur qui gère ce système ?
6) On veut mémoriser une longueur L pouvant varier de 0 à 15 cm. Pour cela on utilise un capteur
qui la transforme en une tension proportionnelle à L puis un convertisseur analogique
numérique qui la transforme en un nombre binaire codé sur n bits : ce nombre binaire pourra
donc être mis en mémoire.
a) Combien de bits seront nécessaires pour mesurer cette longueur avec une précision au
moins égale à 0, 1 mm ?
b) Quelle est la précision exacte obtenue ? (en mm)
c) Quelle est la relation entre L et le nombre mémorisé x noté en décimal ?
d) Par quel nombre est codée une longueur de 10 cm ? (en décimal, hexa et binaire)
(arrondir à la valeur entière la plus proche)
e) Quelle longueur est codée par le nombre (72C)16 ?
1) a) Coder les nombres suivants en binaire signé (sur 1 octet y compris le bit de signe)
-1 ; -29 ; -40 ; -127 ; -128
b) Si on écrit les nombres signés en hexa, à quelles plages de valeurs correspondent les
nombres positifs et les nombres négatifs ?
b) Si l'on effectue une addition entre 2 nombres signés et que le résultat doit lui aussi tenir
sur 8 bits, quels sont les résultats faux (qui dépassent les valeurs limites) ?
Par quelle comparaison entre les bits de signe des 2 nombres et celui du résultat peut-on
détecter cette erreur (dite "dépassement de capacité" à ne pas confondre avec le bit de
débordement qui serait le 9ème bit) ?
3) Le code Gray
a) Ecrire en code Gray les nombres de 0 à 15 et en déduire le code Gray de 17, 24, 31.
On veut coder Xb = (bn bn-1 bn-2 … b1 b0)2 en code Gray : soit Xg = (gn gn-1 gn-2 … g1 g0)G.
Appliquer la règle suivante : gn = bn ; gn-1 = 0 ssi bn = bn-1 ; gn-2 = 0 ssi bn-1 = bn-2 ; …
g0 = 0 ssi b1 = b0 (autrement dit, on compare donc 2 bits consécutifs : s'ils sont égaux on note
"0", sinon on note "1"). Ex : 11001011B donne 10101110G
On compte le nombre de 1 à partir du poids fort jusqu'au bit dont on veut la valeur binaire :
si ce nombre est pair on note 0 sinon 1. Ex : 1011 en Gray donne 1101 en binaire.
Cette algèbre est, de plus, munie de 3 opérateurs NON, ET et OU que nous allons définir.
De même qu'en mathématiques, l'application d'opérateurs à ces variables donne des fonctions qui
sont elles aussi booléennes dans la mesure où elles ne peuvent prendre que les valeurs 0 ou 1.
I. Opérateurs de base
1. Généralités
Les opérateurs sont définis de façon conventionnelle par une "table de vérité", c'est à dire un tableau
qui donne la valeur de la fonction en fonction de l'état de la (ou des) variable(s) d'entrée.
S'il n'y a qu'une seule variable d'entrée, deux cas sont possibles (0, 1) et la table de vérité
comprendra 2 lignes.
S'il y a 2 variables d'entrée, quatre cas sont possibles (00, 01, 10, 11) et la table de vérité
comprendra 4 lignes.
De façon générale, s'il y a n variables d'entrées, la table de vérité comprendra 2 n lignes.
Dans les tables de vérité, il est d'usage de représenter les différents cas possibles les uns en dessous
des autres en utilisant l'ordre binaire naturel vu précédemment.
Les opérateurs sont représentés par un schéma en forme de rectangle qui contient un symbole
significatif de l'opérateur considéré et qui se lit de gauche à droite : la ou les entrées sont notées à
gauche du rectangle et la sortie à droite.
On les appelle souvent "portes logiques" car ils peuvent laisser passer une information ("porte
ouverte") ou l'empêcher de passer ("porte fermée").
X Y
0 1 X 1 Y
1 0
Table de vérité Symbole
On voit dans la table de vérité que si X = 1, Y = 0 et réciproquement. Cet opérateur est parfois
appelé inverseur, il effectue le complément à 1 d'une variable d'entrée.
On dit Y = NON X ou X barre car on note la complémentation par une barre au dessus de la
variable que l'on veut complémenter : Y X
Nous allons profiter de cet opérateur (le plus simple qui existe) pour définir sur un plan électrique
ce qu'on appelle des 0 et des 1.
Pour pouvoir fonctionner, ces composants sont alimentés en énergie par une … "alimentation" qui
transforme la tension alternative du secteur (220 V à 50 Hz) en une tension continue.
Une technologie un peu ancienne mais encore utilisée s'appelle la technologie TTL pour Transistor
Transistor Logic et nous allons la prendre pour exemple.
Dans celle-ci, la tension d'alimentation est fixée à 5 V, c'est à dire que les C.I. sont alimentés par
une tension de 5 V sur leur borne + par rapport à leur borne – qui est reliée à la masse.
En logique dite "positive", un niveau 1 logique correspond à une tension de 5 V par rapport à la
masse et un niveau 0 logique correspond à une tension de 0 V par rapport à la masse.
(La logique dite "négative" correspond à l'inverse mais elle est moins utilisée et nous la laisserons
de coté)
Cela donne un schéma complet faisant apparaître l'alimentation et les niveaux de tension :
5V
X = 1 VX = 5 V
X = 0 VX = 0 V X
1
Y
Y = 1 VY = 5 V
VX VY
Y = 0 VY = 0 V
Rem : on peut aussi faire une analogie avec des circuits électriques formés uniquement
d'interrupteurs dans lesquels le courant passe ou non selon qu'ils sont fermés ou ouverts,
mais, en architecture des systèmes informatiques, on utilise plutôt les niveaux de tension.
Dans les schémas usuels, l'alimentation et les tensions ne sont pas représentées.
Seuls apparaissent les noms des variables logiques et leurs valeurs logiques (0 ou 1) mais
n'oubliez pas que "derrière" tout cela il y a bien des Volts et des Ampères !
X Y S
0 0 0 X
0 1 0 & S
Y
1 0 0
1 1 1
Dès, qu'une entrée est nulle, la sortie est nulle, ou, si l'on veut le dire autrement, il faut que les
2 entrées soient à 1 pour que la sortie soit à 1.
C'est l'équivalent du produit en mathématiques : dès qu'un facteur est nul, le produit est nul.
C'est pour cela qu'on peut remplacer le mot ET par un point ou même l'omettre complètement.
X Y S
0 0 0 X
0 1 1 1 S
Y
1 0 1
1 1 1
Le symbole 1dans le rectangle rappelle que S = 1 dès que le nombre d'entrées à 1 est 1.
Dès, qu'une entrée est à 1, la sortie est à 1, ou, si l'on veut le dire autrement, il faut que les 2
entrées soient nulles pour que la sortie soit nulle.
5. Propriétés
Les opérateurs vus ci-dessus respectent les lois suivantes, qu'il est facile de vérifier par induction
parfaite, c'est à dire en vérifiant tous les cas possibles à partir des tables de vérité.
Rem : comme en math, le produit a priorité sur la somme, ce qui permet d'éliminer des parenthèses.
a) Fermeture
(X.Y) et (Y + Y) sont des variables booléennes.
b) Commutativité
X.Y = Y.X X+Y=Y+X
c) Associativité
X.(Y.Z) = (X.Y).Z = X.Y.Z X + (Y + Z) = (X + Y) + Z = X + Y + Z
g) Identités remarquables
1.X = X 0.X = 0 1+X=1 0+X=X
Toutes ces formules permettent déjà de simplifier des fonctions logiques, c'est à dire d'éliminer au
maximum les opérateurs logiques (sans bien sur modifier la fonction initiale !)
Nous pourrons même simplifier encore la fonction S quand nous aurons vu quelques autres
formules un peu plus "puissantes" que celles vues ci-dessus.
Ces opérateurs peuvent être formés à partir des opérateurs de base mais ils existent déjà en tant que
circuits intégrés et permettent le plus souvent de simplifier des systèmes informatiques.
En particulier, les 2 premiers cités (le NAND et le NOR) sont appelés portes universelles car ils
permettent de recréer n'importe quelle autre porte en les associant entre eux.
X Y S
0 0 1 X
0 1 1 & S
Y
1 0 1
1 1 0
Dès, qu'une entrée est nulle, la sortie est à 1, ou si l'on veut le dire autrement, il faut que les 2
entrées soient à 1 pour que la sortie soit nulle.
X Y S
0 0 1 X
0 1 0 1 S
Y
1 0 0
1 1 0
Dès, qu'une entrée est à 1, la sortie est nulle, ou si l'on veut le dire autrement, il faut que les 2
entrées soient nulles pour que la sortie soit à 1.
X Y S
0 0 0
X S
0 1 1 =1
Y
1 0 1
1 1 0
La sortie est à 1 si l'une des 2 entrées (mais pas les 2) est à 1 ou si l'on veut le dire autrement,
la sortie est à 1 si les 2 entrées ne sont pas dans le même état.
Rem : avec des NON, des OU et des ET le OU exclusif s'écrit S X.Y X.Y
et il faut le repérer dans une équation pour pouvoir remplacer cette formule un peu
compliquée (2 NON, 2 ET et 1 OU) par un simple OU exclusif.
L'intérêt de ces formules est aussi technique : il est plus simple dans un système informatique
d'utiliser une seule porte NAND (ou NOR) plutôt que 2 inverseurs plus une porte OU (ou ET) pour
réaliser la même fonction.
Formule N° 1 : X + X.Y = X : dans une somme, on peut éliminer tous les multiples d'un
terme fondamental.
Rem : cette formule est à retenir car on ne la retrouve pas facilement comme la précédente :
en effet la distributivité du OU sur le ET n'est pas intuitive.
Démonstration : on peut toujours multiplier une variable par 1 sous la forme X X soit :
X.Y X.Z Y.Z X.Y X.Z Y.Z.(X X) X.Y X.Z Y.Z.X Y.ZX X.Y X.Z
car le 3ème terme est un multiple du 1er et le 4ème est un multiple du 2ème (formule N°1).
Des égalités logiques restent vraies si l'on remplace les 1 par des 0, les ET par des OU et
réciproquement.
Le but de l'architecture des systèmes c'est de construire des systèmes à base de composants logiques
qui "répondent à la demande", c'est à dire qui effectuent bien le travail (= la ou les fonctions)
demandé dans le cahier des charges. Ces systèmes doivent bien sur fonctionner correctement mais,
de plus, ils doivent être optimisés, autrement dit, ils doivent utiliser le moins possible de
composants logiques car ceux-ci coûtent cher, tiennent de la place sur les circuits imprimés,
consomment du courant, tombent parfois en panne …
Traduire le problème donné dans une table de vérité de même qu'en math on traduit par une
équation ou un système d'équations un problème énoncé en français.
Déduire de cette table de vérité l'équation de la sortie en fonction des entrées, de même
qu'en math on résout l'équation ou le système d'équations.
C'est seulement en respectant ces 3 étapes que l'on peut être assuré
d'arriver à une solution du problème CORRECTE et OPTIMALE !
Le plus simple est d'étudier un exemple concret :
Sur un pétrolier, la cale comprend 3 soutes à pétrole (A, B et C). Elles sont remplies de façon
indépendante les unes des autres. Quand le remplissage est terminé, un voyant V doit s'allumer si
l'assiette du bateau est correcte, c'est à dire si le pétrole est correctement réparti dans les soutes.
Des capteurs testent le remplissage complet de chaque soute.
L'assiette est correcte si les 3 soutes sont vides ou si elles sont toutes les 3 remplies ou si seule B est
remplie ou si seules A et C sont remplies.
Le système comporte 3 entrées : il existe 23 cas possibles soit 8 cas : la table de vérité aura 8 lignes
A ce stade, on est sur que le problème est traité de façon exhaustive et correcte, c'est à dire qu'on n'a
oublié aucun cas de figure et qu'on répond bien au cahier des charges (si la table est bien remplie !)
Architecture EPITA INFO-SUP F. Gabon 25
2. 2ème étape : détermination de l'équation de V en fonction de a, b et c.
En remplaçant les "et" et les "ou" par leurs symboles logiques, on obtient l'équation suivante :
V a.b.c a.b.c a.b.c a.b.c
Si l'on s'arrêtait là, il faudrait 3 portes NON, 4 portes ET à 3 entrées et 1 porte OU à 4 entrées ce qui
serait un peu compliqué.
a) Méthode algébrique
On peut factoriser les 2 1ers termes par a.c et les 2 derniers par a.c, soit :
V a.b.c a.b.c a.b.c a.b.c (a.c)(b b) (a.c)(b b) a.c a.c
On est sur maintenant d'avoir trouvé la solution optimale car on ne peut pas simplifier plus cette
équation.
Rem : dans un cas simple comme celui-ci, la solution était évidente : pour que le bateau soit
équilibré, il suffit que les 2 soutes extrêmes (A et C) soient toutes les 2 vides ou pleines.
Mais la solution d'un problème n'est pas toujours aussi évidente...
Le tableau de Karnaugh est une façon différente de présenter la table de vérité. Il utilise le code
Gray dans lequel une seule variable change à la fois entre 2 valeurs consécutives.
L'ordre des colonnes (de gauche à droite) correspond bien au code Gray : 00, 01, 11, 10.
Rem : - on garde le même ordre que dans la table de vérité : c, b, a de gauche à droite.
- S'il y avait 4 variables, on aurait dessiné un tableau carré de 4 colonnes sur 4 lignes et on
aurait respecté pour l'ordre des lignes le code Gray comme pour les colonnes.
On remplit le tableau en reportant dans les cases correspondantes les valeurs de la table de vérité, ce
qui donne le résultat suivant.
Dans le tableau ci-dessus, les deux 1 du bas sont bien adjacents : on peut les regrouper dans une
"bulle" de 2 cases et on constate que, dans cette "bulle", les variables a et c ne changent pas et
restent à 1, par contre la variable b passe de 0 à 1.
On oublie donc la variable b qui change et l'équation de V contiendra a.c (car a = c = 1)
Les deux 1 du haut ne sont apparemment pas dans des cases adjacentes mais il faut voir le tableau
comme s'il était enroulé sur un cylindre : les colonnes de droite et de gauche sont aussi considérées
comme adjacentes. Donc on peut regrouper ces deux 1 dans une seule bulle (indiquée sur la figure).
Dans cette "bulle", a et c ne changent pas et restent à 0, par contre b change.
On oublie donc la variable b qui change et l'équation de V contiendra a.c (car a = c = 0)
On a obtenu directement l'équation la plus simple possible sous la forme d'une somme de
produits.
Considérons seulement les deux 1 du bas : si l'on n'avait pas regroupé les 2 cases on aurait écrit :
a.b.c a.b.c puis mis a.c en facteur soit a.c.(b b) . Comme b b 1 , il reste bien a.c
La même opération avec les deux 1 du haut aurait donné a.c
On voit que le regroupement de cases adjacentes dans des "bulles" remplace automatiquement la
simplification par X X (même si X contient plusieurs autres variables).
Remarques
Dans un tableau carré de 16 cases les lignes du haut et du bas sont aussi considérées comme
adjacentes. On considère donc le tableau enroulé sur un tore (un pneu si vous préférez !)
Prenons un exemple concret : on veut concevoir un circuit tel que sa sortie S = 1 si un chiffre N
codé en BCD est un multiple de 3. Autrement dit on veut que S = 1 si N = 3, 6 ou 9. Il faut bien 4
bits pour coder les chiffres de 0 à 9 mais le cas où N > 9 ne se produira pas et toutes les
combinaisons depuis 10 (10102) jusqu'à 15 (11112) ne seront jamais présentes à l'entrée du circuit.
Comme on note seulement les lignes pour lesquelles S = 1, cela revient à considérer que, pour les
lignes 10 à 15, S = 0 : cela n'était pas obligatoire puisque ces cas ne se produiront pas.
Si l'on utilise le tableau de Karnaugh, on peut mettre des X dans ces cases puisque le résultat est
indifférent :
L'intérêt est que, pour agrandir les bulles où il y a DEJA des 1, on peut englober
les cases contenant des X et ainsi simplifier encore plus l'équation de la sortie.
S B A En partant du tableau de Karnaugh, on obtient :
00 01 11 10
00 0 0 1 0 S D.AC.B.A C.B.A D.A B(C A)
DC 01 0 0 0 1
11 X X X X
10 0 1 X X
On constate que la 2ème expression de S est nettement plus simple que la 1ère : dans les cas où
N < 10, elle donnera les mêmes résultats. Dans les cas où N > 10, elle ne donnera pas les mêmes
résultats mais ces cas ne se produisant pas, cela ne nous gène pas.
Conclusion
Dans le cas des tables de vérité incomplètes, on voit bien qu'il est beaucoup plus intéressant
d'utiliser les tableaux de Karnaugh que les simplifications algébriques à partir des tables de vérité :
celles-ci ne nous auraient pas permis de voir que certaines cases contenant des X permettaient
d'agrandir les bulles où il y a déjà des 1 et donc de simplifier l'équation de la sortie (et il n'y a aucun
autre moyen de voir quelles cases sont intéressantes seulement à partir de la table de vérité).
Les portes logiques actuelles ainsi que tous les circuits intégrés sont réalisés à partir de transistors
gravés sur une puce de silicium et la technologie en est assez complexe mais on peut en donner un
équivalent électrique simple à partir de diodes et de transistors.
Pour comprendre comment on réalise des portes à base de diodes, il faut comprendre comment
fonctionne … une diode en commutation !
Une diode en commutation est équivalente à un interrupteur ouvert ou fermé selon le sens du
courant : si le courant peut passer dans le sens de la flèche, c'est à dire de l'anode vers la cathode
(de gauche à droite sur le schéma ci-dessous), alors l'interrupteur est fermé : I > 0 et U = 0 (la diode
est dite passante). Sinon l'interrupteur est ouvert : I = 0 et U < 0 (la diode est dite bloquée).
En fait, pour que la diode soit passante (interrupteur fermé) il faut que U soit au moins égale à 0,6 V
pour du silicium (on appelle cette tension la tension de seuil), mais on négligera souvent cette petite
tension.
A partir de ces explications, compléter les tableaux correspondant aux 2 schémas ci-dessous en
indiquant l'état (P)assant ou (B)loqué des diodes, les valeurs des courants et de V S selon les valeurs
de VA ou VB (E = 5 V et R = 5 k). En déduire le type des portes ainsi réalisées.
A IA DA R
A IA DA
IR
B IB B
E
DB IR IB
VA DB VS
VB VS VA VB
R
Si l'on envoie du courant dans la base en lui appliquant une tension positive Ve, l'interrupteur se
ferme : on dit que le transistor est saturé. On obtient :VS = 0 et IC = E/RC.
Si l'on n'envoie pas de courant dans la base, l'interrupteur s'ouvre : on dit que le transistor est
bloqué. On obtient : IC = 0 et VS = E.
Les résistances RB et RC permettent de régler l'intensité des courants dans la base et dans le
collecteur.
IC IC
RC Base Collecteur RC
E Vs E Vs
Ve RB IB Ve
Emetteur
Ve état du transistor VS
0
5
3) A partir des 2 exercices précédents, dessiner le schéma d'une porte NOR puis d'une porte NAND
1) Soit 4 variables logiques, A, B, C, D. Ecrire de 2 manières différentes (la 1ère avec seulement
des ET ou des OU, la 2ème avec l'autre opérateur logique et des NON) des égalités qui sont
vérifiées si et seulement si :
4) Donner l'équation des fonctions NON, ET, OU en n'utilisant que des portes NAND puis en
n'utilisant que des portes NOR
5) Donner les équations des fonctions S1, S5 et S6 en n'utilisant que des portes NAND à 2 entrées
puis en n'utilisant que des portes NOR à 2 entrées. Préciser le nombre de portes nécessaires dans
chaque cas et en déduire la meilleure solution.
Rem : On peut toujours rajouter "0" (soit X. X ) à une expression ou la multiplier par "1"
(soit X + X ) sans la modifier. Cela peut être utile pour faire apparaître des termes
communs (qui sinon n'apparaîtraient pas) et permettre ainsi des mises en facteurs ou des
simplifications.
9) Soient 3 variables A, B, C :
Réaliser une fonction qui donne 1 si le nombre de variables à 1 est impair
(simplifier avec des OU exclusifs).
Une façon simple d'énoncer un problème sur n variables est de leur affecter un rang, c'est à dire de
les considérer comme formant un nombre.
Dans la suite des exercices, la variable A aura toujours le rang 0, la variable B le rang 1, etc…
Si on utilise 3 variables, le nombre N s'écrira en binaire N = CBA avec 0 N 7.
Au lieu de décrire une fonction S par tous les cas de figure possibles, il suffira de dire que S doit
être égale à 1 pour certaines valeurs de N.
Par exemple au lieu de demander de réaliser une fonction S qui donne 1 ssi 2 variables sur 3 sont à
1, il suffira de dire : on veut que S = 1 ssi N = 3 ou 5 ou 6.
On veut réaliser un circuit qui donne le complément à 2 d'un nombre codé sur 3 bits (CBA)
a) Ecrire la table de vérité de chacune des 3 sorties C' B' A'.
b) Simplifier les équations de ces 3 sorties.
12) Mêmes questions pour réaliser un circuit qui code en code Gray un nombre binaire sur 3 bits.
Remplir directement les tableaux de Karnaugh et donner les équations simplifiées de S dans les
cas suivants :
a) S = 1 ssi N 10 b) S = 1 ssi N = 0, 4, 8, 10, 12, 14
c) S = 1 ssi N = 0, 2, 5, 7, 8, 10, 13, 15 d) S = 1 ssi N = 2, 10, 11, 14
e) S = 1 ssi N = 2, 10, 11, 14 mais en plus S n'est pas définie pour N = 6, 9, 13 et 15.
a) S = 1 ssi N = 0, 1, 9, 11, 13, 15, 16, 17, 20, 21, 25, 26, 27, 30, 31
b) S = 1 ssi N = 0, 2, 8, 10, 13, 15, 16, 18, 24, 25, 26, 29, 31 avec 5, 7, 9, 12, 28 indifférents
On veut effectuer une multiplication par 2 et donc obtenir N' = 2N avec N' codé directement en
BCD (c'est à dire sur 8 bits : H' G' … A')
2) Additionneur complet
Pour faire une addition en binaire (et d'ailleurs quelle que soit la base), on additionne les 2
chiffres d'une même colonne en tenant compte d'une éventuelle retenue qui peut venir de la
colonne de droite : on obtient donc le chiffre du résultat et aussi une éventuelle retenue qu'il
faudra ajouter aux chiffres de la colonne de gauche.
On veut réaliser un circuit qui additionne 2 bits (Ai et Bi) en tenant compte d'une éventuelle
retenue R i-1. Ce circuit doit donc générer la somme Si et l'éventuelle retenue Ri à transmettre à
la colonne de gauche.
3) Soustracteur complet
On veut réaliser un circuit qui effectue la soustraction Ai - Bi en tenant compte d'une éventuelle
retenue R i-1. Ce circuit doit donc générer la différence Di et l'éventuelle retenue Ri à transmettre
à la colonne de gauche.
4) Additionneur Soustracteur
a) Réaliser un circuit qui inverse ou non l'état d'une entrée E selon qu'un bit de commande
C est à 1 ou à 0 : si C = 0 on veut S = E, si C = 1 on veut S = E .
b) En utilisant cette fonction et un additionneur sur 4 bits (vu dans l'exercice 2 question d),
réaliser un circuit qui effectue l'addition de 2 nombres de 4 bits (A + B) si un bit de
commande C est à 0 et la soustraction (A – B) si C = 1.
1) Comparateur de bits
Si G = 0 S = E = I = 0 A et B (circuit bloqué)
Si G = 1 A > B S = 1 ; E = I = 0
A=BE=1; S=I=0
A<BI =1; S=E=0
Calculer les équations simplifiées de S, E et I et dessiner le schéma correspondant à ces 3
fonctions réunies en un seul bloc fonctionnel : le comparateur de bits.
2) Comparateur de nombres
On veut comparer 2 nombres de 4 bits (non signés) : A (A3, A2, A1, A0) et B (B3, B2, B1, B0)
en respectant les mêmes consignes que ci-dessus.
Proposer un schéma indiquant comment relier entre eux 4 blocs fonctionnels identiques à
celui construit dans le 1er exercice grâce aux portes nécessaires.
3) Afficheur 7 segments
e c
d
si G = 0 si A > B si A = B si A < B repérage des
LEDs de l'afficheur.
(un "1" sur le segment allume la LED correspondante)
4) Décodeur 7 segments
On veut afficher un chiffre décimal (codé sur 4 bits : DCBA) sur un afficheur 7 segments.
Déterminer les équations simplifiées de chaque segment en fonction de DCBA.
Les portes simples que nous avons vues jusqu'à maintenant permettent de construire des circuits de
plus en plus complexes jusqu'aux microprocesseurs les plus puissants.
Nous allons voir quelques uns des circuits les plus courants que l'on rencontre en Architecture des
Systèmes.
I. Multiplexeur
Un multiplexeur est une sorte d'aiguillage logique : il permet de sélectionner une entrée de donnée
parmi n et d'envoyer la donnée présente sur cette entrée vers la sortie du circuit.
On peut faire l'analogie avec le bouton qui permet de choisir le tuner, le lecteur de CD ou le
magnétophone sur une chaîne HIFI et d'envoyer le signal qui en vient vers l'ampli et les enceintes.
Pour sélectionner une entrée parmi n, il faut donner au multiplexeur le numéro de cette entrée,
évidemment sous forme binaire : on appellera ce numéro l'adresse de l'entrée correspondante.
Par exemple avec 3 entrées d'adresses, on peut compter de 0 (000) à 7 (111) donc sélectionner une
entrée parmi 8. On parlera alors de multiplexeur 8 vers 1.
De façon générale, avec n entrées d'adresses, on peut sélectionner une entrée de donnée parmi 2n.
C B A
Exemple d'utilisation d'un multiplexeur : transformation d'une liaison parallèle en liaison série
A l'intérieur d'un ordinateur, les données sont véhiculées par paquets de 8 (ou 16 ou 32) sur un
ensemble de 8 (ou 16 ou 32) fils qu'on appelle le bus de données. Pour transmettre ces données par
exemple à une imprimante située loin de l'ordinateur, il revient cher d'avoir un câble qui doit
comprendre au moins 8 fils sans parler de ceux permettant de gérer les échanges entre l'ordinateur
et l'imprimante. Il est plus économique d'envoyer les données les unes après les autres sur le
même fil : on applique les données aux entrées E0 à E7 du multiplexeur et on applique
successivement les valeurs 0 à 7 sur les entrées d'adresses C, B et A. En sortie, on obtiendra bien
sur un seul fil les données présentes sur les entrées, mais les unes après les autres.
Il doit comporter 3 entrées (C, B et A) et 23 soit 8 sorties (Y0 à Y7) : si l'on applique sur les entrées
C, B, A un nombre binaire i sur 3 bits (donc compris entre 0 et 7), la sortie correspondante Y i doit
être égale à 1, les autres sorties restant à 0.
Exemple d'utilisation d'un décodeur de ce type : dans un ordinateur, les données sont stockées dans
plusieurs "puces" mémoire et un décodeur permet au microprocesseur de sélectionner la bonne puce
en fonction de l'adresse à laquelle on veut lire une donnée (nous en verrons un exemple en TD).
III. Démultiplexeur
C'est presque le même circuit que ci-dessus mais auquel on rajoute une entrée dite entrée de
validation. Elle est souvent notée G et fonctionne de la façon suivante.
Si elle est inactive (par exemple à 0) le démultiplexeur ne fonctionne pas : ses sorties Y i restent à 0
quel que soit l'état des entrées A, B et C. Si elle est activée, le démultiplexeur fonctionne comme le
décodeur vu ci-dessus.
G Y0 Rem :
Y1 - On peut comparer cette entrée au bouton marche/arrêt qui
Y2 fait fonctionner ou non un circuit.
C Y3 - Les documents techniques précisent toujours l'état de G
B G 0/7 Y4 nécessaire pour que le circuit fonctionne.
A Y5 - En fait, il n'existe qu'un seul type de circuit appelé
Y6 décodeur/démultiplexeur et on utilise l'entrée G en fonction
Y7 des besoins.
DEMUX 3 vers 8
Exemple d'utilisation d'un démultiplexeur : il fait le contraire d'un multiplexeur ! (c'est même pour
cela qu'on l'appelle … démultiplexeur)
Dans l'exemple donné plus haut de la transmission série, il sera utilisé pour "remettre en parallèle"
les données arrivant en série depuis l'émetteur : il suffit de relier son entrée G à la sortie S du
multiplexeur et de mettre au même instant les mêmes valeurs sur les entrées C, B et A du
multiplexeur et du démultiplexeur. Il faudra de plus "mémoriser" les données présentes sur les
sorties Yi pendant un cycle complet pour les retrouver présentes toutes en même temps, c'est à dire
en parallèle.
Architecture EPITA INFO-SUP F. Gabon 36
IV. Exercices : multiplexage, décodage et démultiplexage
1) Multiplexeur
un multiplexeur est une sorte d’aiguillage, c’est à dire un circuit qui permet de sélectionner
une entrée parmi n grâce à son adresse, et de faire apparaître en sortie l’état de cette entrée.
ex : avec 2 entrées d’adresses (B, A), on peut sélectionner une entrée Ei parmi 4 (E0 …E3) :
si BA = 102 = 210, on veut que S = E2
De façon générale, avec n entrées d’adresses, on peut sélectionner une entrée parmi 2 n.
On aura donc un multiplexeur 2n vers 1.
Ecrire la table de vérité de la sortie S d’un multiplexeur 4 vers 1 en fonction des entrées
d’adresses B et A et des entrées de données E0 à E3, et en déduire l’équation de S.
Dessiner le schéma correspondant.
5) Décodeur/Démultiplexeur
Le circuit n'est validé que si G1 = 1 et G2A = G2B = 0, sinon : Yi = 1 quels que soient
A, B et C (sorties inactives : circuit bloqué)
Si le circuit est validé, Yi = 0 si CBA = i10, les autres sorties restant à 1
(l’état actif est 0 sur les sorties)
a) Donner les équations et le câblage des sorties Yi en fonction de G1, G2A, G2B, C, B et A.
Ce microprocesseur doit gérer les périphériques suivants (classés par ordre croissant dans l'espace
mémoire à partir de l'adresse 00000h):
- 2 EPROM de 8 K@
- 4 RAM de 8K@
- 1 DUART (périphérique de liaison série) (on admettra qu'il occupe 8 K@ pour l'adressage)
- 1 port d'entrées-sorties (I/O) (on admettra qu'il occupe 8 K@ pour l'adressage)
Chaque composant est validé par le passage à l'état bas d'une broche appelée CS (Chip Select).
a) Exprimer en hexa la taille mémoire des composants et noter les numéros des fils d'adresses
communs à tous les composants.
b) Noter dans le tableau ci-dessous l'adresse basse et l'adresse haute de chaque composant.
c) Compléter le tableau en indiquant précisément l'état des fils d'adresses dans chaque ligne.
d) Quels sont les fils d'adresses qui différencient les différents composants ?
e) En déduire le schéma d'adressage du système informatique basé sur un 74LS138.
f) Quel est l'espace mémoire restant et à quels fils correspond-il ?
g) Quelle est l'adresse de la donnée lue par le microprocesseur si on programme l'adresse
80000h ? Conséquence ?
h) Compléter le schéma ci-dessus en reliant correctement ces fils au circuit de décodage afin
d'obtenir un adressage non ambigu.
i) On suppose de plus que le microprocesseur possède une broche AS (Address Strobe) qui
passe à l'état bas quand l'adresse est bien positionnée sur le bus d'adresses. Compléter le
schéma en la reliant au circuit de décodage pour que les différents composants ne soient
validés que quand l'adresse est stable sur le bus d'adresses.
&
1 X
&
=1 F
&
1 Y
&
I. Introduction
1. Temps de propagation
Jusqu'ici, nous avons travaillé en logique combinatoire : si l'on connaît l'état des entrées d'un
système à un instant donné, on peut déterminer l'état de la (ou des) sortie(s) à cet instant.
De plus, nous avons toujours négligé le temps de propagation de l'information entre l'entrée et la
sortie d'un système. Les composants utilisés pour réaliser des portes logiques (diodes, transistors) ne
réagissent pas instantanément aux changements d'état des entrées. Par exemple, dans un porte NON,
il s'écoule un certain temps (depuis une dizaine de nanosecondes jusqu'à nettement moins pour les
composants récents) entre le moment où l'entrée passe de 0 à 1 et celui où la sortie passe de 1 à 0.
2. Chronogramme
Pour représenter une fonction logique, nous avons vu les équations logiques, les tables de vérité et
les tableaux de Karnaugh. Ces représentations sont suffisantes en logique combinatoire mais
n'intègrent pas la notion de temps et ne permettent donc pas de visualiser facilement des systèmes
où le temps intervient de façon essentielle.
C'est pourquoi on adopte plutôt les chronogrammes : ils consistent à dessiner un graphique sur
lequel le temps sera représenté en abscisse et le niveau logique (0 ou 1) en ordonnée
(avec par convention : 0 en bas et 1 … en haut !)
A
E t t
B
S t t
S
t
E A t
t
S B t
t
t S t
On passe dans le domaine de la logique séquentielle quand le temps intervient, c'est à dire quand il
faut connaître l'état antérieur de la sortie d'un système (ainsi bien sur que l'état des entrées) pour
déterminer son état à un instant donné. On peut dire que le système "garde en mémoire" l'état
antérieur de la sortie pour déterminer son état à un instant donné.
On peut représenter un système séquentiel à 2 entrées par le schéma suivant dans lequel on voit
apparaître le "rebouclage" de la sortie Q du système sur son entrée.
Rem : une bascule est asynchrone quand ses sorties réagissent immédiatement aux changements
d'état des entrées sans attendre l'activation d'une entrée auxiliaire dite entrée d'horloge.
1ère ligne : R = S = 0 Q1 et Q2 sont dans l'état mémoire : les sorties restent dans l'état où
elles étaient juste avant le retour à 0 de R et de S.
4ème ligne : R = S = 1 Q1 = Q2 = 0 quel que soit l'état antérieur de ces sorties. Si l'on
fait en même temps une demande de mise à 1 en activant S et une demande de mise à 0 en
activant R, la sortie principale Q1 passe (ou reste) à 0.
Pour cette raison une bascule RS à base de NOR est appelée bascule à arrêt prioritaire
(par analogie avec des machines commandées par un interrupteur Marche/Arrêt, on associe
le niveau 1 à la position Marche et le niveau 0 à la position Arrêt).
Mais ce dernier cas est particulier d'où l'étoile à coté du 0. En effet dans les 3 premiers cas, on a
toujours Q1 Q 2 . C'est évident pour les lignes 2 et 3 mais c'est aussi le cas pour la 1ère ligne et
voici pourquoi.
A l'intérieur des portes NOR, les transistors et autres composants ne sont jamais totalement
identiques les uns avec les autres. En particulier certains réagiront (changeront d'état) légèrement
plus vite que d'autres.
Partons de l'hypothèse qu'un 0 apparaît d'abord sur la sortie Q1. Dans ce cas, la porte NOR du bas
voit des 0 sur ses 2 entrées. La sortie Q2 se positionne donc à 1, ce qui maintient la sortie Q1 à 0. Le
système est stable dans cette position et les 2 sorties sont bien dans des états complémentaires.
Mais si nous étions partis de l'hypothèse inverse (0 sur Q2 en premier) nous serions arrivés à la
même conclusion : Q1 et Q2 sont bien dans des états complémentaires (inverses du cas précédent).
Autrement dit, Q1 Q 2 sauf si R = S = 1
Imaginons maintenant que les entrées R et S repassent en même temps à 0. Juste avant de repasser
à 0, elles étaient à … 1(bravo !), et on avait Q1 = Q2 = 0. Juste après le passage à 0, on doit avoir
Q1 Q 2 . Laquelle des 2 passe à 1 ? On n'en sait rien et ce n'est pas acceptable pour un système
informatique qui doit être totalement prévisible et ne doit surtout pas dépendre de la rapidité d'un
composant par rapport à un autre.
Cette explication (un peu longue …) justifie le fait que le dernier état est appelé état interdit et
qu'on l'évite soigneusement !
Les 3 premières lignes de la table de vérité de cette bascule sont identiques à celles correspondant à
la bascule RS à base de NOR et ne demandent aucun commentaire supplémentaire.
Seule la dernière ligne diffère : R = S = 1 : Q1 = Q2 = 1 quel que soit l'état antérieur de ces sorties
Pour cette raison une bascule RS à base de NAND est appelée bascule à marche prioritaire.
Si l'on évite ce dernier état (et on a vu qu'il valait mieux l'éviter !), ces 2 bascules sont
rigoureusement équivalentes et par la suite on ne les distinguera plus.
R Q
Une bascule est synchrone quand ses sorties ne changent d'état que si un signal supplémentaire est
appliqué sur une entrée, dite entrée d'horloge, selon certaines modalités que nous allons détailler.
On pourrait calculer l'équation de Q et établir sa table de vérité, mais il est plus simple de raisonner
par analogie avec la bascule précédente.
Tant que H = 0, S' = R' = 1 : la bascule est dans l'état mémoire : on peut modifier l'état des
entrées S et R mais cela n'a aucune influence sur Q.
Afin de minimiser au maximum la durée de cet état sensible, on s'arrange pour que la bascule reste
dans son état mémoire sauf pendant un bref instant, juste au moment où l'entrée d'horloge
PASSE de 0 à 1 (ou de 1 à 0).
La bascule est dite synchronisée sur front (en anglais edge triggered)
Pour obtenir ce résultat, on intercale entre l'entrée d'horloge et les NAND un circuit supplémentaire.
H"
exemple de circuit permettant d'obtenir &
une synchronisation sur front montant : H
& H'
Rem : si les changements d'état des entrées ont lieu pendant que H = 0, les bascules synchronisées
sur front montant se comportent comme des bascules synchronisées sur niveau.
Symbole d'une bascule RS synchronisée sur front montant sur front descendant
S Q S Q
H H
R Q R Q
Ce type de synchronisation a encore des inconvénients : on a déjà évoqué le fait que les composants
n'ont pas un temps de réaction nul : dans un système informatique un peu complexe, certaines
bascules en commandent d'autres, elles n'ont pas toutes exactement les mêmes temps de réaction et
ces différences peuvent générer des dysfonctionnements pour le moins gênants !
Pour éviter ces problèmes on construit des bascules qui fonctionnent de la façon suivante :
Au moment du front montant de l'horloge, la bascule "mémorise" l'état des entrées R et S présents à
cet instant, mais sa sortie Q ne change pas d'état. La bascule garde en mémoire l'état de R et de S
jusqu'au front descendant suivant et là elle effectue (éventuellement) les changements d'état prévus
au moment du front montant.
Autrement dit, il faut 2 fronts pour effectuer une action : le 1 er (le front montant) pour "mémoriser"
et le 2ème (le front descendant) pour que la sortie Q change.
Rem : si les changements d'état des entrées ont lieu pendant que H = 0, les bascules synchronisées
sur impulsion se comportent comme des bascules synchronisées sur front descendant
puisque Q ne peut changer d'état que sur le front descendant de H.
Remarque préliminaire : en dehors des bascules RS qui peuvent être synchrones ou asynchrones,
toutes les bascules que nous allons voir par la suite sont forcément des bascules synchrones.
Schéma Symbole
D S Q D Q
H H
1 R Q Q
Il est évident sur ce schéma qu'une bascule D asynchrone n'aurait pas de sens : ce serait une simple
porte OUI (Q = D) sans aucune mémoire … et un simple fil la remplacerait avantageusement !
On a vu que, pour les bascules RS, l'état R = S = 1 est interdit. On va "récupérer" ce cas pour
obtenir une commande supplémentaire.
S'
J & Q
&
Pour cela, on remplace les NAND de gauche
par des NAND à 3 entrées et on relie " l'ancienne" H
entrée S à Q et " l'ancienne" entrée R à Q.
& &
K R'
Admettons de plus que la bascule est synchronisée sur front montant (il faudrait rajouter sur l'entrée
H le circuit vu au paragraphe III. 2., non représenté ici pour ne pas alourdir le schéma)
J=0;K=1 pour la même raison que ci-dessus Q = 0 après un front montant sur H.
J=K=1 on peut "oublier" ces 2 entrées car des 1 à l'entrées d'un NAND ne modifient
pas sa sortie (X.1 = X). Supposons que Q = 1 avant le front montant
d'horloge. Au moment où celui-ci arrive, l'entrée des NAND de gauche passe
à 1 pendant un bref instant. Donc R' ( = Q.H ) passe à 0.
D'où Q( R '.Q) passe à 1et Q ( S'.Q) passe à 0. On voit qu'au moment
du front d'horloge Q change d'état.
On peut regrouper tous ces cas de figure dans une table de vérité
R R
1 Q1
S
Q1
S 1 Q2
Q2
c) Que se passe-t-il à la dernière transition ? Indiquer l'état interdit et expliquer pourquoi il est
interdit.
R S & Q1
&
S
Q1 &
R & Q2
Q2
R1
Q1
S1 Q1 S2 Q2
H
Q1
R1 R2
Q2
1 Q2
4) Les montages suivants utilisent des bascules synchronisées sur impulsion positive.
Tracer les chronogrammes de la sortie Q en fonction de H (Q = 0 à t = 0)
Dans le circuit de gauche quel est le rapport entre la fréquence du signal présent en Q et celle de
H ? Comment appelle-t-on ce montage ?
S Q S Q
H H
R Q R Q
5) Les montages suivants utilisent des bascules synchronisées sur impulsion positive.
Tracer les chronogrammes des sorties QA et QB en fonction de H (QA = QB = 0 à t = 0)
QA QA QA
& SA QA SB QB SA QA & SB QB
QB QB
RA Q A RB Q B RA Q A QA RB Q B
&
QB
H H
QA
SA QA & SB QB
QB
RA Q A RB Q B
H
Architecture EPITA INFO-SUP F. Gabon 50
VIII. Exercices : les bascules D
D S Q D Q
H H
1 R Q Q
1) Compléter les chronogrammes suivants selon que la bascule D est synchronisée a) sur niveau
haut, b) sur front montant , c) sur front descendant, d) sur impulsion positive.(Q = 0 à t = 0)
H H
D D
a) a)
b) b)
c) c)
d) d)
D Q D Q
H H
Q Q
Dans le circuit de gauche quel est le rapport entre la fréquence du signal présent en Q et celle de
H ? Comment appelle-t-on ce montage ?
Q1 Q2
H
Q1
Q2
4) Les montages suivants utilisent des bascules synchronisées sur impulsion positive.
Tracer les chronogrammes des sorties Qi en fonction de H (Qi = 0 à t = 0)
QA
& DA QA DB QB QA DA QA =1 DB QB
QB
QA QB QA QB
H H
QA
& DA QA =1 DB QB & DC QC
QC
QA QB QC
H
1) Compléter les chronogrammes suivants selon que la bascule JK est synchronisée sur front
montant, sur front descendant ou sur impulsion positive.(Q = 0 à t = 0)
H
3) Les montages suivants utilisent des bascules synchronisées sur impulsion positive.
Tracer les chronogrammes des sorties QA et QB en fonction de H (QA = QB = 0 à t = 0)
1 JA QA JB QB
JA QA JB QB
1 KA Q A KB Q B
1 KA Q A 1 KB Q B
H
H
JA QA JB QB
KA Q A KB Q B
H
S
Architecture EPITA INFO-SUP F. Gabon 53
5) Réaliser un montage qui délivre le cycle suivant sur sa sortie S en fonction de H, en utilisant les
composants nécessaires.
Période de S
6) Compléter les chronogrammes de R et de Q du circuit suivant :
(la commande Reset est asynchrone)
E J Q Q
H H
0 K Q E
R R
&
Q
Q'
1 JA QA S
H &
KA Q A
Cl
E
JB QB
1
KB Q B
Cl
I. Introduction
Un compteur est un circuit qui …compte des impulsions et qui affiche sur ses sorties le nombre
d'impulsions qu'il a reçues depuis le début du comptage (en binaire évidemment).
Ils sont réalisés avec des bascules montées en diviseurs de fréquence par 2 (avec des bascules JK, il
suffit de mettre J et K à 1)
1 JA QA 1 JB QB 1 JC QC 1 JD QD
H
1 KA Q A 1 KB Q B 1 KC Q C 1 KD Q D
Explication : pour compter en binaire naturel il faut que le bit de rang i + 1 change d'état quand le
bit de rang i repasse à 0 : si l'on utilise des bascules synchronisées sur front
descendant, il suffit de relier les sorties Qi aux entrées d'horloge des bascules de rang
i + 1, ce qui est réalisé sur le schéma ci-dessus.
Pour revenir à 0 sur une autre valeur qu'une puissance de 2, il faut détecter cette valeur et remettre
immédiatement le compteur à 0 : On utilisera l'entrée de remise à 0 asynchrone que possèdent
toutes les bascules. Elle fonctionne de la façon suivante : dès que l'on applique l'état actif sur cette
entrée, la sortie Q de la bascule passe à 0, indépendamment de l'état de l'horloge et des autres
entrées de commande (D ou J, K). Elle est notée R(eset) ou Cl(ear) et elle est souvent active à l'état
bas.
J Q
Schéma d'une bascule JK, synchronisée sur front descendant
et munie d'une entrée de remise à 0 active à l'état bas. K Q
Cl
Par exemple pour réaliser un compteur asynchrone décimal, c'est à dire qui compte de 0 à 9 et qui
revient à 0 à la 10ème impulsion, il faut détecter la valeur 1010 soit 10102 et activer les entrées Clear
des bascules par un niveau bas. La remise à 0 doit donc être activée dès que Q D = QB = 1 et
QC = QA = 0 mais comme on compte par ordre croissant, c'est la 1 ère fois que QD et QB sont tous les
deux à 1 en même temps : il suffit donc de détecter le passage à 1 de ces 2 sorties et d'envoyer un 0
sur les entrées Clear des 4 bascules, ce qui se fait avec un simple porte NAND selon le schéma
suivant.
QA QB QC QD
1 JA QA 1 JB QB 1 JC QC 1 JD QD
H
1 KA Q A 1 KB Q B 1 KC Q C 1 KD Q D
Cl Cl Cl Cl
&
Rem : par mesure de précaution, on remet à 0 toutes les bascules, même les bascules A et C qui y
sont déjà.
Pour décompter en binaire naturel il faut que le bit de rang i + 1 change d'état quand le bit de rang i
passe à 1 : si l'on utilise des bascules synchronisées sur front descendant, il suffit de relier les sorties
Q i aux entrées d'horloge des bascules de rang i + 1. Le schéma est donc analogue à celui des
compteurs modulo 2n à la remarque ci-dessus près.
Le principe est analogue à celui des compteurs à quelques détails près : pour réaliser un décompteur
modulo n, on doit obtenir la séquence suivante : 3, 2, 1, 0, n-1, n-2, …., 3, 2, …
La valeur 0 doit bien exister et rester stable tant que la n ième impulsion n'est pas arrivée : si le
modulo n était une puissance de 2, la valeur suivant 0 serait n-1 c'est à dire que toutes les sorties des
bascules seraient à 1. C'est cette valeur-là qu'il faut remplacer par la valeur n-1.
Par exemple pour réaliser un décompteur asynchrone décimal, c'est à dire qui décompte de 9 à 0 et
qui revient à 9 à la 10ème impulsion, il faut détecter la valeur 1510 soit 11112 et la remplacer par 910
soit 10012.
La méthode la plus simple serait de détecter la valeur 15 10 et de remettre les sorties QC et QB à 0 en
utilisant un simple NAND à 4 entrées. Dans la mesure où la valeur 10 10 soit 10102 n'apparaît pas
dans le cycle normal, il suffit de détecter celle-ci (soit QD = QB = 1) et de remettre QC et QB à 0 en
utilisant un simple NAND à 2 entrées au lieu de 4.
Pour plus de sécurité, on préfère repositionner toutes les sorties dans l'état correct c'est à dire 1001.
On doit donc utiliser des bascules disposant, en plus de l'entrée de remise à 0 (entrée Clear) d'une
entrée de remise à 1 fonctionnant de la même façon que l'entrée Clear : dès que l'on applique l'état
actif sur cette entrée, la sortie Q de la bascule passe à 1, indépendamment de l'état de l'horloge et
des autres entrées de commande (D ou J, K). Elle est notée Pr(eset) et elle est souvent active à l'état
bas.
QA QB QC QD
S 1 1 S
Rem : les entrées Cl et Pr inutilisées sont positionnées dans leur état inactif c'est à dire 1.
Les entrées Pr des bascules A et D sont reliées à la sortie S du NAND mais les fils de liaison
ne sont pas représentés pour ne pas alourdir le schéma.
On ne peut compter ou décompter que dans l'ordre binaire pur : impossible par exemple de
construire un compteur en code Gray.
La valeur du modulo apparaît un bref instant, pendant le temps que mettent les bascules pour
réagir à l'ordre de remise à 0 ou à 1 (cet inconvénient peut toutefois être supprimé au prix d'une
plus grande complexité dans la remise à 0 du compteur).
La fréquence maximum de comptage est limitée par les temps de retard des bascules qui
s'ajoutent : si chaque bascule a un temps de retard de 10 ns, le passage de 0111 à 1000 ne sera
effectif qu'au bout de 40ns, le temps que la dernière bascule (D) ait réagi.
Toutes les bascules doivent disposer d'entrées de forçage Reset (et Preset pour les décompteurs)
Pour toutes ces raisons, on préfère utiliser des compteurs dits synchrones : dans ceux-ci, les entrées
d'horloge des bascules sont toutes reliées ensemble contrairement aux compteurs asynchrones dans
lesquels la sortie d'une bascule commandait l'entrée d'horloge de la suivante.
QA QB QC QD
JA QA JB QB JC QC JD QD
H
KA Q A KB Q B KC Q C KD Q D
Le problème va donc consister à relier correctement les entrées J et K de chaque bascule aux sorties
Q des autres bascules pour obtenir le cycle voulu.
On va utiliser l'équation d'une bascule JK qui donne la valeur de la sortie Q en fonction de son état
antérieur noté q et des états de J et de K au moment du front d'horloge, soit : Q J.q K.q
Le plus simple est de partir d'un exemple concret, celui d'un compteur modulo 5 qui nécessitera 3
bascules C, B et A. On doit donc obtenir le cycle 0, 1,2, 3, 4, 0, 1 … : on commence par remplir la
table de vérité correspondant au cycle voulu (voir page suivante).
Puis il faut remplir les tableaux de Karnaugh de chaque sortie Q en mettant dans la case
correspondant à l'état du compteur à un instant t l'état que l'on veut à l'instant t + 1, c'est à
dire après l'apparition de la nième impulsion.
On en tire les équations des sorties Q en utilisant éventuellement les valeurs indéterminées X :
Q A q C .q A Q B q B .q A q B .q A QC q B .q A
On identifie chaque équation à l'équation type d'une bascule JK : Q J.q K.q : le coefficient de q
doit être égal à J et celui de q doit être égal à K .
Bascule C : le terme qC n'apparaît pas dans l'équation de QC : on ne peut pas identifier les
coefficients. Dans ce cas on n'agrandit pas la "bulle" : on ne prend pas le X.
.On obtient donc : QC q C .q B .q A ou, comme pour la bascule A : QC q C .q B .q A 0.q C
soit en définitive JC = qB.qA et KC = 1.
La règle est donc : on agrandit les "bulles" comme d'habitude sauf si cet agrandissement fait disparaître la
variable minuscule de même indice que la variable majuscule.
QA QB QC
JA QA JB QB & JC QC
H
1 KA Q A KB Q B 1 KC Q C
En plus des entrées "normales", RS, D ou JK et de l'entrée d'horloge H, les bascules possèdent des
entrées de mise à 0 (Reset) ou de mise à 1 (Set ou Preset) en général actives à l'état bas et qui sont
prioritaires par rapport à toutes les autres entrées.
1) Réaliser un compteur asynchrone modulo 9 avec des bascules JK puis avec des bascules D
synchronisées sur front descendant. Compléter le schéma en rajoutant un Reset (manuel avec un
interrupteur et automatique au démarrage avec une résistance et un condensateur).
Réaliser un décompteur asynchrone modulo 11 avec des bascules JK synchronisées sur front
descendant.
2) Le schéma ci-dessous est celui d'un compteur référencé 74LS93, à partir duquel on peut réaliser
des compteurs de différents modulos.
HA QA HB QB QC QD
1 JA QA 1 JB QB 1 JC QC 1 JD QD
1 KA Q A 1 KB Q B 1 KC Q C 1 KD Q D
R1
&
R2
1 JA QA JB QB JC QC 1 JD QD
1 KA Q A 1 KB Q B 1 KC Q C 1 KD Q D
QD QC QB QA
H
X R
Y
d c b a
a) Dans un premier temps, dessiner le schéma de connexion des bascules entre elles de
manière à obtenir un compteur si Y = 0 et un décompteur si Y = 1 (sans tenir compte du
modulo pour l'instant).
b) Remplir la table de vérité ci-dessous des entrées Reset et Preset des 4 bascules en
fonction de X et Y(on adoptera les mêmes conventions que dans l'exercice 1: remise
systématique à 0 ou à 1 des sorties Qi en fonction du modulo).
Compteur modulo 7
Décompteur modulo 10
Compteur à défilement (ou glissement) : On veut faire défiler un 1 sur les 4 sorties DCBA selon
le cycle suivant : 0000 ; 0001 ; 0010 ; 0100 ; 1000 ; 0000 etc …
Compteur à accumulation : On veut "empiler" des 1 sur les 4 sorties DCBA selon le cycle
suivant : 0000 ; 0001 ; 0011 ; 0111 ; 1111 ; 0000 etc …
Un registre est un ensemble de cellules mémoire pouvant de stocker des informations binaires.
Une bascule D permettant de mémoriser un bit, on obtient un registre 4 bits en juxtaposant 4
bascules D identiques, les entrées d'horloge étant toutes reliées entre elles selon le schéma suivant.
QA QB QC QD
DA QA DB QB DC QC DD QD
H
QA QB QC QD
Si l'on veut pouvoir transférer les données d'une case mémoire dans celle de droite ou de gauche, il
faut interconnecter les bascules entre elles : on obtient alors un registre à décalage.
Par exemple, on voit dans le schéma ci-dessus que, si on relie QA à DB, QB à DC et QC à DD, on
obtient un registre à décalage à droite, c'est à dire qu'à chaque impulsion de l'horloge, le bit contenu
dans la bascule A sera transféré dans B, celui contenu dans B sera transféré dans C et ainsi de suite.
Si l'on veut obtenir un registre à décalage à gauche, il faut relier QD à DC, QC à DB et QB à DA.
A partir de ce principe, on peut compléter le schéma pour obtenir un registre permettant soit le
décalage à droite, soit le décalage à gauche, soit le chargement parallèle (4 valeurs binaires a, b, c et
d sont mémorisées dans les 4 bascules, sur la même impulsion d'horloge), soit la mémorisation (les
données mémorisées ne changent pas au moment des impulsions d'horloge). Un tel registre est dit
"registre universel".
Pour obtenir ces 4 modes différents de fonctionnement, il faudra bien sur disposer de 2 entrées de
commande pour choisir l'un d'entre eux.
II. Applications
Conversion série/parallèle : si l'on envoie les 4 bits d'un nombre les uns après les autres
(c'est à dire en série) sur l'entrée DA, au bout de 4 impulsions d'horloge, on les retrouvera
présents en même temps (c'est à dire en parallèle) sur les 4 sorties des bascules.
Multiplication (ou division) par 2 : pour multiplier (ou diviser) un nombre par 2 il faut
envoyer un "0" sur DA (ou sur DD)et décaler tous les autres bits vers la droite (ou la gauche).
Ligne à retard numérique : si l'on veut retarder une donnée de n tops d'horloge, il suffit de
l'envoyer sur DA et de la lire sur la sortie de la nième bascule, en mode décalage à droite.
a b c d
Fonctions selon les valeurs de S1 et de S0
S1 S0 H fonction
0 0 état mémoire : QA = qA etc…
0 1 décalage à droite : EDABCD
1 0 décalage à gauche : EGDCBA
1 1 chargement parallèle : QA = a etc…
b) Proposer un montage qui permette de faire un Reset soit automatique à l'allumage (utiliser la
charge d'un condensateur à travers une résistance) soit manuel avec en plus un bouton poussoir.
En début de cycle, le nombre X (x3, x2, x1, x0) est supposé présent aux entrées de chargement du
registre N°1 et Y(y3, y2, y1, y0) aux entrées de chargement du registre N° 2
Une commande I(nit), active à l'état haut, doit permettre le chargement des registres et
l'initialisation des circuits.
S1 QA QB QC QD
S0
ED
Registre N° 1
EG
H Add
R a b c d
r-1 r
S1 QA QB QC QD
S0 Q D
ED
Registre N° 2
EG Q
H Cl
R a b c d
1) 1 0111 1000 ; 1001 1000 ; 1 1000 1011 ; 1360 ; 1176 ; 18294 ; C2DE ; 14E5
2) 101 1010 1110 ; 10010 ; - 101
3) 1010 1010 0101 ; 10 0010 0100 0110
4) 1000,11001 ; 11010,1001
5) a) 2 ; 4 ; 8 ; 2n b) 213 = 819210 =200016; 1FFF16 c) 215 = 3276810 = 800016 ; 7FFF16 ;
d) M1 : 0000 à 1FFF ; M2 : 2000 à 3FFF ; M3 : 4000 à BFFF ; M4 : C000 à 13FFF ;
capacité : 14000h ; 17 fils
6) a) 1501 valeurs différentes : 11bits b) 150/2047 = 0,073278 mm c) l / 150 = x / 2047
d) 100 / 0,073278 = 136510 = 55516 = 101 0101 01012 e) 134,538 mm
1) a) 1111 1111 ; 1110 0011 ; 1101 1000 ; 1000 0001 ; 1000 0000
2) a) 103 ; erreur ; - 69 ; erreur ; 4
3) b) 111011G : 1010110G ; 1000100G ; c) 136 ; 204 ; 254
4) 1001 0111 ; 0111 0010 0100 ; 0010 0000 0000 1001 ; 0110 0011 0000 1000
2)
Ve état du transistor VS
0 Bloqué 5
5 Saturé 0
1) a) A.B.C.D 1 ou A B C D 0 b) A B C D 0 ou A.B.C.D 1
c) A B C D 1 ou A.B.C.D 0 d) A.B.C.D 0 ou A B C D 1
2) S1 A.B A.B A B S2 A B A.B S3 A C
S4 A.B C D S5 A(B C) S6 B(A C)
6) S1 = A(C + B.D) S2 = A + C S3 = B
OPERATIONS ARITHMETIQUES
1) B' D.A D.C.A C.B.A C' D.A A.B C.B D' D.A C.B.A E' = D + C.A + C.B
COMPARAISON ET AFFICHAGE
a) 8 k@ = 213 = 2000h. Les 13 fils de A0 à A12 sont donc communs à tous les composants.
d) A15, A14 et A13
e) Il faut relier A13 à l'entrée A du démultiplexeur, A14 à l'entrée B et A15 à l'entrée C.
f) 960k@; A16, A17, A18, A19
UNITE LOGIQUE
3) a) marche prioritaire pour maintenir l’état alarme quand on appuie sur Reset alors qu’un des
capteurs reste activé.
2) C’est une bascule maître-esclave, synchronisée sur impulsion (voir le cours page 31)
4) C’est un diviseur de fréquence par 2.
5) compteur modulo 3 ; décompteur modulo 4 ; décompteur modulo 3
LES BASCULES D
LES BASCULES JK
2) a) 1
3) diviseur de fréquence par 6 puis par 12.
4) R A X.a X.(Y K) ; PA X.a X.(Y K) ; R B X.b X.K ; PB X b ; Re t X K
JA KA JB KB JC KC JD KD
Compteur mod 7 B.C 1 A A+C A.B B
Décompteur mod 10 1 1 A.(C D) A D.A AB A BC A
Compteur mod 8 en Gray CB CB C.A C.A B.A AB
Compteur à défilement D.C.B 1 A 1 B 1 C 1
Compteur à accumulation 1 D A D B D C 1
REGISTRE A DECALAGE