Académique Documents
Professionnel Documents
Culture Documents
Daniel Etiemble
de@lri.fr
1
Portes et technologies CMOS
• Technologie CMOS et réalisation des fonctions
logiques
– Portes de base
– Portes complexes
– Portes de transmission
• Caractéristiques électriques
– Entrances et sortances
– Caractéristiques dynamiques
La technologie MOS
• Au début (RCA
Grille G 1962) la grille était
en Aluminium d'où le
nom MOS :
Métal/Oxyde/Semi-
Source S Drain D conducteur
• Le MOS est
parfaitement
symétrique et on
Grille appelle SOURCE
Oxyde (d'électrons) le coté
(Si O2 ) le plus négatif (le
plus positif pour les
S D Semiconducteur •
PMos)
Le substrat est mis à
Silicium dopé
la masse (à Vdd pour
les PMOS)
substrat (bulk)
2
Coupe d’un transistor
Un circuit intégré est une superposition de couches, semi-conductrices, conductrices ou isolante
contacts
diffusion poly
métal (aluminium)
oxyde
Si O2 oxyde
poly
diffusion oxyde
substrat substrat
S G D
Cox W
I ds = µ (2(Vgs − Vt )Vds − Vds2 )
2 L e
W
Si 0 <Vgs − Vt < Vds , mode saturé
n+ L n+
Cox W
I ds = µ (Vgs − Vt ) 2 (p)
2 L
3
Portes élémentaires en CMOS
5V
p p p a p
n a n b p
0V b n n n
0V
+5 V
p p
0 1 0 1 0 1
n n 0 1 1 0 1 0
1 1 0 1 0 0
0V
M2 ISIC Fondements des systèmes numériques 7
2008-2009 D. Etiemble
4
Portes logiques un peu plus complexes
Vdd Vdd
Vdd
p p p p a p p c
Réseau b d
trans. P d n p p
Entrées
Sortie c n n n
Réseau b n n n
trans. N
a n 0V
0V 0V a
a b
b
c c
M2 ISIC
d
Fondements des systèmes numériques
d 9
2008-2009 D. Etiemble
Réseau de transistors
Vdd ET logique
Réseau conduit si les
trans. N 2 réseaux conduisent
Réseau
trans. P Réseau
Entrées
Sortie
ie
trans. N
sér
n
xe
eau
rés
Réseau soi
t 2
soit 2 réseaux en parallèle
Réseau Réseau
trans. N soi
t1
trans. N trans. N
tran
sist
or
0V
Conduit si sa OU logique
conduit si l'un ou l'autre
grille vaut 1 (ou les deux) réseaux conduisent
M2 ISIC Fondements des systèmes numériques 10
2008-2009 D. Etiemble
5
Conception des portes complexes (1)
Equation logique⇒ schéma électrique
Vdd
Les transistors P sont utilisés Vdd
Réseau pour tirer à 1 et les transistors
trans. P N pour tirer à 0. Il n'y a pas
n
Entrées
de perte de seuil
Sortie
si f(E)
Entrées E
Vdd
6
Conception des portes complexes (3)
a
b
Pour construire une porte complexe, on construit en premier le
c réseau de transistors N, avec les règles :
d
e Vdd
ET - réseaux en série
a b OU - réseaux en parallèle.
b d e
M2 ISIC VssFondements des systèmes numériques 13
2008-2009 D. Etiemble
Construction du dual
Méthode 1: croiser les règles
Règle pour
le réseau N ET - transistors série
Vdd OU - transistors parallèles.
Règle pour
a b le réseau P ET - transistors parallèle
OU - transistors série
d
c Méthode 2: complémenter
e Equation pour le réseau N F = (a ∧ b) ∨ c ∧ (d ∨ e)
M2 ISIC
Vss être complémentées
Fondements des systèmes numériques 14
2008-2009 D. Etiemble
7
Portes complexes : améliorations électriques
Raccourcir les chemins Minimiser la capacité Mettre plus près de la sortie les
entre sortie et alimentation parasite de sortie transistors activés le plus tard
f = a ∧ b ∨ (c ∧ ( a ∨ b ))
a b
b c b a b a a b
a
c
b a a b a c b c
f
a a b a a b a c b c
b c b c b a b a a b
8
Modélisation du comportement dynamique
Sortie
Vdd
Vdd
Vc
p Ip Sortie
Entrée
n 0 Entrée
In
0V CL Td Tm
Somme des
capacités parasites CL
Td = Vc
I satn
L'inverseur est un générateur de
courant déclenché par le passage du CL
seuil
Tm = Vc
I satp
M2 ISIC Fondements des systèmes numériques 17
2008-2009 D. Etiemble
Courants et dimensions
Wp
Vdd I satp = K p (Vdd −Vtp −Vc )2
I satp
Lp
Wn
I satn = Kn (Vdd −Vtn −Vc )2
Isatn Ln
9
Conservation des temps de commutation
Vdd
p Pour conserver le W/L équivalent, si
a l’on met n transistors en série, il faut
b p multiplier W par n
Impact sur les capacités d’entrée des
n n portes Nand/Nor à n entrées
Vdd
Vdd
Ids sat n
p p
a n CL
b n
début de décharge
M2 ISIC Fondements des systèmes numériques 19
2008-2009 D. Etiemble
plus lente
plus
rapide
10
Quel est le circuit le plus rapide ?
v a b c
A’ B’ C’
11
Consommation d’énergie
• Consommation d’énergie
– Quand une capacité est chargée ou déchargée
– Une capacité chargée est un 1 logique, déchargée est un 0 logique
E=CV2
E S
10 01
• Les capacités peuvent être les grilles d’autres transistors ou des fils
(bus et interconnexion longues)
M2 ISIC Fondements des systèmes numériques 23
2008-2009 D. Etiemble
Consommation d’énergie
• Des effets secondaires comme les courants de fuite et de court-circuits augmentent
avec les technologies modernes
IN OUT IN OUT
0 1 1/2
Fuites Court-
Court-circuit
(sub-
(sub-threshold)
threshold)
12
La logique aléatoire
• Transistors intégrés dans des portes logiques (années 60)
• Catalogue de portes de base (années 70)
– Texas Instruments Logic Data Book
– Tous les boîtiers de base fournis et caractérisés (délai, puissance)
– Boîtiers typiques
• CI 14 pattes : 6 inverseurs, 4 Nand à 2 entrées, 4 portes Ou exclusif
• Très peu utilisés aujourd’hui
• Cependant, des bibliothèques utilisant ces “éléments” existent
pour la conception de circuits
– Les concepteurs utilisent des portes logiques déjà caractérisées
13
Diagramme de Karnaugh
• Représentation graphique des tables de vérité faisant apparaître
les symétries
symétrie/ x
x
x
x.y x.y
y y+y=1
0
1
symétrie/ y
x.y x.y
y
1 1
xy = xy+xy
x+x =1
M2 ISIC Fondements des systèmes numériques 27
2008-2009 D. Etiemble
AB
e0 e0 00 01 11 10
0 4 5 1 CD
e3
00
e1
8 12 13 9
01
e3
10 14 15 11
11
e1
e3 10
2 6 7 3
e2 e2 e2
14
Simplification
• Regroupements de taille
maximale AB
00 01 11 10
– 8 supprime 3 variables CD
– 4 supprime 2 variables
00 1 1 1
– 2 supprime 1 variable
• Tous les 1 doivent être pris 01
une fois 1 1
• Pas de regroupements 11 1 1 1
redondants
10
1 1 1
B’D’ A
BCD
M2 ISIC Fondements des systèmes numériques 29
2008-2009 D. Etiemble
Afficheur 7 segments c0
c5 c1
• Entrées c6
c4 c2
– Chiffre décimal codé sur 4
bits (A, B, C, D) c3
c0 c1 c2 c3 c4 c5 c6
• Sorties
– Signaux de contrôle pour
Décodeur BCD vers
l’afficheur (7 sorties C0 à C6) afficheur
7-segments
A B C D
15
Synthèse avec logique aléatoire
• Table de vérité avec cas indifférents
• Minimisation avec diagramme de Karnaugh
A B C D C0 C1 C2 C3 C4 C5 C6
c0 0 0 0 0 1 1 1 1 1 1 0
c5 c1
0 0 0 1 0 1 1 0 0 0 0
c6 0 0 1 0 1 1 0 1 1 0 1
c4 c2
0 0 1 1 1 1 1 1 0 0 1
c3
0 1 0 0 0 1 1 0 0 1 1
0 1 0 1 1 0 1 1 0 1 1
0 1 1 0 1 0 1 1 1 1 1
0 1 1 1 1 1 1 0 0 0 0
1 0 0 0 1 1 1 1 1 1 1
1 0 0 1 1 1 1 0 0 1 1
1 0 1 – – – – – – – –
1 1 – – – – – – – – –
16
Implémentation sous forme OU de ET (suite)
• On peut faire mieux
– 9 termes produit (au lieu de 15)
– On partage des termes entre les sorties
– Chaque sortie n’est pas nécessairement sous forme minimale
A A
C2 1 1 X 1
C2 1 1 X 1
1 1 X 1 1 1 X 1
D D
C 1 1 X X C 1 1 X X
0 1 X X 0 1 X X
B B
Logique aléatoire
• Difficile de savoir exactement quelles portes utiliser
– Correspondance logique vers réseau de portes NAND/NOR
– Déterminer le nombre minimal de boîtiers
• Des modifications légères de la fonction peuvent diminuer le coût
• Les modifications sont difficiles à réaliser
– On doit changer les connexions
– On peut avoir besoin de nouvelles parties
– Conception avec des portes de secours (quelques inverseurs et portes
supplémentaires sur chaque carte)
• La conception doit être plus rapide
• On doit rendre les modifications plus faciles
Logique régulière
17
Multiplexeurs - démultiplexeurs
• Connexions directes point à point entre des portes
– fils
• Une entrée parmi plusieurs vers une sortie --- MUX(multiplexeur)
• Une entrée vers une parmi plusieurs sorties --- DEMUX(démultiplexeur)
contrôle contrôle
Mux et démux
• Implémentation de commutateurs à l’aide de mux et
démux.
– Peuvent être combinés pour créer des réseaux de
commutation de taille quelconque
– Utilisés pour implémenter des interconnexions plusieurs
entrées - plusieurs sorties
A Y A Y
B Z B Z
18
Mux et démux (suite)
• Utilisation de multiplexeurs/démultiplexeurs dans des
connexions multi-points
A0 A1 B0 B1 Plusieurs entrées
Sa MUX MUX Sb
A B
Sum
Ss DEMUX
S0 S1 Plusieurs sorties
Multiplexeurs - Sélecteurs
19
Multiplexeurs - sélecteurs (suite)
MUX 2:1
MUX 4:1
20
Combinaison de multiplexeurs
• De gros multiplexeurs peuvent être réalisés à partir de
multiplexeurs plus petits.
Autre implémentation
E0 mux 8:1
E1 mux 4:1 E0 mux 8:1
E1 mux 2:1
E2
E3
mux 2:1 Z E2 mux 2:1
E4 E3 mux 4:1
E5 Z
mux 4:1
E6 E4 mux 2:1
E7 E5
B C A E6 mux 2:1
E7
Exemple:
F(A,B,C) = m0 + m2 + m6 + m7
= A' B' C' + A' B C' + A B C' + A B C
= A' B' (C') + A' B (C') + A B' (0) + A B (1)
1 0 A B C F
0 1 0 0 0 1 C’ C 0
1 2 F 0 0 1 0 C 1 F
0 3 MUX 8:1 0 1 0 1 C 0 2 MUX 4:1
0 4 0 1 1 0 1 3 S1 S0
0 5
1 6 S2 S1 S0 1 0 0 0
0 A B
1 7 1 0 1 0
1 1 0 1
A B C 1 1 1 1 1
“LUT"
M2 ISIC Fondements des systèmes numériques 42
2008-2009 D. Etiemble
21
Multiplexeur/Sélecteur : généralisation
E0 E1 … En-1 F
0 0 0 1 1 Quatre
…
n-1 variable de 1 0 1 0 1
configurations
Contrôle du Mux
Variable
donnée du mux 0 E E 1
Exemple:
G(A,B,C,D) peut être implémenté par un Mux 8:1:
AB 1 0
CD 00 01 11 10 Table D 1
00 1 0 1 1 0 2
de 1 3 Mux 8:1 G
01 1 0 0 0 Karnaugh D 4
D 5
11 1 1 0 1 Implémentation D 6
10 0 1 1 0
avec D 7 S2 S1 S0
multiplexeur A B C
M2 ISIC Fondements des systèmes numériques 43
2008-2009 D. Etiemble
Exemple
• Réaliser la fonction F = B’CD’ + ABC’ avec un
multiplexeur 4:1 et un minimum d’autres portes
• Implémenter la fonction logique
f (A,B,C,D) = m(0,1,5,7,11,13,14,15)
(a) Avec un Mux 4:1
(b) Avec un Mux 8:1
22
Décodeurs/Démultiplexeurs
Décodeur 3:8 :
Décodeur 1:2 :
O0 = G • S; O1 = G • S O0 = G • S0 S1 S2
O1 = G • S0 S1 S2
Décodeur 2:4 :
O2 = G • S0 S1 S2
O0 = G • S0 S1 O3 = G • S0 S1 S2
O1 = G • S0 S1 O4 = G • S0 S1 S2
O2 = G • S0 S1 O5 = G • S0 S1 S2
O3 = G • S0 S1 O6 = G • S0 S1 S2
M2 ISIC
O = G • S0 S1 S2
Fondements des systèmes numériques7 45
2008-2009 D. Etiemble
0 ABC
1 ABC Le décodeur génère les termes
Enb 2 ABC produit appropriés en fonction
Déc. 3:8 3 ABC des signaux de contrôle
4 ABC
5 ABC
6 ABC
S2 S1 S0 7 ABC
A B C
Exemples:
F1 = A' B C' D + A' B' C D + A B C D
F2 = A B C' D' + A B C
F3 = (A' + B' + C' + D')
M2 ISIC Fondements des systèmes numériques 46
2008-2009 D. Etiemble
23
Décodeur/Démultiplexeur
0 AB C D
1 AB C D
F
2 AB C D 1
3 AB C D
4 AB C D
5 AB C D
Enb 6 AB C D
déc 4:16 7 AB C D
8 AB C D F2
9 AB C D
10 AB C D
11 AB C D
12 AB C D
13 AB C D
14 AB C D F3
S S S S 15 AB C D
3 2 1 0
A B C D
M2 ISIC Fondements des systèmes numériques 47
2008-2009 D. Etiemble
1:2 Décodeur, Enable actif haut 1:2 Décodeur, Enable actif bas
G /G
Sortie0 Sortie0
Sortie1 Sortie1
Sortie2 Sortie2
Sortie3 Sortie3
2:4 Décodeur, Enable actif haut 2:4 Décodeur, Enable actif bas
M2 ISIC Fondements des systèmes numériques 48
2008-2009 D. Etiemble
24
Multiplexeurs/Décodeurs : Mux 32:1
11G1Y3 7 7 EN146
5
1391Y2 6 E31 7 151 154
A 31B1Y1 5 6 13
21A1Y0 4 7 EN
EN B I5145 22
15 2G2Y3 9 E23 7I4151 154 31Y 5
E31 7 151 2Y2 10
7 EN14 I3 1
6 3 40 6
EN1 6
132B2Y1 11 I5 5I2 22 9CW
5 142A2Y0 12 E15 7I4151154I1 31Y 10 5B
1
E23 7 151
44 Y5 7 EN146I3 1 3 I0 40W11 6A
6 513 W6 I5 5I2 22 C 9C S2 F(A, B, C, D, E)
EN1 5 22 E7 7I4151154I1 31Y 10 5B
1 3 5 1 4 D S1
E15 7 1514 1Y E6 6I3 3I0 0W11 6A
1 4 513 40W 6 E5 5I2 22 C 9C S2E S0
EN1 6 E4 4I1 31Y10 5B
35 2 2
3 9C
1GA
E3 3I0 40W D11 S1
1
4 4 1Y15B
E7 7 151 3A3 153 E2 2 C 9C
6A
E S0
E6 6 513 40W1 6A 4 A2 E1 1
S2
E5 5 22 9C 0 10
5 A1 YA 7 F(A, B, C, D,E0E) 0 D11A
B
S1
E4 4 31Y15B 1 6 A0
4
E313 0W1 6A C S2 E S0
E2 2 9C 0 13 B3 D S1
E1 1 1 B 1 12 B2 E S0
E0 0 1 A 11 B1 YB 9
C S2 0 10 B0
1
D S1 1 GBS1SO
E S0 5 2 14
AB
Multiplexeurs/Décodeurs
G1 Y7 \Y31
\EN 1G 1Y3 G2A Y6 \Y30
139 1Y2 G2B Y5 \Y29
S4
1B 1Y1 Y4 \Y28
S3 138
1A 1Y0 Y3 \Y27
S2 C Y2 \Y26
2G 2Y3 Y1
S1 \Y25
2Y2 B
S0 Y0 \Y24
2B 2Y1 A
2A 2Y0
\EN \Y31 G1 Y7 \Y23
G2A Y6 \Y22
Y5 \Y21
5:32 . G2B
138
Y4 \Y20
Décodeur . S2
Y3
Y2
\Y19
\Y18
. S1
S0
C
B Y1
Y0
\Y17
\Y16
A
\Y0 G1 Y7
\Y15
\Y14
Y6
S4 S3 S2 S1 S0 G2A
G2B Y5
\Y13
\Y12
138 Y4
Y3 \Y11
S2 \Y10
C Y2
S1 B Y1 \Y9
S0 A Y0 \Y8
25
Logique à portes de transmission CMOS
Les transistors nMOS passent bien les 0, mal les 1
Les transistors pMOS passent bien les 1, mal les 0
Les portes de transmission “parfaites” les placent en parallèle
E S E S E S
Fonctions multiplexeur/démultiplexeur
S
Multiplexeur E0
S S Z
Choisit E0 si S = 0
Choisit E1 si S = 1 E1
S
S
Démultiplexeur Z0
E S S
E vers Z0 si S = 0
E vers Z1 si S = 1 Z1
S
26
Portes de transmission : sorties non fixées
Problème avec le démultiplexeur : plusieurs sorties,mais
une seule connectée à l’entrée
S
Z0
S
"0"
E
S S
Z1
S
"0"
S
Logique supplémentaire pour que chaque sortie soit fixée
Pas de sorties “flottantes”
M2 ISIC Fondements des systèmes numériques 53
2008-2009 D. Etiemble
Multiplexeurs/Sélecteurs
A B
I0 Z
I1
I2
I3
Mux
Mux4:1
4:1 avec
avec portes
portes Mux
Mux4:1
4:1 avec
avec portes
portesdede transmission
transmission
36 transistors
36 transistors 20 transistors
20 transistors
27
Décodeurs/Démultiplexeurs
S0 S1
Décodeur 4:2
G Z0
"0"
"0" S0 = 0, S1 = 0
G Z1 1 chemin direct
3 chemins “diagonaux”
"0"
"0"
G Z2
"0"
"0"
G Z3
"0"
"0"
M2 ISIC Fondements des systèmes numériques 55
2008-2009 D. Etiemble
A OE F
X 0 Z Quand OE est bas, la porte est “déconnectée”
0 1 0 de la sortie
1 1 1
28
État « haute impédance » (Tri-state)
Utilisation des portes trois états pour les connexions bus
L’état haute impédance permet de connecter plusieurs portes à la
même sortie, à condition qu’une seule porte soit active (OE actif) en
même temps
E0 F
OE
E1
OE
S
M2 ISIC Fondements des systèmes numériques 57
2008-2009 D. Etiemble
OE
E1
E F
OE
OE
S
0
Implémentation de l’inverseur 3-états
M2 ISIC Fondements des systèmes numériques 58
2008-2009 D. Etiemble
29
État « haute impédance » (Tri-state)
\EN 1 1G 1Y3 7
139 1Y2 6
S1 3 1B 1Y1 5 D3
S0 2 1A 1Y0 4
15 2G 2Y3 9
2Y2 10
13 2B 2Y1 11 D2
14 2A 2Y0 12
D1
D0
Entrées
Réseau de Réseau de
portes ET Termes produit portes OU
Sorties
30
PALs et PLAs : le partage de termes produit
Équations
F0 = A + B' C'
Exemple: F1 = A C' + A B
F2 = B' C' + A B
F3 = B' C + A
31
PALs and PLAs
Fusibles : les connexions non voulues sont détruites
Antifusibles : les connexions voulues sont réalisées
Notation pour
F0 = A B + A' B'
F1 = C D' + C' D
M2 ISIC F0 F1
Fondements des systèmes numériques 64
2008-2009 D. Etiemble
32
PALs versus PLAs
– F1 = A B C A B C
– F2 = A + B + C
– F3 = A' B' C' A'B'C'
33
Exemple PLA/PAL: convertisseur BCD vers Gray
Table
A B C D W X Y Z
AB AB
0 0 0 0 0 0 0 0
CD 00 01 11 10 CD 00 01 11 10
0 0 0 1 0 0 0 1 00 0 0 X 1 00 0 1 X 0
0 0 1 0 0 0 1 1
0 0 1 1 0 0 1 0 01 0 1 X 1 01 0 1 X 0
0 1 0 0 0 1 1 0 11 0 1 X X 11 0 0 X X
0 1 0 1 1 1 1 0 10 10 0
0 1 X X 0 X X
0 1 1 0 1 0 1 0
0 1 1 1 1 0 1 1 W X
1 0 0 0 1 0 0 1
1 0 0 1 1 0 0 0 AB AB
1 0 1 0 X X X X CD 00 01 11 10 CD 00 01 11 10
1 0 1 1 X X X X 00 0 1 X 0 00 0 0 X 1
1 1 0 0 X X X X
01 0 1 X 0 01 1 0 X 0
1 1 0 1 X X X X
1 1 1 0 X X X X 11 1 1 X X 11 0 1 X X
1 1 1 1 X X X X 10 1 1 X X 10 1 0 X X
M2 ISIC Y
Fondements des systèmes numériques Z 67
2008-2009 D. Etiemble
A B C D
Fonctions minimisées : 0
W=A+BD+BC 0
X = B C' 0
Y=B+C 0
Z = A'B'C'D + B C D +
A D' + B' C D'
0
0
A’ B’ C’ D
Pas de termes partagés
PAL:
4 termes produit pour chaque porte OU W X Y Z
M2 ISIC Fondements des systèmes numériques 68
2008-2009 D. Etiemble
34
PALs et PLAs : comparateur (autre exemple)
A B C D
A B C D EQ NE LT GT A'B'C'D'
0 0 0 0 1 0 0 0
A'BC'D
0 0 0 1 0 1 1 0
0 0 1 0 0 1 1 0 ABCD
0 0 1 1 0 1 1 0
0 1 0 0 0 1 0 1 AB'CD'
0 1 0 1 1 0 0 0 AC'
0 1 1 0 0 1 1 0
0 1 1 1 0 1 1 0 A'C
1 0 0 0 0 1 0 1
B'D
1 0 0 1 0 1 0 1
1 0 1 0 1 0 0 0 BD'
1 0 1 1 0 1 1 0
1 1 0 0 0 1 0 1 A'B'D
1 1 0 1 0 1 0 1 B'CD
1 1 1 0 0 1 0 1
1 1 1 1 1 0 0 0 ABC
BC'D'
Fonctions minimisées :
EQ = A’B’C’D’ + A’BC’D + ABCD + AB’CD’
LT = A’C + A’B’D + B’CD
NE = AC’ + A’C + B’D + BD’
GT = AC’ + ABC + BC’D’
M2 ISIC Fondements des systèmes numériques EQ NE LT GT 69
2008-2009 D. Etiemble
Exemple PAL
M2 ISIC
S
Fondements des systèmes numériques
Rs X Y 70
2008-2009 D. Etiemble
35
Exemple
W X Y
M2 ISIC Fondements des systèmes numériques 71
2008-2009 D. Etiemble
Exemple (suite)
• 9 termes et PLA 7 termes
– On peut appliquer le théorème du
consensus pour simplifier W
W = AB + A’C’ A B C
• “ technology mapping”
– Manipuler les fonctions logiques pour
qu’elles puissent utiliser les ressources
disponibles
W X Y
M2 ISIC Fondements des systèmes numériques 72
2008-2009 D. Etiemble
36
Les mémoires ROM (read only memory)
ROM : Réseau 2D de 1 et de 0.
Une ligne est un mot. Entrées du décodeur : adresse
Largeur d’une ligne : taille du mot
L’adresse est l’entrée ; le mot sélectionné est la sortie
+5V +5V +5V +5V
n
2 -1
A B C F0 F1 F2 F3
0000 0 1 0 ROM
0011 1 1 0 8 mots x 4 bits/mot
0100 1 0 0
0110 0 0 1
1001 0 1 1
1011 0 0 0
1100 0 0 1 A B C F0 F1 F2 F3
1110 1 0 0 adresse sorties
Table Schéma
M2 ISIC Fondements des systèmes numériques 74
2008-2009 D. Etiemble
37
Structure ROM
• Comme un PLA, mais avec un réseau ET complet (décodeur)
• Réseau OU complètement flexible (contrairement aux PALs)
N lignes d’adresse
• • •
entrées
réseau
Décodeur 2nlignes mémoire
de mots (2n mots
de m bits)
sorties
• • •
m lignes de données
ROMs et PLAs
• PLA : topologies généralisées avec plans ET et OU
– Compact : terme ET partagé
– A besoin d’un programme CAO : forme somme de produits optimisée
– Plus lent que les PAL
• ROM : Le plan ET est prédéterminé
– Implémentation sous forme canonique
– Le plan ET est aussi appelé décodeur d’adresses
– Satisfaisant lorsque
• La plupart des combinaisons d’entrée sont utilisées
• Peu de partage de termes produit
• Pas d’outils de CAO
– La taille double par entrée
– Pas de termes indifférents
– Le plus lent
38
CPLD/EPLD
Altera EPLD (Erasable Programmable Logic Devices)
Bloc de base Altera = MACROCELL
CLK
Réseau ET-OU avec
8 termes produit
+ MUX
Clk
MUX Plot E/S
Programmable
MUX pad
ET sortie
Q
Contrôle
inversion
MUX
F/B Bloc logique
séquentielle
Polarité programmable
Contre-réaction programmable
M2 ISIC Fondements des systèmes numériques 77
2008-2009 D. Etiemble
Stratégies d’implémentation
Les structures ET-OU sont relativement limitée
Ne peuvent partager les signaux et termes produits entre macrocellules
Solution Altera : matrice de réseaux (MAX)
Routage global :
Réseau
Blocs d’interconnexion
De réseaux LAB A LAB H programmable
logiques
39
Les FPGA
LE LE LE LE
LE LE LE LE
LE LE LE LE
Élément logique
• LUT (Look-up table) Adresse Adresse Contenu
0 0000 0
– SRAM à 4 ou 5 bits d’adresse
1 0001 1
et 1 bit de sortie
2 0010 1
– Implante toutes les tables de 3 0011 0
vérité de 4 ou 5 entrées 4 0100 1
• Avantage 5 0101 0
40
LUT dans un bloc logique
41
Élément logique – Mode normal
42
Demi - additionneur
Ai 0 1 Ai 0 1
Ai Bi S R Bi Bi
0 0 0 0 0 0 1 0 0 0
0 1 1 0
1 0 1 0 1 1 0 0 1
1
1 1 0 1
S= Ai Bi + Ai Bi R = Ai Bi
= Ai ⊕ Bi
A
i S
Bi
R
Demi-additionneur
Additionneur 4 bits + + + +
S2
R4 S3 R3 R2 S1 R1 S0
Additionneur 1 bit
+ règles d’assemblage
43
Additionneurs 1 bit
Approche standard
A A
B
B Re Rs
S
Re A
B
A A⊕B A ⊕ B ⊕ RI S
½ S ½ S
Add. AB Add. RI (A ⊕ B)
B Rs Rs
RI
+ Rs
A B + Re(A xor B) = A B + B Re + A Re
M2 ISIC Fondements des systèmes numériques 87
2008-2009 D. Etiemble
Additionneur/soustracteur
A - B = A + (-B) = A + B + 1
A B B A BB A B B A B B
3 3 3 2 2 2 1 1 1 0 0 0
0 1 Sel 0 1 Sel 0 1 Sel 0 1 Sel
A B A B A B A B
Rs + Re Rs + Re Rs + Re Rs + Re Add/Sub
S S S S
S3 S2 S1 S0
Débordement
44
Conception d’additionneur
Temps de propagation de la retenue
@0 A @1 @N+1
@0 B
Dernier @N R Rs
signal e
@N+2
arrivant @0 A
@0 B
@1 2 temps ET/OU
pour calculer Rs
A
B 2 temps XOR pour calculer S depuis
S A ou B
Re 1 temps XOR pour calculer S depuis
Re
R0
A0 S0 @2 XOR
0
B0 R1 @2 portes
Additionneur A1 S1 @2 portes + 1 XOR
à 4 étages B1
1
R2 @4 portes
A2 S2 @4 portes + 1 XOR
2
B2 R3 @6 portes
A3 S3 @6 portes + 1 XOR
B3 3
R4 @8 portes
45
Additionneur à retenue anticipée
Fonction génération Gi = Ai Bi doit générer une retenue
Ri+1 = Ai Bi + Ai Ri + Bi Ri
= Ai Bi + Ri (Ai + Bi)
= Gi + Ri Pi
M2 ISIC Fondements des systèmes numériques 91
2008-2009 D. Etiemble
R1 = G0 + P0 R0
R2 = G1 + P1 R1 = G1 + P1 G0 + P1 P0 R0
R3 = G2 + P2 R2 = G2 + P2 G1 + P2 P1 G0 + P2 P1 P0 R0
R4 = G3 + P3 R3 = G3 + P3 G2 + P3 P2 G1 + P3 P2 P1 G0
+ P3 P2 P1 P0 R0
46
Additionneur à retenue anticipée
Ai
Bi Pi @ 1 retard XOR
Sorties
Ri Si @ 2 retards XOR Génération
Propagation
Gi @ 1 retard ET
Complexité croissante
R0 R1 R0 R0
P0 P P0
G0 P1 0 P1
P2 P2
P3
G
R0 P1 0 G0
P P2 P1
P2
P1 0 R2 G 1 R3 P 3
G P2 G1
P1 0 P2
G2 P3
G1 G2 R4
P3
M2 ISIC Fondements des systèmes numériques G3 93
2008-2009 D. Etiemble
47
Additionneur à retenue anticipée : hiérarchisation
4 4 4 4 4 4 4 4
P G R3 P G R2 P G P G R1
R16 3 3 2 2 1 1 0 0
R0
R4 Unité de calcul de retenue anticipée R0
P3-0 G3-0
R4
R8 1
Add. 4 bits Add. “1”
[7:4]
1 0 1 0 1 0 1 0 R4 Add. 4 bits R0
Mux 2:1 [3:0]
S7 S6 S5 S4 S3 S2 S1 S0
R8
Calcul des sommes de poids fort en parallèle
-Une addition avec retenue entrée = 0
-Une addition avec retenue entrée = 1
M2 ISIC Fondements des systèmes numériques 96
2008-2009 D. Etiemble
48
Additionneur à saut de retenue
• Saut de retenue par groupe de n bits
– Calcul de la propagation sur n bits
Saut constant
Saut variable
49
Puissance et délai (additionneurs) FA
Energie
(pJ) Délai (ns)
Ripple Carry 117 54.27
Constant Width Carry Skip 109 28.38
Variable Width Carry Skip 126 21.84
Carry Lookahead 171 17.13
Carry Select 216 19.56
Conditional Sum 304 20.05
En ne choisissant qu’
qu’un critè
critère :
– Puissance – utiliser “constant width carry skip”
skip”
– Délai – utiliser “carry look-
look-ahead”
ahead”
Additionneur BCD
A3 B3 A2 B2 A1 B1 A0 B0
Rs Re Rs Re Rs Re Rs Re R0
S S S S
A1 11XX
A2 1X1X
Rs Re Rs Re 0
S S
Rs S3 S2 S1 S0
Ajouter 0110 à la somme quand elle dépasse 9 (11XX or 1X1X)
M2 ISIC Fondements des systèmes numériques 100
2008-2009 D. Etiemble
50