Composants logiques et opérateurs matériels

publicité
Composants logiques et
opérateurs matériels
par Daniel ETIEMBLE
Professeur à l’Université Paris Sud
1 INTRODUCTION ............................................................................................................................................ 1
2 INFORMATION .............................................................................................................................................. 2
2.1
Dualité état et temps ................................................................................................................. 2
2.2
Quantité d'information et codage de l'information ...................................................................... 2
2.3
Représentation des nombres...................................................................................................... 2
3 ALGÈBRE DE BOOLE ET FONCTIONS BOOLÉENNES............................................................................... 6
3.1
PROPRIÉTÉS........................................................................................................................... 6
3.2
OPÉRATEURS NAND ET NOR............................................................................................... 7
3.3
FONCTIONS BOOLÉENNES................................................................................................... 7
4 SYNTHÈSE DE FONCTIONS COMBINATOIRES........................................................................................ 12
4.1
LA LOGIQUE “ANARCHIQUE”............................................................................................ 12
4.2
LA LOGIQUE “STRUCTURÉE” ............................................................................................ 14
4.3
LA LOGIQUE EN TRANCHES .............................................................................................. 17
5 LES OPÉRATEURS ARITHMÉTIQUES........................................................................................................ 18
5.1
LES ADDITIONNEURS ......................................................................................................... 18
5.2
UNITÉ ARITHMÉTIQUE ET LOGIQUE................................................................................ 22
5.3
LES MULTIPLIEURS............................................................................................................. 25
6 BASCULES ................................................................................................................................................... 30
6.1
BISTABLE ............................................................................................................................. 30
6.2
BASCULE RS ........................................................................................................................ 30
6.3
BASCULE LATCH................................................................................................................. 32
6.4
REGISTRES. .......................................................................................................................... 33
6.5
BASCULE D .......................................................................................................................... 34
6.6
BASCULES DÉRIVÉES DE LA BASCULE D........................................................................ 39
7 COMPTEURS ET AUTOMATES SYNCHRONES ........................................................................................ 41
7.1
LES COMPTEURS................................................................................................................. 41
7.2
LES AUTOMATES ................................................................................................................ 44
7.3
UN EXEMPLE D’AUTOMATE SYNCHRONE ..................................................................... 46
8 TECHNOLOGIE ET CIRCUITS LOGIQUES ................................................................................................. 50
8.1
INTRODUCTION................................................................................................................... 50
8.2
TECHNOLOGIES MOS ......................................................................................................... 50
9 IMPLANTATION MATÉRIELLE DES OPÉRATEURS ................................................................................. 55
9.1
LES TYPES DE RÉALISATION............................................................................................. 55
9.2
LES RÉSEAUX LOGIQUES PROGRAMMABLES ................................................................ 56
10 POINTS MÉMOIRE ET MÉMOIRE RAM..................................................................................................... 60
10.1
LOGIQUE STATIQUE ET LOGIQUE DYNAMIQUE............................................................. 60
10.2
POINTS MÉMOIRE ............................................................................................................... 60
10.3
MÉMOIRES RAM.................................................................................................................. 61
11 RÉFÉRENCES............................................................................................................................................... 64
1 INTRODUCTION
Le cours “Composants logiques et opérateurs matériels” présente les différents opérateurs de calcul et de
mémorisation que l’on trouve dans les systèmes électroniques complexes, et notamment dans les
ordinateurs. La caractéristique essentielle de ces opérateurs est de travailler sur des données quantifiées
(numériques ou digitales) n’utilisant que les valeurs 0 ou 1, par opposition aux circuits et opérateurs
analogiques qui travaillent sur des données continues.
Les éléments d’algèbre de Boole que nous présentons constituent les fondements mathématiques
nécessaires au traitement des informations quantifiées, et à la réalisation des différents opérateurs
matériels qui réalisent ce traitement. Les portes logiques (composants logiques de base) sont associées
aux différents opérateurs de l’algèbre de Boole. Les méthodes de synthèse de fonctions combinatoires
permettent de réaliser des opérateurs de traitement plus complexes, comme les décodeurs, les
multiplexeurs, les additionneurs, les unités arithmétiques et logiques, les multiplieurs... à partir des
opérateurs matériels fondamentaux, qui vont des portes logiques aux opérateurs universels comme les
ROM, les réseaux logiques programmables (PLA, PAL...).
Les bascules, réalisées à partir des portes logiques élémentaires, sont les éléments fondamentaux
permettant de mémoriser et de modifier l’information. Ils permettent de constituer les registres d’une
part, et de réaliser les automates nécessaire au contrôle des processeurs et d’un grand nombre de
structures matérielles. Les compteurs ne sont qu’un cas particulier de ces automates.
La connaissance des techniques de réalisation des mémoires à accès aléatoire (RAM) permet de
comprendre certaines caractéristiques, notamment les temps d’accès et la capacité de mémorisation. Les
mémoires statiques utilisent un principe de mémorisation logique, identique à celui des bascules
utilisées pour les registres. Les mémoires dynamiques utilisent un principe de mémorisation fondé sur
des principes électriques (charge et décharge de condensateurs), qui nécessitent moins de place pour
stocker chaque bit, mais impliquent un rafraîchissement périodique de l’information et un temps de
cycle au moins double du temps d’accès.
Si les circuits logiques ne connaissent que les valeurs 0 et 1, ils sont néanmoins implantés avec des
circuits électroniques utilisant des courants et des tensions qui sont des grandeurs continues. Le
paragraphe technologie et circuits logiques montre comment les composants logiques sont implantés
avec des transistors MOS. Si le fonctionnement de ces transistors est n’est que grossièrement modélisé
sous forme d’interrupteurs, la présentation permet cependant au lecteur de faire la transition entre le
monde logique des 0 et des 1, et le monde de la technologie des circuits intégrés. Nous soulignons
l’importance croissante des réseaux logiques programmables, qui offrent une technique rapide et
relativement peu coûteuse de réalisation de circuits intégrés à côté des méthodes plus traditionnelles
(optimisés à la demande).
Les techniques présentées dans ce chapitre ont pour but de permettre au lecteur de concevoir des
opérateurs matériels d’une part, et de comprendre pour les utiliser au mieux les logiciels de CAO pour
la conception logique qui sont associées maintenant à toutes les méthodes de conception de circuits
intégrés.
1
Janvier 2004
2
INFORMATION
2.1 Dualité état et temps
La notion d'information correspond à la connaissance d'un état donné parmi plusieurs possibles à un
instant donné. La Figure 1 illustre cette notion avec un signal électrique.
Tension
HAUT
Référence haute
Référence basse
BAS
t1
t2
temps
Figure 1.- Information : état et temps.
Elle montre qu’il y a deux états significatifs, l’état bas lorsque la tension est inférieure à une référence
basse, et un état haut lorsque la tension est supérieure à une référence haute. Le troisième état, situé
entre les références basse et haute, ne peut être utilisé comme support d’information. Pour qu’il y ait
information, il faut préciser l’instant auquel on regarde l’état du signal. : par exemple, en t1 le signal est
haut et en t2, le signal est bas.
2.2 Quantité d'information et codage de l'information
L’information est mesurable, avec une unité qui s’appelle le bit. La formule I (bits) = log2(N) où N est
le nombre d'états possibles donne la quantité d'information. Un bit correspond donc à la connaissance
d’un état parmi deux. Par exemple, la connaissance d’un état parmi 8 correspond à une quantité
d’information de I = log2 (8) = 3 bits. Les 8 états possibles sont repérés à l'aide de 3 chiffres binaires
(ayant l'un des deux états possibles 0 ou 1), comme le montre la Table 1 : Représentation de huit états
différents. La quantité d’information exprimée en bits étant égale au nombre de chiffres binaires
correspondants, les chiffres binaires sont appelés bits.
État
X2
X1
X0
0
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
Table 1 : Représentation de huit états différents
Un mot de n bits correspond à n bits d'information, puisqu'il correspond à une configuration parmi 2n.
Mais, il faut préciser à quoi correspondent les 2n configurations. En effet, le mot de n bits peut
représenter une instruction machine ou un opérande, qui peut être un nombre ou un caractère. Nous
présentons brièvement le codage ou représentation des nombres et des caractères.
Avant d’introduire les codages des nombres et des caractères, il est utile d'introduire la notation
hexadécimale, qui n'est pas un codage de l'information, mais une manière simplifiée d'écrire des
nombres binaires. Un nombre binaire de n bits peut être écrit à l'aide de n/4 chiffres hexadécimaux si n
est multiple de 4 (ou n/4 +1 sinon) en remplaçant chaque groupe de 4 chiffres binaires, en partant des
poids faibles, par le chiffre hexadécimal correspondant (Table 2).
2.3 Représentation des nombres
La Figure 2 représente un mot de n bits.
2
Janvier 2004
n-1
n-2
i
0
Figure 2 .- Mot de n bits
Chiffre
d3 d2 d1 d0
hexadécimal
0
0
0
0
0
1
0
0
0
1
2
0
0
1
0
3
0
0
1
1
4
0
1
0
0
5
0
1
0
1
6
0
1
1
0
7
0
1
1
1
8
1
0
0
0
9
1
0
0
1
A
1
0
1
0
B
1
0
1
1
C
1
1
0
0
D
1
1
0
1
E
1
1
1
0
F
1
1
1
1
Table 2 : Notation hexadécimale
2.3.1 Les entiers positifs
Un mot de n bits peut représenter tous les nombres positifs compris entre 0 et 2n-1. di étant le chiffre
binaire de rang i, un mot de n bits correspond au nombre entier décimal N =
−1
∑=0 d 2 . Avec un octet,
n
i
i
i
on peut donc représenter tous les entiers positifs entre 0 et 255. Un mot de 32 bits permet de représenter
tous les entiers positifs entre 0 et 4 294 967 295.
2.3.2 Les entiers signés
La représentation des entiers signés pose un problème lié au zéro. En effet, il y a un nombre pair de
configurations associées à n bits, à répartir entre nombres positifs, nombres négatifs et la valeur 0. Il y a
plusieurs représentations possibles des entiers signés. Dans toutes les configurations, les nombres
positifs sont représentés de la même manière, correspondant à la représentation des entiers positifs sur
n-1 bits, avec dn-1 = 0. Le bit de poids fort dn-1 est appelé le bit de signe : il est à 0 pour les nombres
positifs.
a) Valeur absolue et signe
Dans cette représentation, le bit n-1 est le bit de signe, et les bits 0 à n-2 donnent la valeur absolue. Un
2
mot de n bits correspond au nombre entier décimal signé N = ( −1) d ∑2d 2
− 1 ∑ d 2 quand
n− 1
n
−
i
=0
.
i
i
, soit N =
n
i
−
=0
i
i
le bit de signe est à 1 et ∑2d 2 lorsque le bit de signe est à zéro.
0
Un octet permet de représenter les entiers signés compris entre -127 et + 127. Il y a deux représentations
possibles du zéro, qui sont 000000002 (+0) et 100000002 (-0). Un mot de 32 bits permet de représenter
tous les entiers signés compris entre -(231-1) et 231-1, avec toujours deux zéros.
n
−
i
=
i
i
b) Entiers signés en complément à 1
Dans la représentation en complément à 1, le nombre négatif -N est obtenu en remplaçant chaque
chiffre binaire di du nombre positif N par le complément d . (cf. l'opération complément de l'algèbre de
Boole en 3.1) : les bits 1 sont remplacés par des 0 et réciproquement. Un octet permet de représenter
tous les entiers signés compris entre -127 (10000002) et +127 (011111112), avec deux zéros qui sont
000000002 (+0) et 111111112 (-0).
i
c) Entiers signés en complément à 2
3
Janvier 2004
n−2
Dans la représentation en complément à 2, un nombre est représenté par N = - an-12n-1 + ∑
i =0
ai 2i .
L’écriture en complément à 2 correspond donc à la situation où le bit de poids fort est de poids négatif.
La Table 3 donne l'ensemble des nombres en complément à 2 avec des mots de 3 bits
d1
d0
N
d2
0
0
0
0
0
0
1
1
0
1
0
2
0
1
1
3
1
0
0
-4
1
0
1
-3
1
1
0
-2
1
1
1
-1
Table 3 : Nombres en complément à 2 sur 3 bits
Un mot de n bits permet de représenter tous les entiers signés compris entre -2n-1 et 2n-1 - 1. Il y a
maintenant une seule représentation de 0 (qui est le 0 positif). Avec un octet, on représente les entiers
signés entre -128 (100000002) et +127 (011111112). La représentation en complément à 2 d'un nombre
négatif peut être obtenue à partir de la représentation en complément à 1, à laquelle on ajoute +1.
d) la représentation excès N.
L’excès N est choisi de manière à ce que la somme de l’excès et du nombre ne soit jamais négative.
Cette somme est représentée comme un nombre positif normal.
La représentation en complément à 2 est la plus couramment utilisée pour l’arithmétique sur les
nombres entiers. Elle a l’avantage de ne pas introduire de traitement particulier pour le signe dans le cas
des additions et des soustractions, et de permettre une détection facile des cas de débordement.
Les représentations en signe-valeur absolue et en complément à un ont des opérations arithmétiques
plus complexes. Elles ont aussi l’inconvénient d’avoir deux représentations de zéro. La représentation
signe-valeur absolue est utilisée pour la multiplication des mantisses des nombres flottants. La
représentation excès N est utilisée pour les exposants des nombres flottants. Elle permet de ramener la
comparaison d’exposants de signe contraire à des comparaisons d’entiers positifs.
2.3.3 Représentation dite « flottante »
La représentation dite "flottante" a pour but de permettre de représenter une approximation des nombres
réels, en permettant une différence non constante entre deux nombres représentés successifs. Dans cette
représentation, un nombre est caractérisé par son signe, sa mantisse et son exposant qui est associé à
une base : +/- m.Be. En numération décimale, 1,5 x 1015 est un exemple de nombre "flottant". En
machine, la base B utilisée est 2. Dans la norme IEEE 754 qui est la plus utilisée maintenant, la
mantisse, exprimée en signe et valeur absolue, est 1,f où 1 est implicite et f est la partie fractionnaire,
correspondant aux puissances successives de 2-i. L’exposant est exprimé en code excès N. La Figure 3
présente la représentation flottante double précision, sur 64 bits, qui est la plus couramment utilisée. La
partie exposant donne sur 11 bits la valeur de l’exposant en code excès 1023. La partie fractionnaire a
52 bits. Le bit 63 donne le signe de la partie fractionnaire. Le nombre flottant double précision
correspond à
(-1)signe x (1,f1f2...f52) x 2 (E-1023)
La norme flottante IEEE 754 permet de représenter les nombres normalisés (bits de E différents de tous
à 0 ou tous à 1), les nombres dénormalisés (E tous à 0 et partie fractionnaire non nulle), la valeur zéro
(E tous à 0 et partie fractionnaire nulle), l’infini (E tous à 1 et partie fractionnaire nulle) et des
caractères spéciaux (Not a number lorsque les bits de E sont tous à 1 et la partie fractionnaire est
différente de 0).
En représentation double précision, la mantisse m est comprise entre 1 lorsque tous les bits f1 à f52 sont
à 0 et 2 - 2-52 lorsque tous les bits f1 à f52 sont à 1. Le champ exposant E est compris entre 1 et 2046
pour les nombres normalisés. Compte tenu de l'excès 1023, l'exposant réel est donc compris entre -1022
et + 1023. Le plus petit nombre positif normalisé représentable est donc 2-1022 et le plus grand est
voisin de 2 x 21023 soit 21024.
4
Janvier 2004
63 62
S
signe
52 51
E
exposant
0
f52
f1
partie fractionnaire
Figure 3 .- Format flottant double précision.
La représentation simple précision sur 32 bits a 1 bit de signe, 8 bits de partie exposant (avec excès
+127) et 23 bits pour la partie fractionnaire.
2.3.4 Représentation des nombres décimaux
Un certain nombre d'applications, notamment en gestion, exigent des calculs décimaux exacts, sans
arrondis, ce qui implique de travailler avec des nombres décimaux. En effet, avec un nombre fixé de
bits, il est impossible de convertir de manière exacte des nombres binaires en nombres décimaux et
réciproquement. On utilise alors la représentation décimale codée binaire, dans laquelle chaque chiffre
décimal est codé avec 4 chiffres binaires, selon la Table 4. Cette représentation utilise uniquement les
chiffres décimaux de la notation hexadécimale.
2.4 Représentation des caractères
La représentation des caractères est fondamentale. Les lettres de l'alphabet latin et un certain nombre de
caractères usuels sont représentés par un octet, selon un code qui est le plus souvent le code ASCII . Par
exemple, dans ce code, la lettre “a” est représentée par 010000002 et le chiffre “9” par 001110012.
Chiffre décimal
d 3 d2 d1 d0
0
0
0
0
0
1
0
0
0
1
2
0
0
1
0
3
0
0
1
1
4
0
1
0
0
5
0
1
0
1
6
0
1
1
0
7
0
1
1
1
8
1
0
0
0
9
1
0
0
1
Table 4 .- Décimal codé binaire
5
Janvier 2004
3
ALGÈBRE DE BOOLE ET FONCTIONS BOOLÉENNES
3.1 PROPRIÉTÉS
L’algèbre de Boole est définie sur l'ensemble E2 constitué des éléments {0,1}. Il existe une relation
d'ordre 0 < 1, et trois opérations de base. La complémentation, définie en Table 5 est une application de
E2 sur E2. Les opérations union (Table 6, gauche) appelée encore ou, max et qui est notée +, et
intersection (Table 6, droite) appelée encore et, min, qui est notée . sont des applications de E2 X E2 ->
E2
x
x
0
1
1
0
Table 5 : complémentation
x
0
0
1
1
y
S
x
y
0
0
0
0
1
1
0
1
0
1
1
0
1
1
1
1
Table 6 : Union, +, ou, max
Intersection, ., et, min
Pour tout a, b, c ∈E2, les propriétés suivantes sont vérifiées :
S
0
0
0
1
1) 0 est l'élément minimum, 1 est l'élément maximum
a.1 = a
car min (a,1) = a
a+0 = a
car max (a,0) = a
a.0 = 0
a+1 = 1
2) complément :
a. a = 0 car min (0,1) = 0
a +a = 1 car max (0,1) = 1
3) Commutativité
a.b = b.a
a+b = b+a
car les fonctions min et max sont commutatives
4) Associativité
a.(b.c) = (a.b).c= a.b.c
a+(b+c) = (a+b)+c= a+b+c
car les fonctions min et max sont associatives
5) Distributivité
a.(b+c) = a.b+a.c
a+(b.c) = (a+b).(a+c)
6) THÉORÈME DE MORGAN
a. b
=a+b
a +b = a . b
La Table 7 constitue une démonstration de ce théorème.
a
0
0
1
1
b
0
1
0
1
a
1
1
0
0
b
1
0
1
0
a.b
a+b
a. b
a +b
0
1
0
1
0
0
1
1
0
0
1
1
1
0
1
0
Table 7 : théorème de Morgan
6
a. b
1
1
1
0
a +b
1
0
0
0
Janvier 2004
3.2 OPÉRATEURS NAND ET NOR
Les opérateurs NAND et NOR ont la définition suivante.
NAND (a, b) = a. b = a + b
NOR (a,b) = a +b = a . b
Ces opérateurs sont fonctionnellement complets : avec un de ces opérateurs, on peut implanter les
fonctions complément, min et max de l’algèbre de Boole.
La démonstration pour l’opérateur NAND est la suivante :
= x.1 = x. x
x. y = 1. x. y
x
x +y = 1.x.1.y
La Figure 4 donne la représentation symbolique des différents opérateurs, sous forme de portes logiques.
L’inverseur
correspond à la fonction complémentation. Les autres portes ont le même nom que
les fonctions logiques correspondantes.
(NOT)
NOT
ET
OU
NAND
NOR
Figure 4 : Opérateurs logiques.
La Figure 5 donne les deux représentations graphiques du théorème de Morgan.
Figure 5 : Représentation graphique du théorème de Morgan
Les portes logiques que nous avons présentées travaillent sur les valeurs logiques 0 et 1. Elles supposent
un fonctionnement instantané, c’est à dire un retard nul entre entrée et sorties. Ces portes sont
implantées avec des circuits électriques, qui travaillent sur des variables continues. Il y a toujours un
retard entre entrée et sortie. Nous présentons en 7 (Technologie et circuits logiques) la manière de
réaliser les différentes portes avec des transistors. Il est important de souligner que toutes les propriétés
=
de l’algèbre de Boole ne sont pas toujours vérifiées avec les circuits réels. Les deux propriétés
et a +a = 1 ne sont pas toujours vérifiées. La Figure 6 montre qu’à cause des temps de retard entre
l’entrée et la sortie d’un inverseur, il y a deux périodes pendant lesquelles les deux relations ne sont pas
vérifiées : c’est le cas lorsque E = E. Cette situation correspond à ce que l’on appelle un aléa. Les
signaux des circuits physiques ne sont donc valides que lorsque les lois de l’algèbre de Boole sont
vérifiées, c’est à dire en dehors des aléas.
a. a
S=E
E
S=E
E
0
E=E
E=E
Figure 6 : Les aléas liés aux temps de retard dans un inverseur
3.3 FONCTIONS BOOLÉENNES
Dans le cas général, les fonctions booléennes sont une application de Ei x Ej x Ek ..x Ep -> E2 où Ei=
{0, 1, 2,...,i-1}. Les variables d’entrée ont un nombre fini de valeurs entières. La Table 8 donne la table
7
Janvier 2004
de vérité d’une fonction booléenne pour laquelle la variable x est binaire et la variable y est ternaire (3
états possibles).
x
y
S
0
0
1
0
1
0
0
2
1
1
0
0
1
1
0
1
2
1
Table 8 : Exemple de fonction booléenne
Comme les fonctions utilisées pratiquement ont des variables d’entrée de même nature que les variables
de sortie, on se restreint au cas particulier des fonctions booléennes applications de E2 x E2 x E2...x E2
-> E2. La Table 9 donne l’exemple d’une telle fonction de deux variables x et y. Cette manière de
représenter une fonction booléenne est appelée table de vérité. Les tables de vérité illustrent les deux
problèmes rencontrés lors du traitement d’une fonction booléenne : il faut être capable de repérer une
entrée de la table, et il faut être capable d’associer une valeur de la fonction à chaque entrée de la table.
m0
m1
m2
m3
x
0
0
1
1
y
0
1
0
1
S
0
1
1
0
Table 9 : Exemple de fonction booléenne de deux variables.
Il existe différentes manières d'exprimer une fonction booléenne.
3.3.1 Forme disjonctive normale
A chaque entrée de la table, on associe une variable binaire mi appelée terme produit (minterm).. m0 est
associé à la ligne 0, m1 est associé à la ligne 1, etc.
m0 = 1 si x = 0 ET y = 0, soit x = 1 ET y = 1 , soit x. y = 1 et m 0 = x.y
On repère de cette manière chaque ligne de la Table 10.
x
0
0
1
1
y m0 m1 m2
0
1
0
0
1
0
1
0
0
0
0
1
1
0
0
0
Table 10 : Termes produit
Pour une table de vérité à deux entrées, les termes produit sont :
m3
0
0
0
1
m 0 = x.y
m1 = x. y
m 2 = x.y
m 3 = x.y
Un terme produit est donc constitué de l'intersection (et) de toutes les variables d'entrées,
complémentées si leur valeur est 0, non complémentées si leur valeur est 1. Puis, à chaque terme produit
mi, on associe la valeur Si de la fonction booléenne S (Table 11).
Ceci peut être réalisé sous la forme d’une union de produits, de la manière suivante : S = m0.S0 +
m1.S1 + m2.S2 + m3.S3.
Pour une configuration d’entrée, un seul terme mi est égal à 1 et tous les autres sont à 0. On a donc
automatiquement S = mi.Si = Si pour le terme produit mi à 1.
0n peut remarquer que les valeurs 0 de la fonction (Si=0) ne contribuent pas à l’expression de S (car mi.
0 = 0, et 0 est absorbé dans l’union logique). On remarque d’autre part que lorsque Si=1, on a mi.Si =
8
Janvier 2004
mi. On peut en déduire la règle pratique suivante, qui donne la forme disjonctive normale d’une
fonction booléenne : la forme disjonctive normale d’une fonction booléenne est obtenue par union
logique des termes produits pour lesquels la fonction a pour valeur 1.
x
y
S
m0
0
0
S0
m1
0
1
S1
m2
1
0
S2
m3
1
1
S3
Table 11 : Termes produit et sorties
x
0
0
1
1
y
0
1
0
1
m0 m1 m2 m3 m1+m2
S
1
0
0
0
0
0
0
1
0
0
1
1
0
0
1
0
1
1
0
0
0
1
0
0
Table 12 : Exemple de fonction
S = 1 si m1 = 1 ou si m2 = 1, soit m1 + m2 = 1 ==> S = m1 + m2
soit S = x. y + x. y
On peut utiliser cette propriété de la forme disjonctive normale pour remplacer la table de vérité par une
forme plus condensée de représentation. Une fonction peut être représentée sous la forme
f=∑m(liste des termes produit pour lesquels la fontion est égale à 1).
Par exemple, la fonction de la Table 9 s’écrira f=∑m(1,2).
Soit l’exemple de la Table 12, qui utilise la fonction de la Table 9:
La fonction particulière que nous avons prise comme exemple s'appelle OU exclusif et se note ⊕. Son
schéma logique est donné en Figure 7.
Figure 7 : Porte logique Ou exclusif
L’implémentation de la fonction Ou exclusif sous forme de Ou de Et qui résulte de la forme disjonctive
normale est présentée en Figure 8.
x
S
y
Figure 8 : Ou exclusif résultant de la forme disjonctive
3.3.2 Forme NAND de NAND.
La forme disjonctive normale peut se transformer en forme NAND de NAND, par application du
théorème de Morgan. La Figure 9 l’illustre graphiquement. La forme disjonctive normale se transforme
automatiquement1 en forme NAND de NAND en remplaçant les portes Et par des portes NAND et les
portes Ou par des portes NAND.
3.3.3
Forme conjonctive normale
1 Attention : Lorsqu’une variable d’entrée entre directement sur la porte Ou, on doit considérer qu’elle
traverse une porte Et à une entrée, qui se transforme en un inverseur (porte Nand à une entrée).
9
Janvier 2004
Il existe une autre forme de représentation : la forme conjonctive normale. On définit des termes somme
(maxtermes), dont on fait l'intersection. La Table 13 présente les termes somme pour une fonction à
deux entrées.
x
y M0 M1 M2 M3
0
0
0
1
1
1
0
1
1
0
1
1
1
0
1
1
0
1
1
1
1
1
1
0
Table 13 : Termes somme
x
x
S
y
S
y
x
S
y
Figure 9 : Exemple de transformation de forme Ou de Et en forme NAND de NAND.
Pour une table de vérité à deux entrées, les termes somme sont :
M0 = x + y
M1 = x + y
M2 = x + y
M3 = x + y
Un terme somme est donc constitué de l’union (ou) de toutes les variables d'entrée, non complémentées
si leur valeur est 0, complémentées si leur valeur est 1.
A chaque terme somme Mi, on associe la valeur Si de la fonction (Table 14).
x
y
S
M0
0
0
S0
M1
0
1
S1
M2
1
0
S2
M3
1
1
S3
Table 14
Ceci peut être réalisé sous la forme d’une intersection de sommes, de la manière suivante :
S = (M0+S0) . (M1+S1) . (M2+S2) . (M3+S3)
Pour une configuration d’entrée, un seul terme Mi est égal à 0 et tous les autres sont à 1. On a donc
automatiquement S = Mi+Si = Si pour le terme produit Mi à 0. En effet, pour j≠i, on a Mj = 1 et donc
Mj+Sj = 1, qui sont des termes neutres pour l’intersection.
0n peut remarquer que les valeurs 1 de la fonction (Si=1) ne contribuent pas à l’expression de S (car Mi
+ 1 = 1, et 1 est absorbé dans le produit logique). On remarque d’autre part que lorsque Si=0, on a
Mi+Si = Mi. On peut en déduire la règle pratique suivante, qui donne la forme conjonctive normale
d’une fonction booléenne : la forme conjonctive normale d’une fonction booléenne est obtenue par
produit logique des termes somme pour lesquels la fonction a pour valeur 0.
Soit l’exemple de la Table 15, qui utilise la même fonction que la Table 9 :
10
Janvier 2004
x
0
0
1
1
y
0
1
0
1
M0
0
1
1
1
M1
1
0
1
1
M2
1
1
0
1
M3
1
1
1
0
M0.M3
0
1
1
0
S
0
1
1
0
Table 15
S = 0 si M0 = 0 et si M3 = 0, soit M0.M3 = 0
==>
S = M0.M3
soit S = (x+y) ( x + y )
On peut montrer que cette forme est équivalente à celle qui résulte de la forme disjonctive normale.
3.3.4 Forme NOR de NOR
On montre de la même manière que toute fonction booléenne peut s'exprimer uniquement sous forme
NOR de NOR. La forme NOR de NOR s'obtient application du théorème de Morgan sur la forme
conjonctive normale : on remplace les portes Ou et les portes Et par des portes NOR2.
2 Attention : Lorsqu’une variable d’entrée entre directement sur la porte Et, on doit considérer qu’elle
traverse une porte Ou à une entrée, qui se transforme en un inverseur (porte Nor à une entrée).
11
Janvier 2004
4 SYNTHÈSE DE FONCTIONS COMBINATOIRES
La synthèse de fonctions combinatoires consiste, à partir d'une table de vérité ou d'une expression
booléenne, à spécifier les opérateurs matériels permettant l'implémentation de la table ou de l'expression
correspondante. Il existe 3 grandes méthodes de synthèses de fonctions combinatoires, correspondant au
niveau de complexité des opérateurs logiques utilisés comme éléments de base.
4.1 LA LOGIQUE “ANARCHIQUE”
La logique dite "anarchique" consiste à "implanter" la fonction booléenne à l'aide d'un ensemble
minimum de portes de base : Et, Ou, inverseurs, ou NAND ou NOR....Cette méthode a été développée à
l'époque des circuits logiques à faible niveau ou moyen niveau d'intégration (circuit SSI et MSI).
On commence par simplifier l'expression complète déduite de la forme disjonctive normale pour obtenir
un nombre minimum de portes, avec un nombre minimum d'entrées pour ces portes.
4.1.1 Simplification des expressions booléennes.
Elles découlent de l'application des propriétés de l'algèbre de Boole définie en début de chapitre. Soit
l'exemple de la fonction de 2 variables (Table 16)
m0
m1
m2
m3
x
0
0
1
1
y
0
1
0
1
S
0
1
1
1
Table 16
La forme non simplifiée s'écrit S = x. y + x. y + x.y
L'application successives des règles conduit aux transformations suivantes :
S = x. y + x. y + x.y + x.y car x.y = x.y + x.y puisque x.y + x.y =x.y (absorption)
S = x. y + x.y + x. y + x.y par commutativité.
S = ( x +x).y + x.( y +y) par distributivité
S= 1.y + x.1 par absorption
S=y+x=x+y
Ces simplifications peuvent être réalisées graphiquement à l'aide de la méthode du diagramme de
Karnaugh. Cette méthode se fonde sur une manière de représenter la table de vérité qui fait apparaître
les symétries sur les variables. La Figure 10 présente l'exemple du diagramme de Karnaugh pour la
fonction à 2 entrées de la table. Les quatre cases correspondent aux quatre termes produit m0 à m3. Les
symétries selon x et y sont mises en évidence. Un regroupement de 2 éléments symétriques se traduit par
la suppression d'une variable dans un terme. Un regroupement de 4 éléments pour lesquels existent 2
symétries se traduit par la suppression de 2 variables dans un terme, etc. Nous présentons le diagramme
de Karnaugh (Figure 11) dans le cas d'une fonction de 4 variables, avec les numéros de case
correspondant aux numéros de mintermes dans l'hypothèse d'une numération binaire pour les bits
e3e2e1e0 où e0 est le bit de poids faible.
Les règles pour la simplification des fonctions booléennes avec le diagramme de Karnaugh sont les
suivantes :
- tous les termes produit pour lesquels la fonction est à 1 devront être pris au moins une fois dans un
regroupement, ou seuls si aucun regroupement n'est possible.
- faire les regroupements de taille maximale, de manière à éliminer le plus grand nombre possible de
variables dans les termes de l'expression.
- ne prendre que les regroupements ou termes produit nécessaires pour avoir au moins une fois chaque
1, sans redondance.
La méthode du diagramme de Karnaugh est efficace pour les expressions booléennes ayant au plus 4
entrées. Au delà, la représentation graphique devient complexe, il est difficile de mettre en évidence les
symétries, et la méthode devient inutilisable. Dans ce cas, il fait utiliser des méthodes plus élaborées,
comme celle de Quine - Mc Cluskey, qui est la base des heuristiques utilisées dans un certain nombre de
logiciels spécialisés (Espresso, Mc Boole). D'autres logiciels utilisent des méthodes de réécriture
d'expressions.
12
Janvier 2004
Il faut souligner que le problème de simplification d'expressions booléennes se pose, soit pour des
expressions très simples à très peu de variables pour lesquelles le diagramme de Karnaugh est
amplement suffisant, soit pour des expressions complexes à grand nombre de variables pour lesquelles
les logiciels spécialisés sont inévitables.
symétrie/ x
x
x
x.y
x.y
0
symétrie/ y
x.y
x.y
1
y+y=1
y
1
y
1
xy = xy+xy
x+x =1
Figure 10 : Diagramme de Karnaugh pour fonction à 2 entrées.
e3
e3
e0
4
0
5
e0
1
8
12
13
9
10
14
15
11
e1
e1
e3
2
7
6
e2
3
e2
e2
Figure 11 : Diagramme de Karnaugh pour une fonction à quatre entrées
4.1.2 Cas des fonctions booléennes incomplètement spécifiées.
Il existe des fonctions booléennes pour lesquelles il n'y a pas de valeurs associées à certains termes
produit. Ceux-ci ne sont jamais "sélectionnés", et la valeur qui leur est associée peut être indifféremment
0 ou 1. On note d
ou Ø ce cas indifférent. L'afficheur 7 segments (Figure 12) est un exemple
particulier de fonction booléenne incomplètement spécifiée. On veut afficher les 10 chiffres décimaux à
l'aide de 7 segments, notés de a à g, qui peuvent être à 0 (éteint) ou 1 (allumé). Le codage des 10
chiffres décimaux nécessite 4 bits, que l'on peut noter e3 à e0. La Table 17 donne les 7 fonctions
booléennes traduisant l'allumage des 7 segments a à g en fonction des bits e3 à e0.
(don't care)
a
f
b
g
c
e
d
Figure 12 : Afficheur 7 segments
13
Janvier 2004
e3
0
0
0
0
0
0
0
0
1
1
1
1
1
1
1
1
e2
0
0
0
0
1
1
1
1
0
0
0
0
1
1
1
1
e1
0
0
1
1
0
0
1
1
0
0
1
1
0
0
1
1
e0
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
a
b
c
d
e
f
g
1
1
1
1
1
1
0
0
0
0
0
1
1
0
1
0
1
1
0
1
1
1
0
1
1
0
1
1
0
1
0
0
1
1
1
1
1
0
1
1
0
1
1
1
1
1
1
0
1
1
0
0
0
1
1
0
1
1
1
1
1
1
1
1
1
1
1
0
1
1
Ø
Ø
Ø
Ø
Ø
Ø
Ø
Ø
Ø
Ø
Ø
Ø
Ø
Ø
Ø
Ø
Ø
Ø
Ø
Ø
Ø
Ø
Ø
Ø
Ø
Ø
Ø
Ø
Ø
Ø
Ø
Ø
Ø
Ø
Ø
Ø
Ø
Ø
Ø
Ø
Ø
Ø
Table 17 : afficheur 7 segments
Pour simplifier de telles fonctions, on peut indifféremment associer à Ø la valeur 0 ou 1, pour simplifier
au maximum. La Figure 13 montre le diagramme de Karnaugh associé à la fonction a de la Table 16.
La valeur simplifiée de la fonction est a = e1 + e3 + e0.e2 + e 0 . e 2
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
e3
0
8
e3
e3
10
2
e0
4
1
1
Ø
1
e2
5
0
12
14
6
e0
Ø
Ø
1
13
15
1
0
Ø
1
Ø
Ø
1
1
9
e1
11
e1
3
7
e2
1
e2
Figure 13 : Diagramme de Karnaugh avec cas indifférents
4.2 LA LOGIQUE “STRUCTURÉE”
Toute fonction booléenne, aussi compliquée soit-elle, peut s'exprimer sous la forme d'une union de
termes produit. Il est donc possible de spécifier une structure universelle, capable de réaliser toutes les
unions possibles de tous les termes produit nécessaires.
La logique structurée consiste donc à "implanter" la fonction dans une structure régulière, prédéfinie à
l'avance, et dont la surface ne dépendra pas de la configuration particulière des 0 et des 1 propre à une
fonction, mais uniquement du nombre de variables d'entrées (structure ROM), ou du nombre de
variables d'entrée et de termes produit de la fonction (structure PLA ou PAL).
Contrairement à la logique aléatoire, qui est caractéristique des circuits intégrés à très faible niveau
d'intégration (SSI ou MSI), la logique structurée est caractéristiques des circuits intégrés à très forte
densité d'intégration (VLSI). Pour ces circuits, le critèrs essentiel est la surface minimale : pour un
nombre donné d'entrées et de sorties, la surface dépend essentiellement des facilités de connexions
14
Janvier 2004
globales entre les différents points du circuits. C'est donc le nombre de connexions d'entrée et de sortie
utilisables qui est le facteur essentiel, et non le nombre de termes produit et le nombre de variables par
terme produit.
4.2.1 Structure ROM.
Elle se décompose en 2 parties :
- un décodeur (ou générateur complet de termes produit) dont le schéma fonctionnel est donné en Figure
14. La Figure 15 montre l'implantation d'un décodeur deux entrées quatre sorties avec des portes
élémentaires.
- un Ou logique des termes produit pour lesquels la fonction a pour valeur 1.
n
Décodeur
2
sorties
n entrées
1 active
autres inactives
Figure 14 : Schéma fonctionnel du décodeur
x
y
m0
m1
m2
m3
Figure 15 : Réalisation du décodeur 2 entrées 4 sorties avec des portes logiques
La ROM est connue généralement comme une mémoire à lecture seulement. C'est en fait un opérateur
combinatoire. Le nombre de bits en sortie correspond au nombre de fonctions logiques différentes
implantées. Le nombre de bits d'adresse correspond au nombre de variables des fonctions logiques.
Pour l'implantation de fonctions logiques, la ROM présente l'inconvénient d'utiliser un décodeur
complet alors que les fonctions logiques à grand nombre d'entrées n’utilisent généralement qu'un
nombre réduit de termes produit : en d'autres termes, la fonction a beaucoup plus de 0 que de 1. Il est
possible d'utiliser uniquement un décodeur partiel, ce qui est fait dans les réseaux logiques
programmables (ou PLA)
4.2.2 Structures PLA et PAL.
Un PLA est constitué de 2 demi-PLA
- Le demi-PLA Et qui est un générateur partiel de termes produit. On ne génère que ceux qui sont
nécessaires pour implanter la fonction.
- Le demi-PLA Ou qui réalise le Ou logique des termes produit pour lesquels la fonction a pour valeur 1.
Un PLA est donc caractérisé par son nombre d'entrées, son nombre de sorties et le nombre de termes
produit utilisables. Les demi-PLA Et et Ou sont programmables.
La structure appelée PAL est un PLA simplifié, pour lequel seul la partie Et est programmable (choix
des termes produit) alors que le Ou logique des termes produit est précâblé.
PLA et PAL sont largement utilisés dans les composants logiques programmables complexes (CPLD
pour Complex Programmable Logic Devices) qui sont l’une des classes de composants logiques
programmables (cf chapitre 9)
15
Janvier 2004
4.2.3 Les tables préprogrammées
Les tables préprogrammées (LUT pour Look-up Tables) sont des blocs logiques de base implantant à
l’aide de mémoires SRAM (cf chapitre 9) des tables de vérité de 2, 3 ou 4 variables. Un LUT-2 (table de
recherche à 2 entrées) peut donc implanter n’importe laquelle des 16 différentes fonctions logiques de 2
entrées. La Figure 16 montre l’implémentation d’une table de recherche pour une fonction à trois
entrées. La mémoire SRAM implante une table de vérité à trois entrées, où chaque cellule mémoire
contient la valeur de la fonction pour un des termes produit.
Les LUT sont utilisés dans les réseaux de portes programmables, (FPGA pour Field Programmable Gate
Arrays), qui sont la seconde grande classes de réseaux logiques programmables. Dans les FPGA, les
LUT sont interconnectés par des connexions programmables verticales et horizontales (cf chapitre 9).
A
B
F(A,B,C)
C
Figure 16 : Implémentation d’un LUT-3
La synthèse avec LUT introduit différents critères d’optimisation. Alors qu’avec la logique
«anarchique», l’objectif est de minimiser le nombre de portes et le nombre d’entrées, dans la synthèse
avec LUT, l’objectif est de minimiser le nombre de LUT. Il faut souligner qu’avec des LUT-n (à n
entrées), toutes les fonctions logiques à n entrées sont équivalentes et s’implantent avec un seul LUT.
Notamment, les fonctions de type Ou exclusif, difficiles à implanter sous forme ET-OU ou sous forme
NAND-NAND sont strictement équivalentes à toutes les autres fonctions avec des LUT.
4.2.4 Multiplexeurs
Un multiplexeur est un opérateur logique à 2n entrées et une sortie contrôlé par n fils de commande.
L’entrée n° i est reliée à la sortie si la commande correspond à i codé sur n bits. Les schémas logiques
des multiplexeurs à 2 et 4 entrées sont montrés en Figure 17.
Les équations logiques des multiplexeurs 2 entrées et 4 entrées sont respectivement
s = e0 .c + e1 .c
s = e0 .c1 .c0 + e1 .c1 .c0 + e2 .c1 .c0 + e3 .c1 .c0
(F1)
e0
e1
e2
e3
e0
e1
s
s
c
c1 c0
Figure 17 : Schémas logiques des multiplexeurs 2 et 4 entrées
Un multiplexeur 4 entrées peut être implanté directement à l’aide de portes ET-OU-INV ou NAND en
utilisant l’équation ci-dessus ou àvec des portes multiplexeurs 2 entrées comme indiqué en Figure 18.
Ceci peut bien évidemment être étendu à 8, 16… 2N entrées.
e0
e1
S
e2
c1
e3
c0
16
Janvier 2004
Figure 18 : Multipleur 4 entrées à partir de mux 2 entrées
Un multiplexeur N entrées peut être utilisé comme un LUT-N. En utilisant les entrées de commande
comme entrées de la table de vérité, et les entrées du multiplexeur comme les valeurs de la fonction pour
chaque terme produit, on peut implanter n’importe quelle table de vérité. Par exemple, la Figure 19
montre l’implémentation de la fonction Ou exclusif avec un multiplexeur 4 entrées.
0
1
1
0
s
e1 e0
Figure 19 : Ou exclusif implanté avec un multiplexeur
On peut des fonctions logiques quelconques en utilisant des multiplexeurs et des portes logiques de base.
Par exemple, la fonction f(e2,e1,e0) = ∑m(3,5,6) peut être implémentée avec un multiplexeur 4 entrées et
un inverseur, comme le montre la Figure 20.
0
s
e0
e2 e1
Figure 20 : Implémentation de f(e2,e1,e0) = ∑m(3,5,6)
4.3 LA LOGIQUE EN TRANCHES
Elle consiste à réaliser des opérateurs n bits à l'aide d'opérateurs 1 bit en définissant les règles
d'assemblage. Cette partie sera traitée avec les opérateurs arithmétiques..
17
Janvier 2004
5 LES OPÉRATEURS ARITHMÉTIQUES
Les opérateurs arithmétiques sont fondamentaux pour de nombreuses applications. Associés aux
opérateurs logiques, ils constituent l'unité arithmétique et logique (UAL) qui est le coeur de la partie
calcul des unités centrales des ordinateurs. Qu'ils travaillent sur des nombres entiers (opérateurs entiers)
ou sur des nombres en représentation flottante (opérateurs flottants), ils sont utilisés largement en
traitement numérique, en traitement du signal, etc.
La caractéristique essentielle des opérateurs arithmétiques est le traitement par bit (ou bloc de bits) et la
propagation des retenues. Ils sont le domaine type d'utilisation de la logique en tranches.
Nous examinerons les techniques fondamentales de réalisation des additionneurs, puis des multiplieurs,
pour nombres entiers et flottants.
5.1 LES ADDITIONNEURS
L'opération typique d'addition de deux nombres de n bits implique d'une part le traitement d'une tranche
de 1 bit, et d'autre part le traitement des retenues.
5.1.1 Le traitement d'une tranche de 1 bit
L'addition de deux bits ai et bi avec la retenue entrante ri-1 fournit une somme Si et une retenue ri,
selon la Table 18. Le schéma logique de l'additionneur correspondant, appelé additionneur 1 bit, est
donné en Figure 21.
ri-1
0
0
0
0
1
1
1
1
ai
0
0
1
1
0
0
1
1
bi
0
1
0
1
0
1
0
1
ri
0
0
0
1
0
1
1
1
Si
0
1
1
0
1
0
0
1
Table 18 : additionneur 1 bit
ai
ri
bi
r
Additionneur i-1
1 bit
Si
Figure 21 : Additionneur 1 bit
L'additionneur 1 bit peut être implanté avec des portes logiques, par exemple de type NAND. D'après la
Table 18, on a les relations :
Si = ri-1.ai.bi +ri-1.ai.bi + ri-1.ai.bi + ri-1.ai.bi
ri = ai.bi + ri-1.ai + ri-1.bi
Un schéma d'implantation avec portes NAND est donné en Figure 22. Si le temps de propagation de la
porte NAND est tp, les temps de retard sont respectivement 3 tp pour Si et 2 tp pour ri.
18
Janvier 2004
r
r
i-1
a
i-1
a
i
bi
i
bi
Si
ri
Figure 22 : Réalisation de l'additionneur 1 bit avec des portes NAND
Le schéma de la Figure 22 correspond à l'implémentation directe de la table de vérité de l'additionneur 1
bit. D'autres implémentations sont possibles, qui utilisent moins de portes, mais qui ont des temps de
retard supérieurs. Certaines implémentations tiennent compte de la manière de réaliser des portes
complexes en technologie MOS, notamment des portes Et-NOR, Ou-Et-NOR, etc. (7-3.2).
Par exemple, le complément de la retenue peut s’écrire
r i = a i b i + r i−1 ai + r i −1 bi
D'autre part, d'après la table IV-1, on constate que
Si = r i (ai+bi+ri-1) + aibiri-1
L'implémentation correspondante est donnée en Figure 23.
ai
bi
Porte complexe
ri
ri
ri-1
Si
Si
Porte complexe
Figure 23 : Implémentation de l'additionneur 1 bit avec portes complexes
L'additionneur 1 bit est la brique de base pour la constitution d'un additionneur n bits. Les différentes
réalisations diffèrent selon la manière de propager la retenue.
5.1.2 L'additionneur n bits à propagation simple de retenue.
L'additionneur n bits peut être réalisé par juxtaposition de n additionneurs 1 bit (Figure 21), avec
propagation simple de la retenue, comme le montre la Figure 24. Le temps de propagation de la retenue
est 2n tp pour n étages. La sortie Sn-1 est obtenue (2n + 1) tp après l'arrivée de la retenue d'entrée r-1.
19
Janvier 2004
an-1 bn-1
rn-1
ai
a0 b0
bi
ri
Add
1 bit rn-2
Add
1 bit r
i-1
Sn-1
Si
r0
Add
1 bit
r-1
S0
Figure 24 : Additionneur à propagation de retenue
5.1.3 Les propagations rapides de retenue.
La propagation de retenue constituant le chemin critique pour obtenir la retenue de sortie et les sorties
de poids fort, des techniques permettant d'obtenir plus rapidement les retenues sont indispensables pour
réaliser des additionneurs rapides
5.1.3.1
Le mécanisme de retenue anticipée
D'après la Table 18, l'expression de ri en fonction de ri-1 peut être réécrite sous l'une des deux formes :
ri = ai.bi + ri-1 (ai+bi) (F2)
ri = ai.bi + ri-1 (ai ⊕ bi) (F3)
En posant Gi = ai.bi et Pi = ai+bi ou Pi = ai ⊕ bi où Gi et Pi sont respectivement les fonctions
génération et propagation de retenue, la retenue de sortie peut être réécrite sous la forme ri = Gi + ri1.Pi. Cette formule a une interprétation immédiate : il y a une retenue en sortie si l'étage d'additionneur
génère une retenue (Gi = 1) ou si l'étage propage la retenue d'entrée égale à 1 (ri-1.Pi = 1). La Table 19
donne les fonctions Gi et Pi en fonction des entrées ai et bi, et montre la relation entre Gi, Pi et ai ⊕ bi.
ai
0
0
1
1
bi
0
1
0
1
Gi
0
0
0
1
Pi
0
1
1
1
ai ⊕ bi
0
1
1
0
G i ⊕ Pi
0
1
1
0
Table 19
Dans le cas où Pi = ai + bi, on constate que ai ⊕ bi = G .Pi = Gi ⊕ Pi. Les fonctions Gi et Pi, utilisées
pour calculer la retenue ri, peuvent également être utilisées pour calculer la somme Si
Si = ai ⊕ bi ⊕ ri-1 = Gi ⊕ Pi ⊕ ri-1 = G .Pi ⊕ ri-1
i
5.1.3.2
i
Circuits anticipateurs de retenue.
L'application de la formule F2 permet de calculer en 2 couches logiques (2 tp) la retenue sortant de n
étages d'additionneurs 1 bit. En effet, on peut calculer la retenue de sortie en fonction des retenues
générées et propagées par chaque étage. Si l'on considère la retenue sortant d'un bloc de quatre bits,
constitués d'indice i à i+3, on obtient la formule suivante, qui exprime la condition pour que l'étage i+3
génère une retenue, ou que l'étage i+2 génère une retenue propagée par l'étage i+3, etc.
ri+3 = Gi+3 + Pi+3Gi+2 + Pi+3Pi+2Gi+1 + Pi+3Pi+2Pi+1Gi + Pi+3Pi+2Pi+1Piri-1. (F4)
On peut également déterminer les fonctions génération et propagation pour un bloc de quatre étages, qui
traduisent les conditions pour que le bloc de quatre étages génère une retenue (c'est la fonction Gi+3,i)
ou propage une retenue présente à l'entrée du bloc (c'est la fonction Pi+3,i). Ces fonctions sont
respectivement
Gi+3,i = Gi+3 + Pi+3Gi+2 + Pi+3Pi+2Gi+1 + Pi+3Pi+2Pi+1Gi (F5)
Pi+3,i = Pi+3Pi+2Pi+1Pi (F6)
Le circuit anticipateur de retenues pour un bloc de 4 étages est donné en Figure 25.
20
Janvier 2004
La limitation du nombre n d'étages pouvant constituer un bloc est lié au nombre maximal d'entrée
(encore appelé entrance) des portes utilisées. Pour une anticipation sur n bits, l'entrance maximale est n
+ 1.
Le mécanisme d'anticipation de retenue peut s'appliquer par blocs de bits.
La formule F4 peut se réécrire en utilisant les fonctions Gi+3,i et Pi+3 définies en F5 et F6.
(F7)
ri+3 = Gi+3,i + Pi+3,iri-1
Les fonctions Gi+3 i et Pi+3,i permettent de calculer la retenue sur un bloc de 16 étages en 4 couches
logiques selon la formule F8
ri+15 = Gi+15,i+12 + Pi+15,i+12 Gi+11,i+8 + Pi+15,i+12 Pi+11,i+8 Gi+7,i+4 + Pi+15,i+12 Pi+11,i+8
Pi+7,i+4 Gi+3,i + Pi+15,i+12 Pi+11,i+8 Pi+7,i+4 Pi+3,i ri-1
(F 8)
,
a
b
i+3
i+3
a
b
i+2
i+2
Etage
Etage
E tage
Etage
i+3
i+2
i+1
i
G
i +3
P
i +3
G
i +2
P
i +2
a
b
i+1
i+1
G
i +1
P
i +1
a
i
b
G
i
i
P
i
Circuit anti cipa teur
r
i +3
r
i -1
G
i +3,i
P
i +3,i
Figure 25 : Circuit d'anticipation de retenue
Avec des portes NAND, 2 tp sont nécessaires pour obtenir les fonctions Gi et Pi, 2 tp sont nécessaires
pour obtenir les fonctions Gi+3,i et Pi+3,i et 2 tp sont nécessaires pour obtenir ri+15 en fonction des
Gi+3,i et Pi+3,i.
En généralisant, on constate qu'il faut 2 (p+1) tp pour obtenir la retenue d'une addition de 4p bits avec
des circuits anticipateurs sur 4 bits. Avec cette approche, le temps nécessaire pour obtenir la retenue de
sortie varie de manière logarithmique avec le nombre de bits.
Les sorties Si sont obtenues en utilisant la formule Si = G .Pi ⊕ ri-1
ce qui implique de générer l'ensemble des retenues ri-1, en utilisant des circuits d'anticipation ou de
propagation simple de retenue en fonction des contraintes temporelles.
i
5.1.3.3
La sélection de retenue
Pour une addition de deux nombres de n bits, l'additionneur à sélection de retenue (Figure 26) utilise un
additionneur de p bits pour les poids faibles, et deux additionneurs de q bits pour les poids forts avec n =
p + q. L'un des additionneurs de q bits a une retenue d'entrée à 0 et l'autre à 1. Les sorties et la retenue
de poids fort sont obtenues par multiplexage des sorties et de la retenue des deux additionneurs de q bits
dès que la retenue sortante de l'additionneur des poids faibles est connue. Chacun des additionneurs sur
p ou q bits peut utiliser des mécanismes de propagation rapide de retenue.
21
Janvier 2004
r n-1
Mux
r n-1
B n-1,p A n-1,p
Bn-1,p
Additionneur
q bits
1 r n-1 Additionneur
q bits
B p-1,0 A p-1,0
A n-1,p
rp-1 Additionneur
p bits
0
S n-1,p
S n-1,p
Multiplexeur
S n-1,p
re
S p-1,0
Figure 26 : Principe de l'additionneur à sélection de retenue
5.2 UNITÉ ARITHMÉTIQUE ET LOGIQUE
L'unité arithmétique et logique (UAL) est un opérateur capable de fournir le résultat des opérations
arithmétiques (addition, soustraction) et logiques élémentaires (et, ou, complément, ou exclusif, etc.)
5.2.1 La soustraction
La réalisation de la soustraction dépend de la représentation utilisée pour les nombres négatifs. En
représentation en complément à 2, on a
A-B=A+ B+1
La soustraction peut donc être réalisée avec un additionneur normal, pour lequel on entre B au lieu de
B avec une retenue d'entrée re = 1. Le complément B est obtenu avec un ensemble de portes Ou exclusif
qui délivrent le complément bit à bit de l'entrée B selon la relation B = Bi ⊕ 1.
Un bit de contrôle P / M égal à 0 (Plus) pour l'addition et 1 (Moins) pour la soustraction est suffisant
pour contrôler l'additionneur/soustracteur.
Bi ou B = Bi ⊕ P / M
re = P / M .
i
i
5.2.2 Un exemple d'UAL
Nous présentons un exemple d'UAL, inspirée du circuit 74181 du TTL Data Book. L'UAL travaille sur
4 bits. Les retenue d'entrée re, de sortie rs et les fonctions G3,0 et P3,0 sur 4 bits sont sous forme
complémentée. L'entrée de commande M sert à distinguer les opérations logiques (M=0) des opérations
arithmétiques (M=1). Les quatre entrées de commande f3 f2 f1 f0 codent 16 opérations distinctes.
Son schéma fonctionnel (Figure 27) se décompose en deux parties :
- Un générateur de fonctions Gi et Pi (sous forme complémentée)
- Un additionneur rapide avec calcul anticipé de retenue.
22
Janvier 2004
f3 f2 f1 f0
a0
b0
a1
b1
a2
b2
a3
b3
G0
P0
G1
P1
G2
P2
G3
P3
Générateur
de
Fonctions
Gi et Pi
Additionneur
à Retenue
Anticipée
S0
S1
S2
S3
rs
G
P
re
M
3,0
3,0
Figure 27 : Structure d'une UAL
5.2.2.1
Le générateur de fonctions Gi et Pi
Il est constitué de quatre tranches identiques avec deux entrées ai et bi, quatre commandes f3 f2 f1 f0 et
deux sorties G et P (Figure 28)
Les équations correspondant au circuit sont les suivantes
Gi = f3.ai.bi + f2.ai. b
Pi = ai + f0.bi +f1. b
La Table 20 donne les valeurs de Gi, Pi et de Pi. G
i
i
i
i
i
f3
Gi
f2
f1
bi
Pi
f0
ai
Figure 28 : Générateur de G et
i
5.2.2.2
Pi
L'additionneur rapide
Les sorties sont obtenues comme précédemment par l'une des formules suivantes :
Si = G .Pi ⊕ ri-1 ou Si = Gi ⊕ Pi ⊕ ri-1
En mode logique, ri = 1 ∀ i. La Table 20 donne les 16 fonctions logiques des entrées que l'on obtient
avec M = 0. En mode arithmétique, ri-1 est la retenue provenant de l'étage précédent. La Figure 29
donne les sorties Si
i
23
Janvier 2004
G
i
Si
Pi
r
i-1
Figure 29 : Sortie S
i
Les fonctions ri, sous forme complémentées, sont les suivantes
0 = M( 0 + e
0)
1 = M.( 1 +
0
1+ e
0 1)
2 = M.( 2 + 1 2 + P 0 G1 G 2
e
0 1 2
r3
P3
P
G
G
P
G
2
3
1 2 3
0 1 G 2 G3 + e
0 1 2 3)
Les sorties r0, r1, r2 et r3 s'obtiennent par complémentation de 0 , 1 , 2 et r 3 , ce qui donne des
implantations sous forme de Et-NOR. La Figure 30 donne le schéma logique pour la retenue r0.
r
P
r
P
r
P
= M.(
r
P
.G
.G
r
.G
G
P G
+ P .G
+ r
+
.G
G
G
+
)
r
.G
G G
G
r
f3
0
0
0
0
0
0
0
0
1
1
1
1
1
1
1
1
f2
0
0
0
0
1
1
1
1
0
0
0
0
1
1
1
1
f1
0
0
1
1
0
0
1
1
0
0
1
1
0
0
1
1
f0
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
Gi
0
0
0
0
Pi
ai
ai+bi
a i+ b
1
ai
ai+bi
a i+ b
1
ai
ai+bi
a i+ b
1
ai
ai+bi
a i+ b
1
i
a i. b
a i. b
a i. b
a i. b
ai.bi
ai.bi
ai.bi
ai.bi
ai
ai
ai
ai
i
i
i
i
i
r
G .Pi
i
ai
ai+bi
a i+ b
1
ai.bi
bi
ai=bi
a +bi
a i. b
ai ⊕ b
i
i
i
bi
i
i
r
+b
0
a .bi
a .b
ai
i
i
i
i
ai
Si = G i + P
a
a
i
i
i
+b
.bi
0
i
ai
a .b
i
i
bi
ai ⊕ bi
a i. b
a +bi
ai=bi
bi
ai.bi
1
a i+ b
ai+bi
ai
i
i
i
Table 20
P0
r0
G0
re
M
Figure 30 : Retenue r0
Nous examinons maintenant deux exemples d'opérations arithmétiques que l'on peut obtenir avec l'UAL
considérée.
4-3.5.1. Exemple 1 : f3 = 1 f2 = 1 f1 = 0 f0 = 0 M = 1
P
G
D'après la table IV-3, on a G =
i
a
i
et
i
=
a
i
, soit
24
i
.Pi = 0
Janvier 2004
les différentes retenues sont alors
r
0
= M( a
r 1 = M(
r
2
= M(
0+re
a1
a
2
a3
+
a
.
a
0 a1
+ a1 a
0)
+
2
a
= M.
r
+
e
.a
a
0
0
0 a1
a1 a
) = M. a 1
2
+
r
e
.a
0 a1 a 2
a 0 a1 a 2 a 3
) = M. a
2
+ . a 0 a 1 a 2 a 3 ) = M. a 3
Lorsque M = 1 alors ri = ai et Si = G .Pi ⊕ ri-1 = ri-1
Soit Si = ai-1
La fonction obtenue est donc S = 2 A si re = 0 et S = 2 A + 1 si re = 1
4-3.5.2. Exemple 2 : f3 = 1 f2 = 0 f1 = 0 f0 = 1 M = 1
D'après la Table 20, on a Gi = ai bi et Pi = ai + bi
Les fonctions Gi et Pi sont les fonctions générations et propagation définies pour l'addition. L'opération
arithmétique est donc l'addition avec retenue
re,S = A + B + re
r 3 = M(
+ a
2a3
+
a1 a 2 a 3
+
re
i
5.3 LES MULTIPLIEURS
5.3.1 Multiplieurs pour nombres entiers
Nous présentons les schémas de principe de la multiplication réalisée à l’aide d’opérateurs
combinatoires, puis nous introduisons les techniques utilisées pour obtenir des multiplieurs rapides.
5.3.1.1
Le multiplieur combinatoire trivial
La Table 21 présente le schéma de principe de la multiplication de deux entiers non signés de 8 bits. Le
multiplicande est le nombre X et le multiplicateur le nombre Y. L’opération de multiplication fait
intervenir deux types d’opérations élémentaires : des produits de bits et des additions de sommes
partielles. Chaque produit XiYj est réalisé par une simple porte Et. Le produit du bit Yj du
multiplicateur par le multiplicande X donne une somme partielle constituée des bits X7Yj à X0Yj, de la
gauche vers la droite (des poids forts aux poids faibles). Il faut ensuite additionner ces sommes partielles
pour obtenir la somme finale.
S15
X7
X6
X5
X4
X3
X2
X1
X0
Y7
Y6
Y5
Y4
Y3
Y2
Y1
Y0
X7Y0
X6Y0
X5Y0
X4Y0
X3Y0
X2Y0
X1Y0
X0Y0
X7Y1
X6Y1
X5Y1
X4Y1
X3Y1
X2Y1
X1Y1
X0Y1
X7Y2
X6Y2
X5Y2
X4Y2
X3Y2
X2Y2
X1Y2
X0Y2
X7Y3
X6Y3
X5Y3
X4Y3
X3Y3
X2Y3
X1Y3
X0Y3
X7Y4
X6Y4
X5Y4
X4Y4
X3Y4
X2Y4
X1Y4
X0Y4
X7Y5
X6Y5
X5Y5
X4Y5
X3Y5
X2Y5
X1Y5
X0Y5
X7Y6
X6Y6
X5Y6
X4Y6
X3Y6
X2Y6
X1Y6
X0Y6
X7Y7
X6Y7
X5Y7
X4Y7
X3Y7
X2Y7
X1Y7
X0Y7
S14
S13
S12
S11
S10
S9
S8
S7
S6
S5
S4
S3
S2
S1
S0
Table 21 : Multiplication de deux nombres non signés de huit bits.
La version la plus simple de multiplieur câblé pour réaliser l’opération de la Table 21 utilise un
additionneur 1 bit avec une porte Et sur l’une des deux entrées. La Figure 31 donne la représentation
symbolique utilisée dans la Figure 32 (partie a) et le schéma explicite (partie b).
25
Janvier 2004
E
a)
Xi Yj
b)
i-j
Additionneur
1 bit
Rs
Re
S
Figure 31 : Additionneur 1 bit utilisé dans le multiplieur combinatoire. a) représentation
symbolique ; b) schéma complet
La Figure 32 présente le multiplieur combinatoire utilisant l’additionneur 1 bit modifié présenté en
Figure 31. C’est la traduction directe du schéma de la multiplication de la Table 21. Le résultat de la
multiplication est obtenu après propagation de toutes les sommes et les retenues à travers tous les
additionneurs 1 bit. Si l’on appelle ts le temps de retard entre une entrée (ou la retenue d’entrée) et la
sortie de l’additionneur 1 bit et tr le temps de retard entre une entrée (ou la retenue d’entrée) et la
retenue de sortie de l’additionneur, on constate que l’on obtient la sortie S15 après un temps 14 tr + 5 ts
et S14 après un temps 13 tr + 6 ts. Le premier temps correspond au chemin horizontal depuis X1Y0
jusqu’à la retenue de sortie de l’additionneur noté 7-1, puis au chemin vertical jusqu’à la sortie de
l’additionneur noté 2-6, puis au chemin horizontal jusqu’à la retenue de sortie de l’additionneur 7-7.
Pour le second temps, il y a un temps ts en plus et un temps tr en moins. Pour un additionneur n bits x n
bits, ces temps sont respectivement (2n-2) tr + (n-3) ts et (2n-3) tr + (n-2) ts. Ce type de multiplieur
correspond pour les multiplieurs à l’additionneur à propagation simple de retenue pour les
additionneurs. Le temps de calcul est proportionnel à la taille des deux opérandes.
0
7-7
S 15
S 14
X7Y0 X 6Y0 X5Y0 X4Y0 X3Y 0 X2Y0 X1Y 0 X0Y0
7-1
6-1
5-1
4-1
3-1
2-1
1-1
7-2
6-2
5-2
4-2
3-2
2-2
1-2
0-2
7-3
6-3
5-3
4-3
3-3
2-3
1-3
0-3
7-4
6-4
5-4
4-4
3-4
2-4
1-4
0-4
7-5
6-5
5-5
4-5
3-5
2-5
1-5
0-5
7-6
6-6
5-6
4-6
3-6
2-6
1-6
0-6
6-7
5-7
4-7
3-7
2-7
1-7
0-7
S 13
S 12
S9
S8
S 11
S 10
S7
0-1
0
0
0
0
0
0
0
S6
S5
S4
S3
S2
S1
S0
Figure 32 : Multiplieur combinatoire 8 x 8 (version triviale)
Améliorer la vitesse d’un multiplieur combinatoire peut se faire en utilisant deux types de techniques.
La première technique consiste à diminuer le nombre de sommes partielles générées. La seconde
consiste à éviter au maximum la propagation de retenues.
5.3.1.2
Les algorithmes de Booth.
L’algorithme de Booth originel correspond à l’observation suivante.
Soit à multiplier un multiplicande X par un multiplicateur Y = 011111112, X et Y étant des entiers non
signés sur 8 bits. Dans ce cas particulier, Y = 12710. On peut remarquer que Y = 128 - 1. L’addition de
7 sommes partielles peut donc être remplacée par une seule soustraction de deux sommes partielles.
Cette méthode présente l’inconvénient suivant : le nombre d’additions ou soustractions à effectuer
dépend de la configuration des bits du multiplicateur.
26
Janvier 2004
On peut utiliser l’observation précédente en conservant un temps de calcul constant en utilisant
l’algorithme de Booth modifié. Celui-ci examine deux bits du multiplicateur à la fois (et le bit de poids
immédiatement inférieur), et détermine la valeur correspondante de la somme partielle en fonction du
multiplicande. De cette manière, un multiplicateur de n bits ne génère que n/2 sommes partielles. Les
valeurs de la somme partielle en fonction des bits mi+1, mi et mi-1 du multiplicateur sont données par
la Table 22.
mi+1
0
0
0
0
1
1
1
1
5.3.1.3
mi
0
0
1
1
0
0
1
1
mi-1
somme partielle
0
0
1
X
0
X
1
2X
0
- 2X
1
-X
0
-X
1
0
Table 22 : Algorithme de Booth modifié.
Opération
+ 0 (pas de chaîne)
+X (fin de chaîne)
+X
+ 2X (fin de chaîne)
-2X (début de chaîne)
-X
-X (début de chaîne)
- 0 (milieu de chaîne)
Les arbres de Wallace.
Une multiplication de n bits par n bits produit n sommes partielles (sans utiliser l’algorithme de Booth
modifié), que nous appelons par la suite sommandes. Le principe des arbres de Wallace consiste à
réduire ces n sommandes en deux sommandes en utilisant des additionneurs à conservation de retenue
(CSA), puis à ajouter ces deux sommandes en utilisant un additionneur à propagation rapide de retenue
(additionneur à calcul de retenue anticipée, par exemple). La Figure 33 présente l’additionneur à
conservation de retenue. La partie a) montre qu’il s’agit d’un additionneur 1 bit classique, qui a trois
entrées et deux sorties : somme et retenue. La partie b) montre la manière dont il est utilisé dans le
multiplieur avec arbre de Wallace. Trois bits de rang i sont additionné dans une étape d’addition de
sommandes, et produisent pour l’étape suivante d’addition de sommandes un bit somme pour le rang i
et un bit retenue pour le rang i+1.
a)
b)
Additionneur
1-bit
X
X
X
retenue somme
X
X
(somme)
(retenue)
Figure 33 : Additionneur à conservation de retenue. a) additionneur 1 bit utilisé ; b)
symbolisme utilisé pour l’arbre de Wallace
La Figure 34 montre la manière dont les additionneurs CSA sont utilisés pour passer de huit
sommandes aux deux sommandes finaux. La première étape d’addition permet de passer de huit
sommandes à six sommandes en un temps qui est la traversée d’un additionneur CSA. La seconde étape
permet de passer de six sommandes à quatre sommandes. La troisième étape permet de passer de quatre
à trois sommandes, et la quatrième de trois à deux. Pour n sommandes, le nombre d’étapes d’addition
est égal à log3/2 (n). Le terme 3/2 provient de l’additionneur CSA, qui à trois entrées fait
correspondre deux sorties. L’addition finale utilise un additionneur à propagation rapide de retenue,
comme l’additionneur à retenue anticipée. On peut remarquer que les premières étapes de réduction de
n sommandes à deux permettent d’obtenir un certain nombre de bits du résultat final, permettant de
réduire le nombre de bits sur lequel opère l’additionneur rapide final.
27
Janvier 2004
X X X X X X X X
X X X X X X X X
1ère étape d'addition
X
X X
X X X
X X X X
2ème étape d'addition
X
X
X
X
X
X
X
X
X
X
X
X X
X X X
X X X
X X X
X X X
X X X
X X X
X X
X
X
X
X
X
X
X
X
X
X
X
X X X X
X X X
X X
X
X X X X X X X X X X X
X
X X X X X X X X X X
X X X X X X X X X X X
X X X X X X X X X X X
X X
X X X
X
X X X X X X X X X X X X X X X
X X X X X X X X X X
3ème étape d'addition X
X
X X X X X X
X X X X
X X X X X X X X X X X X X X X
ème
4
étape d'addition X X
X X X X X X X X
X X X X X
Addition finale
Produit
X X X X X X X X X X X X X X X
X X X X X X X
X
X X
X X X X X X X X X X X X X X X X
Figure 34 : Multiplication non signée 8 bits x 8 bits par la méthode de Wallace
5.3.1.4
Traitement des nombres signés
Les multiplieurs pour nombres signés tiennent compte de la représentation utilisée pour les nombres
négatifs. Pour la multiplication 8 x 8 de deux nombres X et Y en représentation complément à deux, les
deux nombres X et Y sont respectivement
i= 6
X = -27 X7 + ∑ X 2 i
=0
j= 6
i
i
Y = -27 Y7 +
∑= Y 2
j 0
j
j
j= 6
i= 6
j= 0
i= 0
Le produit est alors X.Y = 214 X7.Y7 -27X7 ∑ Y j 2 j - 27Y7 ∑ X i 2 i +
i= 6
j= 6
j
∑i= 0X i 2i ∑
Yj2
j= 0
Le dernier produit correspond à une multiplication non signée sur les six bits de poids faible de X et Y.
Les trois premiers termes prennent en compte les caractéristiques de la représentation en complément à
deux. De légères modifications apportées au multiplieur pour entiers non signés permettent donc de
traiter les nombres en complément à deux.
5.3.2
5.3.2.1
Multiplieurs pour nombres en représentation flottante
La représentation flottante
28
Janvier 2004
En représentation flottante, un nombre est caractérisé par son signe, sa mantisse et son exposant qui est
associé à une base : +/- m.2e. La base utilisée est 2. Dans la norme IEEE qui est la plus utilisée
maintenant, la mantisse, exprimée en signe et valeur absolue, est 1,f où 1 est implicite et f est la partie
fractionnaire, correspondant aux puissances successives de 2-i. L’exposant est exprimé en code excès N.
La Figure 35 montre la représentation flottante double précision, sur 64 bits, qui est la plus couramment
utilisée. La partie exposant donne sur 11 bits la valeur de l’exposant en code excès 1023. La partie
fractionnaire a 52 bits. Le bit 63 donne le signe de la partie fractionnaire. Le nombre flottant double
précision correspond à
(-1)signe x (1,f1f2...f52) x 2 (E-1023)
63 62
S
signe
52 51
E
0
f52
f1
partie fractionnaire
exposant
Figure 35 : Format flottant double précision.
La norme flottante IEEE permet de représenter les nombres normalisés (bits de E différents de tous à 0
ou tous à 1), les nombres dénormalisés (E tous à 0 et partie fractionnaire non nulle), la valeur zéro (E
tous à 0 et partie fractionnaire nulle), l’infini (E tous à 1 et partie fractionnaire nulle) et des caractères
spéciaux (Not a number lorsque les bits de E sont tous à 1 et la partie fractionnaire est différente de 0).
La représentation simple précision sur 32 bits a 1 bit de signe, 8 bits de partie exposant et 23 bits pour la
partie fractionnaire.
5.3.2.2
Multiplication flottante.
Les opérations flottantes impliquent un traitement simultané des mantisses (c’est à dire des parties
fractionnaires) et des exposants.
Soit m = (-1)signe x (1,f1f2...f52) la mantisse signée et e = (E-1023) l’exposant. Soit deux nombres
flottants N1 = m1 x 2 e1 et N2 = m2 x 2 e2.
La multiplication N1 x N2 est donnée par m1 x m2 x 2e1+e2. Il y a multiplication des mantisses, ce qui
correspond à une multiplication entière, où l’on arrondit pour obtenir un résultat correspondant au
nombre de bits de la partie fractionnaire. Compte tenu du codage en excès 1023, l’addition des
exposants correspond à l’opération E1 + E2 -1023.
La multiplication des mantisses utilise un multiplieur pour nombres entiers, travaillant sur n = 52 bits
(double précision) ou n = 23 bits (simple précision).
5.3.3 Opérateurs pour autres opérations.
La division est une opération plus complexe, qui ne peut être implantée par un opérateur combinatoire
simple. Les divisions sont implantées avec des opérateurs séquentiels, qui opèrent en plusieurs cycles
d’horloge, comme ceux présentés dans le paragraphe 6 (compteurs et automates) de ce chapitre. Le
lecteur intéressé trouver dans l’annexe A de [1] une description détaillée des algorithmes de division les
plus couramment utilisés dans les diviseurs câblés (notamment l’algorithme SRT).
29
Janvier 2004
6 BASCULES
Les bascules sont les opérateurs élémentaires de mémorisation. Leur état présent, déterminé par l'état
des sorties, est fonction des entrées et de l'état précédent des sorties. Nous présentons les différentes
bascules réalisées à partir de portes logiques. Ces bascules, qui opèrent uniquement selon des principes
logiques, sont appelées statiques.
6.1 BISTABLE
S1
E
S2
Figure 36 : Inverseurs en série
Le circuit présenté en Figure 36 est constitué de 2 inverseurs en série. La Figure 37 donne les
caractéristiques statiques S1(E) et S2(E) des sorties S1 et S2 des inverseurs réalisés avec des circuits
électriques réels. Lorsqu'on reboucle la sortie S2 sur l'entrée E1 du premier inverseur, on obtient 3
points de fonctionnement qui correspondent aux intersections de la courbe S2(E) et de la première
bissectrice (S2 = E).
- 2 états stables qui correspondent aux états haut et bas
- 1 état instable, qui constitue la frontière entre l'état haut et l'état bas.
Les 2 états stables sont représentés Figure 38.
L'élément obtenu est
, représenté d'une autre manière en Figure 39. Étant dans un état parmi
les deux possibles, il mémorise 1 bit. il n'y a aucun moyen de contrôler l'état du bistable. Il reste dans un
état donné, et il n'y a aucun moyen de le positionner dans l'autre état.
le bistable
S2
S1
E
Figure 37 : Caractéristique physique d'inverseurs en série.
1
0
1
0
1
0
Figure 38 : États stables du bistable
Q
Q
Figure 39 : Représentation traditionnelle du bistable.
6.2 BASCULE RS
30
Janvier 2004
La bascule RS ajoute à la capacité de mémorisation du bistable la possibilité de le fixer dans un état
donné, par l'opération d'écriture. il y a deux types de bascule RS, selon la porte élémentaire utilisée :
NAND ou NOR
6.2.1 Bascule RS NAND
Soit le circuit de la Figure 40 constitué de 2 NAND dont chaque sortie est rebouclée sur une entrée de
l'autre NAND et qui a 2 entrées R et S.
S
Q
Q
R
Figure 40 : Bascule RS NAND
Le fonctionnement d'une porte NAND est résumée par les expressions NAND(x,y) = x si y = 1 et
NAND(x,y) = 1 si y = 0
Le fonctionnement de la bascule RS peut donc être exprimé de la manière suivante :
Cas R=S=1
6.2.1.1
NAND (S, Q ) = Q et NAND (R, Q) =
C'est l'état mémoire.
6.2.1.2
Cas S = 0 et R = 1.
6.2.1.3
Cas S = 1 et R = 0
Q
: la bascule RS est équivalente au bistable de la Figure 39.
La Figure 41 décrit les différentes étapes de l'écriture d'un 1 dans la bascule RS.
a) NAND (0, Q ) = 1 écrit un 1 sur la sortie Q
b) NAND (1, 1) = 0 écrit un 0 sur la sortie Q
c) Le 0 de la sortie Q vient confirmer le 0 de l'entrée S et verrouille la sortie Q dans l'état 1. L'entrée S
= 0 n'est plus nécessaire. Le temps minimum à l'état bas de l'entrée S est donc de 2 tp, où tp est le temps
de propagation dans la porte NAND.
d) Compte tenu du verrouillage effectué dans la phase précédente, l'entrée S peut repasser à 1 et la
bascule repasse dans l'état mémoire.
Ce cas, symétrique du précédent, force Q = 0 et Q = 1
6.2.1.4
Cas S = 0 et R = 0
C'est un cas interdit car Q = Q = 1 et les 2 sorties ne sont plus complémentaires.
La bascule RS (Reset et Set) a donc 2 modes de fonctionnement : un état mémoire lorsque R = S = 1 et
un état écriture lorsque R = S . On a alors Q = R = S . La bascule RS ne distingue pas les entrées d'état
et les commandes. Chacune des entrées est à la fois une entrée d'état et de commande : lorsque
(commande) S est à 0 (état), la sortie Q passe à 1. Ceci peut être un inconvénient dans un système
synchrone, où il est important de distinguer les signaux d'état des signaux de commande.
0
1
0
0
1
0
1
1
1
1
1
a)
0
b)
c)
1
1
0
1
0
1
d)
Figure 41 : Écriture d'un 1 dans une bascule RS NAND
6.2.2
Bascule RS NOR (Figure 42)
31
Janvier 2004
R
Q
S
Q
Figure 42 : Bascule RS NOR
C'est la bascule duale de la bascule RS NAND. Elle a deux modes de fonctionnement : un état mémoire
lorsque R = S = 0 et un état écriture lorsque R = S. On a alors Q = S = R . L'état R = S = 1 est interdit.
6.3 BASCULE LATCH
La bascule latch distingue une entrée d'état (D) et une entrée de commande (C). Sa représentation
symbolique est donnée en Figure 43.
D
Q
Bascule
latch
(Etat)
C
Q
(commande)
Figure 43 : Bascule latch
La Figure 44 donne un schéma possible de bascule latch de type NAND.
S
D
R
C
Q
Q
Figure 44 : Bascule latch NAND
Lorsque C = 0, on a S = R = 1 et la bascule RS est dans l'état mémoire (Figure 45)
D
C=0
0
0
1
S
1
R
Q
Q
Figure 45 : Bascule latch en état mémoire
Lorsque C = 1, on a R = S = D, ce qui correspond à l'état écriture de la bascule RS et Q = D (Figure
46).
L'écriture d'un 1 correspond à S = 0. L'écriture d'un 0 correspond à R = 0. Dans les 2 cas, la redescente
de l'horloge C de 1 --> 0 provoque la remontée de S (resp. R) de 0 --> 1, ce qui est inefficace sur la
bascule RS de sortie à cause de la phase de verrouillage.
De la même manière, on définit la bascule latch NOR qui est dans l'état mémoire lorsque C = 1 et dans
l'état écriture lorsque C = 0.
32
Janvier 2004
Les bascules latch sont dites transparentes parce qu'il y a une liaison directe Q = D (à travers 2
inverseurs) lors de l'écriture. Toute variation de l'entrée est transmise directement à la sortie.
D
D
S
Q
1
C=1
1
Q
D R
Figure 46 : Bascule latch en état écriture
6.4 REGISTRES.
On appelle registre un ensemble de bascules avec une même commande d'horloge (Figure 47).
D
i
Dn-1
C
.........
D0
.........
Qn-1
Qi
Q0
Figure 47 : Registre
Les registres ont la propriété des bascules qui les composent : un registre constitué de bascules latch sera
un registre transparent.
La transparence des registres et des bascules interdit un certain nombre d'utilisations que nous
examinons maintenant.
6.4.1 Transparence et registre à décalage
Un registre à décalage est constitué de bascules telles que la sortie de l'une est reliée à l'entrée de la
bascule suivante. La Figure 48 donne un exemple d'un tel registre.
D0
Q0
D1
Q1
D2
Q2
C
Figure 48 : Exemple de registre à décalage
D'après la définition de la bascule latch NAND, on a Qi = Di lorsque C = 1 et d'après les connexions, on
a Di = Qi-1. Lorsque C = 1, on a donc Qi = Qi-1 pour tout i. il y a décalage d'un bout à l'autre de la
chaîne de bascules de la valeur D0. il n'est donc pas possible de décaler chaque bit d'une position vers la
droite à chaque coup d'horloge.
6.4.2 Connexion d'une sortie sur une entrée
La Figure 49 illustre le cas où l'on relie une sortie d'une bascule sur l'entrée de la même bascule.
33
Janvier 2004
Q
D
Bascule
latch
Q
C
Figure 49 : Liaison Q à D sur une bascule latch
D'après la connexion, on a D = Q , et lorsque C = 1 (latch NAND), on a Q = D, ce qui conduit à Q =
Q . Cette situation anormale conduit soit à des oscillations, soit à des problèmes autour du point
d'équilibre instable de la Figure 37. Le rebouclage des sorties d'un registre vers les entrées d'un même
registre à travers des étages de logique combinatoire est une configuration inévitable. Un exemple
typique est l'opération d'incrémentation du compteur de programme (CP) d'un processeur : CP := CP +
n. Des bascules non transparentes sont donc indispensables.
6.5 BASCULE D
La bascule D est une bascule non transparente (ou opaque) qui permet de recopier l'état de l'entrée D
vers la sortie Q sans qu'il y ait jamais de liaison directe entre entrée et sortie. La représentation
symbolique est donnée par la Figure 50. L'opacité peut être réalisée de différentes manières.
D
(Etat)
Q
Bascule D
C
Q
(commande)
Figure 50 : Bascule D
6.5.1 Les bascules D maître esclave.
Elles fonctionnent selon le principe des écluses (Figure 51). On utilise 2 bascules transparentes, dont
l'une est en état mémoire pendant que l'autre est en état écriture et réciproquement. De cette manière, il
n'y a jamais de liaison directe entre entrée et sortie.
D
Qm
Bascule
latch
Qs
Bascule
latch
C2
C1
Figure 51 : Principe du maître esclave
Si les 2 signaux d'horloge C1 et C2 sont sans recouvrement, c'est à dire tels qu'ils suivent la séquence
suivante : C1C2 = 00 puis 10 puis 00 puis 01 puis 00 puis ..., alors il y a fonctionnement correct. Il y a
d'abord recopie de l'entrée D dans Qm lorsque C1 = 1, puis recopie du maître dans l'esclave lorsque C2
=1
34
Janvier 2004
Si l'on veut utiliser une seule horloge C avec son complément C , il y a problème à cause de l'aléa lié au
retard introduit par l'inverseur, comme le montre la Figure 52.
C
C = C
C = C
C
Figure 52 : Recouvrement C- C des commandes de bascule.
Si on utilise les signaux avec recouvrement, comme ceux de la Figure 52, pour commander le maître et
l'esclave, il y a obligatoirement le cas où les 2 latchs sont transparents simultanément et le cas où les 2
sont en état mémoire simultanément. Ce problème peut être résolu en utilisant un maître NAND et un
esclave NOR, ce qui compte tenu de la dualité des bascules latch NAND et NOR supprime la nécessité
de complémenter C. La bascule D maître esclave correspondante est présentée en Figure 53.
Qm
D
Qs
Qs
Qm
C
Figure 53 : Bascule D maître esclave NAND NOR
Pour avoir un fonctionnement correct même en cas de dispersion des niveaux de seuil des portes, il faut
que le niveau de seuil du maître (frontière entre 0 et 1) soit supérieur au niveau de seuil de l'esclave,
comme le montre la Figure 54. Dans ce cas de figure, la bascule maître esclave fonctionne correctement,
quelle que soit la fréquence d'horloge C.
seuil maitre
seuil esclave
maitre transparent
esclave opaque
maitre et esclave opaques
maitre et esclave opaques
esclave transparent
esclave transparent
maitre opaque
Figure 54 : Seuils du maître et de l'esclave
6.5.2 Les bascules D à commande par flanc (edge triggered)
Elles fonctionnent sur la transition montante (ou descendante) du signal d'horloge (Figure 55). Le signal
D doit être positionné un certain temps (appelé temps d'établissement ou set up time tsu) avant la
transition du signal de commande C, et rester positionné un certain temps (appelé temps de maintien ou
hold time th) après la transition du signal de commande. C'est la valeur de D qui est fixe lors de la
transition du signal de commande C qui est recopiée à la sortie. Hors de la période déterminé par tsu +
th, l'état de D est indifférent et peut varier.
35
Janvier 2004
D quelconque
D quelconque
D est fixe
temps
établissement
C
temps
maintien
Figure 55 : Fonctionnement de la bascule D à commande par flanc
La bascule D à commande par flanc est réalisée avec 6 portes NAND ou 6 portes NOR selon le schéma
Figure 56.
D
Q
Q
C
Figure 56 : Bascule D à 6 portes NAND
Lorsque C = 0, la bascule RS de sortie est en état mémoire. La Figure 57 (gauche) illustre l'écriture d'un
0, et la Figure 57 (droite) montre le verrouillage des sorties après l'écriture du 0, lorsque D varie alors
que C est toujours à l'état 1. La Figure 57 (gauche) illustre l'écriture d'un 1, et la Figure 58 (droite)
montre le verrouillage des sorties après l'écriture du 1, lorsque D varie alors que C est toujours à l'état 1.
Verrouil lage
1
D=0
0
1
1
D varie
1
0
1
Q=1
Q=1
1
1
Q = 0
0
1
1
1
1
1
1
1
C=1
Q = 0
0
C=1
Figure 57 : Écriture d'un 0
Verrouillage lorsque C = 1
36
Janvier 2004
0
D=1
1
1
D
D varie
Q=0
0
1
1
Q=0
0
D varie
0
0
1
1
1
Q=1
0
0
Q=1
1
0
0
C=1
C=1
Figure 58 : Écriture d'un 1
Verrouillage lorsque C=1 après écriture d'un 1
La bascule D à 6 portes NOR a un fonctionnement dual de celle à 6 portes NAND. L'écriture se fait lors
de la transition descendante de l'horloge.
6.5.3 Bascules D et opacité
Nous avons vu en 5-4-2 et 5-4-3 que les registres à décalage et la liaison d’une sortie sur une entrée de
la bascule D ne sont pas possibles avec les bascules latch. Nous montrons maintenant que les bascules D
résolvent le problème. La seule hypothèse est celle illustrée en Figure 55, c’est à dire que l’entrée D est
fixe un temps tsu avant la transition d’horloge, et jusqu’à un temps th après la transition d’horloge. La
Figure 59 donne le schéma d’un registre à décalage 2 bits, avec l’état initial suivant : D0 = 1, Q0 = 0 et
Q1 = 0. Lors de la première transition 0-1 de C, D0 = 1 est recopié en Q0, qui passe à 1 avec un retard
tpd. Comme tpd est supérieur à th (ce qui est toujours le cas dans la pratique), le passage de D1 (=Q0) à
1 intervient trop tard pour être pris en compte par la première transition de C. C’est cette situation qui
assure l’opacité. Ce n’est que sur la transition suivante de C de 0 à 1 que D1 = 1 sera recopié à la sortie
Q1, avec un temps de retard tpd par rapport à cette transition. Le registre à décalage fonctionne
correctement.
D
Q
=1
0
0
D
Q
1
Bascul e D
Bascul e D
C
C
t
su
C
t
su
T
c
t
h
t
pd
1
t
h
Q = D
0
1
t
pd
Q
1
Figure 59 : Registre à décalage 2 bits et diagramme temporel des signaux associés.
Le diagramme temporel de la Figure 59 permet de déterminer la condition de fonctionnement du
registre à décalage. Le signal D1 devant être stable un temps tsu avant la deuxième transition 0-1 de
l’horloge, la condition s’écrit :
37
Janvier 2004
tpd bascule + tsu ≤ Tc où tp bascule est le temps de retard entre la transition d’horloge et la transition à
la sortie de la bascule, tsu est le temps d’établissement et Tc est la période d’horloge. La fréquence
1
1
.
Tc min t pd( bascule ) + tsu
Le rebouclage de la sortie Q d’une bascule D sur l’entrée D (Figure 60) n’est qu’un cas particulier du
registre à décalage. Le circuit correspondant est appelé compteur par deux, car il a deux états et change
d’état à chaque transition 0-1 de l’horloge.
maximale de fonctionnement est F max =
=
Q
Bascul e D
D
Q
C
Figure 60 : Compteur par deux
En fait, le registre à décalage ou le compteur par deux n’est qu’un cas particulier des opérateurs
synchrones. Le cas général est illustré par la Figure 61. Entre la sortie d’une bascule D et l’entrée de la
bascule suivante, on trouve des opérateurs combinatoires. La condition de fonctionnement correct est
alors tpd (bascule) + tpd (combinatoire) + tsu ≤ Tc. La fréquence maximale de fonctionnement du
système est alors
Fmax =
1
Tcmin
D0
=
1
tpd( bascule)
+ t pd ( combinatoire) + t
Bascule D
Q0
C tpdbasc
su
Logique
combinatoire
tpdcomb
D1
Q1
Bascule D
tsu
C
Tc
Figure 61 : Structure typique de la logique synchrone
6.5.4 Utilisation de la bascule D
Du fonctionnement de la bascule D se déduit aisément la manière de l'utiliser. La sortie Q de la bascule
représente son état présent. Lors de la prochaine transition d'horloge, l'entrée D sera recopiée sur la
sortie Q. L'entrée D représente donc l'état futur de la bascule D. Alors que la sortie représente l'état
présent, l'entrée représente l'état futur (Figure 62)
38
Janvier 2004
D
ETAT
FUTUR
Bascule D
Q
ETAT
PRESENT
C
Figure 62 : Utilisation de la bascule D
Cette propriété sera utilisée pour la réalisation des compteurs et des automates.
6.6 BASCULES DÉRIVÉES DE LA BASCULE D
Un certain nombre de variantes de la bascule D ont été introduites, comme les bascules T et JK.
6.6.1 Bascule T
Le schéma fonctionnel de la bascule T est donné en Figure 63.
T
(Etat)
Q
Bascule T
Q
C
(commande)
Figure 63 : Bascule T
La bascule T change d'état si T =1 et ne change pas d’état si T = 0. La Table 23 résume son
fonctionnement. Elle peut être réalisée à partir d’une bascule D de deux manières différentes.
T
Qprésent
Qfutur
0
0
0
0
1
1
1
0
1
1
1
0
Table 23 : Fonctionnement de la bascule T.
La Table 24 montre l’entrée T de la bascule T pour obtenir les différentes transitions entre l’état présent
et l’état futur.
Qprésent
Qfutur
T
0
0
0
0
1
1
1
0
1
1
1
0
Table 24 : Utilisation de la bascule T
6.6.1.1
Bascule T asynchrone
6.6.1.2
Bascule T synchrone
La partie gauche de la Figure 64 présente la version asynchrone : la bascule D, montée en compteur par
2, change d’état sur chaque coup d’horloge. La porte Et ne laisse passer l’horloge de la bascule T que si
T=1. La bascule T ne peut donc changer d’état que si T = 1. Lorsque T = 0, la bascule D ne voit pas la
transition d’horloge.
Cette méthode présente l'inconvénient d'utiliser des portes logiques pour traiter des signaux de
commande. Toutes les bascules d’un montage ne recevront pas les signaux de commande au même
moment : des aléas temporels importants peuvent en résulter.
39
Janvier 2004
La partie droite de la Figure 64 présente la version synchrone. La Table 23 donne l’état futur de la
bascule (qui est l'entrée D de la bascule D utilisée) en fonction de l’entrée T et de la sortie présente (qui
est la sortie Q de la bascule D). D’après la Table 23, on constate que D = T ⊕ Q.
Les deux réalisations montrent que la bascule T est réalisée à partir d’une bascule D.
Q
Bascul e D
Q
C
T
(bascul e D)
Bascul e D
Q
T
C
C
Figure 64: Bascule T asynchrone
6.6.1.3
Q
Bascule T synchrone
Bascule JK
La Figure 65 donne le schéma fonctionnel de la bascule JK. Son fonctionnement est résumé par la
Table 25.
J
Q
Bascul e JK
K
Q
C
Figure 65 : Bascule JK
J
0
0
1
1
K
0
1
0
1
Qprésent
Qp
Qp
Qp
Qp
Qfutur
Qp
0
1
Q
p
Table 25 : Fonctionnement de la bascule JK.
Lorsque J=K, la bascule JK fonctionne comme une bascule T. Par contre, lorsque J≠K, la sortie est
positionné dans un état donné : Q = J. La bascule JK est donc une bascule T initialisable.
La Table 26 montre les entrées J et K à appliquer sur les entrées d’une bascule JK pour que obtenir les
différentes transitions entre l’état présent et l’état futur. Ø représente l’état indifférent
Qprésent
Qfutur
J
K
0
0
0
Ø
0
1
1
Ø
1
0
Ø
1
1
1
Ø
0
Table 26 : Utilisation de la bascule JK.
40
Janvier 2004
7 COMPTEURS ET AUTOMATES SYNCHRONES
Nous examinons maintenant la manière de réaliser des opérateurs séquentiels, dont les sorties à un
instant donné sont fonction des entrées et de l'état précédent des sorties. Ces opérateurs séquentiels sont
constitués des bascules présentées (D, T ou JK) et de portes logiques.
Nous traitons successivement les compteurs, qui sont un cas particulier d'automates sans entrées, puis le
cas général des automates, que nous illustrons avec l'exemple d'un contrôleur de feux pour carrefour.
Nous considérons uniquement les automates synchrones, pour lesquels toutes les bascules sont
commandées par le même signal d'horloge. Ceux-ci sont les plus largement utilisés car la condition de
fonctionnement se ramène à satisfaire l'inégalité fondamentale qui caractérise la logique synchrone (55.3).
7.1 LES COMPTEURS
Les compteurs sont des opérateurs séquentiels qui comportent N états et qui passent d'un état i à l'état
i+1 (modulo N) à chaque coup d'horloge.
7.1.1 Exemple : le compteur par 4
Ce compteur a 4 états, notés 0, 1, 2 et 3. Son graphe des états est donné en Figure 66. Ces états doivent
être codés avec deux chiffres binaires x et y. Il y a 12 manières différentes de coder 4 états (3 sont
fondamentales et les autres s'en déduisent par permutation sur les x et les y). Sur les 3 codes
fondamentaux, seuls le code naturel et le code de Gray, pour lequel seul 1 bit change à la fois, sont
intéressants.
La table VI-1 donne les trois codes fondamentaux
7.1.1.1
Implantation avec des bascules D.
Le compteur est implanté avec des bascules D, dont la fonctionnalité est rappelée en Figure 67. La sortie
d’une bascule D représente l'état présent. Sur le prochain coup d'horloge, la valeur de l'entrée D sera
recopiée à la sortie. D représente donc l'état futur de la bascule. Pour implanter le compteur, il faut donc
écrire la table donnant l'état présent (sorties Q des bascules) et l'état futur (entrées D des bascules) et
réaliser la synthèse combinatoire des entrées D en fonction des sorties Q.
La Table 27 donne la table de transition du compteur par 4 en utilisant le code naturel. Les entrées D1
et D0 des bascules D sont respectivement
D1 = Q 1 ⊕ Q0
D0 = Q 0
Le schéma correspondant du compteur par 4 est donné en Figure 68.
0
11
3
2
Figure 66 : Graphes des états
N
i
0
1
2
3
y
0
0
1
1
Naturel
x
0
1
0
1
y
0
0
1
1
Gray
x
0
1
1
0
3ème codage
y
x
0
0
1
1
0
1
1
0
Table 27 : Codage des états
41
Janvier 2004
D
Q
Bascul e D
Etat
Etat
Futur
C
Figure 67 : Bascule D
État présent
État futur
Q1
Q0
D1
D0
0
0
0
1
0
1
1
0
1
0
1
1
1
1
0
0
Table 28 : compteur par 4 (code naturel)
La Table 28 donne la table de transition du compteur par 4 en utilisant le code de Gray. Les entrées D1
et D0 des bascules D sont alors
D1 = Q 0
D0 = Q 1
Le schéma correspondant du compteur par 4 est donné en Figure 69.
Bascule D
Q
Q
0
D
Q
Bascule D
1
Q
1
1
0
C
C
Figure 68 : Compteur par 4 (code naturel)
État présent
État futur
Q1
Q0
D1
0
0
0
0
1
1
1
1
1
1
0
0
Table 29 : table de transitions
42
D0
1
1
0
0
Janvier 2004
Q
D
0
D
Q
1
0
Bascul e D
1
Bascul e D
Q
1
C
Figure 69 : Compteur par 4 ( Code de Gray )
Les deux implantations précédentes correspondent à l’approche synchrone, dans laquelle toutes les
bascules reçoivent le même signal d’horloge. Il est également possible de définir un compteur par 4
asynchrone, qui est présenté en Figure 70. Il utilise deux bascules D montées en compteur par 2 :
chaque sortie est reliée à l’entrée D correspondante, et chaque bascule change d’état lorsque l’entrée
d’horloge est activée (transition de 0 à 1). La bascule pour le bit 0 change d’état à chaque transition 0 à
1 de l’horloge C. La bascule pour le bit 1 change d’état à chaque transition 0 à 1 de la sortie Q 0 , c’est à
dire à chaque transition 1 à 0 de Q0. D’après la Table 29, la sortie Q1 change effectivement d’état à
chaque fois que la sortie Q0 passe de 1 à 0. La réalisation asynchrone des compteurs présente
l’inconvénient suivant : comme les sorties des bascules ne changent pas d’état en même temps, sur la
transition 0-1 de l’horloge, mais successivement, les aléas (cf. 3.1) qui résultent d’opérations logiques
sur les sorties de bascules asynchrones sont de durée variable et peuvent avoir une largeur significative
alors qu’ils sont courts et de durée constante avec l’approche synchrone. L’approche asynchrone,
populaire il y a une trentaine d’année, est très peu utilisée maintenant. C’est la raison pour laquelle nous
ne traiterons dans la suite du chapitre que les compteurs et automates synchrones, pour lesquels toutes
les bascules reçoivent la même commande d’horloge.
Q
Q
0
Q
Bascul e D
D
Q
Bascul e D
Q
1
1
1
0
C
Figure 70 : Compteur par 4 asynchrone.
Le compteur par 4 synchrone peut également être implanté avec des bascules T ou des bascules JK. On
utilise alors la Table 24 et la Table 26 qui donnent les entrées Ti ou Ji et Ki à appliquer sur les entrées
des bascules utilisées. La Table 30 donne les entrées correspondant aux bascules T et la Table 31 celles
correspondant aux bascules JK. Dans les deux cas, on utilise le code binaire naturel.
État présent
État futur
Q1
Q0
Q1
Q0
T1
0
0
0
1
0
0
1
1
1
1
1
1
1
0
0
1
0
0
0
1
Table 30 : Compteur par 4 avec des bascules T
43
T0
1
1
1
1
Janvier 2004
De la Table 30, on déduit T0 = 1 et T1 = Q0
État présent
Q1
Q0
0
0
0
1
1
1
1
0
État futur
Q1
Q0
J1
K1
0
1
0
Ø
1
1
1
Ø
1
0
Ø
0
0
0
Ø
1
Table 31 :Compteur par 4 avec des bascules JK
J0
1
Ø
1
Ø
K0
Ø
1
Ø
1
De la Table 31, on déduit J0 = K0 = 1 et J1 = K1 = Q0
7.1.2 Compteur avec RAZ
En ajoutant des entrées de contrôle, on transforme les compteurs (automates sans entrées) en véritables
automates. A titre d’exemple, nous ajoutons au compteur par 4 une rentrée RAZ pour Remise à Zéro. La
variable booléenne RAZ est à 1 pour une remise à zéro du compteur et à 0 lors du fonctionnement
normal du compteur. Le graphe des états du compteur avec RAZ est présenté en Figure 71.
RAZ
11
RAZ
.
RAZ + RAZ
0
RAZ
RAZ
3
2
RAZ
Figure 71 : Graphe des états d’un compteur par 4 avec RAZ.
La Table 32donne les entrées D1 et D0 des bascules D en fonction des sorties Q1 et Q0 et de l’entrée
RAZ de l’automate obtenu.
D0 =
D1 =
RAZ.Q 0
RAZ . (Q1 ⊕ Q0)
RAZ
Q1
Q0
D1
D0
0
0
0
0
1
0
0
1
1
0
0
1
0
1
1
0
1
1
0
0
1
0
0
0
0
1
0
1
0
0
1
1
0
0
0
1
1
1
0
0
Table 32 : Compteur par 4 avec RAZ
7.2 LES AUTOMATES
7.2.1 Définition
On appelle automate un opérateur séquentiel dont l'état et les sorties futurs sont fonction des entrées et
de l'état présent de l'automate (Figure 72). Un automate utilise des bascules non transparentes pour
mémoriser l'état présent et des opérateurs combinatoires pour générer les sorties et l'état futur.
L'utilisation de bascules non transparentes est nécessaire à cause du rebouclage des sorties des bascules
sur les entrées à travers des circuits combinatoires.
44
Janvier 2004
Automate
Entrées
Sorties
C
Figure 72 : Automate synchrone
Les automates sont dits synchrones lorsque le passage d'un état (état présent) à l'état suivant (état futur)
a lieu sur une transition d'un signal appelé horloge commun à toutes les bascules de l'automate.
Il y a 2 types d'automates :
- Automate de Moore (Figure 73) : l’état futur est fonction de l’état présent et des entrées. Les sorties
sont fonction de l’état présent.
- Automate de Mealy (Figure 74) : l’état futur est fonction de l’état présent et des entrées. Les sorties
sont fonction de l’état présent et des entrées.
ENTREES
PARTIE
COMBINA
TOIRE
EF
REGIS
TRE D
PARTIE
COMBINA SORTIES
EP TOIRE
C
Figure 73 : Automate de Moore
ENTREES
PARTIE
COMBINA
TOIRE
EF
REGIS
TRE D
EP
PARTIE
COMBINA SORTIES
TOIRE
C
Figure 74 : Automate de Mealy
Il y a équivalence entre les deux types d'automates : tout automate de Moore peut être transformé en
automate de Mealy et réciproquement. L'automate de Mealy a toujours moins d'états que l'automate de
Moore correspondant.
45
Janvier 2004
7.3 UN EXEMPLE D’AUTOMATE SYNCHRONE
7.3.1 .Énoncé du problème
L'automate synchrone contrôle les feux à un carrefour (Figure 75) entre une grande route et un chemin.
Sur le chemin, des détecteurs repèrent la présence ou non d’une automobile en attente du feu vert.
Détecteurs
Chemin
ROUTE
Figure 75 : Carrefour contrôlé par automate
Soit A la variable booléenne associée à la présence d'une automobile (A = 1 si présence, et A = 0 sinon).
Le feu ne peut passer au rouge sur la route que s’il s’est écoulé au moins un temps appelé "temps long"
pendant lequel un véhicule attend sur le chemin. Le feu ne peut être rouge sur la route plus longtemps
que cette durée "temps long", même si des véhicules sont présents sur le chemin. Il y a un temps appelé
"temps court" qui correspond à la durée du feu orange.
Soit TC la variable booléenne associé au temps court, telle que TC = 1 si le temps écoulé depuis la
dernière remise à zéro du compteur est supérieur à "temps court" et TC = 0 sinon.
Soit TL la variable booléenne associé au temps long, telle que TL = 1 si le temps écoulé depuis la
dernière remise à zéro du compteur est supérieur à "temps long" et TL = 0 sinon.
Avec la version Moore de l'automate pour laquelle les états internes sont associés aux sorties, les états
internes sont
RV (Feux Route Verts et Feux Chemin Rouges)
RO (Feux Route Oranges et Feux Chemin Rouges)
CV (Feux Route Rouges et Feux Chemin Verts)
CO (Feux Route Rouges et Feux Chemin Oranges)
7.3.2 Graphe de transition et diagramme d’état.
Le graphe de transition est donné en Figure 76.
A.TL
RV
A.TL
TC
RO
TC
CO
TC
TC
A+
TL
CV
A.TL
Figure 76 : Graphe de transition
La table de transition est donnée en Table 33. Les codes utilisés pour la table de transition et les sorties
sont données respectivement par les Table 34 et Table 35. La Table 36 donne la version codée de la
table de transition.
46
Janvier 2004
État présent
Entrées
État futur
Route Vert
A
Route Vert
Route Vert
Route Orange
Route Orange
Chemin Vert
Chemin Orange
Chemin Vert
Chemin Orange
Chemin Orange
Route Vert
Route Orange
A et TL=0
A et TL=1
TC=0
TC=1
A
Chemin Vert
Chemin Orange
A et TL=0
A et TL=1
TC=0
TC=1
Sorties
FR
FC
V
R
V
R
V
R
O
R
O
R
R
V
R
V
R
V
R
O
R
O
Compteur
RAZ
OUI
NON
OUI
NON
OUI
OUI
NON
OUI
NON
OUI
Table 33 : Diagramme de transition
État présent
Q1
Q0
0
0
1
1
0
1
0
1
Route Vert
Route Orange
Chemin Vert
Chemin Orange
Table 34 : Codage des états de l'automate
Couleur des feux
F1
F0
0
0
1
0
1
1
Vert
Orange
Rouge
Table 35 : Codage des sorties de l'automate
7.3.3 Implantation matérielle.
L'automate correspondant au diagramme de transition est implanté avec des bascules et des portes
logiques. L'implantation avec des bascules D donne les expressions suivantes des entrées D0 et D1 des
bascules (état futur) en fonction des termes produit qui dépendent de l'état présent Q1,Q0 et des entrées
A,TC,TL.
D0 = m 2 + m 3 + m 6 + m 7 + m 8
D1 = m 4 + m 5 + m 6 + m 7 + m 8
où mi correspond aux termes produit (mint) de la table VI-10.
D1 = Q0. TC + Q 0 .A.TL + Q1. Q 0 . A
D0 = Q1. Q 0 + Q1.Q0. TC + Q 1 .Q0.TC
FR1 = Q1
FR0 = Q0 + Q1
47
Janvier 2004
FC1 = Q 1
FC0 = Q0 + Q 1
RAZ = m0+m2+m4+m6+m7+m9
RAZ = TC. Q0 + ( A + TL) Q 0
Le schéma global de l’automate est donné en Figure 77. Il combine un aspect Moore (les sorties FR0,
FR1, FC0 et FC1 sont fonction uniquement de l’état présent de l’automate) et un aspect Mealy (la sortie
RAZ est fonction de l’état présent et des entrées de l’automate).
A
0
1
1
Ø
Ø
1
1
0
Ø
Ø
Entrées
TC
Ø
Ø
Ø
0
1
Ø
Ø
Ø
0
1
EP
TL Q1 Q0
Ø 0 0
0 0 0
1 0 0
Ø 0 1
Ø 0 1
0 1 0
1 1 0
Ø 1 0
Ø 1 1
Ø 1 1
EF
Sorties
D1 D0 RAZ FR1 FR0
0 0
1
0
0
0 0
0
0
0
0 1
1
0
0
0 1
0
0
1
1 0
1
0
1
1 0
0
1
1
1 1
1
1
1
1 1
1
1
1
1 1
0
1
1
0 0
1
1
1
FC1 FC0
1
1
1
1
1
1
1
1
1
1
0
0
0
0
0
0
0
1
0
1
Mint.
0
1
2
3
4
5
6
7
8
9
Table 36 : Diagramme de transition après codage des états et des sorties
A
TC
TL
ER
I
O
TA
N
IB
M
O
C
D0
COMBINATOIRE
BASCULE D
Q0
Q1 COMBINATOIRE
D1
BASCULE D
RAZ
FC1
FC0
FR1
FR0
Figure 77 : Automate pour le contrôleur de feux
Les entrées TC et TL sont des sorties de comparateurs (Figure 78)
48
Janvier 2004
Clock
RAZ
Compteur
Valeur temps
court
Valeur temps long
Sorties du compteur (N bits)
Comparateur
Comparateur
TC
TL
Figure 78 : génération de TC et TL
49
Janvier 2004
TECHNOLOGIE ET CIRCUITS LOGIQUES
8
8.1 INTRODUCTION.
Ce paragraphe a pour but de montrer comment les portes logiques de base sont implantées avec des
circuits électroniques. Nous présenterons la manière de réaliser les inverseurs, les portes NAND, NOR
et certaines portes implantant des fonctions logiques plus complexes avec des transistors MOS (familles
logiques NMOS et CMOS). Nous utilisons une modélisation du fonctionnement des transistors sous
forme d’interrupteurs. Cette modélisation, bien que grossière, permet de comprendre le fonctionnement
logique des circuits électriques.
Dans ce paragraphe, nous adoptons les conventions suivantes : les variables en lettre majuscule (E, S...)
correspondent à des tensions (0V, 5V, états haut ou bas) ; les variables en lettre minuscule (e, s...) sont
les variables booléennes associées.
8.2 TECHNOLOGIES MOS
8.2.1 Transistors et interrupteurs
On utilise des transistors MOS, qui peuvent être modélisés par des interrupteurs. Il y a 2 types de
transistors MOS : le MOS canal N (ou NMOS) et le MOS canal P (ou PMOS). La Figure 79 présente la
modélisation utilisée, et le schéma équivalent à l'interrupteur "fermé" ou "ouvert".
D
G
nMOS
V
= 5 V
G
"1"
V
= 0 V
G
"0"
S
S
G
pMOS
V
= 0 V
G
V
= 5 V
G
"0"
"1"
D
Figure 79 : Modèles des transistors MOS
8.2.2
8.2.2.1
Réalisation des inverseurs
Logique par défaut : NMOS charge déplétée
La logique par défaut était utilisée dans la technologie NMOS appelée à charge déplétée. Elle utilise un
seul type de transistor (NMOS) et une charge passive, qui peut être une résistance ou mieux un
transistor NMOS déplété, qui fonctionne comme une résistance en fonctionnement normal. La Figure
80 modélise le fonctionnement de cette logique. Lorsque l'entrée est à l'état bas, le transistor est
équivalent à un interrupteur ouvert, et la charge passive connecte la sortie au niveau haut. Lorsque
l'entrée est au niveau haut, le transistor est équivalent à un interrupteur fermé, et si la résistance
équivalente à cet interrupteur est négligeable devant la résistance de la charge, la sortie est proche de
0V. L'inconvénient essentiel de cette approche est la consommation statique qui existe lorsque la sortie
est à l'état bas. En effet, lorsque l'interrupteur est fermé, il circule un courant travers la charge passive et
l'interrupteur. La Figure 81 présente le circuit électrique correspondant.
50
Janvier 2004
5V
5V
R
R
S
E
5V
R
i = 0 et loi
d'Ohm
5V
0V
5V
0V
0V
i°0
0V
0V
Figure 80 : Modèle de l'inverseur NMOS
Transistor déplété <==> résistance
*
S
E
: charge passive
Transistor nMOS enrichi
Figure 81 : Inverseur NMOS charge déplétée
8.2.2.2
Logique complémentaire : CMOS
La logique complémentaire en technologie MOS utilise les deux types de transistors. La Figure 82
modélise le fonctionnement de l'inverseur CMOS. L'état haut est obtenu en sortie lorsque l'interrupteur
de type p est fermé et l'interrupteur de type n est ouvert. Ceci est obtenu, compte tenu du mode de
fonctionnement des transistors n et p indiqué par le Figure 79, lorsque l'entrée est à l'état bas. L'état bas
est obtenu en sortie lorsque l'interrupteur n est fermé et l'interrupteur p est ouvert (entrée à l'état haut).
Les deux états haut et bas en sortie sont obtenus via un interrupteur fermé. Ils correspondent donc
exactement aux deux tensions 5V et 0V fournies par l'alimentation. On constate également qu'un seul
interrupteur est fermé à la fois, ce qui signifie qu'il n'y a pas de courant circulant entre les deux bornes
de l'alimentation. Contrairement à la logique par défaut, la logique complémentaire ne dissipe pas de
puissance en statique. La Figure 83 donne le schéma électrique de l'inverseur CMOS.
5 V
5 V
E
S
0 V
5 V
5 V
5 V
0 V
0 V
0 V
0 V
Figure 82 : Modèle de l'inverseur CMOS
51
Janvier 2004
S h aut
Si E Bas
in S
ip
E
ip
≠0
in
≠0
S bas
Si E Haut
Figure 83 : Inverseur CMOS
8.2.3 RÉALISATION DES FONCTIONS LOGIQUES NOR, NAND....
Avec les technologies MOS, la manière de réaliser les fonctions NAND et NOR découle assez
simplement de la manière de réaliser l'inverseur.
8.2.3.1
NMOS
En technologie NMOS, la sortie haute est obtenue lorsqu'aucun courant ne passe à travers la charge
passive. Au contraire, la sortie basse correspond au passage d'un courant à travers un interrupteur fermé.
Pour l'opérateur NOR, la sortie doit être basse si l'une des entrées est à l'état haut, et haute si toutes les
entrées sont à l'état bas. La condition précédente est obtenue par mise en parallèle des interrupteurs de
type n. Le schéma électrique de l'opérateur NOR à deux entrées est présenté en Figure 84.
*
i
≠0
E1 haut ou E2 haut
S
E1
S bas si
E2
i
=0
S haut si
E1 bas et E2 bas
Figure 84 : Circuit NOR NMOS
Pour l'opérateur NAND, la sortie doit être basse si toutes les entrées sont à l'état haut, et haute si l'une
des entrées est à l'état bas. La condition précédente est obtenue par mise en série des interrupteurs de
type n. Le schéma électrique de l'opérateur NAND à deux entrées est présenté en Figure 85.
*
S
i
≠0
S bas si
E1 haut et E2 haut
i
i
=0
E2
S haut si
E1 bas ou E2 bas
E1
Figure 85 : NAND NMOS
La technique de réalisation des fonctions NOR ou NAND peut être utilisée pour la réalisation de
fonctions plus complexes. La sortie est basse s'il existe un chemin entre la sortie et la partie basse de
l'alimentation, à travers des réseaux série ou parallèle d'interrupteurs. Il suffit donc, pour les
configurations des entrées telles que S=0, de réaliser tous les chemins entre S et 0V.
Soit l'exemple 1 (partie gauche de la Figure 86):
S = (E1
+ E2 )( E3 +
E4 )
S=0 lorsque simultanément E1 ou E2 d'une part et E3 ou E4 d'autre part sont à 1. La condition Ou
correspond à des interrupteurs en parallèles, la condition Et à des interrupteurs en série.
52
Janvier 2004
Soit l'exemple 2 (partie droite de la Figure 86)::
S = E1 E2 + E3 E4
En appliquant la même méthode, il y a maintenant mise en parallèle de séries de transistors. La Figure
86 donne les schémas électriques correspondant aux exemples 1 et 2.
*
S
i
i
i
≠ 0 S bas si (E1 haut et E2 haut)
ou (E3 haut et E4 haut)
i
i
= 0 S haut autrement
E4
E1
E3
E2
E2
E1
i
S
= 0 S haut autrement
E4
E3
*
≠ 0 S bas si (E1 haut ou E2 haut)
ou (E3 haut ou E4 haut)
S = E1 E2 + E3 E4
S = ( E1 + E2 )( E3 + E4 )
Figure 86 : Exemples de portes complexe NMOS
8.2.3.2
CMOS
Le CMOS utilise une logique complémentaire. La sortie basse est obtenue par connexion entre S et 0V
via des chemins constitués d'interrupteurs de type N. La sortie haute est obtenue par connexion entre S
et 5V via des chemins constitués d'interrupteurs de type P. La partie basse constituée de transistors
NMOS est identique pour les logiques NMOS et CMOS. La partie haute est différente. La charge
passive est remplacée par un réseau série ou parallèle de transistors P. La partie haute est "duale" de la
partie basse. Elle est obtenue en remplaçant les transistors n en série par des transistors p en parallèle, et
réciproquement. Plus généralement, les mises en série de transistors sont remplacées par des mises en
parallèle, et réciproquement.
La Figure 87 donne les schémas électriques des opérateurs NOR et NAND à deux entrées. La Figure 88
donne les schémas électriques CMOS pour les deux mêmes exemples de fonctions complexes déjà
traités en NMOS.
Le CMOS utilise une surface plus importante que le NMOS : pour p entrées, il a 2 p transistors au lieu
de p+1. Mais le CMOS n'a pas de consommation statique : il y a donc beaucoup moins de puissance à
dissiper, ce qui est extrêmement important pour les circuits à très haute densité d'intégration.
S haut si
E2
ip
E
2
E
1
E1 bas et E2 bas
E1 bas ou E2 bas
≠0
i
p
E1
i
p
i
n
S
E
2
E1
ip
≠0
S bas si
E
1
E1 haut ou E2 haut
in
S
i
n
S bas si
E2
S haut si
≠0
E1 haut et E2 haut
in
≠0
Figure 87 : NOR et NAND CMOS
53
Janvier 2004
E
2
E
4
E e t E e n sé rie
1
2
E
3
E
4
E e t E e n sé rie
3
4
E
1
i
n
i
p
E e t E e n paral lèl e
3
4
E
1
E
3
S
E
3
E
4
E
1
E
2
E
2
i
p
S
i
n
E e t E e n paral lèl e
1
2
E
2
E
4
E e t E e n sé rie
1
2
E e t E e n sé rie
3
4
E e t E e n paral lèl e
3
4
S = (E
E e t E e n paral lèl e
1
2
E
1
+ E ).(E + E )
1
2
3
4
E
3
S =E
1
E +E E
2
3
4
Figure 88 : Exemples de portes complexes CMOS
54
Janvier 2004
9 IMPLANTATION MATÉRIELLE DES OPÉRATEURS
Nous avons vu dans le chapitre précédent comment réaliser les portes logiques fondamentales à l’aide
de transistors MOS ou de transistors bipolaires. Nous abordons maintenant la manière de réaliser des
circuits intégrés permettant d’implanter des traitements complexes, dépendant des fonctionnalités que
demande une application donnée. Nous précisons les différentes approches offertes au concepteur qui
veut implanter dans un circuit intégré des fonctionnalités données, à l’aide d’opérateurs combinatoires
et d’opérateurs séquentiels.
Il est important de souligner que depuis l’invention des premiers transistors en 1947, le concepteur de
systèmes électroniques est confronté à l’alternative suivante pour réaliser son système : réaliser un
circuit ou un système spécifique, ou utiliser des circuits universels qui sont particularisés ou
programmés pour le besoin spécifique. Il est curieux de remarquer que selon les périodes, la tendance
est d’utiliser tantôt une approche spécifique, tantôt une approche universelle, en fonction des progrès
des développements technologiques.
Spécifiques
Tout est
nouveau
1947
1957
Circuits
spécifiques
pour montres,
calculatrices
1967
Composants
discrets
standard
1977
Circuits spécifiques
(ASICs)
programmables par
masques
1987
Mémoires,
Microprocesseurs
1997
2007
Programmation
externe
Universels
Figure 89 : L’onde de Makimoto
L’onde de Makimoto, présenté en Figure 89 illustre ce phénomène périodique, avec alternance tous les
dix ans. A partir de 1947, l’invention des transistors a conduit au développement de circuits particuliers,
tout circuit étant nouveau. Puis ont été développés les composants discrets standards, permettant par
assemblage de ces composants la réalisation de circuits ou de systèmes spécifiques. La période suivante
a vu la réalisation des circuits intégrés spécifiques utilisés dans les produits grand public comme les
montres, les calculatrices, etc. La deuxième moitié des années 70 a vu l’émergence des premiers
microprocesseurs et le développement des mémoires statiques et dynamiques, conduisant aux microordinateurs et microcontrôleurs et mettant l’accent sur la programmation des applications utilisant cette
approche. Les progrès des outils de conception des circuits intégrés a ensuite rendu populaire l’approche
conception de circuits intégrés spécifiques (ASICs). La fin des années 80 a vu l’émergence des réseaux
logiques programmables de l’extérieur, permettant à l’utilisateur d'employer un même composant
matériel pour des applications extrêmement variées. En 1993, certaines prédictions assurent que ne
subsisteront dans un futur proche que trois types de circuits intégrés : les microprocesseurs, les
mémoires et les réseaux logiques programmables.
Après avoir rappelé brièvement les caractéristiques fondamentales des différentes méthodes de
conception des circuits intégrés, nous illustrons les caractéristiques essentielles des différents types de
réseaux logiques programmables que l’on trouve sur le marché en 1993.
9.1 LES TYPES DE RÉALISATION
9.1.1 Circuits ASIC
La conception de circuits intégrés spécifiques (ASIC) consiste à définir les différents niveaux de
masques qui seront utilisés pour contrôler les différentes étapes de la fabrication du circuit chez un
fondeur. La caractéristique fondamentale de ce circuit est le caractère figé de sa fonction et de ses
performances, qui ne peuvent être changées par l’utilisateur. Les différentes méthodes de conception
55
Janvier 2004
correspondent à des degrés divers de programmabilité de ces circuits. Mais, dans tous les cas, la
particularisation (ou programmation) du circuit pour une application se fait au niveau des masques et est
irréversible.
Les réseaux prédiffusés sont conçus comme un arrangement matriciel de cellules élémentaires
(composants de base ou portes) et de canaux de routage permettant à deux ou trois niveaux métalliques
d’interconnecter les cellules élémentaires pour constituer des opérateurs. C’est la programmation des
interconnexions qui particularise les réseaux prédiffusés pour une application donnée. Les mers de
portes sont un cas particulier où il n’y a pas de canaux de routage. Les interconnexions passent au
dessus de portes qui sont alors inutilisées. A ces réseaux sont associés des bibliothèques de cellules et de
macrocellules fonctionnelles, qui contiennent les fichiers des connexions associées à chaque cellule.
A l’opposé, la conception de circuits intégrés optimisés à la demande (full custom) ne présuppose
aucune cellule élémentaire, mais va chercher à optimiser le dessin de l’ensemble des niveaux de
masques, en utilisant les particularités des différents types de structures : structures régulières pour les
RAM et les ROM, logique en tranche pour les opérateurs arithmétiques, etc.
Les réseaux précaractérisés ne présupposent pas de cellules élémentaires, mais l’utilisation de cellules
de bibliothèques définies et optimisées à la demande, qui sont placées et dont les connexions sont
routées par des logiciels de placement et routage.
9.1.2 Les réseaux logiques programmables
Les réseaux logiques programmables permettent de programmer de l’extérieur les connexions internes
du circuit. A l’approche réseaux prédiffusés des circuits ASIC, elle ajoute donc la reconfigurabilité. Le
schéma conceptuel est présenté en figure VIII-2. La programmation des connexions internes au plan
actif est réalisée depuis l’extérieur, en chargeant une mémoire de configuration.
Plan de configuration
Dispositif de
configuration externe
Plan actif
Figure 90 : Schéma conceptuel des réseaux logiques programmables
9.1.3 Conditions d’utilisation
Les performances des circuits intégrés, en terme de vitesse et de nombre de composants utilisables par
circuit, décroissent des circuits intégrés spécifiques optimisés à la demande aux réseaux logiques
programmables (en passant par les réseaux précaractérisés et les réseaux prédiffusés). Les réseaux
logiques programmables offrent l’avantage certain de la reconfigurabilité et des performances
acceptables à faible coût qui en font les circuits type pour le prototypage rapide. La figure VIII-3 donne
au débit des années 90 la répartition des types d’approche en fonction du nombre de portes et du nombre
d’exemplaires voulus du circuit.
9.2 LES RÉSEAUX LOGIQUES PROGRAMMABLES
Les circuits logiques programmables vont se distinguer par la nature des cellules élémentaires d’une
part, et par la manière de les interconnecter d’autres part. Une description exhaustive des réseaux
logiques programmables sort du cadre de ce chapitre. Nous présentons uniquement trois types de
réseaux, assez représentatifs de ce que l’on peut trouver en 1993.
Les réseaux de Crosspoint sont assez typiques de l’approche composants logiques programmables
(PLD). La cellule élémentaire est composée de deux transistors NMOS et PMOS (figure VIII-4). Par
interconnexion des différents transistors, on réalise les différentes portes logiques.
56
Janvier 2004
Les réseaux de portes programmables de l’extérieur (FPGA) d’Actel sont constitués à partir de
multiplexeurs. La figure VIII-5 donne le schéma des cellules élémentaires de la famille ACT2,
constituées de modules combinatoires et de modules séquentiels.
Nombre de portes par fonction
20 000
Précaractérisés
&
Custom
10 000
Réseaux de portes
programmables
depuis l'extérieur (FPGA)
5 000
Réseaux
prédiffusés
1 000
100
Composants logiques programmables (PLD)
100
1 000
10 000
100 000
Quantité par produit
Figure 91 : Utilisation des différents types de réalisations
Pa ire de transistors
Figure 92 : Cellule élémentaire du réseau Crosspoint
D Q
Clr
Figure 93 : Cellules élémentaires des réseaux Actel (ACT2)
Les réseaux de cellules logiques (LCA) de Xilinx utilisent des cellules logiques relativement complexes.
Le bloc logique configurable (CLB) de la famille 3000 est présenté en figure VIII-6. Il est constitué de
57
Janvier 2004
circuits combinatoires programmables, permettant d’implanter n’importe quelle table de vérité de 5
variables (ou 2 tables de vérité de 4 variables), de deux bascules D, de multiplexeurs et de signaux de
contrôle (horloge, remise à zéro, autorisation ou inhibition d’horloge). Cette cellule permet donc de
réaliser au choix des opérateurs combinatoires et des opérateurs séquentiels. Les réseaux de cellules
logiques de Xilinx disposent d’un mécanisme élaboré d’interconnexion des cellules, qui est illustré par
la figure VIII-7. Un certain nombre de blocs sont réservés pour les entrées - sorties. L’interconnexion
des cellules internes peut se faire selon trois mécanismes différents.
Donné e
Entré e
D
Mux
Q
Rd
Qx
Fonction
Combinatoire
Variables
Qy
F
Sorties
G
Logiques
Mux
Enable Clock
D
Q
Rd
"1" Enable
Clock
Re set D irec t
"0" I nhibit
G lobal Reset
Figure 94 : Bloc logique configurable (CLB) de la famille 3000 de Xilinx
Le mécanisme noté 1 dans la figure VIII-7 est un mécanisme général, utilisant des circuits crossbar,
permettant de relier toute entrée du crossbar à toute sortie, et permettant de réaliser la connexion d’une
sortie de n’importe quelle cellule à l’entrée de n’importe quelle cellule. Les liaisons entrée - sortie d’un
crossbar étant réalisé à travers des transistors passants, présentant une résistance équivalente non nulle,
la traversée d’un nombre important de crossbars par un signal conduit à des temps de propagation
relativement longs, réduisant les performances dynamiques globales du système. Le mécanisme noté
deux permet une connexion directe de la sortie d’une cellule à l’entrée des cellules voisines. Il permet
d’exploiter la localité qui existe entre différentes parties d’un circuit. Le mécanisme 3 permet la
transmission directe et rapide de signaux à longue distance, via des connexions horizontales et verticales
spécifiques.
L’utilisation efficace des réseaux logiques programmables implique l'emploi de logiciels de conception
adaptés à ces réseaux, permettant d’implanter directement sur le réseau cible un réseau booléen,
exprimé sous la forme d’un ensemble d’équations logiques, ou d’un réseau de portes logiques. Cette
implantation peut utiliser des bibliothèques de cellules adaptées au réseau logique utilisé, ou des outils
de synthèse logique capable de passer directement du réseau booléen au réseau programmable cible en
prenant en compte les caractéristiques technologiques de ce dernier (par exemple, cellule élémentaire
constituée de multiplexeurs, ou de tables de vérité à nombre maximal d’entrées, etc.).
58
Janvier 2004
BLOCS D'E/S
Amplis 3 états
2
AA CLB
AC
AB
1
3
BA
BB
BC
Figure 95 : Réseaux d’interconnexion de la famille Xilinx
59
Janvier 2004
10 POINTS MÉMOIRE ET MÉMOIRE RAM.
10.1 LOGIQUE STATIQUE ET LOGIQUE DYNAMIQUE
Le point mémoire est l’élément de base, capable de mémoriser un bit. Il y a deux approches possibles.
L’approche statique est fondée sur la l'utilisation de portes logiques pour conserver un état possible
parmi deux. Le bistable défini en V-1 et présenté dans la Figure 39 est l’élément fondamental. La
mémorisation est permanente. Pratiquement, la seule contrainte est que les circuits électriques réalisant
le bistable soient alimentés.
L’approche dynamique est fondée sur un principe de fonctionnement électrique, que l'on peut qualifier
d'analogique par rapport au principe de la première approche, fondé sur la logique booléenne. Une
certaine quantité de charges électriques est stockée dans un condensateur pour mémoriser un état donné,
l'absence de charges correspondant à l'autre état. Comme le condensateur, par nature imparfait, ne peut
conserver éternellement les charges stockées, la mémorisation d'un état n'est que temporaire. Il faut
réécrire régulièrement la donnée mémorisée pour la conserver.
10.2 POINTS MÉMOIRE
10.2.1 le point mémoire statique
Le point mémoire statique est fondé sur le bistable, dessiné de manière différente en Figure 96.
Q
Q
Figure 96 : Bistable redessiné
La lecture du bistable est immédiate : l'état du bistable est donné par la valeur de la sortie Q. Pour
pouvoir positionner le bistable dans un état donné (écriture) ou transmettre à l’extérieur le contenu du
bistable (lecture), on ajoute des interrupteurs permettant de relier les sorties du bistable à l’extérieur,
comme le montre la Figure 97 dans le cas de la technologie CMOS. Lorsque les deux interrupteurs sont
bloqués, le point mémoire est isolé du reste de la mémoire. En lecture, les deux "interrupteurs" rendus
passant par la commande LM (Ligne de Mot) transmettent l'état Q (resp. Q ) vers les lignes de bit LB
(resp. LB). En écriture, l'état des lignes de bits LB et LB est fixé. La fermeture des interrupteurs
impose l'état des lignes de bit au bistable. Les "forces" respectives des transistors utilisés dans le bistable
et pour commander les lignes de bits sont telles qu'électriquement, ce sont les transistors commandant
les lignes de bit qui imposent leur état.
La complexité du point mémoire statique en technologie MOS est de six transistors (4 transistors pour
les deux inverseurs + 2 interrupteurs).
LM
LB
LB
Q
Q
Figure 97 : Point mémoire MOS
10.2.2 point mémoire dynamique
La mémorisation dynamique utilise la charge et la décharge d'un condensateur à travers une résistance
(Figure 98).
60
Janvier 2004
R
E
S
C
Figure 98 : Circuit RC
Nous rappelons qu'un circuit RC attaqué par un signal échelon unité d'amplitude V u(t) à l'instant t=0 a
t
une sortie qui correspond à l'équation
-
S
= V (1
-
e
RC
) et qu'un circuit RC attaqué par le signal
t
échelon unité complémentaire V(1 - u(t)) a une sortie qui est donnée par l'équation S = V . e . Les
résistances R correspondent en fait à la résistance équivalente d'un transistor MOS, lorsqu'il est passant
(Ron) et lorsqu'il est bloqué (Roff). Ron est de l'ordre de quelques kΩ, et Roff de plusieurs MΩ, soit Ron
<< Roff.
La Figure 99 illustre la mémorisation dynamique d’un état 1 dans une capacité. Lorsqu'on veut
mémoriser un état 1 (par exemple), on applique une tension V, via le transistor passant, sur la capacité
C, qui se charge avec la constante de temps Ron.C. Puis, on bloque le transistor. La capacité ne peut
alors se décharger qu'à travers la résistance Roff (transistor bloqué). Si l'on mémorise l'état haut avec
une amplitude V, la sortie reste supérieure à V/2 jusqu’au temps tV/2 dont la valeur est
tV/2 = Roff.C ln 2 ≈ 0,7 Roff.C
-
RC
V
R
V/ 2
R
off
S(t )
on
E(t)
t
V/2
Figure 99 : Mémorisation dynamique
Le point mémoire dynamique est constitué d'une capacité et d'un transistor, ce qui donne une surface
équivalente à celle de 1,5 transistors MOS.
10.3 MÉMOIRES RAM
Les mémoires à accès aléatoire (RAM) permettent d’accéder à n’important quel mot mémoire dans un
temps constant. Une mémoire RAM est fonctionnellement définie par une adresse sur n bits, permettant
d'accéder 2n mots, et le nombre de bits p de chaque mot. Elle est constituée à partir de boîtiers mémoire
de capacité plus petite. Au niveau d'un boîtier, le mot mémoire a 1 bit, 4 bits, 8 bits, ... L'organisation
mémoire la plus courante utilise des mots de 1 bit.
Pour diminuer la complexité du décodage, celui-ci est matriciel : chaque point mémoire est situé à
l'intersection d'une ligne et d'une colonne. L'adresse mémoire est divisée en deux parties : l'adresse ligne
donne le numéro de la ligne considérée et l'adresse colonne donne le numéro de colonne.
Dans le cas d'une mémoire à mots de p bits, le plan mémoire correspondant à la mémoire à mot de 1 bit
est dupliqué p fois.
10.3.1 Mémoires statiques
La Figure 100 donne le schéma simplifié d'une mémoire 16 mots de 1 bit. Il y a 4 bits d’adresse, soit 2
bits pour sélectionner une ligne parmi 4, et 2 bits pour sélectionner une colonne parmi 4. Le décodeur
ligne active une ligne de mots parmi les 4. En lecture, tous les bits correspondant à la ligne de mots
sélectionnée sont lus, et les bits correspondant descendent le long des colonnes. Il n'y a qu'un seul des 4
interrupteurs commandant les colonnes qui est activé par le décodeur colonne, ce qui fait qu'un seul bit
est transmis aux lignes LB/ LB reliées à l'organe de lecture écriture. En écriture, l'état des lignes
LB/ LB est forcé par l'organe de lecture écriture et, sous l'action des décodeurs ligne et colonne, un seul
point mémoire a ses sorties reliées aux lignes LB/ LB.
61
Janvier 2004
LM0
A0
A1
r
u
e
d
o
c
é
D
LM1
s
e
n
g
i
l
LM2
LM3
LB0
A2
A3
r
u
e
d
o
c
é
D
0,0
0,1
0,2
0,3
1,0
1,1
1,2
1,3
2,0
2,1
2,2
2,3
3,0
3,1
3,2
3,3
LC0
LB0 LB1
LC1
LB1 LB2
LC2
LB2 LB3
LC3
LB3
LB
s
e
n
n
o
l
o
c
LB
Lecture/
Ecriture
Dout
Din
Figure 100 : Schéma de principe d’une RAM statique de 16 mots de 1 bit.
Il faut souligner qu'avec les points mémoire statique, la lecture n'est pas destructive. Le temps d'accès,
caractérisé pour une opération lecture par le temps entre le moment où les adresses sont fixes et le
moment où la donnée correspondante est disponible, n'est pas fondamentalement différent du temps de
cycle, qui est le temps entre deux opérations lecture successives.
10.3.2 Mémoires dynamiques
Les mémoires dynamiques utilisent des points mémoire constitués d’une capacité et d’un transistor.
Elles utilisent également un décodage matriciel avec lignes et colonnes.
La Figure 101 présente le schéma de principe d’une mémoire dynamique, avec une colonne de 64
cellules de 1 bit.
Un bit est mémorisé dans une capacité, sous forme d’une charge électrique Q présente ou non. La
lecture consiste à savoir si une capacité contient ou non une charge électrique Q, ce qui ne peut se faire
qu’en reliant la capacité au fil vertical connectée à l’amplificateur de lecture. Le problème est que la
capacité Cfil associée au fil est très supérieure à la capacité du point mémoire, ce qui revient à mélanger
Q à une charge électrique Qfil beaucoup plus grande. Sans entrer dans les détails du fonctionnement
électrique, le problème précédent est résolu en utilisant une lecture différentielle. La charge électrique
des points mémoire 0 à 31, sélectionnés par la ligne correspondante, est comparée avec la cellule de
référence située de l’autre côté de l’amplificateur de lecture. La cellule de référence a généralement une
capacité C/2. On est donc ramené à la comparaison entre Q + Qfil ou Qfil selon la charge dans le point
mémoire lu, et Q/2 + Qfil de l’autre côté de l’amplificateur de lecture. Le principe de lecture est
symétrique pour les points mémoire 32 à 63. L’amplificateur de lecture détecte la faible différence de
potentiel associée la différence de charges, et l’amplifie le plus rapidement possible pour délivrer des
états logiques 0/1 ou 1/0 sur les deux fils complémentaires du bus de données lecture/écriture.
Ce principe de fonctionnement décrit très schématiquement permet de souligner une caractéristique très
importante des mémoires dynamiques. La lecture se fait par décharge de la capacité du point mémoire
lorsque celle ci est chargée. La lecture est donc destructive, et toute lecture doit être suivie d’une
réécriture. Alors que les mémoires statiques ont des lectures non destructives qui donnent des temps
d’accès identiques aux temps de cycle, les mémoires dynamiques ont des temps de cycle égaux au moins
au double du temps d’accès. Il y a également nécessité de rafraîchir périodiquement, au plus tard toutes
les 2 ms, les points mémoire par une lecture suivie d’une réécriture.
62
Janvier 2004
Ligne référence (cellules 32 à 63)
Cref
Ligne 0
Ligne 1
Ligne 31
+5V Bus donnée
Lecture/Ecriture
vrai
C31
Sortie
du décodeur
colonne
Ligne 32
Ampli
de lecture
C32
+5V
Bus donnée
Lecture/Ecriture
complémenté
Ligne 33
Ligne 63
Cref
Ligne référence (cellules 0 à 31)
Figure 101 : Schéma de principe d’une RAM dynamique
63
Janvier 2004
11 RÉFÉRENCES
[1] J-L Hennessy, D. Patterson, “Architecture des ordinateurs - une approche quantitative”, Mc GrawHill
[2] C. Mead, L. Conway, “Introduction aux systèmes VLSI”, InterEditions.
64
Janvier 2004
Téléchargement