Électronique Numérique

Transcription

Électronique Numérique
Électronique Numérique
2ème partie du cours PHYS-F-314
G. de Lentdecker et K. Hanson
Université Libre de Bruxelles
Service de physique des particules élémentaires
La grande image
• Ma mission est vous donner un premier pas dans la
direction de construire les circuit d’une nature numérique.
Ayant compris les idées « en papier », nous allons faire les
exemples réels dans la partie labo de ce cours.
• Ces circuits semblent différents que leurs homologues
analogiques
– Où bien construit ils se conduisent dans une manière
déterminée : au cause de cela, c’est possible de faire les circuits
de la complexité presque incompréhensible (le CPU Intel de
vos portables contient plus de 109 !!
– l’art reste dans l’organisation des milliers des états (millions?)
– Néanmoins il y a les « gotchas » aussi en format digital :
concurrences critiques, les impulsions « avorton » (en anglais
« runt pulses »), …
2
Background
• On va voir que les circuits digitaux sont composés des transistors
• Mais, ils restent dans une de deux états: haut ou bas (ou marche et arrêt
ou on et off ou 1 et 0) dehors l’endroit linéaire où les petits fluctuations à
l’entrée n’entraîne pas un changement d’état → immunité de bruit.
• Les circuits numériques sont divisés en deux groups importants :
– Logique combinatoire : l’état OUT d’une porte est déterminé par l’état d’un
ou plus des entrées. Ce group inclut les fonctions AND, OR, NOT, …
– Logique séquentielle : l’état OUT d’une porte est tributaire des entrées et
l’état précédent de la porte. Ce group contient les flip-flops et les mémoires.
• Nous commençons avec les portes discrètes qui sont encore disponible
dans les boîtiers des circuits intégrés en format DIN (utiles pour les
montages expérimentaux). Or, il est plus en plus ordinaire d’utiliser la
logique programmée pour tout sauf les plus basique des circuits. Ici,
vous auriez le choix entre dessiner la schéma ou décrire le circuit en une
langue « VHDL » ou « Verilog » qu’est très semblable à écrire un code en
C. Nous brosserons à ce sujet plus tard.
• Même si vous ne jamais utiliserez les portes discrètes je pense que vous
trouverez qu’ayant une bonne compréhension de l’opération des formes
discrètes donne une fondation solide sur la logique programmée.
3
LOGIQUE COMBINATOIRE
4
Le BJT comme l’interrupteur
Considérons le schéma suivant
Quand S1 est fermé, la base de Q1 est massé → IC=0 → X1
est pas allumé. En ouvrant S1 le base de Q1 s’élève jusqu'à
un diode drop au-dessus de la masse. Le courant de la base
est fixé par R1:
(5V-0.7V)/500Ω = 9 mA
IC    I B  900 mA
On peut demander la raison d’utiliser Q1 où S1 aurait bien
fonctionné. Cet exemple est un peu factice; d’habitude on
souhaite d’avoir l’interrupteur réglée par une tension.
Voir également la diapositive N° 7 des notes chapitre 3
S1 Fermé
S1 Ouvert
VB
0V
920 mV
VC
5V
320 mV
I(X1)
0A
187 mA
Notez que je dois fournir 9 mA à la base pour entrer l’endroit
saturé ; c’est un des raisons que MOSFETs sont preferable …
5
FET interrupteur
FETs sont très plus faciles d’utiliser en tant que les interrupteurs. Si la grille est plus base que VT (ici proche de 2
V), en voyant à le drain, on voit une résistance très grand, O(1 GΩ ou plus). Lors la grille est plus haut que la
résistance entre le drain et la source est petite (mais pas zero!) – l’interrupteur est ouvert.
À une tension de 4 V grille, illustré ici, l’intensité ID est
200 mA (voir la graphique de la fiche technique à
droite), la tension en travers la lampe est 5V, est la
VDS est 5V. J’ai interposé la résistance 10 Ω en ordre
que l’intensité ne dépasserait pas la point où la lampe
serait détruise.
I(VDS) pour le MOSFET ZVN3306A
n-channel MOS
6
NMOS inverseur
Volts
C’est si simple que je sois sûr que tu veux faire une porte « inverseur » du MOSFET dans cette façon:
20
18
16
14
12
10
8
6
4
2
0
A
X
0
0.5
1
1.5
Time (microseconds)
2
2.5
Bien, mais as tu considéré l’effet secondaire d’ayant Q1 dans l’état ON? Note que la dissipation de la puissance en
R1 est forte: 150 mW. Pas très problématique de seul, or si on souhaite construire un microprocesseur avec millions
des ces portes – imagine! Cette technologie s’appelle NMOS (n-channel MOSFET) et il a été très populaire dans les
années 70 et 80 car il était possible d’atteindre une très forte densité des transistors en utilisant les moyennes de
fabrication industrielle des semi-conducteurs à cette époque.
Heureusement, il existe un meilleure méthode d’organiser les FETs …
7
CMOS
CMOS (complémentaire MOS) utilise une paire de MOS (un de canal p et un de
canal n) . Rappelle que le canal-p s’agit comme le canal n à l’envers: si la grille
de Q1 est plus négative que la source (ici branché à VDD – attention !) il s’ouvre.
Si point A est à la terre (et au-dessous la VT de Q2) puis Q1 est ouvert et Q2 est
fermé → Y est à VDD. D’autre part si A est à VDD puis Q1 est fermé et Q2 est
ouvert → Y est à la terre. Notez bien que:
• Dans la condition statique où A reste soit à la terre soit à VDD il n’y a pas la
dissipation de puissance.
• Pendant le changement les deux transistors sont ouverts qui entraîne un
chemin de résistance basse entre VDD et la terre. En conséquence, la
puissance dissipée par le logique CMOS est liée à la fréquence d’horloge.
CMOS NOR
Ici c’est montré à gauche les FETs mises en œuvre comme la
fonction NOR . Le chemin à VDD est uniquement ouvert si les
deux p-MOS Q1 et Q2 sont ON (A et B sont LOW) lorsque les
interrupteurs parallels Q3 et Q4 sont fermés. Si A ou B sont
HIGH, Q1/Q2 sont fermés et Q3 ou Q4 est ouvert .
L’électricité statique et CMOS
Malgré les advantages CMOS a une susceptibilité fondamentale à
l’électricité statique. En simplement touchant un MOSFET peut
le détruire.
8
Portes numériques
NOT / Inverseur
NAND
NOR
XOR (Exclusive OR)
A
A’
0
1
1
0
A
B
(AB)’
0
0
1
74x00
Quad NAND
1
0
1
74x02
Quad NOR
0
1
1
1
1
0
74x03
Quad NAND open drain
74x04
Hex inverter (NOT)
A
B
(A+B)’
74x08
Quad AND
0
0
1
1
0
0
74x10
Triple 3-input NAND
0
1
0
74x11
Triple 3-input AND
1
1
0
74x86
Quad 2-input XOR
A
B
AB
0
0
0
1
0
1
0
1
1
1
1
0
7400 série circuits intégrés portes simples
9
Familles des portes logiques
TTL
CMOS
Alimentation (VCC)
4.75 – 5.25 Volts
4000B : +3 V à +15 V
74HCx : +2 V à +6 V
74LVx : 1.8 V – 3.3 V
Entrée
Un entrée LOW agit en tant qu’une source
d’intensité; les portes connectées doivent
pouvoir absorber cet intensité.
CMOS présente très haut Zin en entrée : il n’y a pas
l’intensité qui entre ni sort .
Sortie
Low is saturated transistor to ground. High
is Darlington follower 2 diode drops below
VCC
CMOS peut tirer la sortie très proche au GND ou VCC
Vitesse
100 MHz
74HCx : 100 MHz
> 200 MHz
Fanout
2 to 10
Beaucoup plus grand d’unité : limité par la capacitance
pour les circuits où la vitesse est requises
• CMOS est devenu le choix pour tous les applications. On encore voit les références aux signaux TTL mais presque
toujours il signifie qu’il est la logique CMOS avec les niveaux typiques de TTL, soit 0 et 5 Volts.
• En outre de TTL et CMOS il y a autres familles mais ils sont utilisés dans les circonstances spéciaux:
• LVDS (low voltage differential signaling) : pour les interconnexions de haut débit (distribution d’horloges, par
exemple)
• LVPECL (low voltage positive ECL) : connexions en série, tel que GBIC
• SSTL : populaire pour les interconnexions entre la logique et DRAM
10
Les niveaux logiques
TTL
5V CMOS
3.3V CMOS
VIH
2.0 V
3.5 V
2.4 V
VIL
0.8 V
1.5 V
0.9 V
VOH
2.4 V
4.9 V
3.2 V
VOL
0.4 V
0.1 V
0.1 V
VIH
est la tension minimale que la porte logique
considère comme HIGH à l’entrée,
VIL
est la tension maximale que la porte
logique considère comme LOW à l’entrée,
VOH
est la tension minimale à la sortie de la
porte pour l’état HIGH,
VOL
est la tension maximale à la sortie de la
porte pour l’état LOW
7
6
Volts
5
4
VIH
3
VIL
2
VOH
VOL
1
0
2
2.5
3
3.5
4
4.5
5
5.5
6
VCC (Volts)
11
Sortie drain ouvert / collecteur ouvert et 3-state
Le drain (CMOS) ou le collecteur (bipolaire) peut être laissé
ouvert pour les applications spéciaux tel que « wired OR » ou
multipoint IRQ lignes où plusieurs périphériques veulent parler
au CPU à une broche. Notez bien le astérisque dans le symbole.
A
B
Q
On doit rappeler de brancher une
résistance « pull-up » qui d’habitude
est entre 500 Ω et 10 kΩ.
Sortie à trois états (tri-state logic)
Plus modern c’est logique « tri-state » où un signal de control
(souvent appelé « OE » pour « output enable » ou « CS » pour
« chip select » et normalement ils sont « active low ». Si la sortie
est coupée, puis il présent un impédance très haut, essentiellement
agissant comme un interrupteur ouvert:
A
B
Y
0
0
0
1
0
1
X
1
Z
LSTTL NAND avec le collecteur ouvert
12
Les nombres binaires et hexadécimals
Vous avez, sans doute, réfléchi qu’on puisse représenter un nombre entier dans une porte numérique par l’association: soit
logique HI = 1 et logique LO = 0, soit l’inverse. Adopterons la convention que 1 est HI et 0 est LO sauf avis contraire.
D’ailleurs, on peut en général composer n’importe nombre entier par la composition d’un rang de portes, en interprétant
l’ensemble comme un nombre binaire.
Par exemple, supposons que nous avons la séquence de 4
registres avec HI LO HI LO. Cela représente le nombre
binaire 1010 qui est 10 (dix) en décimal. Notez bien que
le sens MSB à gauche c’est normalement le cas, mais
malheureusement n’est pas universal: c’est possible de
l’interpreter en tant que 5!
Binaire
Décimal
signé
Décimal
pas signé
Hex
0000
0001
0010
0011
0100
0101
0110
0111
1000
1001
1010
1011
1100
1101
1110
1111
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
0
1
2
3
4
5
6
7
-8
-7
-6
-5
-4
-3
-2
-1
0
1
2
3
4
5
6
7
8
9
A
B
C
D
E
F
1010bin  1  8  0  4  1  2  0  1  10dec
Signed and unsigned
Il y a plus qu’une convention pour représenter les nombres négatives mais
presque tout le monde utilise le système « complément à deux » dû à sa
généralité: on forme un nombre négatif en le déduisant d’un nombre plus
grand qui est une puissance de 2. Laquelle puissance? D’habitude il est
précisé par le largeur de la registre. Notez bien:
• Le bit de poids fort toujours indice le signe: 1 est toujours un nombre
negatif et 0 est toujours un nombre positif,
• Le complément à 2 est pris par inverser le nombre, puis additionner 1.
Hexadécimal
Bien qu’il est difficile de commuter entre les représentations binaires et
décimales, il existe une représentation intermédiaire en base 16 qui est
pratique. Ici, chaque group de 4 bits peut etre ecris en tant qu’un digit hex:
0110 1011 0010 0111 1111 0100 1100 0001 = 0x6B27F4C1 = 1.797.780.673
13
Les identités logiques et la loi de DeMorgan
A
B
AB
A’B’
A+B
A’+B’
0
0
0
1
0
1
1
0
0
0
1
1
0
1
0
0
1
1
1
1
1
0
1
0
En considérant la table à gauche on vérifie le loi de
DeMorgan:
(AB)’ = A’+B’,
et
(A+B)’ = A’B’
Il suit que toute logique peut être fait de quelque
amalgame des portes NAND ou NOR. Nous allons
voir que les portes séquentielles également se
composent des portes NAND (ou NOR), ainsi il
serait possible construire un ordinateur des portes
NANDs !
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
ABC = (AB)C = A(BC)
AB = BA
AA = A
A1 = A
A0 = 0
A(B+C) = AB + AC
A + AB = A
A + BC = (A + B)(A + C)
A + B + C = (A + B) + C = A + (B + C)
A+B=B+A
A+A=A
A+1=1
A+0=A
(A’)’ = A
1’ = 0
0’ = 1
A + A’ = 1
AA’ = 0
A + A’B = A + B
(A + B)’ = A’B’
(AB)’ = A’ + B’
14
Multiplexeurs
2-input Muxer
Y  AS  BS
Un multiplexeur fait une sélection parmi N
entrées réglée par une ou plus sélecteurs. Ici
à la droite est une réalisation avec 2 entrées
et un sélecteur.
Les multiplexeurs sont utilés dans le cas rare
où on doit mettre en œuvre une table de
vérité arbitraire.
S
A
B
Y
0
0
X
0
0
1
X
1
1
X
0
0
1
X
1
1
4-input Muxer
Y  AS0 S1  BS0 S1  C S0S1  DS0S1
S0
S1
A
B
C
D
Y
0
0
0
X
X
X
0
0
0
1
X
X
X
1
1
0
X
0
X
X
0
1
0
X
1
X
X
1
0
1
X
X
0
X
0
0
1
X
X
1
X
1
1
1
X
X
X
0
0
1
1
X
X
X
1
1
Il y a (au moins) 2 voies pour l’étendre :
• Par créer un arbre des 3 blocs répétés
du modèle ci-dessus où X2.A = C &
X2.B = D et X1.S & X2.S = S0 et
X3.S = S1
• C’est plus efficace de construire la
logique directement mais le nombre des
portes s’accroît en tant que 2N
15
Décodeurs et Encodeurs
Un décodeur prend un de N entrées et met le bit correspondant à un de 2N sorties. C’est utile pour activer une partie
de le circuit en fonction d’un état tenu dans un compteur, par exemple. La logique est exactement équivalent à le 4entrée muxer avant.
S0
S1
A
B
C
D
A  S0 S1
0
0
1
0
0
0
B  S0 S1
1
0
0
1
0
0
C  S0S1
0
1
0
0
1
0
D  S0S1
1
1
0
0
0
1
L’encodeur fait l’opposite : il prend plusieurs entrées et répond avec la position de le plus fort bit en binaire. Ici est la
table de vérité pour 3 entrées . Il n’est pas très difficile de généraliser . Les encodeurs sont utilisés en le convertisseur
analogique – numérique .
A
B
C
Y0
Y1
0
0
0
0
0
Y0  AB'C  ((AB')' C' )'
1
0
0
1
0
Y1  B  C  (B' C' )'
X
1
0
0
1
X
X
1
1
1
16
L’addition avec portes numériques
Prenons le problème suivant pour additionner 2 nombres binaires. Faites la chose ordinaire en additionnant les
numéraux décimaux …
0110
+0101
---1011
A (6)
B (5)
11 !
Vraiment c’est plus facile. Il reste d’écrire la table de vérité – ici A et B sont les bits et C représente le « carry » bit
A
B
Cin
Q
Cout
0
0
0
0
0
1
0
0
1
0
Q  A  B  Cin
0
1
0
1
0
Cout  AB  Cin (A  B)'
1
1
0
0
1
0
0
1
1
0
or
Cout  AB  Cin (A  B)
1
0
1
0
1
0
1
1
0
1
1
1
1
1
1
Le dernier expression est plus efficace car il
réutilise le résultat de le XOR, donc, on a
besoin une porte moins
17
Simple 2-bit full adder from discrete gates
18