Académique Documents
Professionnel Documents
Culture Documents
Livre Electronique Numerique PDF
Livre Electronique Numerique PDF
1er tome
Systmes combinatoires
Etienne Messerli
Yves Meyer
Septembre 2010
Version 1.4
La base du prsent manuel a t crit par M. Yves Meyer de l'cole d'ingnieurs de l'arc jurassien. J'ai repris celui-ci en apportant des modifications et en compltant certains chapitres. Jai
supprim le chapitre sur le langage VHDL. A la HEIG-VD, nous disposons dun manuel spar
pour ce langage (Manuel VHDL; synthse et simulation). J'ai aussi repris des parties des supports de cours crit par M. Maurice Gaumain.
Finalement le manuel a t spar en plusieurs tomes. Le prsent tome comprend toute la partie sur le combinatoire.
Je remercie M. Yves Meyer de sa collaboration et de m'avoir permis de rutiliser son support
de cours.
Je remercie tous les utilisateurs de ce manuel de mindiquer les erreurs quil comporte. De mme, si des informations semblent manquer ou sont incompltes, elles peuvent mtre transmises, cela permettra une mise jour rgulire de ce manuel.
Etienne Messerli
Contact
Auteurs:
e-mail :
Tl:
Etienne Messerli
etienne.messerli@heig-vd.ch
+41 (0)24 / 55 76 302
Yves Meyer
yves.meyer@eiaj.ch
+41 (0)32 / 930 22 61
Coordonnes la HEIG-VD :
Institut REDS
HEIG-VD
Haute Ecole d'Ingnierie et de Gestion du Canton de Vaud
Route de Cheseaux 1
CH-1400 Yverdon-les-Bains
Tl : +41 (0)24 / 55 76 330
Reconfigurable & embedded
Internet : http://www.reds.ch
Digital Systems
R DS
Coordonnes lEIAJ :
LSEM - Laboratoire de systmes embarqus
Haute Ecole ARC
Rue Baptiste-Savoye 26
CH-2610 St-Imier
Tl : +41 32 930 11 21
Internet : http://www.he-arc.ch/
Chapitre 1 Introduction
21
I
Titre chapitre
35
II
Titre
55
5-1.
5-2.
5-3.
5-4.
5-5.
87
Titre chapitre
6-4.
6-5.
6-6.
6-7.
6-3.2.Tensions d'entre . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90
6-3.3.Tensions de sortie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91
6-3.4.Courant d'entre . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91
6-3.5.Courant de sortie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92
6-3.6.Immunit au bruit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92
6-3.7.Facteur de charge . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92
6-3.8.Les caractristiques temporelles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94
Interface CMOS - TTL .................................................................................. 94
Interface TTL - CMOS .................................................................................. 95
Collecteur ouvert ............................................................................................ 95
Porte trois tats ............................................................................................... 98
Chapitre 7 Mmoires
99
109
IV
8-3.
8-4.
8-5.
8-6.
8-7.
8-8.
8-9.
Titre
Bibliographie 133
Mdiagraphie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 134
Lexique 135
Titre chapitre
VI
Chapitre 1
Introduction
Chapitre 1: Introduction
7404
7402
7400
14
13
12
11
5
6
7408
14
13
12
11
10
14
13
7410
14
13
13
12
12
12
11
11
11
10
10
10
10
14
14
14
13
13
13
13
12
12
12
12
12
11
11
11
11
11
10
10
10
10
10
14
13
VCC
GND
VCC
GND
7411
1
GND
7420
VCC
GND
VCC
GND
7421
VCC
GND
VCC
7432
VCC
GND
14
9
GND
7430
VCC
GND
VCC
VCC
14
9
GND
L'apparition des circuits logiques programmables de type PLD (Programmable Logic Device), CPLD (Complexe PLD, figure 1- 2, page 3) ou
FPGA (Field Programmable Gate Array, figure 1- 2, page 3) a permis de
s'affranchir de cette limitation. En effet, l'utilisateur peut crer, dans ces
circuits, toutes les fonctions logiques qu'il souhaite avec comme seules limitations, la place disponible dans le circuit choisi et/ou la vitesse de fonctionnement de celui-ci. La taille actuelle de ces circuits permet
lintgration dun systme processeur complet. En anglais, labrviation
est SoPC pour System on Programmable Chip.
Electronique numrique
PLD
PLD
PLD
PLD
Programmable Interconect
PLD
(a)
PLD
PLD
PLD
(b)
= logic block
Chapitre 1: Introduction
Chapitre 2
Comme nous le verrons, ces systmes de numration ont l'avantage d'exprimer les nombres de faon que leur conversion en binaire, et vice versa,
soit trs facile.
Dans un systme numrique, il peut arriver que trois ou quatre de ces
systmes de numration cohabitent, d'o l'importance de pouvoir convertir
un systme dans un autre. Le prsent chapitre se propose de vous montrer
comment effectuer de telles conversions. Certaines de ces conversions ne
seront pas appliques immdiatement dans l'tude des circuits numriques,
mais vous constaterez au moment de l'tude des microprocesseurs que c'est
une connaissance dont vous avez besoin.
Ce chapitre se veut galement une introduction certains des codes binaires utiliss pour reprsenter divers genres d'information. Ces codes
agencent les 0 et les 1 de manire diffrente du systme binaire.
N.B.: Il faut remarquer que le choix de symboles chiffres facilite grandement les choses, cette facilit dcoulant de notre grande habitude du
systme dcimal (10 symboles).
Le poids d'un chiffre dpend de sa position dans le nombre. Nous parlons de numration de position, soit:
Un nombre dans une base "b" entire positive s'crit:
N b = a n a n 1 a 1 a 0, a 1 a m
ce qui correspond aux oprations:
n
NB = an b + an 1 b
n1
(1)
1
+ + a1 b + a0 b +
1
(2)
a 1 b + + a m b
L'indice de b indique la base dans laquelle le nombre est calcul.
N.B.: La formule (2) donne N dans la base dans laquelle on effectue les
oprations (ici la base B). Pour nous, ce sera gnralement la base 10.
Electronique numrique
1
124
16
+ 123
+ 022
+ 121
+ 120
(binaire)
= 2710
(dcimal)
binaire
128 +
32
+ 16 +
= 18110 dcimal
Vous remarquez que la mthode consiste trouver les poids (les puissances de 2) pour chaque position du nombre o il y a un 1, puis additionner le tout. Remarquez que le bit de poids le plus fort a un poids de 27
mme s'il s'agit du huitime bit; il en est ainsi parce que le bit de poids le
plus faible est le premier bit et que son poids est toujours 20.
1102
5101
dcimal
8100
num. position
en dcimal
binaire
Lexemple 2- 3 nest pas utilisable pour nous. Nous devrions tre capable, pour cela, de faire le calcul en base 2! Cette mthode nest pas utilisable pour nous car nous savons faire les calculs uniquement en dcimal.
Il existe deux faons de convertir un nombre dcimal en son quivalent
binaire. Une mthode qui convient bien aux petits nombres est une dmarche qui est base sur la numration de position en binaire. Le nombre dcimal est simplement exprim comme une somme de puissances de 2, puis
on inscrit des 1 et des 0 vis--vis des positions binaires appropries. Voici
un exemple:
4510 = 32 + 8 + 4 + 1 = 25 + 0 + 23 + 22 + 0 + 20 = 1 0 1 1 0 12
Notons qu'il y a un 0 vis--vis des positions 21 et 24, puisque ces positions ne sont pas utilises pour trouver la somme en question. Il sagit
dune mthode par essais successifs (ttonnement).
NB = an b + an 1 b
n1
+ + a1 b + a0 b
Electronique numrique
25/2
12/2
6/2
3/2
1/2
=
=
=
=
=
12
6
3
1
0
reste
reste
reste
reste
reste
1
0
0
1
1
2510 = 1 1 0 0 12
Exemple 2- 4 : Conversion de 25 dcimal en binaire
+ a2 b
+ + a m 1 b
m1
+ am b
+ + a m 1 b
m2
+ a m b
m1
a-1 apparat comme la partie entire de la multiplication de N fractionnaire par b; a-2 est la partie entire de la multiplication par b du reste; a-3
est la partie entire de la multiplication par nouveau reste par b. On opre
donc par multiplication successives par b.
Cette mthode de conversion est illustre ci-aprs pour le nombre
0,37510. Nous utilisons des multiplications successives par 2 du nombre
dcimal convertir. A chaque multiplication nous obtenons une partie entire et un reste. Il est important de noter que le nombre binaire rsultant
s'obtient en crivant le premier chiffre la position du bit de poids le plus
fort (MSB).
On peut remarquer qu'un nombre fini dans une base peut conduire
une suite infinie dans une autre.
83
82
81
80
8-1
8-2
8-3
266/8
33/8
4/8
26610
=
=
=
=
33 reste 2
4 reste 1
0 reste 4
4128
10
Electronique numrique
nombre octal en son quivalent binaire de trois chiffres. Voyez dans le tableau ci-dessous les huit symboles octaux exprims en binaire.
Chiffre octal
quivalent binaire
000
001
010
011
100
101
110
111
7
111
2
010
111
7
010
28
010
2
110
68
Notez l'ajout d'un zro gauche du bit de poids le plus fort pour obtenir
un nombre juste de triplets.
11
Il ne faut surtout pas oublier que les chiffres hexadcimaux A F correspondent aux valeurs dcimales 10 15.
Hexadcimal
Dcimal
Binaire
0000
0001
0010
0011
0100
0101
0110
0111
1000
1001
10
1010
11
1011
12
1100
13
1101
14
1110
15
1111
La reprsentation hexadcimale est principalement utilise pour reprsenter un nombre binaire sous forme plus compacte. Un nombre en hexadcimal comprend 4 fois moins de chiffres!
12
Electronique numrique
35616
2AF16
423/16
26/16
1/16
42310
= 26 reste 7
= 1 reste 10
= 0 reste 1
= 1A716
9F216
9
F
2
1001 1111 0010
= 1001111100102
Exemple 2- 10 : Conversion hexadcimal-binaire
13
11101001102
= 0011
3
= 3A616
1010
A
0110
6
Electronique numrique
7
0111
4
0100
dcimal
BCD
pas un nombre binaire pur. Quand on code selon le systme binaire pur, on
prend le nombre dcimal dans son intgralit et on le convertit en binaire,
sans le fractionner; par ailleurs, quand on code en BCD, c'est chaque chiffre individuel qui est remplac par son quivalent binaire. titre d'exemple, prenons le nombre 137 et trouvons son nombre binaire pur puis son
quivalent BCD:
13710 = 100010012
13710 = 0001 0011 0111
(Binaire)
(BCD)
Le code BCD ncessite 12 bits pour reprsenter 137 tandis que le nombre binaire pur n'a besoin que de 8 bits. Il faut plus de bits en BCD qu'en
binaire pur pour reprsenter les nombres dcimaux de plus d'un chiffre.
Comme vous le savez, il en est ainsi parce que le code BCD n'utilise pas
toutes les combinaisons possibles de groupes de 4 bits; c'est donc un code
peu efficace.
Le principal avantage du code BCD provient de la facilit relative avec
laquelle on passe de ce code un nombre dcimal, et vice versa. Il ne faut
retenir que les groupes de 4 bits des chiffres 0 9. C'est un avantage non
ngligeable du point de vue du matriel, puisque dans un systme numrique ce sont des circuits logiques qui ont la charge d'effectuer ces conversions.
Nous verrons plus tard comment une telle conversion est ralise dans
un systme numrique qui fait tous les calculs en binaire!
16
Electronique numrique
binaire
octal
hexadcimal
Gray ou BR
Excdent 3
AIKEN
00
0000
00
0000
0011
0000
01
0001
01
0001
0100
0001
02
0010
02
0011
0101
0010
03
0011
03
0010
0110
0011
04
0100
04
0110
0111
0100
05
0101
05
0111
1000
1011
06
0110
06
0101
1001
1100
07
0111
07
0100
1010
1101
08
1000
10
1100
1011
1110
09
1001
11
1101
1100
1111
10
1010
12
1111
11
1011
13
1110
12
1100
14
1010
13
1101
15
1011
14
1110
16
1001
15
1111
17
1000
17
tres et les diverses fonctions que l'on retrouve sur un clavier standard de
machine crire ou d'ordinateur.
0..3
NUL
DLE
Space
Nat
SOH
DC1
STX
DC2
"
ETX
DC3
EOT
DC4
ENQ
NAK
ACK
SYN
&
BEL
ETB
BS
CAN
HT
EM
LF
SUB
VT
ESC
Nat
Nat
FF
FS
<
Nat
Nat
CR
GS
Nat
Nat
SO
RS
>
SI
US
DEL
18
Electronique numrique
Lgende:
SOH
Dbut d'en-tte
US
Sparateur de sous-articles
STX
Dbut de texte
RS
Sparateur d'articles
ETX
Fin de texte
GS
Sparateur de groupes
EOT
Fin de transmission
RS
Sparateur de fichiers
ENQ
Demande
ACK
Accus de rception
BEL
Sonnerie
DLE
Echappement de transmission
SO
Hors code
NAK
SI
En code
SYN
Synchronisation
CAN
Annulation
ETB
EM
Fin de support
BS
Espace arrire
SUB
Substitution
HT
Tabulateur horizontal
ESC
Echappement
LF
Interligne
SP
Espace
CR
Retour de chariot
NUL
Nul
DC1
Marche lecteur
DEL
Oblitration
DC2
Embrayage perforateur
DC3
Arrt lecteur
DC4
Dbrayage perforateur
Nat
usage national
Le code ASCII standard ninclus pas des caractres comme les lettres
avec les accents , , , etc. Le nombre de bits utilis donc t augment
8. Nous disposons ainsi 256 lments cods. Lextension du code ASCII
nest pas standard. En franais nous avons besoin des lettres avec des accents comme , , , ... En allemand, il y a dautres caractres comme , ,
.... Il existe donc autant de variantes du code ASCII tendu sur 8 bits quil
y a de pays voir de rgions!
19
20
Chapitre 3
Arithmtique binaire
Les diverses oprations arithmtiques qui interviennent dans les ordinateurs et les calculatrices portent sur des nombres exprims en notation binaire. En tant que telle, l'arithmtique numrique peut tre un sujet trs
complexe, particulirement si on veut comprendre toutes les mthodes de
calcul et la thorie sur laquelle elle s'appuie. Heureusement, il n'est pas ncessaire d'enseigner aux ingnieurs la thorie complte de l'arithmtique
numrique, tout au moins pas avant qu'ils soient devenus des programmeurs expriments.
Dans ce chapitre, nous allons concentrer nos efforts sur les principes de
base qui nous permettent de comprendre comment les machines numriques (c'est--dire les ordinateurs) ralisent les oprations arithmtiques de
base. Nous traiterons uniquement la reprsentation des nombres entiers,
celle des nombres fractionnaires sera tudie ultrieurement.
D'abord nous verrons comment effectuer manuellement les oprations
arithmtiques en binaire, par la suite nous tudierons les circuits logiques
rels qui matrialisent quelques unes de ces oprations dans un systme
numrique.
21
461
837
+
+
+
+
0
= 0
0
= 1
1
= 10 = 0 + report de 1 sur le rang de gauche
1 + 1 = 11 = 1 + report de 1 sur le rang de gauche
Le dernier cas ne se produit que lorsque, pour un certain rang, on additionne deux 1 plus un report de 1 provenant du rang de droite. Voici quelques exemples d'additions de deux nombres binaires:
22
Electronique numrique
011
(3)
1001
11,011
110
(6)
1111
10,110
1001
(9)
11000
110,001
Il n'est pas ncessaire d'tudier des additions ayant plus de deux nombres binaires, parce que dans tous les systmes numriques les circuits qui
additionnent ne traitent pas plus de deux nombres la fois. Lorsque nous
avons plus de deux nombres additionner, on trouve la somme des deux
premiers puis on additionne cette somme au troisime nombre, et ainsi de
suite. Ce n'est pas vritablement un inconvnient, puisque les machines numriques modernes peuvent gnralement raliser une opration d'addition
en quelques nanosecondes.
L'addition est l'opration arithmtique la plus importante dans les systmes numriques. Les oprations de soustraction, de multiplication et de division effectues par les ordinateurs ne sont essentiellement que des
variantes de l'opration d'addition.
23
A6
A5
A4
A3
A2
A1
A0
Bit de signe
Grandeur = 5210
A6
A5
A4
A3
A2
A1
A0
Bit de signe
= +5210
= -5210
Grandeur = 5210
(1)
24
0010
0011
1111
Electronique numrique
quivalent binaire de 45
010010
010011
1110
1111
Bit de signe
1
Bit de signe
= +4510
= -4510
Grandeur exacte
Complment 2
25
Si le nombre est ngatif, sa grandeur est le complment 2 de la grandeur exacte et son bit de signe est un 1 gauche du bit de poids le plus fort.
Voyez la figure 3- 2 la reprsentation du nombre -4510.
La complmentation 2 d'un nombre sign transforme un nombre positif en un nombre ngatif et vice versa.
La notation en complment 2 est employe pour exprimer les nombres
binaires signs parce que, comme nous le verrons, on parvient grce elle
soustraire en effectuant en ralit une addition. Cela n'est pas ngligeable
dans le cas des ordinateurs, puisque avec les mmes circuits, nous parvenons soustraire et additionner.
Dans de nombreuses situations, le nombre de bits est fix par la longueur des registres qui contiennent les nombres binaires, d'o la ncessit
d'ajouter des 0 pour avoir le nombre de bits requis:
Comme exemple nous allons exprimer +2 au moyen de 5 bits:
+2
00010
11101
1
11110
(complment 1)
(ajouter 1)
(complment 2 du chiffre +2 sur 5 bits)
et ainsi de suite.
Nous pouvons analyser en dtails une reprsentation en complment
2 sur 8 bits. La valeur ngative la plus grande est :
10000000
26
Electronique numrique
reprsentation du zro :
valeur ngative
valeur positive
00000000
10000000 = -128
01111111 = +127
Do la plage de variation des nombres entiers signs avec une reprsentation en complment 2 sur N bits :
-2N-1 +(2N-1-1)
1001
(cumulande)
+4
0100
(cumulateur)
+ 13
1101
(Somme)
Bit de signe
1001
(cumulande)
-4
1100
(cumulateur)
0101
+5
Bit de signe
27
10111
+4
00100
-5
11011
Dans ce cas-ci le bit de signe de la somme est 1, ce qui indique un nombre ngatif. Comme la somme est un nombre ngatif, la rponse est le complment 2 de la grandeur exacte. Donc 1011 est en ralit le complment
2 de la somme. Pour trouver la grandeur exacte de la somme, on doit
prendre le complment 2 de 1011, ce qui donne 0101 (5); la rponse est
donc 11011 = -5.
On peu galement vrifier le rsultat en additionnant le poids de chaque
bit, avec le bit de signe qui vaut -2N, o N est le nombre de bits de grandeur.
-124 + 123 +022 +121 +120 = -16 + 8 + 2 + 1 = -5
10111
-4
11100
-13
110011
ce report nest pas pris en considration
10111
+9
01001
100000
ce report nest pas pris en considration
28
Electronique numrique
diffre peu des cas examins prcdemment. Quand on soustrait un nombre binaire (le diminuteur) d'un autre nombre (le diminuande), la marche
suivre est comme suit:
a. Prendre le complment 2 du diminuteur, y compris son bit de
signe. Si ce dernier est un nombre positif, il deviendra un nombre
ngatif dans la notation en complment 2. Si le diminuteur est
un nombre ngatif, la complmentation 2 en fera un nombre
positif crit en grandeur exacte. Autrement dit, nous changeons
le signe du diminuteur.
b. Aprs avoir complment 2 le diminuteur, on l'additionne au
diminuande. Le diminuande conserve sa forme initiale. Le rsultat de cette addition reprsente la diffrence recherche. Le bit de
signe de la diffrence indique si l rponse est positive ou ngative et si on est en notation binaire exacte ou en notation en complment 2.
c. Rappelez-vous que les deux nombres doivent avoir le mme
nombre de bits.
Examinons la soustraction suivante: +9 - (+4).
diminuande (+ 9) 01001
diminuteur (+ 4) 00100
01001
-4
11100
+5
100101
La retenue est rejete, le rsultat est donc 00101 = +5
29
+9
1001
+8
1000
0001
Bit de signe
Le bit de signe de la rponse est celui d'un nombre ngatif, ce qui est
manifestement une erreur. La rponse devrait tre +17. tant donn que la
grandeur est 17, il faut plus de 4 bits pour l'exprimer, et il y a donc un dpassement (overflow) sur le rang du bit de signe. Une condition de dpassement donne toujours lieu un rsultat inexact, et on la dtecte en
examinant le bit de signe du rsultat et en le comparant aux bits de signe
des nombres additionns. En additionnant deux nombres de signes diffrents, il ne peut pas y avoir de dpassement, par contre lorsqu'on additionne
deux nombres de mme signe, on a un dpassement si le signe du rsultat
est diffrent du signe des deux nombres additionns. Dans un ordinateur,
il existe un circuit spcialement conu pour dtecter les conditions de dbordement et pour indiquer que la rponse est fausse.
1 0 0
multiplicande = 910
1 0 1
multiplicateur = 1110
1 0 0
1 0 0 1
produits partiels
0 0 0 0
1 0 0 1
1 1 0 0 0 1
30
Electronique numrique
crit nouveau dcal d'un rang vers la gauche. On additionne ensuite les
quatre produits partiels pour obtenir le produit final.
La plupart des machines numriques ne peuvent additionner que deux
nombres binaires la fois. C'est la raison pour laquelle les produits partiels
d'une multiplication ne peuvent tre additionns ensemble en une seule
fois. Ils sont plutt additionns deux par deux, c'est--dire que le premier
est additionn au second, que leur somme est additionne au troisime et
ainsi de suite.
31
11
0 1 1
011
0 0 1 1
(9/3 = 3)
1 0 1 0 ,0
100
1 0 0
10,1
0 0 1 0
1 0
(10/4 = 2,5)
Dans la plupart des ordinateurs modernes, les soustractions qui ont lieu
durant une opration de division sont gnralement des soustractions avec
complment 2, c'est--dire on complmente 2 le soustracteur puis on effectue l'addition.
La division de nombres signs s'effectue de la mme faon que la multiplication. Les nombres ngatifs sont complments pour obtenir des
nombres positifs puis la division est effectue. Si le dividende et le diviseur
sont de signes opposs, le quotient est complment 2 pour obtenir un
nombre ngatif, puis on lui ajoute un bit de signe de 1. Si le dividende et le
diviseur ont le mme signe, le quotient est laiss sous sa forme positive et
on lui ajoute un bit de signe de 0.
4
9
0101
BCD de 5
0100
BCD de 4
1001
BCD de 9
L'addition est effectue comme une addition binaire normale et la somme est 1001, soit le code BCD de 9. Voici un autre exemple: additionnons
45 33.
32
Electronique numrique
45
+ 33
78
0100
0101
BCD de 45
0011
0011
BCD de 33
0111
1000
BCD de 78
Dans cet exemple. Les codes de 4 bits associs 5 et 3 sont additionns selon les rgles binaires pour donner 1000, ce qui est le code BCD de
8. De mme, l'addition des chiffres dcimaux de second rang donne en binaire 0 111, ce qui est le code BCD de 7. Le total est 0111 1000, soit le
code BCD de 78.
Dans les exemples prcdents, aucune somme de deux chiffres dcimaux ne dpassait 9; donc, il n'y a pas eu de reports dcimaux. Dans cette
situation l'addition BCD est un processus direct quivalent l'addition binaire.
13
0110
BCD de 6
0111
BCD de 7
1101
La somme 1101 n'existe pas dans le code BCD; il s'agit de l'une des six
reprsentations codes de 4 bits interdites ou non valides. Cette reprsentation est apparue parce qu'on a additionn deux chiffres dont la somme dpasse 9. Dans un tel cas, il faut corriger la somme en additionnant 6 (0110)
afin de prendre en considration le fait qu'on saute six prsentations codes
non valides:
6
+
13
+
0001
0110
BCD de 6
0111
BCD de 7
1101
0110
0011
BCD de 13
Comme on le montre ci-dessus, l'addition de 0110 la somme non valide donne la reprsentation BCD exacte. Notez qu'un report a lieu sur le
chiffre dcimal de deuxime rang. Il est obligatoire d'additionner 0110
quand la somme de deux chiffres dcimaux dpasse 9.
Voyons un autre exemple: additionnez 47 35 en BCD:
47
+ 35
82
+
0100
0111
BCD de 47
0011
0101
BCD de 35
0111
1100
0110
1000
0010
33
L'addition des codes de 4 bits pour 7 et 5 produit une somme non valide
que l'on corrige en additionnant 0110. Notez que ceci produit un report de
1, qui est ajout la somme BCD des chiffres du second rang.
Rcapitulation de l'addition en BCD:
a. Addition binaire ordinaire des reprsentations BCD de tous les
rangs.
b. Pour les rangs o la somme est gale ou infrieure 9, aucune
correction ne s'impose et la somme est une reprsentation BCD
valide.
c. Quand la somme des deux chiffres est suprieure 9, on ajoute
une correction de 0110 pour obtenir la reprsentation BCD
exacte. Il se produit toujours un report sur le chiffre de rang
immdiatement gauche, soit lors de l'addition initiale (premire
tape) ou de l'addition de la correction.
34
Chapitre 4
4-1 Dfinitions
Nous allons commencer par donner quelques dfinitions.
35
Niv. logique 1
Faux
Vrai
Arrt
Marche
Bas
Haut
Non
Oui
Ouvert
Ferm
36
Electronique numrique
Variable
Fonctions
F1.0 = constante = 0
F1.0
F1.1
F1.2
F1.3
F1.1 = A
F1.3 = constante = 1
37
Variables
Fonctions F2.x
A B C D E
Les fonctions F2.8 F2.F sont respectivement les inverses des fonctions
F2.7 F2.0. Parmi ses fonctions, nous noterons au passage :
F2.8 = NON F2.7 = NON (A OU B) = A # B = A B voir 4-7.1 page 42
F2.9 = NON F2.6 =NON (A OU-exclusif B) = A B , voir 4-8.2 page 45
F2.A = NON F2.5 = NON B = B
F2.B = NON F2.4
F2.C = NON F2.3 = NON A = A
F2.D = NON F2.2
F2.E = NON F2.1 = NON(A ET B) = A B = A # B , voir 4-7.2 page 43
F2.F = NON F2.0 = constante = 1
Ltude des fonctions de deux variables nous fait dcouvrir les fonctions de bases ET et OU. Nous voyons aussi les fonctions composes
NON-ET, NON-OU et la fonction particulire OU-exculsive. Pour chaque
fonction, il est indiqu le numro du paragraphe qui prsente celle-ci.
38
Electronique numrique
a)
b)
c)
Figure 4- 3 : Tables de vrit: a) table deux entres; b) table trois entres; c) table
quatre entres.
39
X= A # B
a)
A
X=A # B
B
b) porte OU (OR)
Nous nutiliserons pas cette symbolique afin de ne pas confondre loprateur logique OU avec loprateur arithmtique daddition (+). Dans la
suite de ce manuel nous utiliserons le symbole # ou or pour loprateur logique OU.
40
Electronique numrique
A X = AB
a)
A
X=AB
B
b) porte ET (AND)
D'aprs cette table, vous pouvez facilement dduire que la fonction logique ET correspond la multiplication en binaire. Quand A ou B est 0, le
produit est nul; quand A et B sont 1, leur produit est 1. Il nous est donc possible d'affirmer que dans l'opration ET la rponse est 1 si et seulement si
toutes les entres sont 1, et qu'elle est 0 dans tous les autres cas.
41
A X = A
0
a)
X=A
42
Electronique numrique
te OU suivie d'un INVERSEUR. L'expression de sortie d'une porte NONOU est X = A#B .
La table de vrit montre la figure 4- 7 nous apprenons que la sortie
d'une porte NON-OU est exactement l'inverse de celle d'une porte OU pour
toutes les combinaisons des entres.
X = A#B
A
X=A#B
a)
De manire gnrale, la fonction de sortie dune porte NON-OU n entres est active (niveau 1) uniquement lorsque toutes les entres sont inactives (niveau 0). La sortie dune porte NON-OU est inactive (niveau 0) si
une seule des entres est active (niveau 1).
Par De Morgan (voir paragraphe 4-12.4) nous pouvons montrer que la
porte NOR est quivalent :
X = A#B = A B
A
B
X=A . B
43
A X = AB
a)
X=A
De manire gnrale, la fonction de sortie dune porte NON-ET n entres est active (niveau 1) si une seule des entres est inactive (niveau 0).
La sortie dune porte NON-ET est inactive (niveau 0) uniquement lorsque
toutes les entres sont actives (niveau 1).
Par De Morgan (paragraphe 4-12.4) nous pouvons montrer que la porte
NAND est quivalent :
X = AB = A#B
A
B
X=A # B
44
Electronique numrique
B A X = AB
0
X = A B
B
a)
De manire gnrale, la fonction de sortie dune porte OU-exclusif indique la diffrence entre les deux signaux dentres. La sortie est active
(niveau 1) si ltat logique des entres est diffrent.
A B X = AB
0 0
0 1
1 0
1 1
1
a)
X = A B
B
b) porte NON-OU-exclusif (XNOR)
De manire gnrale, la fonction de sortie dune porte NON-OU-exclusif indique lgalit entre les deux signaux dentres. La sortie est active
(niveau 1) si ltat logique des entres est identique. Le fonctionnement de
cette porte correspond un comparateur un bit.
45
1.a
A
1
1.b
Symboles CEI
1.c
A
1.e
A
1.d
Symboles du cours
1.f
Symboles MIL
NON ou NOT
Figure 4- 11 : Symbolique des fonctions NOT
46
Electronique numrique
A
B
A
B
F= A B
&
1.a
1
F= A B
1.b
Symboles CEI
F= A B
1.c
F= A B
B
1.e
F= A B
F= A B
B
1.d
Symboles du cours
1.f
Symboles MIL
ET ou AND
A
B
A
B
F= A#B
1
1.a
F= A#B
&
1.b
Symboles CEI
F= A#B
F= A#B
B
1.c
F= A#B
1.e
F= A#B
1.d
Symboles du cours
1.f
Symboles MIL
OU ou OR
A
B
A
B
F=A.B
&
1.a
1
F=A.B
1.b
Symboles CEI
F=A.B
B
A
1.c
F=A.B
F=A.B
B
A
1.e
F=A.B
1.f
Symboles MIL
1.d
Symboles du cours
NON-ET ou NAND
A
B
A
B
F=A#B
1.a
&
1.b
Symboles CEI
F=A#B
F = A# B
B
A
B
1.c
F=A#B
1.d
Symboles du cours
F=A#B
1.e
F=A#B
1.f
Symboles MIL
NON-OU ou NOR
47
A
B
=1
F=A B
F=A B
1.a
1.b
Symboles CEI
Symboles du cours
F=A B
B
1.c
Symboles MIL
OU EXCLUSIF ou XOR
A
B
X = A B # C
C
Figure 4- 13 : Un circuit et son quation boolenne
48
Electronique numrique
Comme exemple supplmentaire, considrons le circuit de la figure 414. Le rsultat la porte OU est simplement A # B. La sortie de cette porte
aboutit l'entre de la porte ET, alors que l'autre entre de cette dernire
reoit le signal C. L'expression de la sortie de la porte ET est donc
X = (A # B)C. Notez l'emploi des parenthses pour indiquer que loprateur OU sapplique dabord sur A et B. Ensuite loprateur ET est appliquer sur la sortie de la porte OU et lentre C. Sans les parenthses, notre
interprtation serait errone, car X = A # BC signifie que A est runi dans
une porte OU avec le produit BC. Loprateur ET (.) est prioritaire sur
loprateur OU.
A
B
X = (A # B) C
C
Figure 4- 14 : Un circuit logique dont l'expression de sortie comporte des parenthses.
X= A#B
X=A#B
a)
b)
49
AC
BC
Y = AC # BC # ABC
ABC
b) soitY = ( AC ) ( BC ) , en VHDL :
50
Electronique numrique
b) soit
Y = C B , en VHDL :
4-12.1 Postulats
Nous avons deux postulats :
A#A = 1
AA = 0
Ces deux postulats traduisent le fait que l'inverse d'une variable ne peut
jamais prendre la mme valeur que la variable. Nous apprendrons ultrieurement qu'un manquement ces postulats est possible lors de rgimes transitoires dans les circuits. Ce manquement peut entraner un comportement
alatoire sur les fonctions dpendantes de ces variables.
4-12.2 Thormes
Poursuivons maintenant notre tude de l'algbre boolenne en examinant les thormes de Boole qui sont des rgles qu'on utilise pour simplifier
les expressions logiques et, par le fait mme, les circuits logiques. La
figure 4- 17 prsente le premier groupe de thormes dans lesquels X est
une variable logique prenant soit la valeur 0, soit la valeur 1.
X0 = 0
X1 = X
XX = X
XX = 0
X#0 = X
X#1 = 1
X#X = X
X#X = 1
(1)
(2)
(3)
(4)
(5)
(6)
(7)
(8)
51
X#Y = Y#X
XY = YX
X # (Y # Z) = (X # Y) # Z = X # Y # Z
X ( YZ ) = ( XY )Z = XYZ
X ( Y # Z ) = XY # XZ
( W # X ) ( Y # Z ) = WY # XY # WZ # XZ
X # XY = X
X # XY = X # Y
(9)
(10)
(11)
(12)
(13)
(14)
(15)
(16)
Les thormes (9) et (10) montrent que ET et OU sont des lois de composition commutatives, donc que l'ordre de la multiplication ou de l'addition logique de deux variables n'a pas d'importance, que le rsultat reste le
mme.
Les thormes (11) et (12) montrent que ET et OU sont des lois de composition associatives, qui indiquent que l'on peut grouper, comme l'on veut,
les variables dans une expression de multiplication ou d'addition logique.
Les thormes (13) et (14) font voir que la multiplication logique est
distributive par rapport l'addition logique, c'est--dire que l'on peut dvelopper une expression en la multipliant terme terme, tout comme dans
l'algbre ordinaire. Ces thormes dmontrent galement que l'on peut
mettre en facteur une expression. On veut dire par l que si nous avons une
somme de termes, chacun renfermant une variable commune, il est possible de mettre cette variable en facteur, comme on le fait en algbre ordinaire.
Il est facile de se rappeler des thormes (9) (14) puisqu'ils sont identiques ceux de l'algbre ordinaire. Par contre, les thormes (15) et (16)
ne se retrouvent pas en algbre ordinaire. On peu les dmontrer en passant
en revue toutes les possibilits de X et de Y.
Tous ces thormes sont d'une grande utilit pour simplifier une expression logique, c'est--dire pour obtenir une expression comptant moins de
termes. L'expression simplifie permet de raliser un circuit moins complexe que celui correspondant l'expression originale.
52
Electronique numrique
AB C = ( A # B ) C
(19)
(20)
53
54
Chapitre 5
Au chapitre prcdent, nous nous sommes penchs sur l'tude de l'ensemble des portes logiques lmentaires et avons russi, au moyen de l'algbre boolenne, dcrire et analyser des circuits matrialiss par des
combinaisons de portes logiques. On peut qualifier ces circuits logiques de
combinatoires du fait qu' tout moment le niveau logique recueilli en sortie
ne dpend que de la combinaison des niveaux logiques appliqus aux entres. Un circuit combinatoire ne possde aucun mcanisme de rtention
(mmoire); par consquent sa sortie ragit seulement aux signaux prsents
sur ses entres.
Dans ce chapitre, nous poursuivons notre tude des circuits combinatoires. D'abord nous poussons plus avant la simplification (minimisation) des
circuits. Pour cela, nous utiliserons deux mthodes: les thormes de l'algbre boolenne et une technique graphique, les tables de Karnaugh.
ABC # ABC
AB # ABC # CD # D
AB # CD # EF # GK
A
X = AB( A # BC)
C
a)
A
B
X = ABC
b)
56
Electronique numrique
Z = ABC # AB ( AC )
Z = ABC # AB ( A # C )
Z = ABC # AB ( A # C )
distribution du ET
Z = ABC # AB # ABC
Z = A C ( B # B ) # AB
thorme 3
mise en facteur
Z = AC ( 1 ) # AB
thorme 8
Z = AC # AB
thorme 2
57
58
No
Equation minterme
CBA
CBA
CBA
Electronique numrique
Nous pouvons crire cette expression logique sous une forme compacte
en indiquant uniquement le numro des mintermes 1, soit :
X = 2, 3, 7
Nous avons maintenant une quation logique non simplifie. La premire solution est dutiliser lalgbre de Boole pour rechercher lexpression la plus simple. Cela ncessite beaucoup dexprience et de pratique. Il
existe une mthode graphique efficace : la table de Karnaugh.
BA
a)
BA
CB
00
01
11
10
CBA
CBA
CBA
CBA
CBA
CBA
CBA
CBA
CB
00
01
11
10
A 0
CBA
CBA
CBA
CBA
b)
60
Electronique numrique
DC
00
01
11
10
00
01
11
10
BA
DCBA
ou
DCBA
A
1
DCBA
DCBA
5-5.2 REUNION
Il est possible de simplifier l'expression de sortie X en combinant selon
des rgles prcises les cellules de la table de Karnaugh qui contiennent des
1. On donne ce processus de combinaison le nom de runion.
61
CB
00
01
11
10
do lquation :
finalement
CB
62
Electronique numrique
DC
00
BA
01
11
10
00
01
11
10
0
1
0
0
1
0
0
1
0
0
1
0
CB
00
A
0
0
1
0
01
11
10
0
0
1
1
1
1
X = C
b)
X = BA
a)
DC
00
BA
00
0
01
0
11
0
10
0
01
11
10
0
1
1
0
0
1
1
0
0
0
0
0
DC
00
BA
00
1
01
0
11
0
10
1
X = CA
c)
01
11
10
0
0
0
0
0
0
0
0
1
0
0
1
X = CA
d)
DC
01
11
10
00
01
11
10
01
11
10
00
01
11
10
a)
DC
00
00
BA
X = A
BA
b)
X = C
63
simplifie. Il est clair que plus une runion regroupe de 1, plus le nombre
de variables limines est grand. Plus prcisment encore, une runion de
deux 1 provoque l'limination d'une variable, un runion de quatre 1, l'limination de deux variables et une runion de huit 1, l'limination de trois
variables et ainsi de suite. La runion de 2n 1 permet de simplifier n variables. Voici les tapes suivre pour simplifier une expression boolenne en
recourant la mthode des tables de Karnaugh:
a. Dessinez la table de Karnaugh et placez des 1 dans les carrs correspondant aux lignes de la table de vrit dont la sortie est 1.
Mettez des 0 dans les autres carrs.
b. Etudiez la table de Karnaugh et reprez tous les groupes possibles. Trouvez les plus grands.
c. Commencez ensuite par encercler les 1, dit isols, qui ne font
parties que d'un seul groupe. Cela signifie que pour ces 1, il
n'existe qu'une seul possibilit de groupement.
d. Continuer ensuite prendre les groupes les plus grands qui
incluent des 1 (au minimum un seul) qui ne font pas partie d'un
autre groupe.
e. Vous devez prendre tous les 1 de la table de Karnaugh. Il est possible d'utiliser plusieurs fois le mme 1.
f. Effectuez un OU logique entre tous les termes rsultant des runions.
64
Electronique numrique
CB
A
00
01
11
10
Z=A
CB
A
00
01
11
10
65
l'encodage de priorit
la comparaison (COMP) <,=,>
les oprations arithmtiques (addition, soustraction, ...)
le transcodage de nombres :
BIN->BCD, BCD->BIN, BCD->7SEG, etc.
...
Nous allons commencer par tudier chaque fonction standard. Nous
donnerons des exemples de circuits et les symboles CEI correspondants.
Nous donnerons aussi la description en VHDL.
EN Sel
0
0
1
1
Sortie1 Sortie0
0
1
0
1
0
0
0
1
Sel
0
0
1
0
nSortie0
nSortie1
EN
X/Y
Sel
En
EN
nSortie0
nSortie1
Nous remarquons que les dcodeurs ont frquemment des sorties actives basses. Nous verrons que cela est utile dans le cas de son utilisation
66
Electronique numrique
ALS139
(2)
(3)
1A
1B
1in
X/Y 0
1
2
3
1
2
EN
(1)
2A (14)
2B (13)
2in (15)
(4)
(5)
(6)
(7)
1Y0
1Y1
1Y2
1Y3
(12)
(11)
(10)
(9)
2Y0
2Y1
2Y2
2Y3
EN Sel1 Sel0 Y3 Y2 Y1 Y0
X/Y
Sel0
Sel1
1
1
1
1
0
0
1
1
0
1
0
1
0
0
0
1
0
0
1
0
0
1
0
0
1
0
0
0
En
1
2
EN
0
1
2
3
Y0
Y1
Y2
Y3
67
library IEEE;
use IEEE.Std_Logic_1164.all;
entity Dec_2a4 is
port(Sel_i : in Std_Logic_vector(1 downto 0);
-- Entrees de selection
EN_i : in Std_Logic ;
-- Entree de validation
Y_o
: out Std_Logic_Vector(3 downto 0)
-- sorties
);
end Dec_2a4 ;
architecture Flot_Don of Dec_2a4 is
signal Y_s : Std_Logic_Vector(3 downto 0) ;
begin
-- determination de la valeur de sortie
with Sel_i select
Y_s <= "0001" when "00",
"0010" when "01",
"0100" when "10",
"1000" when "11",
"XXXX" when others ;-- simulation
-- affectation de la valeur de sortie
Y_o <= Y_s
when (EN_i = '1') else
"0000";
end Flot_Don;
Exemple 5- 2 : Description VHDL du dcodeur 2 4 avec enable
ALS138
A
B
C
(1)
(2)
(3)
G1
G2A
G2B
(6)
(4)
(5)
X/Y
1
2
4
&
EN
0
1
2
3
4
5
6
7
(15)
(14)
(13)
(12)
(11)
(10)
(9)
(7)
Y0
Y1
Y2
Y3
Y4
Y5
Y6
Y7
Dans le circuit ALS138, l'activation des sorties dpend de EN, qui est le
rsultat d'un ET entre les entres ( G1, G2A, G2B ).
EN = G1 G2A G2B
68
Electronique numrique
A0
A1
A2
A3
A4
Dec 3 8
1 X/Y
Dec 3 8
1 X/Y
2
4
OUT0
OUT1
......
OUT7
2
4
Dec 3 8
1 X/Y
OUT8
OUT9
......
OUT15
En
En
2
4
En
Dec 3 8
1 X/Y
2
OUT16 4
OUT17
......
OUT23
OUT24
OUT25
......
OUT31
En
Dec 2 4
1 X/Y 0
2
Enable
En
1
2
3
La fonction est le rsultat d'une fonction NAND portant sur l'inverse des
mintermes. Le dcodeur nous dlivrant l'inverse des mintermes, il suffira
d'adjoindre une porte NAND admettant comme entres les lignes de dcodage correspondant aux 1 de la fonction. Le problme nous cotera un dcodeur plus une porte NAND n entres (n tant le nombre de 1 de la
fonction) par fonction.
Un dcodeur prsentera un cot avantageux si le nombre de fonctions
est grand et que ces fonctions ont peu de 1.
69
A
B
C
D
1
2
4
'1'
&
1
2
4
&
'0'
X/Y
X/Y
0
1
2
3
4
5
6
7
0
1
2
3
4
5
6
7
F1
F2
F3
F0
Ce circuit n'est pas plus conomique que la solution avec des portes. Il
cote 2 pour les dcodeurs et 1 + 0,25 + 0,16 = 1,41 pour les portes. Ce qui
donne un total de 3,41 contre 3,25 avec des portes.
70
Electronique numrique
0
0
1
1
0
0
1
1
0
1
0
1
0
1
0
1
Sel
0
1
0
1
0
0
1
1
In0
Sortie
In1
MUX
TDV compacte
Sel
Sortie
0
1
In0
In1
Sel
In0
In1
0
1
Sortie
Voici un exemple de circuit standard qui remplit la fonction de multiplexage. Remarquez que nous avons 4 multiplexeurs avec le mme bloc de
commande dans le circuit standard (74ALS157). Les multiplexeurs sont
symboliss par les rectangles superposs, le premier est marqu MUX.
ALS157
G
A/B
1A
1B
2A
2B
3A
3B
4A
4B
(15)
(1)
(2)
(3)
(5)
(6)
(11)
(10)
(14)
(13)
EN
G1
1
1
MUX
(4)
1
1
(7)
1
1
(9)
1
1
(12)
1Y
2Y
3Y
4Y
71
Sel1 Sel0
En Sel1 Sel0
0
1
1
1
1
0
0
1
1
Sortie
0
1
0
1
0
D0
D1
D2
D3
D0
D1
D2
MUX
Sel1..0
0
1
En
EN
D0
D1
D2
D3
0
1
2
3
Sortie
0
3
En
D3
Sortie
72
Electronique numrique
library IEEE;
use IEEE.Std_Logic_1164.all;
entity Mux_4a1 is
port(Sel_i : in Std_Logic_vector(1 downto 0);
-- Entrees de selection
EN_i : in Std_Logic ;
-- Entree de validation
D0_i, D1_i, D2_i, D3_i : in Std_Logic;
-- Entree de donnees
Y_o
: out Std_Logic
-- sortie
);
end Mux_4a1 ;
architecture Flot_Don of Mux_4a1 is
signal Y_s : Std_Logic ;
begin
-- determination de la valeur de sortie
with Sel_i select
Y_s <= D0_i when "00",
D1_i when "01",
D2_i when "10",
D3_i when "11",
'X' when others; -- simulation
73
ALS153
(14)
(2)
B
1G
1C0
1C1
1C2
1C3
2G
2C0
2C1
2C2
2C3
(1)
(6)
(5)
(4)
(3)
(15)
(10)
(11)
(12)
(13)
0
G
3
1
EN MUX
0
1
2
G
A
B
C
D0
D1
D2
D3
D4
D5
D6
D7
1Y
(9)
2Y
(7)
(11)
(10)
(9)
(4)
(3)
(2)
(1)
(15)
(14)
(13)
(12)
ALS151
0
0
1 G
7
2
0
1
2
3
4
5
6
7
(5)
(6)
Y
W
A0
A1
A2
A3
A4
A5
MUX
D48
D49
......
D63
16->1
MUX
D32
D33
......
D47
16->1
MUX
D16
D17
......
D31
16->1
MUX
4->1
MUX
D0
D1
......
D15
16->1
sortie
Y = G
Di ( DCBA )i
i=0
15
F =
i ( DCBA )i
i=0
Electronique numrique
G=1
15
F =
i=0
7
i=0
7
i=8
i ( CBA )i # D ( i + 8 ) ( CBA )( i + 8 )
F = D
i=0
7
i=0
( D i # ( D ( i + 8 ) ) ( C BA )i )
i=0
Di = D i # ( D ( i + 8 ) )
75
F2
F1
F0
D C B A F3
F2
F1
F0
Dans une premire tape, pour nous assurer que toutes nos fonctions dpendent bien de toutes les variables, nous allons utiliser la mthode de la
table de Karnaugh.
0 0 1 1 D
0 0 1 1 D
0 1 1 0 C
0 1 1 0 C
0 0 - 0 1 0
0 0 - 0 0 1
0 1 - 0 - 0
0 1 - 0 - 1
1 1 0 0 - 1
1 1 0 1 - 0
1 0 - 0 - 0
1 0 - 0 - 1
B A
F3
0 0 1 1 D
0 1 1 0 C
0 1 1 0 C
0 0 - 0 0 0
0 0 - 1 1 1
0 1 - 1 - 1
0 1 - 0 - 0
1 1 0 0 - 0
1 1 0 0 - 0
1 0 - 1 - 1
1 0 - 1 - 1
F1
F3 = ( D C ) # ( D B A )
F2 = ( C B ) # ( C B A ) # ( C A )
F1 = ( B A ) # ( B A ) = A B
76
F2
0 0 1 1 D
B A
F0 = A
B A
B A
F0
Electronique numrique
F3 = f(DCBA)
F2 = f(CBA)
F1 = f(BA)
F0 = f(A)
Pour tablir une comparaison, nous pouvons valuer le cot avec des
portes logiques.
portes
fonctions
Nb. entres
F3
F2
F1
0,5
0,33
0,75
0,50
0,5
0,33
0,66
F0
1
0,16
F3..0
3 0,50
7 1,75
3 1,00
4
8
total
0,83
1,16
1,08
0,16
3,25
77
premire table
deuxime table
0 et 0
(0 et 1) ou (1 et 0)
impossible
(0 et -) ou (- et 0)
1 et 1
(1 et -) ou (- et 1)
- et -
Num.
Fx
F2
F1
78
!C
( i + 4 )
Di
!C
!C
!C
!C
!C
!C
!C
Electronique numrique
!C
!C
!C
!C
!C
(i + 4)
Di
On peut remarquer que les valeurs des entres sur les donnes pour la
fonction F1 ne dpendent pas de C, mais sont des constantes. Ceci tait
prvisible car F1 est une fonction des deux variables B et A.
Nous pouvons tablir le schma des deux fonctions.
ALS153
A
B
C
(14)
(2)
0
1
EN
0
1
2
3
"0"
"1"
0
3
MUX
(7)
(9)
F2
F1
5-10 Comparateur
La fonction de comparaison de deux nombres binaires est trs frquemment utilise. Un comparateur est un circuit qui indique si deux nombres
binaires sont plus grands, gaux ou plus petits. Dans le cas dun circuit modulaire, il y a trois entres afin de savoir si les bits prcdents sont plus
grands, gaux ou plus petits.
La figure 5- 20 a) nous donne le symbole CEI dun comparateur dgalit avec lentre = pour la chanage. La figure b) nous donne le symbole
CEI dun comparateur 4 bits modulaire avec les trois sorties <, = et >.
79
0
1
2
3
COMP
P=Q
P<Q
P=Q
P>Q
<
=
>
0
1
2
3
a)
COMP
b)
library IEEE;
use IEEE.Std_Logic_1164.all;
use IEEE.Numeric_Std.all;
entity Comp_4 is
port(Nb_P_i
: in Std_Logic_Vector(3 downto 0);
-- Entree du nombre P
Nb_Q_i
: in Std_Logic_Vector(3 downto 0);
-- Entree du nombre Q
PG_i, EQ_i, PP_i : in Std_Logic;
-- Entrees de chainage (module precedent)
PG_o, EQ_o, PP_o : out Std_Logic;
-- Sorties de comparaison
);
end Comp_4 ;
architecture Flot_Don of Comp_4 is
signal PG_s, EQ_s, PP_s : Std_Logic;
begin
-- Comparaison de P et Q
EQ_s <= '1' when unsigned(P_i) = unsigned(Q_i) else
'0';
PP_s <= '1' when unsigned(P_i) < unsigned(Q_i) else
'0';
PG_s <= '1' when unsigned(P_i) > unsigned(Q_i) else
'0';
-- affectation de la sortie avec l'entree chainage
EQ_o <= '1' when EQ_s = '1' and EQ_i = '1' else '0';
PP_o <= '1' when PP_s = '1'
else
'1' when EQ_s = '1' and PP_i = '1' else
'0';
80
Electronique numrique
La fonction de comparaison de N bits peut-tre dcompose avec plusieurs comparateurs 1 bits. Cette dcomposition peut-tre srie ou parallle. La figure 5- 21 nous montre la dcomposition srie de la comparaison.
Nous commenons par les bits de poids faible. Cette dcomposition ncessite moins de matriel. Par contre le temps de propagation travers le comparateur complet est plus important. Le temps de propagation est de :
tpCOMPN = N * tpCOMP1
A(0)
'1'
B(0)
A(1)
COMP
tpCOMPn = n * tpCOMP1
P=Q
COMP
=
B(1)
P=Q
A(n-1)
P
=
B(n-1)
COMP
P=Q
A=B
La figure 5- 22, nous montre la dcomposition parallle de la comparaison. Chaque bit est compar puis une porte ET calcule le rsultat. Cette dcomposition ncessite une porte ET N entre. Lavantage est davoir un
temps de propagation beaucoup plus petit, celui-ci est de :
tpCOMPN = 1 * tpCOMP1 + tpET
81
A(0)
P
'1'
B(0)
COMP
P=Q
Q
P
A(1)
'1'
B(1)
A(n-1)
P
'1'
B(n-1)
COMP
P=Q
A=B
COMP
P=Q
1 0 1 0 1
cumulateur
0 0 1 1 1
somme
1 1 1 0 0
report
0 0 1 1 1
On commence l'addition en additionnant les bits de poids faible du cumulande et du cumulateur. Donc 1 + 1 = 10, ce qui signifie que la somme
pour ce rang est 0 avec un report de 1. Ce report est ajout au bit du cumulande et du cumulateur du rang immdiatement gauche. Ainsi l'addition
au deuxime rang est 1 + 0 + 1 = 10, ce qui, nouveau produit une somme
82
Electronique numrique
de 0 et un report de 1. Ce report est ajout au bit du cumulateur et du cumulande du rang immdiatement gauche et ainsi de suite pour les autres
rangs.
chaque tape de l'addition, nous additionnons 3 bits: le bit du cumulande, le bit du cumulateur et le bit de report provenant de l'addition des
chiffres du rang prcdent. Le rsultat de l'addition de ces 3 bits est un
nombre 2 bits: le bit de somme et le bit de report, ce dernier devant tre
ajout au rang immdiatement gauche. Vous devez bien saisir que le
mme processus se rpte pour tous les rangs du nombre. Donc, si on parvient concevoir un circuit logique qui reproduit l'opration d'addition, il
nous restera alors simplement accoler des circuits identiques, un pour
chaque rang binaire. C'est ce que montre la figure 5- 24.
B4
C5
B3
C4
AC
no 4
S4
A4
B2
C3
AC
no 3
S3
A3
B1
C2
AC
no 2
S2
A2
B0
C1
AC
no 0
AC
no 1
S1
A1
C0
S0
A0
Sur cette figure, les variables A4, A3, A2, A1 et A0 reprsentent les bits
du cumulande mmoriss dans l'accumulateur (appel galement registre
A). Les variables B4, B3, B2, B1 et B0 sont les bits du cumulateur mmoriss dans le registre B. Les variables C4, C3, C2, C1 et C0 reprsentent les
bits de report des rangs correspondants. Les variables S4, S3, S2, S1 et S0
sont les bits de somme de chaque rang. Les bits correspondant du cumulateur et du cumulande sont appliqus un circuit logique appel additionneur complet, de mme que le bit de report gnr par l'addition des bits du
rang prcdent.
L'additionneur complet utilis pour chaque rang a trois entres: une entre A, une entre B et une entre C, et deux sorties: une sortie somme et
une sortie report. Sur cette figure, on additionne des nombres de 5 bits;
dans les ordinateurs d'aujourd'hui les nombres s'chelonnent gnralement
de 8 128 bits.
Le montage de la figure 5- 24 est appel un additionneur parallle parce
que tous les bits du cumulateur et du cumulande sont appliqus et additionns simultanment. Donc les additions des bits de chacun des rangs se font
en mme temps. Il s'agit l d'une faon qui diffre de la technique manuelle, dans laquelle on additionne chaque rang un la fois en partant du bit de
poids faible. De toute vidence l'addition parallle est extrmement rapide.
83
Cen
Cs
B
S
Cen
AC
Cs
A
(6)
Maintenant intressons-nous la sortie Cs de la table de vrit, l'expression de la somme de produits correspondant Cs est :
C s = ABC en # ABC en # ABC en # ABC en = ABC en # ABC en # AB
(7)
Les expressions (6) et (7) sont matrialises par le circuit de la figure 526, qui reprsente un additionneur complet.
84
Electronique numrique
A
B
Cen
Cs
85
86
Chapitre 6
Dans les chapitres prcdents, nous avons abord la conception des circuits logiques sans tenir compte de leurs modes de matrialisation. Il est
bon de garder en mmoire que les circuits lectroniques numriques sont
rgis par les lois de l'lectronique. Ce chapitre ne traitera que des composants pour les systmes combinatoires. Les lments squentiels seront vus
ultrieurement.
87
tive.
Vcc
zone du niveau haut [H]VHmin
zone indtermineVLmax
zone du niveau bas [L]GND
date
type
RTL
1964
DTL
1964
TTL
1969
88
Electronique numrique
.
Srie
commentaire
consommation
(mW)
vitesse
(ns)
usage
74
standard
10
10
dpass
74H..
High speed
20
dpass
74L..
Low power
30
dpass
74S..
Schottky
20
dpass
74AS..
Advanced
Schottky
dpass
74LS..
Low power
Schottky
10
normal
74ALS
Advanced LS
conseill
74F..
Fast
ponctuel
Srie
commentaire
consommation (mW)
vitesse
(ns)
usage
4000
alimentation de 3...8 V
100
dpass
45..
alimentation de 3...8 V
100
normal
74C..
50
dpass
74HC..
10
conseill
74HCT..
HC niveau compatible
TTL
10
conseill
74AC..
Advanced CMOS
nouveau
74ACT..
AC niveau compatible
TTL
nouveau
89
VIH
V
I
I
O
CC
tension
courant
entre (Input)
sortie (Output)
alimentation
II
VI
Niveau d'activit
Lieu de mesure
Paramtres lectriques
H
L
LH
HL
haut (High)
bas (Low)
transition LH
transition HL
IO
GND
VO
Dans ce schma, les sens des courants sont ceux des courants positifs.
Les courants entrants sont positifs.
90
Electronique numrique
tension d'entre
5,0
VIH(min) = 2V
2,0
0,8
zone indtermine
VIL(max)=0,8V
0,0
Il convient de noter que les valeurs de VIL (max) et VIH (min) dpendent des technologies utilises.
tension d'entre
srie TTL
74HCT...
74HC..
2,0
2,0
3,5
0,8
0,8
1,0
tension de sortie
74LS..
74ALS..
74HCT...
74HC..
2,4
3,0
4,5
4,5
0,5
0,5
0,5
0,5
courant d'entre
74LS..
74ALS..
74HCT...*
74HC..*
20
20
-0,4
-0,1
* VCC = 5V
91
courant de sortie
74LS..
74ALS..
74HCT...*
74HC.*.
IOH (max)
(mA)
-0,4
-0,4
-4
-24
IOL (max)
(mA)
* VCC = 5V
VNH
VIH(min)
zone indtermine
VOL(max)
zone du niveau bas (L)
zone de tension pour une
zone indtermine
VIL(max)
zone du niveau bas (L)
VNL
zone de tension pour une
La marge de sensibilit aux bruits au niveau haut VNH (Noise High) est
dfinie comme suit : VNH = VOH (min) - VIH (min)
De mme, au niveau bas, nous dfinirons VNL = VIL (max) - VOL
(max)
92
Electronique numrique
IIL
IOL
IOH
IIH
VOL
Figure 6- 4 : Reprsentation du facteur de charge
Pour la sortie au niveau bas, nous aurons IOL = n IIL si n est le nombre
de portes. Comme IOL < IOL (max) = 8 mA, et que IIL < IIL (max) = - 0,1
mA, on peut tirer une valeur maximum de n = 8/0,1 = 80.
Pour la sortie au niveau haut, nous avons IOH = n IIH, ce qui donne
pour les valeurs IOH = -0,4 mA et IIH = 20 mA n = 400/20 = 20.
Nous dirons que la porte a une sortance de 20. Pour simplifier les calculs, les fabricants ont dcid d'utiliser une charge unitaire correspondant
:
40 A dans l'tat haut et 1,6 mA dans l'tat bas,
Ces valeurs correspondent au courant d'entre pour la srie TTL standard. A l'tat haut, IIH (max) = 40 A reprsente le courant maximum qui
circule dans une entre TTL standard. De mme, l'tat bas, IIL (max) =
1,6 mA reprsente le courant maximum dans l'entre l'tat bas. Bien que
ces caractristiques correspondent celles de la srie TTL standard, nous
les utiliserons pour exprimer les exigences d'entre/sortie des autres sries.
Srie
Entrance (UL)
Sortance (UL)
TTL
haut
bas
haut
bas
7400
10
10
74H00
1,25
1,25
12,5
12,5
74L00
0,5
0,1
10
2,5
74S00
1,25
1,25
25
12,5
74LS00
0,5
0,25
10
74ALS00
0,5
0,06
10
93
Remarque: La plupart des familles ont des sortances haute et basse diffrentes. Lors de la conception des systmes, nous prendrons en compte
la valeur la plus dfavorable (la plus faible).
Pour les circuits CMOS, la rsistance d'entre extrmement leve fait
que ces circuits ont dans leurs familles une sortance trs grande (suprieure
50).
entre
sortie
tPHL
tPLH
CMOS
IOL
IIL
VDD=5V
VO
TTL
CMOS
TTL
VDD=5V
TTL
au niveau bas
IOH
IIH
TTL
TTL
VO
TTL
au niveau
haut
Au niveau bas, il nous faudra : n IIL (max) < IOL (max) et VOL < VIL
Au niveau haut, il nous faudra : n IIH < IOH et VOH > VIH
94
Electronique numrique
VCC
VCC
IR
TTL
IOL
VO
L
R
IIL
IR
CMOS
TT
IOH
R
IIH CMOS
VO
au niveau bas
au niveau
haut
Au niveau haut IIH = 1 A, IOH (max) = 400 A, nous aurons pratiquement IIH = IOH et le courant dans R tant pratiquement nul, la plus petite
valeur de R nous conviendra.
Au niveau bas, IIL = 0 , IOL (max) = 8 mA, VO < VOL (max)
(VCC - VOL) = R * IOL
VCC - R * IOL = VOL < VOL (max)
VCC - VOL(max) < R * IOL
(VCC - VOL (max)) / IOL < R
95
96
74LS00
74LS01
2.4
2.4(TTL)
0.4
0.4
0.8
0.8
-0.4
0.1
-0.4
-0.4
20
20
Electronique numrique
VCC
Rp
A
B
74ALS00
C
D
V
E
F
74ALS01
Une porte au niveau bas doit garantir le niveau bas, ce qui explique le
(1 x IOL) et (2 x IOH).
V = VCC - Rp x ((1 x IOL) + (2 x IOH) + (2 x IIL)) < VOL (max)
Rp > (VCC - VOL (max)) / ((IOL) + (2 x IOH) + (2 x IIL))
Rp > (5 - 0,4) / ((8) + (2 x 0,1) + (2 x (-0,1))) = 4,6 / (8 + 0,2 - 0,2) = 4,6 / 8
= 575 W
97
0
0
1
1
0
1
0
1
0
1
haute impdance
haute impdance
library IEEE;
use IEEE.Std_Logic_1164.all;
entity Trois_Etats is
port(OE_i: in Std_Logic; -- Active la porte 3 etats
E_i: in Std_Logic ;-- Donnee dentree
S_o: out Std_Logic -- Sortie porte 3 etats
);
end Trois_Etats ;
architecture Flot_Don of Trois_Etats is
begin
S_o <=
E_i
Z;
end Flot_Don;
Exemple 6- 1 : Description VHDL dune prote 3 etats
98
Chapitre 7
Mmoires
Une mmoire est un ensemble d'lments mmoires binaires. Ces lments binaires (ou cases mmoires) sont de type non volatile (l'information
crite l'intrieur de chacune des cases mmoire n'est pas affecte lors de
l'ouverture du circuit d'alimentation), c'est le cas des ROM, PROM,
EPROM et EEPROM ou volatile c'est le cas des RAM.
99
Chapitre 7: Mmoires
7-2.1 Principe
L'exemple le plus simple de mmoire morte fusibles 4x5 bits peut se
schmatiser de la faon suivante : un dcodeur 2 vers 4 (74139) avec sorties actives l'tat bas permet de slectionner une ligne parmi 4. Exemple:
l'adresse A1 A0 = 00, la ligne note 00 est force 0 et les autres lignes
sont 1. Dans ce cas les 5 bits de sortie ont la valeur 0. Avant programmation toutes les sorties sont donc 0.
+V
11
Adresse
10
1 ligne a0
parmi 2n
01
00
dcodeur
K bits en sortie
Figure 7- 1 : Schma dune PROM
100
Electronique numrique
+V
11
Adresse
10
1 ligne a0
parmi 2n
01
00
dcodeur
K bits en sortie
Figure 7- 2 : PROM programme
Fonctionnement
Grce la rsistance de tirage une ligne de sortie vaut 1 en l'absence de
diode (liaison dtruite) entre elle et le fil d'adresse slectionne. Si par contre, une diode est prsente, elle ramne le potentiel de la ligne sortie 0. Le
contenu de cette mmoire 20 bits est alors :
adresse
S4S3S2S1S0
11
0 1 1 0 1
10
1 0 1 1 1
01
1 0 1 1 1
00
1 1 1 1 0
101
Chapitre 7: Mmoires
+V
R
1
ligne au repos
( 1)
ICC
ligne selectionne
( 0)
Sortie
Figure 7- 3 : Liaisons entre les lignes de slection d'adresse et les lignes de donnes
102
Electronique numrique
7-3.1 Principe
Chaque lment mmoire est compos d'un transistor MOS dont la
grille est compltement isole dans une couche d'oxyde. Par application
d'un tension suffisamment leve, qui est appele tension de programmation, on cre des lectrons chauds ou lectrons ayant une nergie suffisamment suffisante pour traverser la mince couche d'oxyde. Ces charges
s'accumulent et se retrouvent piges dans la grille, la couche d'oxyde entre
la grille et le silicium tant trop paisse pour que les lectrons puissent la
traverser. La cellule mmoire est alors programme.
Si maintenant, on veut effacer la mmoire, on expose la puce aux rayonnements U.V. Les photons (ou particules d'nergie lumineuse) communiquent alors leur nergie aux lectrons et leur font franchir la barrire
isolante dans l'autre sens. La cellule mmoire est efface.
Aprs programmation
+
+
+
+
+
Circuit ouvert
Circuit ferm
7-3.2 Exemple
La mmoire propose ci-dessous est une mmoire EPROM 16 bits. Cette mmoire est appele mmoire NMOS car les lments mmoires sont
des transistors NMOS. Le problme de ces mmoires trs peu utilises est
la consommation d'nergie mme au repos ( cause des rsistances de tirage). On leur prfrera les mmoires CMOS qui ne consomment que lorsqu'elles sont sollicites (on remplace alors les rsistances de tirage par des
transistors PMOS).
103
Chapitre 7: Mmoires
+VCC
3
7439
A1
A0
+
+
+
+
+
+
2
+
+
+
decode 1
2 vers 4
+
+
+
0
+
+
+
CS
OE
O2
O3
O1
O0
On utilise un dcodeur 2 vers 4 pour slectionner une ligne parmi quatre. Si /CS est 0 alors le dcodeur est actif et si par exemple A1 A0 = 0 0
alors la ligne 0 est force 0 (les autres lignes restent 1) on obtient donc
sur le bus de donnes O3 O2 O1 O0 = 1 1 1 0. En effet seul le transistor de
la ligne 0 bit O0 est programm (grille flottante charge).
On utilise un buffer 3 tats pour dconnecter la mmoire du bus de donnes externe. Pour envoyer les donnes sur le bus de donnes il faudra donc
activer ce buffer 3 tats (conditions /CS = 0 et /OE =0).
ADDR
stable
stable
stable
tAA
max(tAA,tACS)
CS_L
tOH
tACS
OE_L
tAA
DATA
104
tOZ
valid
tOE
tOZ
valid
tOE
valid
Electronique numrique
VPP
28
Vcc
A12
27
PGM (P)
A7
26
NC
A6
25
A8
A5
24
A9
A4
23
A11
A3
22
OE(G)
A2
21
A10
A1
20
CE (E)
A0
10
19
DQ7
DQ0
11
18
DQ6
DQ1
12
17
DQ5
DQ2
13
16
DQ4
Vss
14
15
DQ3
105
Chapitre 7: Mmoires
A7
24
Vcc
A6
23
A8
A5
22
A9
A4
21
WE
A3
20
OE
A2
19
A10
A1
18
CE
A0
17
I/O0
16
I/O7
I/O1
10
15
I/O0
11
14
Vss
12
13
I/O6
I/O5
I/O4
I/O3
106
Electronique numrique
X BUFFERS
LATCHES AND
DECODER
16.384-BIT
E2PROM
ARRAY
A0-A10
ADDRESS
INPUTS
Y BUFFERS
LATCHES AND
DECODER
CE
OE
WE
i/o BUFFERS
AND LATCHES
I/O0-I/O7
DATA INPUTS/OUTPUTS
CONTROL
LOGIC
107
Chapitre 7: Mmoires
Les mmoires flash sont utilises dans les PC (BIOS), ou dans les systmes embarqus pour mmoriser les programmes importants. Les nouveaux appareils grand public (tlphones portables, cartes mmoire des
appareils de photos et camscopes...) demandent de plus en plus de capacit mmoire pour les interfaces graphiques et nouvelles fonctions. Les
mmoires flash sont donc en pleine expansion.
108
Chapitre 8
110
Electronique numrique
Circuits
numriques
circuits logiques
standards
74HC..
...
circuits
fonctionnement
programmable
circuits
architecture
programmable et
faible temps de
dveloppement
circuits temps de
dveloppement
important
microprocesseurs
microcontroleurs
PLD, CPLD,
FPGA
Asic pr-diffuss
Asic pr-caractriss
Asic full custom
Nous nous intresserons surtout aux circuits architecture programmable faible temps de dveloppement. Le principe de base des circuits nous
intressant ici consiste raliser des connexions logiques programmables
entre des structures prsentant des fonctions de bases. Le premier problme va donc tre d'tablir ou non suivant la volont de l'utilisateur, un contact lectrique entre deux points. Aussi, nous intresserons nous, avant de
111
passer aux circuits proprement dits et leur programmation, ces technologies d'interconnexion.
Mais avant toutes choses, rappelons comment coder une fonction logique.
112
Electronique numrique
I3
I2
I1
I0
matrice OU
programmable
matrice ET
programmable
O
O
2
O
1
O
0
Chacune des 4 entres et son complmentaire arrive sur une des 16 portes ET 2x4=8 entres. Afin de simplifier la reprsentation, les 8 lignes ont
t reprsentes par une seule, chaque croix reprsentant une connexion
programmable (un fusible par exemple). La figure suivante propose un
principe de ralisation des fonctions de la matrice ET; la mise au niveau
logique 0 (NL0) d'une des entres IX impose un NL0 en sortie :
I0
I1
Vcc
I0
SET
I1
SET
113
S ET
SET
S ET
S ET
O0
O0
8-1.2 Mmoires
Une fonction combinatoire associe chacune de ces combinaisons d'entre une valeur en sortie dcrite par sa table de vrit. C'est le principe de
la mmoire o pour chaque adresse en entre, on associe une valeur en sortie, sur un ou plusieurs bits. La structure physique des mmoires fait appelle une matrice PLA dont la matrice ET est fige et sert de dcodeur
d'adresse et dont la matrice OU est programme en fonction de la sortie dsire
114
Electronique numrique
I3
I2
I1
I0
matrice OU
programmable
liaison
fusible
intact
matrice ET
fixe
O3 O2
O1 O0
8-1.3 Multiplexeur
Le multiplexeur permet galement de coder une fonction combinatoire,
comme le montre la figure suivante :
115
entres de
programmation
de la fonction
E0 E1
A chaque valeur des entres E0 et E1 est associ un niveau logique dfini dans la table de vrit pour la sortie S. Ce niveau logique est impos
sur l'entre de programmation correspondante. Ce principe est utilis dans
les FPGA.
116
Electronique numrique
117
Par contre, la simplicit de la cellule lmentaire n'autorise pas une reprogrammation slective (ventuellement par secteur), ce qui n'est pas gnant pour le type de circuits qui nous intresse.
La tension de programmation et d'effacement est de 12 V, avec un
temps de programmation de quelques dizaines de s pour un temps d'effacement de quelques milli-secondes.
Un des inconvnients des cellules flash et EEPROM, la ncessit dune
alimentation supplmentaire pour la programmation et l'effacement, est
palli par les constructeurs en intgrant dans le circuit un systme pompe
de charge fournissant cette alimentation. Le composant peut alors tre programm directement sur la carte o il est utilis. On parle alors de composants ISP : In Situ Programmation ou encore suivant les sources, In System
Programmation.
montage du circuit
non programm
reprogrammation
ventuelle
118
Electronique numrique
119
120
Electronique numrique
L'tablissement des liaisons (routage) entre les diffrentes macrocellules est encore moins critique : un seul point de connexion -cause du retardrelie les LAB entre eux. Le temps de propagation des signaux est parfaitement prdictible avant que le routage ne soit fait. Ce dernier n'influence
donc pas les performances du circuit programm.
Dans l'outil de synthse, la partie s'occupant du placement et du routage
est appele le "fitter" (to fit : placer, garnir). La technologie de connexion
utilise est gnralement l'EEPROM (proche de celle des PLDs) ou EEPROM flash.
121
122
Electronique numrique
BA
BD
BH
BL
L'utilisation optimale des potentialits d'intgration d'un FPGA conduira un routage dlicat et pnalisant en terme de vitesse.
Il convient de noter que ces retards sont dus l'interaction de la rsistance de la connexion et de la capacit parasite; cela n'a rien voir avec un
retard d la propagation d'un signal sur une ligne tel qu'on le voit en haute
frquence.
Ces composants permettent une forte densit d'intgration. La petitesse
des blocs logiques autorise une meilleure utilisation des ressources du
composant (au prix d'un routage dlicat)
Il devient alors possible d'implanter dans le circuit des fonctions aussi
complexes qu'un micro-contrleur. Ces fonctions sont fournies sous forme
de programme (description VHDL du composant) par le constructeur du
composant et appeles "megafunction" ou "core". Le terme gnrique classiquement utilis pour les dsigner est "proprit intellectuelle" ou IP (Intelectual Property).
Les FPGAs utilisent gnralement les technologies SRAM ou antifusible, selon les fabricants, Xilinx utilisant la technologie SRAM et ACTEL
tout comme ALTERA la technologie antifusible de prfrence.
123
Description en VHDL
Synthse
(traduction)
Liste d'interconnexion
de primitives
(netlist logique)
Placement routage
(intgration)
Programmation circuit
Le placeur-routeur permet de raliser le placement routage de la liste d'interconnexion pour une technologie
donne. Cet outil est fourni par le fabricant des circuits
utiliss.
La compilation va permettre dans un premier temps vrifier la cohrence de la description et la syntaxe du langage utilis, puis d'effectuer une simulation fonctionnelle dans un premier temps.
Aprs avoir fait une simulation fonctionnelle approfondie (l'outil utilis
pour la simulation est ModelSim), c'est dire avoir valid la conception et
la description, le synthtiseur gnre la netlist du circuit logique dj fonction du circuit cible utilis. Le synthtiseur n'est pas forcment propritaire
du fabricant de chip.
Le "placeur-routeur" effectue ensuite le placement et routage des blocs
logiques. Dans le cas des CPLDs et FPGAs, le "placeur-routeur" est en gnral propritaire du fabricant de ces circuits logiques.
La dernire tape, pas toujours applique, pour autant que le design soit
synchrone, est la vrification du timing ou le simulateur importe les temps
de propagation calculs en fonction du placement routage. On utilise gnralement le mme testbench que pour la simulation fonctionnelle.
124
Electronique numrique
Vient enfin la programmation du circuit et la vrification du fonctionnement sur la carte. Si la simulation et la vrification on t faites correctement, aucune erreur de fonctionnement ne doit apparatre.
125
126
Electronique numrique
127
lule capable de traiter peu prs tout calcul dont la complexit est en relation avec le nombre de bascules qu'elle contient (une ou deux suivant les
architectures). Trois repres chiffrs : un 22V10 contient 10 bascules, la famille des CPLDs va de 32 bascules quelques centaines et celle des
FPGAs s'tend d'une centaine quelques dizaines de milliers.
Dans les circuits architectures cellulaires, il est souvent trs rentable
d'augmenter le nombre de bascules si cela permet d'allger les blocs combinatoires (pipe line, codages one hot, etc.).
Nombre d'entres/sorties
Le nombre de ports de communication entre l'intrieur et l'extrieur d'un
circuit peut varier dans un rapport deux, pour la mme architecture interne,
en fonction du botier choisi. Les chiffres vont de quelques dizaines quelques centaines de broches d'entre-sorties.
Vitesse de fonctionnement
Les comportements dynamiques des FPGAs et des PLDs simples prsentent des diffrences marquantes. Les premiers ont un comportement
prvisible, indpendamment de la fonction programme; les limites des seconds dpendent de la fonction, du placement et du routage. Une difficult
de jeunesse des FPGAs a t la non-reproductibilit des performances dynamiques en cas de modification, mme mineure, du contenu d'un circuit.
Les logiciels d'optimisation et les progrs des architectures internes ont
pratiquement supprim ce dfaut; mais il reste que seule une analyse et une
simulation post-synthse, qui prend en compte les paramtres dynamiques
des cellules, permet rellement de prvoir les limites de fonctionnement
d'un circuit.
Consommation
Les premiers circuits programmables avaient plutt mauvaise rputation sur ce point. Tous les circuits actuels ont fait d'importants progrs en
direction de consommations plus faibles. Exemple marquant la famille
CPLD CoolRunner II de Xilinx.
128
Electronique numrique
129
circuit MSI
( titre de
comparaison)
PLD
CPLD
FPGA
nombre de portes
(ordre de grandeur)
100
150
40 000
4 000 000
100 MHz
200 MHz
240 MHz
100 MHz
technologie de connexion
MOS grille
flottante
MOS grille
flottante
SRAM ou antifusible
PLA
PLA et LUT
LUT et MUX
130
Electronique numrique
PLD
Circuits logiques programmables
(Programmabble Logic Device)
SPLD
Simple PLD
CPLD
PROM
SPGA
Field Programmable
Gate Array
System Programmable
Gate Array
~ 500 100'000
gates
~ 5000 250'000
gates
~ 100000 5'000000
gates
~ 0 500 gates
PAL, MMI 1970
FPGA
Complex PLD
EEPROM
EPROM (UV)
EEPROM
SRAM, Anti-fuse
EPROM
SRAM, Anti-fuse
FLASH-EPROM
ACTEL :
ACTEL :
LATTICE, ATMEL
ATMEL : AT40K
VANTIS :
PHILIPS :
et 8000; ispMACH4A
XILINX :
ProASIC 500K
QUICKLOGIC, ICT
XILINX :
Virtex, Virtex II
131
132
Annexe 1
Bibliographie
Annexe 1:
Mdiagraphie
http://www.xilinx.com/
http://jeanlouis.salvat.free.fr/A7/coursWeb/ROM
http://perso.wanadoo.fr/xcotton/electron/coursetdocs.htm
http://artemmis.univ-mrs.fr/iufm-genelec-forum/VHDL/page_html/
1_asic_fpga_cpld_w2000_html.htm
134
Annexe 2
Lexique
Annexe 2:
136