BCI - TPSP - Électronique Numérique Intégrée

publicité
BCI - TPSP - Électronique Numérique Intégrée
Jean-Luc Danger
Sylvain Guilley
Philippe Matherat
Yves Mathieu
Lirida Naviner
Alexis Polti
Jean Provost
26 septembre 2005
Résumé
Polycopié des cours du module ENI (Électronique Numérique Intégrée) de Telecom Paris.
Le polycopié est disponible au format PDF à l’adresse suivante :
http ://www.comelec.enst.fr/tpsp/eni/poly/eni.pdf
L’accès est libre depuis l’ENST ou Eurécom.
Les corrigés des TD sont accessibles à l’adresse suivante :
http ://www.comelec.enst.fr/tpsp/eni/poly_corr/
Cours 1A
Cours 2A
Intitulé
L1
L1
Traitement matériel de l’information (chapitre 1 page 21)
LG2
LG2
Fonctions de base, bibliothèque (chapitre 2 page 35)
LG3
LG3
Opérateurs arithmétiques (chapitre 3 page 49)
TD1
TD1
Fonctions de base : applications (chapitre 10 page 167)
TP9
TP3
Combinatoire dans CLP
L1 SC
L4
Du Silicium aux transistors (chapitre 4 page 59)
L4
L5
Du Transistor à la logique complémentaire (chapitre 5 page 83)
TD2
TD2
Analyse et synthèse de portes logiques (chapitre 12 page 173)
L5
L6
Performances de la logique complémentaire CMOS (chapitre 6 page 99)
TD3
TD3
Temps de propagation, surface, bibliothèques (chapitre 13 page 177)
TP10
TP4
Caractérisation électrique de portes
LG6
LG7
Logique séquentielle synchrone, bascules (chapitre 7 page 111)
TD4
TD4
Utilisation des bascules (chapitre 14 page 181)
LG7
LG8
Machines à états finis (chapitre 8 page 125)
TD5
TD5
Utilisation et synthèse des machines à états (chapitre 15 page 185)
TP11
LG8
Machines à états dans CLP
LG9
LG9
Processeurs (chapitre 9 page 143)
Processeurs (2) (chapitre 9 page 143)
TP12
TP5
Nano processeur dans CLP
CC
CC
Contrôle de connaissances
2
Table des matières
Table des matières
3
Liste des tableaux
11
Table des figures
15
I
19
Leçons
1 Traitement matériel de l’information
1.1 Du composant au systèmes numériques . . . . . . . . . . . . . . . . . . . . . . . . .
1.2 Signal et Information . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.2.1 Signal électrique et traitement de l’information . . . . . . . . . . . . . . . .
1.2.2 Codage analogique de l’information : l’exemple du signal sonore . . . . . . .
1.2.3 Codage numérique de l’information . . . . . . . . . . . . . . . . . . . . . . .
1.2.4 L’exemple du signal binaire . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.3 Le signal binaire représenté par une grandeur électrique . . . . . . . . . . . . . . .
1.3.1 Comment peut-on générer un signal électrique binaire ? . . . . . . . . . . .
1.3.2 Comment peut-on extraire un symbole binaire d’un signal électrique ? . . .
1.3.3 Comment peut-on créer un opérateur de traitement binaire ? . . . . . . . .
1.4 La technologie micro-électronique . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.4.1 Quelles propriétés des matériaux peut-on exploiter pour créer des transistors ?
1.4.2 Quelles sont les différentes étapes de la fabrication des circuits intégrés ? . .
1.5 Les filières technico-économiques . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.5.1 La recherche d’un optimum de rendement dans l’utilisation de la technologie
1.5.2 Les circuits « universels » tels les microprocesseurs . . . . . . . . . . . . . .
1.5.3 Les circuits spécifiques à une application . . . . . . . . . . . . . . . . . . . .
1.5.4 Les circuits logiques programmables . . . . . . . . . . . . . . . . . . . . . .
1.5.5 Les systèmes intégrés sur puces . . . . . . . . . . . . . . . . . . . . . . . . .
1.6 Bibliographie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
21
21
22
22
24
24
26
27
27
27
29
29
30
31
31
31
32
32
33
33
33
2 Fonctions de base
2.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.2 Variables et fonctions logiques, tables de vérité . . . . . . . . . . .
2.3 Représentations des fonctions logiques . . . . . . . . . . . . . . . .
2.3.1 Formes algébriques . . . . . . . . . . . . . . . . . . . . . . .
2.3.2 Forme disjonctive . . . . . . . . . . . . . . . . . . . . . . . .
2.3.3 Forme conjonctive . . . . . . . . . . . . . . . . . . . . . . .
2.3.4 Équivalence entre la table de vérité et les formes canoniques
2.3.5 Forme canonique disjonctive . . . . . . . . . . . . . . . . . .
2.3.6 Forme canonique conjonctive . . . . . . . . . . . . . . . . .
2.4 Description de méthodes de simplification . . . . . . . . . . . . . .
2.4.1 Utilisation des propriétés de l’algèbre de Boole . . . . . . .
2.4.2 Simplification à partir de la forme algébrique . . . . . . . .
2.4.3 Méthode des tables de Karnaugh . . . . . . . . . . . . . . .
35
35
35
36
36
36
37
37
37
38
38
39
39
40
3
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
4
TABLE DES MATIÈRES
2.4.4 Construction du tableau de Karnaugh . . .
2.4.5 Règles de simplification . . . . . . . . . . .
2.4.6 Fonctions non complètement définies . . . .
2.4.7 Pertinence de la méthode . . . . . . . . . .
Représentation schématique des fonctions logiques
Quelques fonctions combinatoires importantes . . .
2.6.1 Fonctions d’aiguillage : multiplexeurs . . . .
2.6.2 Opérateurs de comparaison . . . . . . . . .
Annexes . . . . . . . . . . . . . . . . . . . . . . . .
2.7.1 Exercice de consolidation . . . . . . . . . .
2.7.2 Bibliographie . . . . . . . . . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
40
41
42
42
43
44
44
44
46
46
48
3 Opérateurs arithmétiques
3.1 Introduction . . . . . . . . . . . . . . . . . . . . . .
3.2 Représentation (codage) des nombres . . . . . . . .
3.2.1 Représentation Simples de Position . . . . .
3.2.2 Conversions entre Bases . . . . . . . . . . .
3.2.3 Représentation en Signe et Valeur Absolue
3.2.4 Représentation en Complément à 2 . . . . .
3.2.5 Autres Codes . . . . . . . . . . . . . . . . .
3.3 Fonctions arithmétiques . . . . . . . . . . . . . . .
3.3.1 Additionneur . . . . . . . . . . . . . . . . .
3.3.2 Soustracteur . . . . . . . . . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
49
49
49
49
50
51
51
52
53
53
55
4 Du silicium aux transistors
4.1 Introduction . . . . . . . . . . . . . . . . . . . . . .
4.1.1 Historique . . . . . . . . . . . . . . . . . . .
4.1.2 Objectifs . . . . . . . . . . . . . . . . . . .
4.1.3 Organisation de la leçon . . . . . . . . . . .
4.2 Circuit élémentaire . . . . . . . . . . . . . . . . . .
4.3 Rappels de physique simplifiée . . . . . . . . . . .
4.3.1 Notion de courant . . . . . . . . . . . . . .
4.3.2 Conducteur, semi-conducteur, dopages . . .
4.3.3 La jonction PN . . . . . . . . . . . . . . . .
4.4 Composants MOS . . . . . . . . . . . . . . . . . .
4.4.1 Première étape : la résistance . . . . . . . .
4.4.2 Seconde étape : la diode . . . . . . . . . . .
4.4.3 Troisième étape : le transistor bipolaire . .
4.5 Le transistor MOS . . . . . . . . . . . . . . . . . .
4.5.1 Le fonctionnement des transistors CMOS .
4.5.2 Connexions des transistors . . . . . . . . .
4.6 Modèle électrique . . . . . . . . . . . . . . . . . . .
4.6.1 Les jonctions . . . . . . . . . . . . . . . . .
4.6.2 Formation du canal : la capacité MOS CGB
4.6.3 Le courant drain-source (VGB > VTN ) . . .
4.6.4 Le condensateur élémentaire . . . . . . . . .
4.6.5 Calcul de IDS . . . . . . . . . . . . . . . . .
4.6.6 Le courant IDS en résumé . . . . . . . . . .
4.6.7 La tension de seuil . . . . . . . . . . . . . .
4.6.8 Conclusion sur le courant IDS . . . . . . . .
4.6.9 Modélisation des capacités . . . . . . . . . .
4.6.10 Schéma du modèle . . . . . . . . . . . . . .
4.7 Caractéristiques de la technologie CMOS . . . . .
4.7.1 Intégrabilité . . . . . . . . . . . . . . . . . .
4.7.2 Diminution des géométries “scaling down” .
4.8 Bibliographie . . . . . . . . . . . . . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
59
59
59
59
59
60
61
61
62
65
66
66
67
67
68
68
70
70
70
70
72
72
73
76
76
78
78
79
80
80
80
81
2.5
2.6
2.7
TABLE DES MATIÈRES
5 Du transistor à la logique CMOS
5.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5.1.1 Objectifs . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5.1.2 Présentation . . . . . . . . . . . . . . . . . . . . . . . . . . .
5.2 Modèle en interrupteur . . . . . . . . . . . . . . . . . . . . . . . . . .
5.2.1 Modélisation . . . . . . . . . . . . . . . . . . . . . . . . . . .
5.2.2 Quelques montages simples . . . . . . . . . . . . . . . . . . .
5.3 La logique complémentaire CMOS . . . . . . . . . . . . . . . . . . .
5.3.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . .
5.3.2 Notion de complémentarité . . . . . . . . . . . . . . . . . . .
5.3.3 Porte complexe . . . . . . . . . . . . . . . . . . . . . . . . . .
5.3.4 Exemple d’analyse d’une porte logique . . . . . . . . . . . . .
5.3.5 Exemples de synthèse d’une porte logique . . . . . . . . . . .
5.4 Vitesse de traitement d’un circuit intégré numérique CMOS . . . . .
5.4.1 Notion de chemin critique . . . . . . . . . . . . . . . . . . . .
5.4.2 Notion de temps de propagation . . . . . . . . . . . . . . . .
5.4.3 Modèle du temps de propagation d’une porte CMOS . . . . .
5.4.4 Temps de propagation dans un assemblage de portes logiques.
5.5 Rappels du modèle électrique . . . . . . . . . . . . . . . . . . . . . .
5.5.1 Connexions et tensions appliquées . . . . . . . . . . . . . . .
5.5.2 Rappels du modèle électrique et des symboles . . . . . . . . .
5.6 Bibliographie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
83
83
83
83
83
83
84
86
86
86
88
90
91
93
93
93
94
95
96
96
96
97
6 Performances de la logique complémentaire CMOS
6.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
6.2 Coût de production d’un circuit intégré numérique CMOS . . . . . . . . . . . . . .
6.3 Estimation de la vitesse de la logique CMOS . . . . . . . . . . . . . . . . . . . . .
6.3.1 Expression du temps de propagation d’un inverseur CMOS . . . . . . . . .
6.3.2 Modèle du temps de propagation de l’inverseur CMOS . . . . . . . . . . . .
6.3.3 Schéma synthétique de l’inverseur . . . . . . . . . . . . . . . . . . . . . . .
6.3.4 Schéma synthétique d’une porte CMOS quelconque . . . . . . . . . . . . . .
6.3.5 Notion de bibliothèque de cellules précaractérisées . . . . . . . . . . . . . .
6.3.6 Influence du dimensionnement des transistors sur les caractéristiques de l’inverseur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
6.4 Consommation des circuits intégrés CMOS . . . . . . . . . . . . . . . . . . . . . .
6.4.1 Consommation d’une porte CMOS . . . . . . . . . . . . . . . . . . . . . . .
6.4.2 Extrapolation à un circuit intégré CMOS . . . . . . . . . . . . . . . . . . .
6.5 Évolution technologique et conclusions . . . . . . . . . . . . . . . . . . . . . . . . .
105
106
106
107
108
7 Logique séquentielle synchrone, bascules
7.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
7.1.1 Comment reconnaître la logique séquentielle ? . . . . . . . . . . . . .
7.1.2 Comment construire la logique séquentielle ? . . . . . . . . . . . . . .
7.2 Les bascules D . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
7.2.1 Le point mémoire élémentaire . . . . . . . . . . . . . . . . . . . . . .
7.2.2 structure avec 2 inverseurs tête bêche : bascule RS et RAM statique
7.2.3 De la bascule RS à la bascule D sur état : le latch . . . . . . . . . .
7.2.4 La bascule D sur front ou Flip-Flop . . . . . . . . . . . . . . . . . .
7.2.5 Conditions d’utilisation de la bascule . . . . . . . . . . . . . . . . . .
7.3 Exemples fondamentaux de la logique séquentielle synchrone . . . . . . . .
7.3.1 Le mécanisme de décalage avec un registre à décalage . . . . . . . .
7.3.2 Le mécanisme de comptage . . . . . . . . . . . . . . . . . . . . . . .
7.3.3 Principe de sérialisation des calculs . . . . . . . . . . . . . . . . . . .
7.3.4 Principe d’accélération des calculs par la mise en pipeline . . . . . .
111
111
111
112
114
114
115
116
117
118
119
119
120
121
122
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
99
99
99
100
100
102
103
103
104
6
TABLE DES MATIÈRES
8 Machines à états
125
8.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 125
8.2 Le graphe d’états . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 126
8.2.1 Comment représenter graphiquement le comportement d’une machine à états ?126
8.2.2 Comment vérifier cette représentation à l’aide de quelques règles simples ? . 129
8.3 La composition d’une machine à états . . . . . . . . . . . . . . . . . . . . . . . . . 131
8.3.1 Le calcul de l’état futur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131
8.3.2 Le registre d’état . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131
8.3.3 Le calcul des sorties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132
8.4 Le codage des états . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 133
8.4.1 Comment représenter les différents états sous forme de mots binaires ? . . . 133
8.4.2 En quoi le codage choisi influe-t-il sur la taille de la machine à états ? . . . 134
8.4.3 Quelles méthodes permettent de choisir le meilleur codage possible ? . . . . 135
8.5 La conception d’une machine à états . . . . . . . . . . . . . . . . . . . . . . . . . . 136
8.5.1 machine à états principale . . . . . . . . . . . . . . . . . . . . . . . . . . . . 137
8.5.2 Machine à états du minuteur . . . . . . . . . . . . . . . . . . . . . . . . . . 139
9 Des machines à états aux processeurs
9.1 Introduction . . . . . . . . . . . . . . . . . . . . . . .
9.1.1 Objectifs . . . . . . . . . . . . . . . . . . . .
9.1.2 Introduction . . . . . . . . . . . . . . . . . .
9.1.3 Instructions et données . . . . . . . . . . . .
9.1.4 de la feuille à l’électronique . . . . . . . . . .
9.1.5 Interlude rappel : fonctionnement de la RAM
9.2 Étape 1 : automate linéaire basique . . . . . . . . . .
9.2.1 Organisation de la mémoire . . . . . . . . . .
9.2.2 Les instructions . . . . . . . . . . . . . . . .
9.2.3 Fonctionnement de l’automate . . . . . . . .
9.3 Étape 2 : automate avec accumulateur . . . . . . . .
9.3.1 Chaînage des opérations . . . . . . . . . . . .
9.3.2 L’accumulateur . . . . . . . . . . . . . . . . .
9.4 Étape 3 : automate avec accumulateur et indirection
9.4.1 Indirection . . . . . . . . . . . . . . . . . . .
9.5 Étape 4 : processeur RISC . . . . . . . . . . . . . . .
9.5.1 Flags . . . . . . . . . . . . . . . . . . . . . . .
9.5.2 Sauts . . . . . . . . . . . . . . . . . . . . . .
9.6 Étape 5 : optimisations . . . . . . . . . . . . . . . .
9.7 Réponse 1 . . . . . . . . . . . . . . . . . . . . . . . .
9.7.1 Les adresses . . . . . . . . . . . . . . . . . . .
9.7.2 Les données . . . . . . . . . . . . . . . . . . .
9.8 Réponse 2 . . . . . . . . . . . . . . . . . . . . . . . .
9.9 Réponses 3 et 4 . . . . . . . . . . . . . . . . . . . . .
9.9.1 Les adresses . . . . . . . . . . . . . . . . . . .
9.9.2 Les données . . . . . . . . . . . . . . . . . . .
9.9.3 L’accumulateur . . . . . . . . . . . . . . . . .
9.9.4 Bilan . . . . . . . . . . . . . . . . . . . . . . .
9.9.5 Performances . . . . . . . . . . . . . . . . . .
9.10 Réponse 5 . . . . . . . . . . . . . . . . . . . . . . . .
9.10.1 Les adresses . . . . . . . . . . . . . . . . . . .
9.11 Réponse 6 . . . . . . . . . . . . . . . . . . . . . . . .
9.11.1 Flags . . . . . . . . . . . . . . . . . . . . . . .
9.11.2 ADDC / SUBC . . . . . . . . . . . . . . . . .
9.12 Réponse 7 . . . . . . . . . . . . . . . . . . . . . . . .
9.13 Réponse 8 . . . . . . . . . . . . . . . . . . . . . . . .
9.14 Réponse 9 . . . . . . . . . . . . . . . . . . . . . . . .
9.14.1 ROL / ROR . . . . . . . . . . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
143
143
143
143
144
144
145
146
146
147
147
148
148
148
149
149
150
150
151
152
152
152
154
156
156
157
157
157
158
158
159
159
160
160
160
160
162
162
162
TABLE DES MATIÈRES
7
9.14.2 Sortie BZ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
II
TD
162
165
10 TD - Fonctions de base
10.1 Simplification algébrique . . . . . . . . .
10.2 Simplification par tableau de Karnaugh
10.3 Fonction F . . . . . . . . . . . . . . . .
10.4 Fonction G . . . . . . . . . . . . . . . .
10.5 Décodage . . . . . . . . . . . . . . . . .
10.6 Génération de fonctions . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
167
167
167
167
167
167
169
11 TD - Opérateurs arithmétiques
11.1 Représentation en complément à 2
11.2 Addition en complément à 2 . . . .
11.3 Soustraction et comparaison . . . .
11.4 Multiplication . . . . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
171
171
171
171
172
12 TD - Analyse et synthèse en portes logiques
12.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
12.2 Analyse d’une porte complexe . . . . . . . . . . . . . . . . . . . . .
12.2.1 Analyse de la fonction à l’aide du réseau de transistors P .
12.2.2 Analyse de la fonction à l’aide du réseau de transistors N .
12.2.3 L’implémentation est elle unique ? . . . . . . . . . . . . . .
12.3 Analyse de portes présentant des dysfonctionnements . . . . . . . .
12.3.1 Quelle est la "bonne" ? . . . . . . . . . . . . . . . . . . . . .
12.3.2 Causes de dysfonctionnements . . . . . . . . . . . . . . . .
12.4 Synthèse de la fonction Majorité . . . . . . . . . . . . . . . . . . .
12.4.1 Construction CMOS de la fonction Majorité complémentée
12.4.2 Optimisation de la fonction Majorité complémentée . . . .
12.5 Synthèse d’un Additionneur 1 bit . . . . . . . . . . . . . . . . . . .
12.5.1 Construction de la retenue Ri+1 en CMOS . . . . . . . . .
12.5.2 Construction de la sortie Si en CMOS . . . . . . . . . . . .
12.5.3 Évaluation de l’aire de la surface d’un additionneur . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
173
173
173
173
174
174
174
174
174
174
174
174
175
175
175
175
13 TD - Performances de la logique complémentaire CMOS
13.1 Objectifs du TD . . . . . . . . . . . . . . . . . . . . . . . .
13.2 Temps de propagation d’une fonction décodeur . . . . . . .
13.3 Amélioration du décodeur par amplification logique . . . . .
13.4 Généralisation du principe de l’amplification logique . . . .
13.5 Annexe : Bibliothèque de cellules précaractérisées . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
177
177
177
178
178
179
. . . . . . .
. . . . . . .
de pipeline
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
181
181
181
181
182
182
182
182
183
184
184
184
.
.
.
.
.
.
.
.
.
.
.
.
14 TD - Utilisation des bascules
14.1 Mise en pipeline d’une fonction combinatoire . . . . . .
14.1.1 Analyse de la fonction . . . . . . . . . . . . . . .
14.1.2 Augmentation de la fréquence de fonctionnement
14.1.3 Optimisation en performances . . . . . . . . . . .
14.1.4 Compromis performances/surface . . . . . . . . .
14.2 Changement de format série ↔ Parallèle . . . . . . . .
14.2.1 Conversion série → parallèle . . . . . . . . . . . .
14.2.2 Conversion parallèle → série . . . . . . . . . . . .
14.3 Calcul de parité. . . . . . . . . . . . . . . . . . . . . . .
14.3.1 Calcul de parité sur un mot parallèle . . . . . . .
14.3.2 Calcul de parité sur un mot série . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. . . . . . . .
. . . . . . . .
avec un étage
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
8
TABLE DES MATIÈRES
15 TD - Synthèse et utilisation des machines à états
15.1 Qu’est-ce qu’un bus de communication ? . . . . . .
15.2 Le contrôleur de bus simple. . . . . . . . . . . . . .
15.2.1 Le graphe d’états. . . . . . . . . . . . . . .
15.2.2 Une optimisation possible. . . . . . . . . . .
15.2.3 Réalisation. . . . . . . . . . . . . . . . . . .
15.3 Le problème de l’équité. . . . . . . . . . . . . . . .
15.3.1 Le contrôleur équitable. . . . . . . . . . . .
15.3.2 L’arbitre équitable. . . . . . . . . . . . . . .
III
synchrones
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
TP
191
16 TP - Combinatoire dans un CLP
17 TP - Caractérisation du transistor MOS
17.1 Sommaire . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
17.2 Objectifs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
17.3 Caractérisation d’un transistor NMOS . . . . . . . . . . . . . . . .
17.3.1 Transconductance : Ids = f (Vgs ) . . . . . . . . . . . . . . .
17.3.2 Caractéristique de sortie : Ids = f (Vds ) . . . . . . . . . . . .
17.3.3 Variation de la tension de seuil : VT = f (Vbs ) . . . . . . . .
17.3.4 Étude des régimes de fonctionnement des transistors NMOS
La fonction de transfert d’un inverseur CMOS : Vs = f (Ve )
17.4 Annexes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
17.4.1 Maquette experimentale . . . . . . . . . . . . . . . . . . . .
17.4.2 Utilisation sommaire de l’oscilloscope . . . . . . . . . . . .
17.4.3 Modèles statique et grand signal . . . . . . . . . . . . . . .
17.4.4 Modèles de la tension de seuil des transistors MOS . . . . .
185
185
186
186
187
189
189
189
190
193
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
et PMOS
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
195
195
195
195
195
196
196
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
197
198
198
200
200
200
18 TP - Caractérisation électrique de portes
203
18.1 Sommaire . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 203
18.2 Objectifs du TP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 203
18.3 Caractérisation d’un inverseur CMOS . . . . . . . . . . . . . . . . . . . . . . . . . 203
18.3.1 Étude des régimes de fonctionnement des transistors NMOS et PMOS : la
fonction de transfert d’un inverseur CMOS . . . . . . . . . . . . . . . . . . 203
18.4 Extraction des capacités d’entrée et de sortie de l’inverseur . . . . . . . . . . . . . 204
18.5 Détermination des temps de propagation de l’inverseur . . . . . . . . . . . . . . . . 205
18.6 Annexes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 206
18.6.1 Maquette experimentale . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 206
18.6.2 Utilisation sommaire de l’oscilloscope . . . . . . . . . . . . . . . . . . . . . 208
18.6.3 Modèles statique et grand signal . . . . . . . . . . . . . . . . . . . . . . . . 208
18.6.4 Rappels sur le modèle de temps de propagation de l’inverseur CMOS . . . . 208
19 TP - Modélisation et caractérisation de transistors et d’opérateurs logiques
CMOS
211
19.1 Sommaire . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 211
19.2 Objectifs du TP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 211
19.3 Caractérisation d’un transistor NMOS . . . . . . . . . . . . . . . . . . . . . . . . . 211
19.3.1 Transconductance : Ids = f (Vgs ) . . . . . . . . . . . . . . . . . . . . . . . . 211
19.4 Caractérisation d’un inverseur CMOS . . . . . . . . . . . . . . . . . . . . . . . . . 212
19.4.1 Étude des régimes de fonctionnement des transistors NMOS et PMOS : la
fonction de transfert d’un inverseur CMOS . . . . . . . . . . . . . . . . . . 212
19.5 Extraction des capacités d’entrée et de sortie de l’inverseur . . . . . . . . . . . . . 213
19.6 Détermination des temps de propagation de l’inverseur . . . . . . . . . . . . . . . . 214
19.7 Annexes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 215
TABLE DES MATIÈRES
19.7.1
19.7.2
19.7.3
19.7.4
Maquette experimentale . . . . . . . . . . . . .
Utilisation sommaire de l’oscilloscope . . . . .
Modèles statique et grand signal . . . . . . . .
Rappels sur le modèle de temps de propagation
9
. . . . . . . .
. . . . . . . .
. . . . . . . .
de l’inverseur
. . . .
. . . .
. . . .
CMOS
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
215
215
216
218
20 TP - Machines à états dans un CLP
219
21 TP - Nanoprocesseur
221
IV
223
Annexes
22 Rappels de physiques
22.1 Courant, conductivité, résistivité, résistance . . . . . .
22.1.1 Notion de courant . . . . . . . . . . . . . . . .
22.1.2 Définitions . . . . . . . . . . . . . . . . . . . .
22.2 Champ électrique et potentiel . . . . . . . . . . . . . .
22.3 Conducteur, isolant, semi-conducteur . . . . . . . . . .
22.3.1 Conducteur . . . . . . . . . . . . . . . . . . . .
22.3.2 Isolant . . . . . . . . . . . . . . . . . . . . . . .
22.3.3 Semi-conducteur pur . . . . . . . . . . . . . . .
22.3.4 Semi-conducteur dopé N . . . . . . . . . . . . .
22.3.5 Semi-conducteur dopé P . . . . . . . . . . . . .
22.4 Introduction aux composants actifs à semi-conducteur
22.4.1 La jonction PN . . . . . . . . . . . . . . . . . .
22.5 Bibliographie . . . . . . . . . . . . . . . . . . . . . . .
Index
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
225
225
225
225
225
226
226
226
227
227
228
229
229
232
233
10
TABLE DES MATIÈRES
Liste des tableaux
2.1
2.2
2.3
2.4
2.5
2.6
2.7
2.8
2.9
2.10
2.11
2.12
2.13
2.14
2.15
2.16
2.17
2.18
2.19
2.20
Table de vérité d’une fonction de 3 variables. . . . . . . . . . .
Table de vérité d’une fonction partiellement définie. . . . . . . .
Opérateur NON. . . . . . . . . . . . . . . . . . . . . . . . . . .
Opérateur OU. . . . . . . . . . . . . . . . . . . . . . . . . . . .
Opérateur ET. . . . . . . . . . . . . . . . . . . . . . . . . . . .
Table de vérité de la fonction H : états associés et mintermes. .
Table de vérité de la fonction H : états associés et maxtermes.
Table de vérité de la fonction F : états associés et mintermes. .
Table de Karnaugh de la fonction F . . . . . . . . . . . . . . . .
Correspondance des mintermes. . . . . . . . . . . . . . . . . . .
Adjacence : a = 1 . . . . . . . . . . . . . . . . . . . . . . . . . .
Adjacence : c = 1 . . . . . . . . . . . . . . . . . . . . . . . . . .
Table de Karnaugh . . . . . . . . . . . . . . . . . . . . . . . . .
Premier pavage . . . . . . . . . . . . . . . . . . . . . . . . . . .
Deuxième pavage . . . . . . . . . . . . . . . . . . . . . . . . . .
Table de Karnaugh . . . . . . . . . . . . . . . . . . . . . . . . .
Premier pavage . . . . . . . . . . . . . . . . . . . . . . . . . . .
Deuxième pavage . . . . . . . . . . . . . . . . . . . . . . . . . .
Table de vérité et symbole des opérateurs XNOR . . . . . . . .
Table de vérité et symbole des opérateurs XOR . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
36
36
37
37
37
38
38
41
41
41
41
41
42
42
42
43
43
43
46
46
3.1
3.2
3.3
3.4
3.5
3.6
3.7
3.8
Exemple conversion binaire-décimal . . . .
Exemple de différents codes . . . . . . . .
Table de vérité de l’additionneur complet
Table si . . . . . . . . . . . . . . . . . . .
Table ri+1 . . . . . . . . . . . . . . . . . .
Table de vérité du soustracteur complet .
Table di . . . . . . . . . . . . . . . . . . .
Table ri+1 . . . . . . . . . . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
50
53
54
55
55
57
57
57
4.1
4.2
4.3
4.4
4.5
4.6
4.7
4.8
4.9
4.10
4.11
4.12
4.13
4.14
paramètres communs . . . . . . . . . . . . . . . . . . . . . .
paramètres du conducteur . . . . . . . . . . . . . . . . . . .
paramètres du Silicium pur . . . . . . . . . . . . . . . . . .
paramètres du Silicium dopé N . . . . . . . . . . . . . . . .
paramètres du Silicium dopé P . . . . . . . . . . . . . . . .
paramètres d’une jonction PN en technologie CMOS 0, 5µm
Connexions des transistors CMOS . . . . . . . . . . . . . .
La capacité MOS CGB . . . . . . . . . . . . . . . . . . . . .
Régimes de la capacité MOS . . . . . . . . . . . . . . . . .
Transistor NMOS en régime quadratique . . . . . . . . . . .
Transistor NMOS au pincement (point de saturation) . . .
Transistor NMOS en régime saturé . . . . . . . . . . . . . .
Courant et résistance équivalente du NMOS . . . . . . . . .
Courant et résistance équivalente du PMOS . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
63
63
63
64
65
66
70
71
72
74
75
76
77
77
11
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
12
LISTE DES TABLEAUX
4.15 Capacités des jonctions du NMOS . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.16 Capacités des jonctions du NMOS . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.17 Bilan des capacités de grille du NMOS . . . . . . . . . . . . . . . . . . . . . . . . .
79
79
79
5.1
5.2
5.3
5.4
5.5
5.6
5.7
5.8
5.9
5.10
5.11
5.12
5.13
Modèle en interrupteur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
FAB = a · b . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
FAB = a · b = a + b . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
FAB = a · b + a · b + a · b = a + b . . . . . . . . . . . . . . . . . . . . . . . . . . . .
FAB = a · b + a · b + a · b = a · b . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Charge/décharge d’une capacité par un NMOS . . . . . . . . . . . . . . . . . . . .
Analyse d’une porte logique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Analyse d’une porte logique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
schémas en transistors d’une porte NAND2 et d’une porte NOR2 . . . . . . . . . .
synthèse de fonctions non complémentées à l’aide de portes en logique complémentaire
connexions des transistors CMOS . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Courant et résistance équivalente du NMOS . . . . . . . . . . . . . . . . . . . . . .
Courant et résistance équivalente du PMOS . . . . . . . . . . . . . . . . . . . . . .
84
85
85
85
85
89
90
91
92
92
96
97
98
6.1
6.2
Tensions aux bornes de transistors pour les instants 0+ et tpd . . . . . . . . . . . . .
Une bibliothèque précaractérisée. . . . . . . . . . . . . . . . . . . . . . . . . . . . .
100
105
7.1
Table de vérité de la bascule D . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
118
8.1
8.2
8.3
8.4
8.5
8.6
Exemples de codage des états . . . . . . . . . .
Spécification de l’interface . . . . . . . . . . . .
Codage des états . . . . . . . . . . . . . . . . .
Table d’évolution . . . . . . . . . . . . . . . . .
spécification de l’interface . . . . . . . . . . . .
Spécification de la programmation du minuteur
9.1
9.2
9.3
9.4
Nouveau jeu d’instructions .
Organisation de la mémoire,
Organisation de la mémoire,
Nouveau jeu d’instructions .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
134
137
137
138
139
140
. . . . . . . . . . . . . . . . . .
avant exécution du programme
après exécution du programme
. . . . . . . . . . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
149
150
151
153
10.1 Table de vérité de la fonction F . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
10.2 Table de vérité de la fonction G. . . . . . . . . . . . . . . . . . . . . . . . . . . . .
10.3 Table de vérité de la fonction de conversion BCD → « 2 parmi 5 ». . . . . . . . . .
168
168
169
13.1 Une bibliothèque précaractérisée simple. . . . . . . . . . . . . . . . . . . . . . . . .
179
14.1
14.2
14.3
14.4
14.5
.
.
.
.
.
182
182
183
183
184
15.1 Spécification du contrôleur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
188
17.1
17.2
17.3
17.4
17.5
17.6
17.7
17.8
196
196
197
197
198
198
199
199
Surface des éléments . . . .
Spécifications de D-EN . . .
Spécifications de SER-PAR
Spécifications de D-EN-LD
Spécifications de PAR-SER
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Schéma du montage 1 . . . . . . . . . . . . . . .
Schéma du montage 2 . . . . . . . . . . . . . . .
Schéma du montage 3 . . . . . . . . . . . . . . .
Conditions de mesures . . . . . . . . . . . . . . .
Schéma du montage 4 et graphe de la fonction de
Disposition des transistors sur la maquette . . . .
Connexion des générateurs de tension continue .
Câblage des différents éléments . . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. . . . . .
. . . . . .
. . . . . .
. . . . . .
transfert
. . . . . .
. . . . . .
. . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
LISTE DES TABLEAUX
13
17.9 Équations des transistors MOS (voir schéma figure 17.2 page 200) . . . . . . . . .
201
18.1
18.2
18.3
18.4
18.5
18.6
Schéma du montage 2 . . . . . . . . . . . . . . . . . . . . . . . . .
Schéma du montage 3 . . . . . . . . . . . . . . . . . . . . . . . . .
Disposition des transistors sur la maquette . . . . . . . . . . . . . .
Connexion des générateurs de tension continue . . . . . . . . . . .
Câblage des différents éléments . . . . . . . . . . . . . . . . . . . .
Équations des transistors MOS (voir schéma figure 18.3 page 208)
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
204
205
206
207
207
209
19.1
19.2
19.3
19.4
19.5
19.6
19.7
Schéma du montage 1 . . . . . . . . . . . . . . . . . . . . . . . . .
Schéma du montage 2 . . . . . . . . . . . . . . . . . . . . . . . . .
Schéma du montage 3 . . . . . . . . . . . . . . . . . . . . . . . . .
Disposition des transistors sur la maquette . . . . . . . . . . . . . .
Connexion des générateurs de tension continue . . . . . . . . . . .
Câblage des différents éléments . . . . . . . . . . . . . . . . . . . .
Équations des transistors MOS (voir schéma figure 19.3 page 217)
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
212
213
214
215
216
216
217
22.1
22.2
22.3
22.4
22.5
22.6
22.7
En résumé, pour un métal conducteur (T = 300˚K) . . . . . . . . . . . .
En résumé, pour le silicium intrinsèque (T = 300˚K, θ = 27˚C) . . . . .
En résumé, pour le silicium dopé N (T = 300˚K, θ = 27˚C) . . . . . . .
En résumé, pour le silicium dopé P (T = 300˚K, θ = 27˚C) . . . . . . .
la jonction PN : modèle du courant (direct et inverse) . . . . . . . . . . .
la jonction PN en inverse (VP N ≤ 0V ) : modèle de courant et de capacité
la jonction PN en inverse (VP N ≤ 0V ) . . . . . . . . . . . . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
227
228
229
230
230
231
232
14
LISTE DES TABLEAUX
Table des figures
1.1
1.2
1.3
1.4
1.5
1.6
1.7
1.8
1.12
1.13
1.14
1.15
1.16
1.17
Complexité des niveaux hiérarchiques. . . . . . . . . . . . . . . . . . . . . . . . . .
Complexité des niveaux hiérarchiques. . . . . . . . . . . . . . . . . . . . . . . . . .
Le signal électrique support de l’information... . . . . . . . . . . . . . . . . . . . . .
Le signal mécanique support de l’information... . . . . . . . . . . . . . . . . . . . .
Claude Shannon . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
L’audition moyenne d’un être humain . . . . . . . . . . . . . . . . . . . . . . . . .
Un signal multivalué codant une valeur numérique . . . . . . . . . . . . . . . . . .
Une liaison à la fréquence 3 · Fm est équivalente à 3 liaisons opérants à la fréquence
Fm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Un signal binaire : signal électrique et interprétation. . . . . . . . . . . . . . . . . .
Un signal binaire distordu, atténué et bruité, mais reconstruit. . . . . . . . . . . .
Génération d’un signal binaire avec une source de tension, une résistance et un
interrupteur. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Le transistor interrupteur. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Fonctions de transfert de l’inverseur. . . . . . . . . . . . . . . . . . . . . . . . . . .
Fonction NOR2 : schéma et table de vérité . . . . . . . . . . . . . . . . . . . . . . .
Fonction mémorisation : schéma et fonctions de transfert . . . . . . . . . . . . . . .
Vue en coupe d’un transistor NMOS . . . . . . . . . . . . . . . . . . . . . . . . . .
Encapsulation d’un circuit intégré dans un boîtier. . . . . . . . . . . . . . . . . . .
28
28
28
29
29
30
32
2.1
2.2
2.3
2.4
2.5
2.6
2.7
2.8
Symboles des portes élémentaires. . . . . . . . . . . . . . . . . . . . . . .
Un exemple de schéma. . . . . . . . . . . . . . . . . . . . . . . . . . . .
Multiplexeur à deux entrées (Mux2). . . . . . . . . . . . . . . . . . . . .
Schéma interne d’un multiplexeur à 4 entrées avec entrée de validation.
Reformulation du multiplexeur à 4 entrées. . . . . . . . . . . . . . . . .
Test d’égalité de deux mots de 4 bits. . . . . . . . . . . . . . . . . . . .
Afficheur 7 segments. Un segment = une diode électro-luminescente. . .
Tableau de Karnaugh de a = F (A, B, C, D). . . . . . . . . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
43
44
44
45
45
46
47
47
3.1
3.2
3.3
3.4
3.5
Équations algébriques, table de vérité et schéma d’un demi-additionneur.
Exemple de schéma pour l’additionneur complet. . . . . . . . . . . . . . .
Additionneur à retenue série. . . . . . . . . . . . . . . . . . . . . . . . . .
Equations algébriques, table de vérité et schéma d’un demi-soustracteur. .
Schéma interne du soustracteur complet. . . . . . . . . . . . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
54
55
56
56
57
4.1
4.2
4.3
4.4
4.5
4.6
4.7
4.8
4.9
Circuit élémentaire inverseur . . . . . . .
Résistance d’un tube . . . . . . . . . . . .
Résistance en technologie MOS . . . . . .
Diodes en technologie MOS . . . . . . . .
Transistor bipolaire en technologie MOS .
le transistor MOS . . . . . . . . . . . . . .
Coupe simplifiée d’une technologie CMOS
Jonctions DB et SB isolées . . . . . . . .
Condensateur élémentaire cgb . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
60
62
67
67
67
68
69
70
72
1.9
1.10
1.11
15
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
21
22
22
23
23
24
25
26
27
27
16
TABLE DES FIGURES
4.10 VT = VT 0 + f (VSB ) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.11 Schéma du modèle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
78
80
5.1
5.2
5.3
5.4
5.5
5.6
5.7
5.8
5.9
5.10
5.11
Circuit Résistance Transistor Logique . . . . . . . . . . . . .
l’inverseur CMOS . . . . . . . . . . . . . . . . . . . . . . . . .
Régime statique : les 2 états statiques de l’inverseur . . . . .
l’inverseur CMOS et sa charge capacitive . . . . . . . . . . .
schéma de principe de la logique complétaire . . . . . . . . .
schéma du fonctionnement de la logique complémentaire . . .
Quelques chemins de propagation... . . . . . . . . . . . . . . .
Temps de propagation dans une porte . . . . . . . . . . . . .
Capacité d’entrée de l’entrée A d’une porte NAND . . . . . .
Charge et décharge de la capacité d’entrée CEA d’un NAND
Temps de propagation dans un assemblage de portes . . . . .
.
.
.
.
.
.
.
.
.
.
.
86
86
87
87
88
88
93
94
94
95
95
6.1
6.2
6.3
6.4
Étude de cas de l’inverseur CMOS. . . . . . . . . . . .
Simulation électrique de l’inverseur CMOS. . . . . . .
Conditions de mesures des transitions des signaux. . .
Évolution du courant drain-source du transistor NMOS
dante. . . . . . . . . . . . . . . . . . . . . . . . . . . .
Schéma synthétique de l’inverseur CMOS. . . . . . . .
Deux inverseurs en série. . . . . . . . . . . . . . . . . .
Schéma synthétique d’une porte NAND. . . . . . . . .
Dissipation de l’énergie dans une porte CMOS. . . . .
. . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . .
durant la transition descen. . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . .
100
101
101
6.5
6.6
6.7
6.8
7.1
7.2
7.3
7.4
7.5
7.6
7.7
7.8
7.9
7.10
7.11
7.12
7.13
7.14
7.15
7.16
7.17
7.18
7.19
7.20
7.21
7.22
7.23
7.24
7.25
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Chronogramme d’un circuit combinatoire . . . . . . . . . . . . . . . . . .
Chronogramme d’un circuit séquentiel . . . . . . . . . . . . . . . . . . . .
Chronogramme avec les variables internes . . . . . . . . . . . . . . . . . .
structure de base d’un circuit en logique séquentielle . . . . . . . . . . . .
Structure de base d’un circuit en logique séquentielle synchrone . . . . . .
Chronogramme du signal d’horloge . . . . . . . . . . . . . . . . . . . . . .
Point mémoire basé sur un amplificateur rebouclé . . . . . . . . . . . . . .
Fonction de transfert de l’amplificateur . . . . . . . . . . . . . . . . . . . .
Convergence vers un état stable en ne partant pas de X . . . . . . . . . .
inverseurs en tête bêche pour la mémorisation . . . . . . . . . . . . . . . .
bascule RS avec une structure NAND et NOR . . . . . . . . . . . . . . . .
Point mémoire RAM statique . . . . . . . . . . . . . . . . . . . . . . . . .
Structure de la bascule D sur état ou latch . . . . . . . . . . . . . . . . .
structure de la bascule D à partir de latches . . . . . . . . . . . . . . . . .
Chronogramme de la bascule D avec 2 latches . . . . . . . . . . . . . . . .
Symbole de la bascule D . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Caractéristiques temporelles de la bascule D . . . . . . . . . . . . . . . . .
Temps de propagation à considérer en logique séquentielle . . . . . . . . .
registre à décalage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Chronogramme du registre à décalage . . . . . . . . . . . . . . . . . . . .
Compteur binaire . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Accumulateur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Chronogramme de l’accumulateur . . . . . . . . . . . . . . . . . . . . . . .
circuit séquentiel de traitement de flot de données . . . . . . . . . . . . .
Circuit séquentiel de traitement de flot de données après décomposition
fonctions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
7.26 Circuit séquentiel de traitement de flot de données après décomposition
fonctions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
8.1
8.2
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. .
. .
. .
. .
. .
. .
. .
. .
. .
. .
. .
. .
. .
. .
. .
. .
. .
. .
. .
. .
. .
. .
. .
. .
en
. .
en
. .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
102
103
104
104
107
. . .
. . .
. . .
. . .
. . .
. . .
. . .
. . .
. . .
. . .
. . .
. . .
. . .
. . .
. . .
. . .
. . .
. . .
. . .
. . .
. . .
. . .
. . .
. . .
sous
. . .
sous
. . .
112
112
113
113
114
114
114
115
115
116
116
116
117
117
117
118
119
119
119
120
120
121
122
122
Architecture générique d’un circuit électronique . . . . . . . . . . . . . . . . . . . .
Schéma d’un machine à état générique . . . . . . . . . . . . . . . . . . . . . . . . .
125
126
123
123
TABLE DES FIGURES
17
8.3
8.4
8.5
8.6
8.7
8.8
8.9
8.10
8.11
8.12
8.13
8.14
8.15
8.16
8.17
8.18
8.19
8.20
Où rencontrer les machines à états . . . . . . . . . . . . . . . . .
Graphe d’état au départ . . . . . . . . . . . . . . . . . . . . . . .
Graphe d’état avec quelques transitions . . . . . . . . . . . . . .
Graphe d’état avec les transitions . . . . . . . . . . . . . . . . . .
Graphe d’état avec les transitions spécifiées . . . . . . . . . . . .
Graphe d’état final . . . . . . . . . . . . . . . . . . . . . . . . . .
Graphe d’état final . . . . . . . . . . . . . . . . . . . . . . . . . .
Calcul de l’état futur . . . . . . . . . . . . . . . . . . . . . . . . .
Graphe d’état avec Reset synchrone . . . . . . . . . . . . . . . .
Graphe d’état avec Reset Asynchrone . . . . . . . . . . . . . . .
calcul des sorties . . . . . . . . . . . . . . . . . . . . . . . . . . .
Schéma d’une machine à états avec le nombre de bits nécessaires
Graphe avec codage adjacent . . . . . . . . . . . . . . . . . . . .
Graphe avec codage "one-hot" . . . . . . . . . . . . . . . . . . .
Graphe avec codage choisi pour la conception . . . . . . . . . . .
Graphe avec codage choisi pour la conception . . . . . . . . . . .
Schéma d’un minuteur . . . . . . . . . . . . . . . . . . . . . . . .
Schéma d’un minuteur générique avec RAZ automatique . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
126
127
127
128
129
129
130
131
132
133
133
134
136
136
138
139
140
141
9.1
9.2
9.3
9.4
9.5
9.6
9.7
9.8
9.9
9.10
9.11
9.12
9.13
9.14
Symbole de la RAM . . . . . . . . . .
Exemple d’accès à la RAM . . . . . .
schéma global . . . . . . . . . . . . . .
Architecture de la première version . .
Graphe d’états de la première version
Architecture de la deuxième version .
Graphe d’états de la deuxième version
Architecture de la troisième version . .
Graphe d’états de la troisième version
Implémentation du PC . . . . . . . . .
Architecture de la quatrième version .
Graphe d’états de la quatrième version
Architecture de la version finale . . . .
Graphe d’états de la version finale . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
145
146
146
155
155
158
158
160
160
161
161
161
162
163
12.1 Porte logique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
12.2 Trois portes... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
12.3 Table de vérité de l’Additionneur Complet 1 bit . . . . . . . . . . . . . . . . . . . .
173
174
175
13.1 Trois implantations alternatives de la fonction LM20 . . . . . . . . . . . . . . . . .
13.2 Solution (3) avec amplification logique . . . . . . . . . . . . . . . . . . . . . . . . .
13.3 Amplification logique généralisée. . . . . . . . . . . . . . . . . . . . . . . . . . . . .
177
178
179
14.1
14.2
14.3
14.4
14.5
14.6
14.7
Circuit à étudier . . . . . . . . . . . . . .
Circuit à étudier avec pipeline . . . . . . .
Bascule D-EN . . . . . . . . . . . . . . . .
Composant SER-PAR . . . . . . . . . . .
Bascule D-EN-LD . . . . . . . . . . . . .
Composant PAR-SER . . . . . . . . . . .
Chronogramme des entrées du calculateur
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
181
182
183
183
183
184
184
15.1
15.2
15.3
15.4
15.5
15.6
Liaisons point à point . . . . . .
Bus central . . . . . . . . . . . .
Système de communication . . .
Contrôleur de communication . .
Illustration de la perte d’un cycle
Chronogramme optimisé . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
185
186
187
187
188
189
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
18
TABLE DES FIGURES
15.7 Description fonctionnelle symbolique . . . . . . . . . . . . . . . . . . . . . . . . . .
189
17.1 Schéma de l’inverseur CMOS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
17.2 Schéma du modèle statique et grand signal du transistor MOS . . . . . . . . . . .
17.3 Variation de la tension de seuil . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
197
200
201
18.1
18.2
18.3
18.4
18.5
l’inverseur CMOS . . . . . . . . . . . . . . . .
Montage 4 et chronogrammes . . . . . . . . .
Schéma du modèle statique et grand signal du
Temps de propagation de l’inverseur MOS . .
Modèle de l’inverseur MOS . . . . . . . . . .
. . . . . .
. . . . . .
transistor
. . . . . .
. . . . . .
. . . .
. . . .
MOS
. . . .
. . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
204
206
208
209
210
19.1
19.2
19.3
19.4
19.5
l’inverseur CMOS . . . . . . . . . . . . . . . .
Montage 4 et chronogrammes . . . . . . . . .
Schéma du modèle statique et grand signal du
Temps de propagation de l’inverseur MOS . .
Modèle de l’inverseur MOS . . . . . . . . . .
. . . . . .
. . . . . .
transistor
. . . . . .
. . . . . .
. . . .
. . . .
MOS
. . . .
. . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
212
214
217
218
218
Première partie
Leçons
19
Chapitre 1
Traitement matériel de l’information
1.1
Du composant au systèmes numériques
Alors que le cerveau de l’être humain qui a écrit ce texte comporte 1012 neurones, le microordinateur qui a servi à le mettre en forme comporte au maximum 1010 composants de base :
les transistors. Malgré cette relative simplicité, la réalisation de tels systèmes de traitement est
difficilement concevable par un même individu dans sa globalité. La maîtrise de cette complexité
est le résultat d’un découpage hiérarchique aboutissant à des étapes ayant une cohérence soit
logique (fonction) soit physique (composant). La figure 1.1 représente les trois premiers niveaux de
cette hiérarchisation.
(Transistor 1)
(Porte logique 10)
(Opérateur 1000)
Fig. 1.1: Complexité des niveaux hiérarchiques.
L’assemblage judicieux de moins d’une dizaine de transistors permet la réalisation des briques
de base du traitement logique : les portes logiques à quelques entrées. Avec le même nombre de
transistors, nous pouvons stocker une information binaire (0/1) dans un point mémoire et l’y
maintenir tant que nous fournissons de l’énergie.
Il est possible par l’assemblage de quelques milliers de portes logiques et de fonctions de mémorisation de créer des opérateurs de calcul ou de traitement tels que des multiplieurs ou des unités
de contrôle.
L’assemblage d’opérateurs permet la création d’un nouveau composant : le circuit intégré. Les
millions de transistors des circuits intégrés sont réalisés sur un unique carré de matériau semiconducteur (le silicium) de la taille d’un ongle. Parmi les exemples les plus connus de circuits
intégrés citons le microprocesseur et la mémoire dynamique (DRAM) qui sont au cœur des microordinateurs.
Nous quittons maintenant le domaine de la micro-électronique numérique pour passer à une
vision macroscopique illustrée dans la figure 1.2 page suivante.
L’assemblage de circuits intégrés sur des cartes ou circuits imprimés de quelques centaines de
cm2 permet la réalisation de systèmes de traitements numériques autonomes tels qu’une calculatrice, un agenda électronique ou un ordinateur de bureau.
21
22
CHAPITRE 1. TRAITEMENT MATÉRIEL DE L’INFORMATION
(Circuit intégré 108 )
(Micro-ordinateur 1010 )
(Système Télécom 10xx )
Fig. 1.2: Complexité des niveaux hiérarchiques.
Enfin, ces systèmes électroniques numériques permettent de réaliser la plupart des fonctions de
traitement des réseaux de télécommunications. Bien malin qui peut savoir combien de transistors
ont participé à votre dernière conversation téléphonique...
La maîtrise parfaite d’un de ces niveaux de complexité dans ses aspects techniques, scientifiques
ou économiques, nécessiterait, à elle seule, une formation d’ingénieur électronicien... De façon réaliste, nos objectifs sont, dans le cadre d’une « base de connaissances indispensables », d’une part
de vous permettre de comprendre le domaine de l’électronique numérique intégrée dans son ensemble et d’autre part, d’acquérir une première expérience concrète de la réalisation d’opérateurs
numériques, ce que nous déclinons de manière plus précise par :
• compréhension de la technologie de fabrication et du fonctionnement des transistors ;
• maîtrise d’une technique de réalisation de portes logiques ;
• maîtrise de techniques de réalisation d’opérateurs ;
• compréhension de l’influence de la technologie sur les performances des circuits intégrés ;
• compréhension des enjeux techniques et économiques de l’industrie micro-électronique.
1.2
Signal et Information
Avant de nous intéresser au composant électronique il convient de définir son usage, c’est à dire
de définir les caractéristiques des signaux qu’il est sensé générer, transmettre ou modifier.
1.2.1
Signal électrique et traitement de l’information
Le signal électrique est actuellement le support nécessaire à l’ensemble des systèmes de traitement de l’information qui nous sont familiers. Le mot information prend ici un sens très large
que nous expliciterons ultérieurement. Votre télévision (information visuelle), votre chaîne HiFi
(information musicale) ou votre micro-ordinateur (programmes...) sont des exemples concrets de
systèmes de traitement de l’information utilisant le support électrique.
Fig. 1.3: Le signal électrique support de l’information...
On peut envisager évidemment d’autres supports physiques que le signal électrique (papier,
lumière, champs électromagnétiques) il n’en reste pas moins vrai que ces supports, s’ils sont très
1.2. SIGNAL ET INFORMATION
23
adaptés à la transmission et au stockage de l’information (livres, cédéroms, fibre optiques, téléphone
portable ou par satellite), ne permettent guère de réaliser des fonctions de traitement élaborées.
Fig. 1.4: Le signal mécanique support de l’information...
Nous pouvons mesurer les valeurs instantanées (tension, courant, charges...) d’un signal électrique quelconque ainsi que l’évolution de ces valeurs instantanées au cours du temps. Il est possible
de caractériser un tel signal par des grandeurs de forme. La fréquence, la phase et l’amplitude sont,
par exemple, trois paramètres caractérisant la forme d’un signal électrique sinusoïdal. Il est facile d’imaginer l’utilisation des variations de ces grandeurs ou paramètres pour représenter une
information dont le signal électrique serait porteur, la restitution de l’information se faisant en
interprétant la mesure de ces grandeurs.
Dans un article considéré comme fondateur de la théorie de l’information C.E. Shannon a
proposé en 1948 un schéma de communication : l’information est définie comme un élément de
connaissance de l’état d’un système. Une chaîne de communication comporte une source (ou émetteur) qui émet (code) des messages vers une destination (récepteur). Le récepteur ne peut décoder
les informations émises par l’émetteur que s’il connaît l’ensemble des états possibles de la source.
Le but de la théorie de l’information est de dégager les lois théoriques qui limitent les performances
des systèmes de traitement et de communication. Elle permet également l’optimisation des codages
en fonction des contraintes matérielles des systèmes.
Fig. 1.5: Claude Shannon
24
1.2.2
CHAPITRE 1. TRAITEMENT MATÉRIEL DE L’INFORMATION
Codage analogique de l’information : l’exemple du signal sonore
Signal !analogique
Jusqu’au lancement du « disque compact numérique », mis au point par les sociétés Sony et
Philips au début des années 80, les technologies de stockage et de transfert du son appartenaient
au domaine du traitement analogique (signal analogique à temps continu). En clair, depuis la
première description du téléphone à ficelle (Robert Hooke en 1667) jusqu’à la fin des années 1970,
ces techniques se basaient toutes sur la transformation d’un phénomène physique (par exemple une
variation de pression) en un autre phénomène physique (par exemple vibration d’une membrane)
se comportant de manière analogue au premier. Le signal électrique analogique sortant d’une tête
de lecture d’un lecteur de disque microsillon est un exemple typique de ce codage analogique :
la valeur instantanée de la tension à la sortie de la tête de lecture varie comme le signal audio
enregistré mécaniquement sur le disque.
Le signal analogique électrique est malheureusement sujet à de nombreux phénomènes qui
viennent détériorer la qualité de l’information transmise (atténuation, distortion, bruits parasites...), la correction de ces phénomènes n’est pas chose aisée et rarement satisfaisante. Ce n’est,
de plus, pas un support très pratique dès que l’on envisage d’effectuer des traitements complexes.
Les calculateurs analogiques ont eu une brève existence dans les années 60 à 80 lorsque leurs
homologues numériques étaient à leurs balbutiements.
N’oublions cependant pas, en reprenant l’exemple de la chaîne de transmission du son, que le
capteur (microphone) de même que l’enceinte acoustique ont un fonctionnement analogique ; le
traitement analogique de l’information reste l’indispensable interface avec le monde « réel ».
Fig. 1.6: L’audition moyenne d’un être humain
1.2.3
Codage numérique de l’information
Maintenant, revenons à la théorie de l’information et reprenons l’exemple du signal sonore. Nous
ne désirons transmettre et stocker que l’information pertinente à notre oreille. Comme le montre le
diagramme de la figure 1.6, nous savons que celle-ci ne peut pas distinguer de variations de pression
inférieures à 2 × 10−5 Pa et qu’elle ne peut supporter de variations de pression supérieures à 20 Pa.
On appelle ce rapport la dynamique du signal que l’on a coutume de mesurer en décibel :
1.2. SIGNAL ET INFORMATION
25
I décibels (dB) = 20 × log10 (P/P0 )
Notre source audio nécessite une dynamique de 120 dB. Cela signifie aussi (au sens de la
théorie de l’information) que le récepteur (l’oreille) ne peut décoder que 106 états différents par
pas de 2 × 10−5 Pa. D’autre part, nous ne pouvons entendre que des signaux ayant une bande de
fréquence limitée de 20 Hz à 20 000 Hz. Le théorème d’échantillonnage indique qu’il est possible
de reconstruire avec exactitude un signal à bande limitée à partir d’échantillons de ce signal pris à
intervalles réguliers à une fréquence double de la fréquence maximale du signal original. Nous
avons donc montré que notre signal sonore pouvait être représenté par une suite de nombres
entiers : c’est un signal prenant un nombre discret d’états de manière discrète dans le temps. Nous
qualifierons ce signal de signal numérique. L’opération de quantification (discrétisation des états)
et d’échantillonnage (discrétisation du temps) nous conduit à redéfinir la notion de dynamique que
l’on mesurera en bits (pour « binary digit ») :
N bits = log2 (nombre d’états)
Nous pouvons maintenant associer au signal numérique un débit de données mesuré en bits par
seconde. Un lecteur de disque compact audio a, par exemple, un débit correspondant à 2 canaux
(stéréophonie) échantillonnés à 44,1 kHz sur une dynamique de 16 bits soit 1,41 Mb/sec.
Nous allons donner un support électrique à ce signal numérique. L’idée la plus simple consiste
à associer à chaque état du signal une tension et de faire évoluer dans le temps cette tension pour
représenter la suite de symboles. La figure 1.7 montre un signal électrique multivalué support d’un
signal numérique à trois états prenant successivement les états « 2 », « 1 » et « 0 ». Les plages
hachurées représentent des plages de tensions pour lesquelles il n’est pas possible de déterminer
l’état du signal ce qui est matérialisé par le symbole « X ».
Fig. 1.7: Un signal multivalué codant une valeur numérique
Remarquons (voir figure 1.8 page suivante), qu’à débit d’information constant nous pouvons
jouer sur le nombre de signaux physiques (ou de fils de liaison) utilisés, le nombre d’états codés et la
fréquence de changement des symboles. Ce choix est essentiellement guidé par des considérations
de facilité de traitement et sur la robustesse du codage au regard du bruit ou de l’atténuation du
signal électrique. Sans entrer dans le détail de ces considérations, il est possible de justifier l’usage
généralisé du codage binaire de la manière suivante.
Considérons la représentation de nombres sous la forme de n canaux physiques (n fils) utilisant
b niveaux électriques. Le nombre total de symboles représentables sous cette forme est Q = bn . La
réalisation de cette représentation a un coût matériel ; il faut en effet mettre en place des dispositifs
de détection de niveaux plus ou moins complexes en fonction de la base choisie et adapter le nombre
26
CHAPITRE 1. TRAITEMENT MATÉRIEL DE L’INFORMATION
Fig. 1.8: Une liaison à la fréquence 3 · Fm est équivalente à 3 liaisons opérants à la fréquence Fm
de canaux pour obtenir la qualité Q choisie. Ce coût est évidemment proportionnel au nombre n de
canaux ; nous allons en première approximation considérer qu’il est aussi proportionnel à la base b
choisie : C = b × n.
Nous pouvons en déduire la base optimale qui minimise le coût C pour une qualité Q donnée.
Nous avons
n = ln(Q)/ ln(b)
D’où
C = b × ln(Q)/ ln(b)
L’expression de C possède un minimum en b = e quelle que soit la qualité Q souhaitée. Cela nous
conduit à ne considérer que les bases « 2 » ou « 3 » comme candidates possibles. Dans la réalité,
la complexité d’un opérateur de calcul physique en base « 3 » est plus que 1,5 fois plus grande que
celle d’un opérateur en base « 2 » (la fonction C dépend de b de façon grandement non linéaire).
Cela justifie le choix quasi universel de la base « 2 » dans les systèmes de traitement numérique. Il
arrive que ce choix soit remis en cause dans des cas particuliers.
1.2.4
L’exemple du signal binaire
Dans un signal binaire, seuls deux états sont possibles : 0/1. Nous choisissons deux plages de
tensions disjointes pour représenter les deux états, un symbole ne pouvant être à la fois dans l’état
« 1 » et l’état « 0 ». Lorsque le signal électrique évolue dans le temps, il passe successivement et
continuement d’une plage de définition d’état à l’autre en croisant une plage intermédiaire pour
laquelle on qualifie le signal d’indéterminé. Une vision simplifiée du signal consiste à ne représenter
que les états détectés « 0 » et « 1 » reliés par des segments de droite représentant leur transition
d’un état à un autre (figure 1.9 page suivante).
Même si le signal électrique subit des distortions, une atténuation, ou s’il est entaché de bruit,
il est possible de reconstruire avec exactitude les symboles émis jusqu’à un certain niveau de
dégradation (figure 1.10 page ci-contre). Remarquons que pour une excursion totale de tension
donnée, la multiplication des états possibles (codage multivalué) diminue l’amplitude des plages de
tensions associées à chaque état et donc augmente la difficulté de détection ; le codage binaire est
à nouveau , de ce point de vue, le codage le plus robuste.
Pour conclure sur le signal binaire, nous pouvons lister les quelques caractéristiques qui ont
conduit à l’imposer dans le monde de l’électronique numérique :
• C’est d’une part le symbole du raisonnement logique, de la prise de décision et du contrôle
(si /alors/ sinon).
• C’est d’autre part une base de représentation des nombres entiers permettant d’effectuer tous
calculs arithmétiques à partir d’opérations simples.
• Il est, comme tout signal numérique, utilisable pour coder de l’information comme le son ou
l’image.
• Il peut utiliser un support électrique très simple (codage direct en amplitude).
1.3. LE SIGNAL BINAIRE REPRÉSENTÉ PAR UNE GRANDEUR ÉLECTRIQUE
27
Fig. 1.9: Un signal binaire : signal électrique et interprétation.
Fig. 1.10: Un signal binaire distordu, atténué et bruité, mais reconstruit.
1.3
Le signal binaire représenté par une grandeur électrique
Nous allons, dans ce chapitre, montrer quelques techniques simples permettant de dégager
les caractéristiques des composants nécessaires à la génération, la détection et le traitement de
signaux binaires électriques ; notre but n’est pas de présenter des implantations réalistes de fonction
logiques.
1.3.1
Comment peut-on générer un signal électrique binaire ?
Il s’agit là de créer un signal électrique pouvant se stabiliser dans deux plages de tension prédéfinies correspondant aux deux états « 0 » et « 1 ». Nous pouvons partir d’une source d’alimentation
continue fournissant à ses bornes une tension Vdd donnée. Le montage de la figure 1.11 page suivante basé sur un simple interrupteur et une résistance permet de générer la tension « 0 V »(resp.
Vdd ) lorsque l’interrupteur est fermé (resp. ouvert) sur la sortie.
1.3.2
Comment peut-on extraire un symbole binaire d’un signal électrique ?
Supposons que nous disposons d’un composant, que nous appellerons « transistor », composé
d’un premier dispositif capable de comparer une tension à une référence donnée, couplé à un
28
CHAPITRE 1. TRAITEMENT MATÉRIEL DE L’INFORMATION
Fig. 1.11: Génération d’un signal binaire avec une source de tension, une résistance et un interrupteur.
second dispositif se comportant comme un interrupteur commandé en fonction du résultat de la
comparaison. Le symbole et la fonction de cet interrupteur sont représentés en figure 1.12.
• Si Vin < Vref alors l’interrupteur est ouvert.
• Si Vin > Vref alors l’interrupteur est fermé.
Fig. 1.12: Le transistor interrupteur.
Remplaçons l’interrupteur de la section précédente par notre transistor. Pour toute tension
d’entrée inférieure (resp. supérieure) à Vref , la tension de sortie prend la valeur Vdd (resp. « 0 V »).
Nous disposons bien d’un dispositif capable de détecter l’état du signal d’entrée même entaché de
bruit ou de distortions. La figure 1.13 présente tout d’abord la fonction de transfert théorique du
dispositif, c’est-à-dire la relation liant la tension d’entrée à la tension de sortie. Ce dispositif est
appelé « inverseur ».
Fonction de transfert idéale
Fonction de transfert réaliste
Fig. 1.13: Fonctions de transfert de l’inverseur.
Dans la pratique, il n’est pas possible de créer des dispositifs électroniques aussi sélectifs ; nous
pouvons retenir les deux imperfections suivantes :
• Passage « continu » entre le mode ouvert et le mode fermé ;
• Résistance non nulle en mode fermé.
La deuxième fonction de transfert de la figure 1.13 présente un comportement plus « réaliste »
d’un tel opérateur. Tant que le signal reste dans les plages où la pente de la fonction de transfert
est supérieure à moins un, l’immunité au bruit est maximale et le signal est régénéré de façon
convenable.
1.4. LA TECHNOLOGIE MICRO-ÉLECTRONIQUE
1.3.3
29
Comment peut-on créer un opérateur de traitement binaire ?
Considérons maintenant le montage de la figure 1.14, composé de deux transistors et une résistance. Nous pouvons construire une table représentant la valeur de la tension en sortie du montage
en fonction des tensions en entrée. Nous pouvons traduire cette table en une table de vérité en
remplaçant les valeurs de tension par les états « 0 » ou « 1 » correspondants. Nous avons créé un
opérateur de traitement binaire (la fonction « non-ou ») qui prend la valeur « 0 » en sortie si l’une
ou l’autre des entrées est à « 1 ».
Vin1
Vin2
Vsortie
In1
In2
Sortie
<Vref
<Vref
Vdd
0
0
1
<Vref
>Vref
«0V»
0
1
0
<Vref
>Vref
«0V»
1
0
0
>Vref
>Vref
«0V»
1
1
0
Fig. 1.14: Fonction NOR2 : schéma et table de vérité
Nous pouvons évidemment élaborer des fonctions plus complexes soit par construction soit
par combinaisons de différentes fonctions déjà créées. La fonction « ou » peut se construire, par
exemple, en connectant une fonction « inverseur » derrière la fonction « non-ou ». Une autre fonction
importante du traitement numérique est la mémorisation des informations. La figure 1.15 montre
comment au moyen de deux inverseurs connectés l’un à l’autre il est possible de créer un dispositif
possédant deux états stables que l’on assimilera au stockage d’une information binaire. Comme
indiqué dans la représentation des fonctions de transfert des deux inverseurs le couple de tensions
(Va , Vb ) ne peut prendre que les valeurs (Vdd , Vmin ) ou (Vmin , Vdd ) et ce tant que le dispositif est
alimenté par la source de tension Vdd . Nous ne traiterons pas dans ce cours de la manière de forcer
cette mémoire à prendre un état désiré 0 ou 1.
Fig. 1.15: Fonction mémorisation : schéma et fonctions de transfert
1.4
La technologie micro-électronique
Le rôle de la technologie micro-électronique est la réalisation et l’intégration des transistors
nécessaires à la réalisation des opérateurs dont nous avons vu un premier aperçu. Il se trouve que
le traitement ou le stockage de données manipule une matière première sans dimensions physiques :
30
CHAPITRE 1. TRAITEMENT MATÉRIEL DE L’INFORMATION
l’information. Par conséquent, le dispositif de traitement ou de stockage peut être aussi petit que
l’on peut le souhaiter dans la limite de nos capacités ou de nos connaissances scientifiques à une
période donnée. Toutes les bases techniques de la fabrication des circuits intégrés électroniques ont
été établies vers 1960 ; depuis les progrès ne sont que des améliorations successives sans remise en
question fondamentale du procédé initial.
1.4.1
Quelles propriétés des matériaux peut-on exploiter pour créer des
transistors ?
Nous désirons créer un dispositif passant d’un mode isolant (interrupteur ouvert) à un mode
conducteur (interrupteur fermé) en fonction d’une commande électrique extérieure. Un relai électromécanique ferait l’affaire, mais il semble plus judicieux de chercher à exploiter des phénomènes physiques qui permettraient de modifier directement les caractéristiques conductrices d’un matériau.
Les matériaux semi-conducteurs (silicium, germanium, arséniure de gallium...) sont des matériaux
rêvés pour cet usage. Ces matériaux ont les deux propriétés fondamentales suivantes :
• Il est possible de modifier « statiquement » les densités de charges libres, et donc susceptibles
de créer un courant électrique, dans le matériau en injectant des impuretés (bore, arsenic,
phosphore...) dans leur structure : on appelle cela le dopage.
• Il est possible de modifier « dynamiquement » les densités de charges libres dans le matériau
sous l’influence de champs électriques.
En combinant ces deux phénomènes, nous pouvons créer des transistors ayant le comportement demandé. Le transistor le plus couramment utilisé actuellement est le transistor MOS (pour
Métal/Oxyde/Semi-conducteur). La figure 1.16 présente une vue en coupe et en perspective d’un
transistor MOS de type N (nous verrons au chapitre 4 page 59 qu’il existe deux types de transistors
MOS).
Fig. 1.16: Vue en coupe d’un transistor NMOS
Les éléments essentiels constituant un transistor MOS de type N sont les suivants :
• Un substrat faiblement dopé avec des dopants de type P (atomes de dopants accepteurs
d’électrons). On note P − ce type de dopage. Polarisé correctement, ce substrat est isolant.
• Au sein de ce substrat, deux zones approximativement parallélépipédiques, fortement dopées
avec des dopants de type N (atome de dopants donneurs d’électrons). On note N + ce type de
dopage. Ces zones dopées sont nommées Source et Drain du transistor. Notons que Source
et Drain sont indiscernables : le transistor est physiquement symétrique.
• La zone de substrat située entre Source et Drain se nomme le canal du transistor. La longueur
L et la largeur W (de l’anglais Width) du canal étaient dans les technologies courantes en
1.5. LES FILIÈRES TECHNICO-ÉCONOMIQUES
31
2004 de l’ordre du dixième de micron. En jouant sur ces deux dimensions le concepteur peut
contrôler les performances du transistor.
• Au dessus du canal, une fine couche isolante, constituée d’oxyde de silicium (SiO2 ). L’épaisseur de cette couche est actuellement de moins de 10 nm.
• Enfin, au dessus de cette couche d’oxyde, un dépôt de silicium poly-cristallin, aligné avec
la canal du transistor. Il s’agit de la Grille du transistor. Le silicium poly-cristallin est un
agglomérat de petits cristaux de silicium (c’est un matériau conducteur).
• La perspective nous montre, de plus, les connecteurs métalliques permettant de « raccorder »
Source et Drain du transistor au reste du circuit.
Dans le transistor MOS, le champ électrique créé en polarisant convenablement la Grille permet
de moduler le courant passant entre Drain et Source.
1.4.2
Quelles sont les différentes étapes de la fabrication des circuits
intégrés ?
La fabrication d’un circuit intégré doit satisfaire à trois besoins :
• créer des transistors les plus performants possibles ;
• offrir les moyens d’interconnecter entre eux ces transistors, ainsi que d’interconnecter le circuit
intégré avec le monde macroscopique ;
• offrir une protection, contre les agressions liées aux conditions d’utilisation, suffisante pour
garantir une fiabilité satisfaisante.
Le matériau de base est le silicium, l’élément le plus commun sur Terre après l’oxygène. Ce
matériau est purifié et transformé en un lingot mono-cristallin de quelques dizaines de cm de
diamètre. Le silicium est purifié pour comporter moins d’une impureté pour 100 millions d’atomes
de silicium, en effet le niveau des dopages destinés à ajuster les propriétés semi-conductrices du
matériau sont de l’ordre de 10 atomes de dopant pour un million d’atomes de silicium. Le lingot
est découpé en tranches (wafer pour les anglo-saxons) de faible épaisseur. Ces tranches sont polies
jusqu’à ce que les défauts de surface n’excèdent pas quelques couches atomiques. Les tranches sont
ensuite envoyées en fonderie pour la fabrication proprement dite des circuits intégrés. On fabrique
ainsi en parallèle plusieurs dizaines de circuits sur la même tranche.
Les traitements effectués sur les tranches se résument à quelques étapes simples plusieurs fois
répétées :
• Croissances ou dépôts de silice sur la surface de tranche : il s’agit de réaliser des isolations
entre éléments de différentes couches ou des grilles de transistors.
• Lithographie : il s’agit de dessiner les motifs désirés dans le matériaux. Cela commence par
le dépôt d’une résine photo-sensible sur la surface de la tranche. Après exposition à travers
un masque et développement la résine est éliminée des endroits désirés. La résine restante
servira de protection pour une attaque chimique sélective de la tranche.
• Implantation ionique : il s’agit de réaliser les dopages nécessaires au fonctionnement des
transistors. La silice au préalablement gravée par lithographie sert de masque naturel pour
définir les zones où seront les transistors.
• Dépôts de métaux : il s’agit là de déposer uniformément sur la tranche une couche de métal
qui servira à réaliser des connections entre transistors.
La dernière étape de traitement de la tranche consiste à noyer les circuits dans un épais matériau
de protection, sauf aux endroits où l’on voudra souder des fils les reliant au monde extérieur. Après
différents test sur les tranches, les circuits sont découpés et, après être de nouveau testés, montés
dans un boîtier comme indiqué figure 1.17 page suivante.
1.5
1.5.1
Les filières technico-économiques
La recherche d’un optimum de rendement dans l’utilisation de la
technologie
Pour finir nous abordons, dans ce chapitre, différentes applications qui sont faites de la technologie micro-électronique et qui conduisent pour des raisons techniques et économiques à différentes
32
CHAPITRE 1. TRAITEMENT MATÉRIEL DE L’INFORMATION
Fig. 1.17: Encapsulation d’un circuit intégré dans un boîtier.
filières de réalisation des systèmes électroniques numériques. Nous ne nous intéressons ici qu’à la
fonction « traitement », l’industrie des mémoires (fonction « stockage ») n’étant pas abordée.
1.5.2
Les circuits « universels » tels les microprocesseurs
Pour minimiser l’impact du coût de conception et de fabrication des circuits intégrés les plus
complexes, il est intéressant de leur donner une gamme d’applications permettant de s’adresser une
clientèle la plus large possible. Dans cet esprit, il s’agit de créer un circuit de traitement numérique
dont l’usage final (l’application) n’est pas connue à la fabrication. Pour cela, il suffit de réaliser un
circuit intégré ayant quelques ressources de traitement assez génériques (addition de deux nombres,
stockage d’un nombre en mémoire, lecture d’un nombre d’une mémoire...) associées à un dispositif
de contrôle capable d’interpréter des ordres simples qui sont stockés dans une mémoire extérieure au
circuit. Il suffit de changer le contenu de cette mémoire (le programme) pour changer l’enchaînement
des traitements effectués par le circuit, donc l’application. Avec de tels circuits l’augmentation de
complexité des applications est gérée simplement par l’augmentation de la taille des programmes.
1.5.3
Les circuits spécifiques à une application
Considérons maintenant une application très spécifique, faiblement complexe mais nécessitant
beaucoup de puissance de calcul. Un microprocesseur peut ne pas suffire à fournir la puissance de
calcul nécessaire. On peut tenter d’utiliser plusieurs microprocesseurs, mais la gestion des échanges
est malaisée et le coût du système risque de devenir rapidement prohibitif. Une alternative au
microprocesseur est le câblage direct des applications sur le silicium. Les circuits intégrés réalisés
de cette façon s’appellent des circuits intégrés spécifiques à une application (ASICs pour les anglosaxons). Par exemple, une opération cruciale en télévision numérique, l’estimation de mouvement
est réalisée actuellement par un seul circuit ASIC capable de calculer plus de dix milliards d’additions par seconde, ce qui dépasse de loin les performances des meilleurs microprocesseurs. La
contrepartie à cette performance est que ce circuit ne peut servir qu’à la télévision numérique...
1.6. BIBLIOGRAPHIE
1.5.4
33
Les circuits logiques programmables
Les circuits logiques programmables (CLP) visent à un compromis entre les avantages des
ASIC et des microprocesseurs. Il s’agit comme pour un ASIC de viser des applications relativement simples mais demandant de fortes puissances de calcul tout en conservant la souplesse de la
programmation. Pour arriver à cela, ces circuits sont composés de milliers de fonctions logiques
dont les équations sont stockées sous forme de tables de vérité dans des mémoires internes au
circuit. Des centaines de milliers de fils de connexions parcourent le circuit en tous sens et sont
potentiellement connectables aux fonctions logiques via des transistors servant d’interrupteurs. Les
états de ces interrupteurs sont à leur tour stockés dans des mémoires internes au circuit. En résumé, ces circuits peuvent changer de fonction et de câblage par simple modification du contenu
de mémoires. Cette souplesse est évidemment très avantageuse, très utilisée pour la réalisation de
prototypes ou de petites séries. Les ASIC remplacent cependant systématiquement les CLP dès
qu’il s’agit de produire en masse, notamment pour des questions de rendement d’utilisation du
silicium.
1.5.5
Les systèmes intégrés sur puces
Petit derniers des évolutions de l’industrie micro-électronique, les systèmes sur puces (ou SOC
pour « System On Chip ») tirent avantage des taux d’intégration faramineux atteints ces dernières
années (plus de 400 000 portes logiques par mm2 de silicium) pour intégrer sur une seule puce de
Silicium toutes les fonctionnalités « logicielles » et « matérielle » nécessaires à la réalisation de systèmes de traitements totalement autonomes. Ces puces intègrent non seulement des fonctionnalités
communes aux trois variantes précédemment présentées mais aussi des capteurs et éventuellement
dans un future proche des éléments mécaniques (moteurs, pompes...).
1.6
Bibliographie
Le site Web http://jas2.eng.buffalo.edu/applets du professeur Chu Ryang WIE de l’université de Buffalo (état de New-York) permet d’exécuter quelques démonstrations interactives sur
l’usage des matériaux-conducteurs, sur le fonctionnement des transistors ainsi que sur le fonctionnement de quelques montages de bases de l’électronique. Les liens suivants sont particulièrement
en rapport avec ce chapitre :
• n-channel MOSFET, both side-view and top-view and full photoresist steps ;
• CMOS Inverter, side-view, device fabrication steps ;
• Fabrication @ various companies.
34
CHAPITRE 1. TRAITEMENT MATÉRIEL DE L’INFORMATION
Chapitre 2
Fonctions de base
2.1
Introduction
Nous évoquons, dans le chapitre 1 page 21, la possibilité de réaliser physiquement des fonctions
de calcul utilisant une représentation binaire des données. Avant de poursuivre plus avant l’étude
de la réalisation physique de ces fonctions, nous allons développer les bases mathématiques des
fonctions logiques (Algèbre de Boole) ainsi que les méthodes de représentation et de manipulation
associées.
Le choix d’une structure physique optimale pour construire une fonction logique est une opération complexe dépendant de nombreuses contraintes telles que l’optimisation de la vitesse de
traitement, la minimisation de l’énergie dissipée par opération ou tout simplement le coût de fabrication.
Nous nous contenterons dans ce chapitre d’envisager le critère suivant qui pourra être remis en
cause dans la suite du cours :
• La construction de fonctions combinatoires complexes est basée sur l’utilisation d’une bibliothèque de fonctions logiques (ou portes) élémentaires telles que l’inversion, le « ou » logique,
et le « et » logique.
• L’optimisation des fonctions complexes est basée sur la minimisation du nombre des portes
élémentaires utilisées qui correspond à une simplification des équations booléennes associées.
2.2
Variables et fonctions logiques, tables de vérité
Considérons l’ensemble E à 2 éléments (0, 1).
1. Une variable logique est un élément de E et ne possède ainsi que 2 états 0 et 1. Elle est
représentée par des lettres (A, b, e, X, · · · ).
2. Une fonction logique de plusieurs variables applique E × E × · · · E dans E. Elle associe à
un n-uplet de variables booléennes (e0 , e1 , · · · , en−1 ) une valeur F (e0 , e1 , · · · , en−1 ).
3. Il existe différentes manières d’exprimer une fonction booléenne. Une fonction de n variables
est entièrement décrite par l’énoncé des valeurs de cette fonction pour l’ensemble (ou le
sous-ensemble de définition) des combinaisons du n-uplet de variables :
F (0, · · · , 0, 0), F (0, · · · , 0, 1), F (0, · · · , 1, 0), · · · , F (1, · · · , 1, 1)
Cet énoncé prend généralement la forme d’un tableau à n + 1 colonnes et au plus 2n lignes,
chaque ligne exposant une combinaison des variables et la valeur correspondante de la fonction. Les tableaux 2.1 page suivante et 2.2 page suivante suivants donnent la forme générale
de tables de vérité de fonctions de trois variables totalement (fonction F ) ou partiellement
(fonction G) définies.
35
36
CHAPITRE 2. FONCTIONS DE BASE
A
B
C
F (A, B, C)
0
0
0
F (0, 0, 0)
0
0
1
F (0, 0, 1)
0
1
0
F (0, 1, 0)
0
1
1
F (0, 1, 1)
1
0
0
F (1, 0, 0)
1
0
1
F (1, 0, 1)
1
1
0
F (1, 1, 0)
1
1
1
F (1, 1, 1)
Tab. 2.1: Table de vérité d’une fonction de 3 variables.
A
B
C
G(A, B, C)
0
0
0
1
0
0
1
1
0
1
0
0
0
1
1
non définie
1
0
0
non définie
1
0
1
1
1
1
0
0
1
1
1
0
Tab. 2.2: Table de vérité d’une fonction partiellement définie.
2.3
2.3.1
Représentations des fonctions logiques
Formes algébriques
Nous associons, à l’ensemble E, l’algèbre de Boole basée sur trois opérateurs logiques :
• Opérateur NON : réalise la complémentation (ou inversion) représentée ici par une barre
horizontale : « x ».
• Opérateur OU : réalise l’union (ou addition logique) notée ici : « + ».
• Opérateur ET : réalise l’intersection (ou multiplication logique) notée ici : « · ».
Les tables de vérité de ces trois fonctions logiques sont données dans les tableaux 2.3 page
suivante, 2.4 page ci-contre et 2.5 page suivante.
Une fonction logique booléenne se présente comme une association des opérations algébriques
précédentes sur un ensemble de variables. Elle peut s’écrire de plusieurs façons.
2.3.2
Forme disjonctive
Elle correspond à une somme de produits logiques : F = ΣΠ(ei ), où ei représente une variable
ou son complément. Exemple :
F1 (X, Y, Z) = X · Y + X · Z + X · Y · Z
Si chacun des produits contient toutes les variables d’entrée sous une forme directe ou complémentée, alors la forme est appelée « première forme canonique » ou « forme canonique
disjonctive ». Chacun des produits est alors appelé minterme. Exemple de forme canonique
disjonctive :
F2 (X, Y, Z) = X · Y · Z + X · Y · Z + X · Y · Z
2.3. REPRÉSENTATIONS DES FONCTIONS LOGIQUES
A
A
0
1
1
0
37
Tab. 2.3: Opérateur NON.
A
B
A+B
0
0
0
0
1
1
1
0
1
1
1
1
Tab. 2.4: Opérateur OU.
A
B
A·B
0
0
0
0
1
0
1
0
0
1
1
1
Tab. 2.5: Opérateur ET.
2.3.3
Forme conjonctive
Elle fait référence à un produit de sommes logiques : F = ΠΣ(ei ). Voici un exemple :
F3 (X, Y, Z) = (X + Y ) · (X + Z) · (X + Y + Z)
Si chacune des sommes contient toutes les variables d’entrée sous une forme directe ou complémentée, alors la forme est appelée « deuxième forme canonique » ou « forme canonique
conjonctive ». Chacune des sommes est alors appelée maxterme. Exemple de forme canonique
conjonctive :
F4 (X, Y, Z) = (X + Y + Z) · (X + Y + Z) · (X + Y + Z)
2.3.4
Équivalence entre la table de vérité et les formes canoniques
Nous avons défini la table de vérité d’une fonction comme la correspondance entre chaque
combinaison des variables (du domaine de définition de la fonction) et la valeur (0 ou 1) associée
de cette fonction.
Chacune des combinaisons des variables définit un état des entrées, on peut donc associer un
état à chaque ligne d’une table de vérité.
2.3.5
Forme canonique disjonctive
Une fonction logique est représentée par l’ensemble des états pour lesquels la fonction est égale
à « 1 ».
Considérons maintenant un état des entrées pour lequel une fonction booléenne vaut « 1 » : il
existe un minterme unique prenant la valeur « 1 » dans cet état.
Il suffit donc d’effectuer la somme logique (ou réunion) des mintermes associés aux états pour
lesquels la fonction vaut « 1 » pour établir l’expression canonique disjonctive de la fonction.
Exemple d’une fonction H à trois variables entièrement définie :
On remarque que H(A, B, C) = 1 pour les états 0, 1, 3, 5. On écrit la fonction ainsi spécifiée
sous une forme dite numérique : H = R(0, 1, 3, 5), Réunion des états 0, 1, 3, 5. La première forme
38
CHAPITRE 2. FONCTIONS DE BASE
A
B
C
H(A, B, C)
État
0
0
0
1
0
A·B·C
0
0
1
1
1
A·B·C
0
1
0
0
2
A·B·C
0
1
1
1
3
A·B·C
1
0
0
0
4
A·B·C
1
0
1
1
5
A·B·C
1
1
0
0
6
A·B·C
1
1
1
0
7
A·B·C
Minterme
Tab. 2.6: Table de vérité de la fonction H : états associés et mintermes.
canonique de la fonction H s’en déduit directement :
H(A, B, C) = A · B · C + A · B · C + A · B · C + A · B · C
2.3.6
Forme canonique conjonctive
Considérons maintenant un état des entrées pour lequel la fonction vaut « 0 ».
Il existe un maxterme unique prenant la valeur « 0 » en cet état. Ce maxterme prend donc la
valeur « 1 » dans tous les autres états des entrées.
Il suffit donc d’effectuer le produit logique (ou intersection) des maxtermes associés aux états
pour lesquels la fonction vaut « 0 » pour établir l’expression canonique conjonctive de la fonction.
Reprenons l’exemple de la fonction H :
A
B
C
H(A, B, C)
Etat
Maxterme
0
0
0
1
0
A+B+C
0
0
1
1
1
A+B+C
0
1
0
0
2
A+B+C
0
1
1
1
3
A+B+C
1
0
0
0
4
A+B+C
1
0
1
1
5
A+B+C
1
1
0
0
6
A+B+C
1
1
1
0
7
A+B+C
Tab. 2.7: Table de vérité de la fonction H : états associés et maxtermes.
On remarque que H(A, B, C) = 0 pour les états 2, 4, 6, 7. On écrit la fonction ainsi spécifiée
sous une forme dite numérique : H = I(2, 4, 6, 7) Intersection des états 2, 4, 6, 7.
La deuxième forme canonique de la fonction H s’en déduit directement :
H(A, B, C) = (A + B + C) · (A + B + C) · (A + B + C) · (A + B + C)
2.4
Description de méthodes de simplification
On cherche ici à obtenir une expression algébrique comportant un nombre minimal de termes,
ainsi qu’un nombre minimal de variables dans chaque terme dans le but de simplifier la réalisation
matérielle.
2.4. DESCRIPTION DE MÉTHODES DE SIMPLIFICATION
39
Attention : Comme nous l’avons indiqué en introduction, l’optimisation d’une fonction logique
dépend de paramètres tels que la performance en vitesse désirée, la consommation maximale autorisée ou l’obligation d’utiliser des bibliothèques de fonctions élémentaires prédéfinies. La complexité
de la représentation algébrique n’est donc qu’un critère d’optimisation parmi d’autres.
2.4.1
Utilisation des propriétés de l’algèbre de Boole
Les propriétés, lois et théorèmes fondamentaux de l’algèbre de Boole sont à notre disposition
pour manipuler les équations :
a + a = 1,
Complémentarité :
a · a = 0,
a=a
a + a + a + ··· = a,
a · a · a··· = a
Éléments neutres :
a + 0 = a,
a·1=a
Éléments absorbants :
a + 1 = 1,
a·0=0
a + b = b + a,
a·b=b·a
Associativité :
(a + b) + c = a + (b + c) = a + b + c ,
(a · b) · c = a · (b · c) = a · b · c
Distributivité :
(a + b) · c = (a · c) + (b · c) ,
(a · b) + c = (a + c) · (b + c)
Théorème d’absorption (1) :
a + (a · b) = a ,
a · (a + b) = a
Théorème d’absorption (2) :
a · b̄ + b = a + b ,
(a + b̄) · b = a · b
(a + b̄) · (a + b) = a ,
a · b̄ + a · b = a
Idempotence :
Commutativité :
Théorème d’adjacence :
Remarque : Deux termes sont dits adjacents logiquement s’ils ne diffèrent que par une
variable.
Théorème de De Morgan :
a + b = a · b,
a·b=a+b
Premier théorème d’expansion :
F (e0 , e1 , · · · , ei , · · · , en−1 ) = ei · F (e0 , e1 , · · · , 1, · · · , en−1 ) + ei · F (e0 , e1 , · · · , 1, · · · , en−1 )
Second théorème d’expansion :
F (e0 , e1 , · · · , ei , · · · , en−1 ) = [ei + F (e0 , e1 , · · · , 0, · · · , en−1 )] · [ei + F (e0 , e1 , · · · , 1, · · · , en−1 )]
2.4.2
Simplification à partir de la forme algébrique
Les méthodes algébriques employées se rapportent aux relations fondamentales d’absorption,
d’adjacence, de mise en facteur et aux théorèmes de De Morgan. On distingue plusieurs procédés
permettant d’aboutir au but recherché :
Regroupement des termes et mises en facteur
Z
= a · c · d + a · c · d + a · b · c · d = a · c · (d + d) + a · b · c · d
= a · c + a · b · c · d = a · (c + c · b · d) = a · (c + b · d)
Nous avons successivement utilisé une mise en facteur, la complémentarité, une deuxième mise
en facteur et enfin le théorème d’absorption.
40
CHAPITRE 2. FONCTIONS DE BASE
Réplication de termes existants
Z
= a·b·c+a·b·c+a·b·c+a·b·c
= a·b·c+a·b·c+a·b·c+a·b·c+a·b·c+a·b·c
= (a + a) · b · c + (b + b) · a · c + (c + c) · a · b
= b·c+a·c+a·b
La réplication du terme a · b · c permet de simplifier chacun des trois premiers termes en utilisant
une mise en facteur et la complémentarité.
Suppression de termes superflus
Z
= a · b + b · c + a · c = a · b + b · c + a · c · (b + b)
= a · b + a · b · c + b · c + a · b · c = a · b · (1 + c) + b · c · (1 + a)
= a·b+b·c
Nous avons ici réintroduit la variable b dans le troisième terme par l’intermédiaire de la propriété
de complémentarité, nous avons ensuite utilisé la propriété d’absorption pour simplifier les produits.
Simplification par utilisation des formes canoniques
Si l’on dispose de la table de vérité de la fonction, on prend pour équation algébrique de départ
la forme canonique comportant le minimum de termes. Cette équation sera ensuite simplifiée en
utilisant les méthodes décrites précédemment. En effet, pour une fonction à N entrées, la forme
canonique disjonctive comportera P mintermes (avec P ≤ 2N ), alors que la forme conjonctive
comportera 2N − P maxtermes.
2.4.3
Méthode des tables de Karnaugh
Les tables de Karnaugh sont des représentations sous forme d’un tableau à deux dimensions de
la table de vérité. Elles sont construites de façon à ce que les termes logiquement adjacents
soient géométriquement adjacents. Chaque ligne de la table de vérité est représentée par une
case du tableau de Karnaugh dans laquelle on indique la valeur de la fonction.
La contrainte d’adjacence géométrique est réalisée par un ordonnancement des lignes (resp.
colonnes) du tableau pour lequel le nombre de bits modifiés d’un code au suivant est constant et
égal à un. Cette propriété est respectée entre le code de la dernière ligne (resp. colonne) et celui de
la première ligne (resp. colonne). Prenons par exemple le cas d’une fonction F de trois variables,
spécifiée dans le tableau 2.8 page ci-contre.
Nous constatons que la fonction F est égale à « 1 » pour :
• les 4 cases (adjacentes) qui constituent la ligne « a = 1 » (Fig. 2.11 page suivante) ;
• les 4 cases (adjacentes) qui constituent le carré « c = 1 » (Fig. 2.12 page ci-contre).
Les deux zones déterminées « recouvrant » exactement les cases du tableau où la fonction F
vaut 1, nous pouvons en déduire directement que : F = a + c.
Nous allons maintenant généraliser la méthode exposée dans l’exemple.
2.4.4
Construction du tableau de Karnaugh
• Il y a 2n cases pour n variables.
• A chaque case est associé un minterme égal à 1 pour la combinaison considérée.
• Le passage d’une case à sa voisine se fait par changement d’une seule variable à la fois.
2.4. DESCRIPTION DE MÉTHODES DE SIMPLIFICATION
41
A
B
C
F (A, B, C)
0
0
0
0
A·B·C
0
0
1
1
A·B·C
0
1
0
0
A·B·C
0
1
1
1
A·B·C
1
0
0
1
A·B·C
1
0
1
1
A·B·C
1
1
0
1
A·B·C
1
1
1
1
A·B·C
minterme
Tab. 2.8: Table de vérité de la fonction F : états associés et mintermes.
HH BC
00
HH
A
H
01
11
10
0
0
1
1
0
1
1
1
1
1
Tab. 2.9: Table de Karnaugh de la fonction F .
HH BC
HH
A
H
00
01
11
10
0
A·B·C
A·B·C
A·B·C
A·B·C
1
A·B·C
A·B·C
A·B·C
A·B·C
Tab. 2.10: Correspondance des mintermes.
HHBC 00
HH
A
H
01
11
10
0
0
1
1
0
1
1
1
1
1
Tab. 2.11: Adjacence : a = 1
HHBC 00
HH
A
H
01
11
10
0
0
1
1
0
1
1
1
1
1
Tab. 2.12: Adjacence : c = 1
2.4.5
Règles de simplification
Il s’agit de « paver » le tableau de Karnaugh en regroupant les « 1 » adjacents de telle manière
que :
• l’ensemble des « 1 » de la fonction appartiennent au moins à un pavé,
• les pavés soient rectangulaires,
• le nombre de « 1 » regroupés dans un pavé soit une puissance de 2.
Chaque pavé ainsi constitué représente un terme produit de la fonction ne contenant que les
variables « stables » (par rapport au codage des lignes et des colonnes du tableau).
Attention !
• De même qu’il n’y a pas unicité de la représentation algébrique d’une fonction booléenne, il
42
CHAPITRE 2. FONCTIONS DE BASE
n’y a pas unicité des regroupements géométriques dans le tableau de Karnaugh.
• Il ne faut pas oublier les adjacences possibles entre colonnes et lignes extrêmes du tableau de
Karnaugh.
L’exemple suivant (Tab. 2.13) illustre ces deux principes :
HH BC
00
H
HH
A
01
11
10
0
1
1
1
0
1
1
0
1
1
Tab. 2.13: Table de Karnaugh
HH BC
HH 00
A
H
01
11
10
0
1
1
1
0
1
1
0
1
1
Tab. 2.14: Premier pavage
HH BC
HH 00
A
H
01
11
10
0
1
1
1
0
1
1
0
1
1
Tab. 2.15: Deuxième pavage
Selon le premier pavage (Tab. 2.14), l’expression obtenue est :
b·c+a·c+a·b
Le second pavage (Tab. 2.15), qui utilise une adjacence entre deux cases extrêmes, donne :
a·b+b·c+a·c
2.4.6
Fonctions non complètement définies
Certaines combinaisons peuvent ne pas se produire : elles n’ont pas d’effet sur la valeur de la
fonction. Ces états indifférents, notés X ou −, peuvent être utilisés partiellement ou totalement
pour simplifier la fonction, comme illustré dans l’exemple de la Fig. 2.16 page ci-contre.
On profite du fait que les états indifférents peuvent être interprétés au choix comme des 1
ou des 0 pour réaliser les regroupements les plus pertinents permettant d’aboutir à une expression
logique minimale. Ici, les deux regroupements en carrés retenus dans les tableaux 2.17 page suivante
et 2.18 page ci-contre s’imposent naturellement.
L’expression obtenue finalement est :
a·c+b·d
2.4.7
Pertinence de la méthode
Dans une représentation à 2 dimensions, chaque case a au plus 4 cases géométriquement adjacentes. Pour une fonction logique de plus de 4 variables, le nombre d’adjacences logiques pour
un minterme (égal au nombre de variables) devient supérieur aux possibilités dans le plan. Les
groupements deviennent alors moins naturels, et la méthode n’est plus aussi utile.
2.5. REPRÉSENTATION SCHÉMATIQUE DES FONCTIONS LOGIQUES
PP
PP CD 00
PP
AB
P
P
01
11
10
00
1
1
0
0
01
1
X
X
X
11
0
1
1
0
10
0
0
0
0
43
Tab. 2.16: Table de Karnaugh
PP
PP CD 00
PP
AB
P
P
01
11
10
00
1
1
0
0
01
1
1
X
X
11
0
1
1
0
10
0
0
0
0
Tab. 2.17: Premier pavage
PP
PP CD 00
PP
AB
P
P
01
11
10
00
1
1
0
0
01
1
1
1
X
11
0
1
1
0
10
0
0
0
0
Tab. 2.18: Deuxième pavage
2.5
Représentation schématique des fonctions logiques
Notre bibliothèque de fonctions ou portes logiques élémentaires n’est pour l’instant constituée
que des trois opérateurs inversion (NOT), « et » logique (AND) et « ou » logique (OR). Nous
allons compléter cette bibliothèque par quelques éléments supplémentaires dont l’objectif est de
mettre en place une représentation schématique des fonctions logiques.
Nous distinguerons ainsi :
• la fonction NON-ET ou NAND dont la sortie vaut 0 si et seulement si toutes les entrées sont
à 1,
• la fonction NON-OU ou NOR dont la sortie vaut 1 si et seulement si aucune entrée n’est à 1.
Ces deux fonctions sont la simple complémentation des fonctions AND et OR.
Nous associons maintenant à chacune des fonctions NOT, OR, AND, NAND et NOR un symbole
graphique. La complémentation sera représentée systématiquement par un cercle :
AND
OR
NOT
NAND
Fig. 2.1: Symboles des portes élémentaires.
Exemple de schéma et équation algébrique correspondante :
NOR
44
CHAPITRE 2. FONCTIONS DE BASE
Y = (A + B · C) + C
Fig. 2.2: Un exemple de schéma.
2.6
2.6.1
Quelques fonctions combinatoires importantes
Fonctions d’aiguillage : multiplexeurs
La fonction « multiplexeur à N entrées » consiste à aiguiller vers la sortie de la fonction une
entrée parmi N . Le multiplexeur à 2 entrées est le multiplexeur le plus simple à concevoir. Son
équation algébrique est de la forme :
Y = A · E 0 + A · E1 ,
où (E0 , E1 ) sont les entrées à multiplexer et A est une entrée de sélection.
La fonction multiplexeur est une traduction directe d’une instruction de type « if · · · then
· · · else · · · » dans le cadre de langages informatiques. Elle permet aussi de décomposer une
fonction booléenne complexe en utilisant les théorèmes d’expansion.
Le multiplexeur à deux entrées est souvent symbolisé de la façon suivante :
Fig. 2.3: Multiplexeur à deux entrées (Mux2).
Le multiplexeur à 2N entrées nécessite N entrées de sélection pour distinguer les 2N configurations des entrées.
Nous allons tenter maintenant de construire un multiplexeur à 4 entrées à partir des portes de
base définies dans le chapitre précédent. L’expression algébrique de la sortie est de la forme :
S = A0 · A1 · E0 + A0 · A1 · E1 + A0 · A1 · E2 + A0 · A1 · E3
Cette formulation fait apparaître tous les mintermes possibles à partir des entrées de sélection
(A0 , A1 ). Le schéma de la Fig. 2.4 page suivante présente un multiplexeur à 4 entrées muni de plus
une entrée supplémentaire V permettant de valider ou d’invalider (S = 0) la sortie de la fonction.
Remarque : Il est possible de construire un multiplexeur à 4 entrées à partir de 3 multiplexeurs
à 2 entrées. On se base pour cela sur la reformulation suivante, illustrée dans la Fig. 2.5 page cicontre.
S = A1 · (A0 · E0 + A0 · E1 ) + A1 · (A0 · E2 + A0 · E3 )
2.6.2
Opérateurs de comparaison
Les fonctions de comparaison les plus simples sont le test de l’égalité de deux variables booléennes ainsi que le test de complémentarité de deux variables booléennes. Ces deux fonctions ont
pour équations algébriques respectives :
Égalité : S
= A·B+A·B
Complémentarité : S
= A·B+A·B
2.6. QUELQUES FONCTIONS COMBINATOIRES IMPORTANTES
45
Fig. 2.4: Schéma interne d’un multiplexeur à 4 entrées avec entrée de validation.
Fig. 2.5: Reformulation du multiplexeur à 4 entrées.
Ces fonctions étant très souvent utilisées, il a été jugé utile de définir un nouvel opérateur
booléen pour les représenter. Il s’agit de l’opérateur « OU exclusif » que nous représenterons par
le symbole suivant : ⊕.
Les relations précédentes deviennent :
Égalité (NON-OU-exclusif ou XNOR) : S
= A·B+A·B
= A⊕B
Complémentarité (OU-exclusif ou XOR) : S
= A·B+A·B
= A⊕B
Les tables de vérité et symboles associés à ces fonctions sont donnés dans les tableaux 2.19 page
suivante et 2.20 page suivante.
Disposant du comparateur d’égalité à deux entrées, il est possible de généraliser l’opérateur à
la comparaison de deux mots de N bits. L’exemple suivant montre un comparateur opérant sur 2
mots de 4 bits.
Nous disposons de 2 nombres codés sur 4 bits : A = a3 a2 a1 a0 et B = b3 b2 b1 b0 .
46
CHAPITRE 2. FONCTIONS DE BASE
A
B
A⊕B
0
0
1
0
1
0
1
0
0
1
1
1
Tab. 2.19: Table de vérité et symbole des opérateurs XNOR
A
B
A⊕B
0
0
0
0
1
1
1
0
1
1
1
0
Tab. 2.20: Table de vérité et symbole des opérateurs XOR
Alors A = B si et seulement si (a3 = b3 ) et (a2 = b2 ) et (a1 = b1 ) et (a0 = b0 ), ce qui justifie
le montage de la Fig. 2.6.
Fig. 2.6: Test d’égalité de deux mots de 4 bits.
2.7
2.7.1
Annexes
Exercice de consolidation
L’expérience a montré que parmi les notions qui viennent d’être exposées, celle dans laquelle
on se prend le plus fréquemment les « pieds dans le tapis » et qui par ailleurs sert le plus dans
le cadre du module est la simplification des tables de Karnaugh. L’exercice suivant constitue en
conséquence un petit entraînement qui pourrait s’avérer salutaire afin d’être au point sur ce sujet.
On désire réaliser un afficheur 7 segments (a, b, c, d, e, f, g, voir Fig. 2.7 page ci-contre) traduisant
un nombre binaire exprimé sur 4 bits A, B, C, D en un symbole hexadécimal (0, · · · , 9, A, b, C, d, E, F ).
La transcription de cette réalisation en tables de vérité si l’on considère que l’on travaille en
logique positive (segment allumé = « 1 ») donne une table par segment.
Pour vous aider, il vous est proposé de vous donner directement le tableau de Karnaugh correspondant au segment « a » ainsi que le résultat obtenu après simplification.
2.7. ANNEXES
47
Fig. 2.7: Afficheur 7 segments. Un segment = une diode électro-luminescente.
Fig. 2.8: Tableau de Karnaugh de a = F (A, B, C, D).
Le résultat à trouver est :
a=A·D+B·C +A·C +B·D+A·B·D+A·B·C
Comment l’obtient-on ? Détaillons pour les sceptiques !
48
CHAPITRE 2. FONCTIONS DE BASE
Regroupement : B · C
Regroupement : A · C
Regroupement : A · D
Regroupement : B · D.
Les extrémités sont logiquement
adjacentes !
Regroupement : A · B · D
Enfin, Regroupement : A · B · C.
L’équation du premier segment a est ainsi obtenue à l’aide des 6 regroupements précédents. A
vous de les effectuer pour les autres segments. . .
Si vous arrivez au bout de cet exercice dans un temps raisonnable, vous pouvez considérer que
vous ne rencontrerez pas beaucoup de problèmes dans le futur !
2.7.2
•
•
•
•
Bibliographie
Groupe numérique Polycopié Composants et fonctions de l’électronique numérique, ENST
Ronald Tocci « Digital Systems », Prentice Hall
Eugene D. Fabricius, « Modern Digital Design and Switching Theory », CRC Press, 1992.
Barry Wilkinson, « Digital System Design », Prentice Hall, 1992.
Chapitre 3
Opérateurs arithmétiques
3.1
Introduction
Jusqu’à présent, nous avons principalement travaillé sur des bits simples (comprendre : des
nombres de 1 bit), ce qui ne nous permet de représenter que des valeurs allant de 0 à 1. Dans ce
chapitre nous introduirons la représentation des nombres plus grands que 1, ainsi que les opérateurs
associés. Nous verrons donc :
1. Représentation des nombres (codage des nombres)
(a) Représentation Simples de Position
(b) Conversions entre Bases
(c) Représentation en Signe et Valeur Absolue
(d) Représentation en Complément à 2
(e) Autres Codes
2. Opérateurs arithmétiques
(a) Additionneur
(b) Soustracteur
3.2
3.2.1
Représentation (codage) des nombres
Représentation Simples de Position
Un nombre positif N dans un système de base b peut être exprimé sous la forme polynomiale
N = an−1 ·bn−1 +an−2 ·bn−2 +. . .+a1 ·b1 +a0 ·b0 +. . .+a−1 ·b−1 +a−2 ·b−2 +a−m+1 ·b−m+1 +a−m ·b−m
La représentation simples de position correspondante est an−1 an−2 . . . a1 a0 , a−1 . . . a−m
La position d’un chiffre rappelle quelle puissance de la base multiplie ce chiffre :
• ai est le chiffre de rang i (ai appartient à un ensemble de b symboles)
• an−1 est le chiffre le plus significatif
• a−m est le chiffre le moins significatif
S’il s’agit du système héxadécimal (b = 16) :
• ai appartient à l’ensemble {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F }
S’il s’agit du système octal (b = 8) :
• ai appartient à l’ensemble {0, 1, 2, 3, 4, 5, 6, 7}
S’il s’agit du système binaire (b = 2), les chiffres sont appelés bits :
• ai appartient à l’ensemble {0, 1}
• an−1 est le MSB (most significant bit)
• a−m est le LSB (least significant bit)
49
50
CHAPITRE 3. OPÉRATEURS ARITHMÉTIQUES
Si l’on se déplace d’un rang vers la gauche, le poids est augmenté d’un facteur b. Si le déplacement
se fait vers la droite, il y a une division par b.
Le tableau 3.1 montre la représentation simples de position pour les nombres décimaux de 0 à 8 et
leurs correspondances en binaire. Les décalages correspondant aux multiplications et divisions par
2 peuvent être vus :
• entre 110 et 210 (12 et 102 )
• entre 310 et 610 (112 et 1102 )
• entre 410 et 810 (1002 et 10002 )
Décimal
Binaire
0
0
1
1
2
10
3
11
4
100
5
101
6
110
7
111
8
1000
Tab. 3.1: Exemple conversion binaire-décimal
3.2.2
Conversions entre Bases
Base b vers base 10
Pour cette conversion, il suffit de substituer la valeur b dans l’expression polynomiale par la
valeur de la base : N = an−1 · bn−1 + an−2 · bn−2 + . . . + a1 · b1 + a0 · b0 + . . . + a−1 · b−1 + a−2 ·
b−2 + a−m+1 · b−m+1 + a−m · b−m
Par exemple, pour trouver le correspondant de (A1C)16 dans le système décimal, il suffit de
faire : 10 · 162 + 1 · 161 + 12 · 160 = 276810
Base 10 vers base b
Partie Entière
Cette conversion consiste à faire des divisions successives du nombre décimal par b, jusqu’à
obtenir un quotient nul. Le nombre dans la base b correspond aux restes des divisions faites, dans
le sens inverse où ils ont été obtenus.
Soit la conversion 5710 vers base 2 :
Division
Quotient
Reste
57/2
28
1(a0 )
28/2
14
0(a1 )
14/2
7
0(a2 )
7/2
3
1(a3 )
3/2
1
1(a4 )
1/2
0
1(a5 )
Le résultat est donc (111001)2 .
3.2. REPRÉSENTATION (CODAGE) DES NOMBRES
51
Partie Fractionnaire
Cette conversion consiste à faire des multiplications successives du nombre décimal par b. Le nombre
dans la base b correspond aux parties entières des produits des multiplications faites, dans le sens
direct où ils ont été obtenus.
Soit la conversion 0, 5710 vers base 2 :
Multiplication
Produit
Partie entière
0, 57 · 2
1, 14
1(a−1 )
0, 14 · 2
0, 28
0(a−2 )
0, 28 · 2
0, 56
0(a−3 )
0, 56 · 2
1, 12
1(a−4 )
0, 12 · 2
0, 24
0(a−5 )
0, 24 · 2
0, 48
0(a−6 )
Le résultat est donc (0, 100100)2 .
Base 2n vers base 2 et base 2 vers base 2n
A l’aide de n bits, la conversion se fait sur chaque chiffre en base 2 pour ensuite les juxtaposer :
Par exemple, (3A9)16 = (001110101001)2 et (264)8 = (010110100)2
Base i vers base j
Si les deux bases sont des puissances de 2, la conversion se fait en utilisant 2 comme base relais
(i vers 2 et ensuite 2 vers j). Sinon, la base relais est la base 10.
3.2.3
Représentation en Signe et Valeur Absolue
La représentation en signe et valeur absolue consiste à ajouter un bit s à la représentation
simples de position afin de pouvoir représenter des nombres négatifs (s an−1 an−2 . . . a1 a0 , a−1 . . . a−m ).
La convention adoptée est s = 0 pour un nombre positif et s = 1 pour un nombre négatif. Ainsi,
pour une représentation sur 4 bits, +5 = 0101 et −5 = 1101.
Du fait que cette représentation implique un traitement différent pour le bit de signe, elle est
peu intéressante pour l’implantation d’opérateurs arithmétiques.
3.2.4
Représentation en Complément à 2
Il existe une forme de représentation des nombres signés plus efficace que la représentation en
Signe et Valeur Absolue : le complément à deux. Le principe du complément à deux est simple :
dans la représentation non signée (simples de position, ou notation binaire habituelle) sur n bits,
on travaille implicitement modulo 2n . Ainsi, sur n bits :
• 2n a la même représentation que 0,
• (2n + 1) la même que 1,
• etc.
. C’est pour cela que pour éviter les ambiguïtés, on se limite (en binaire non signé) à la représentation des nombres allant de 0 à (2n − 1) (soit 2n nombres au total).
Ce principe du modulo peut être étendu aux nombres négatifs. Toujours sur n bits :
• si 0 a la même représentation que 2n (soit 00...00),
• −1 devra donc avoir la même que (2n − 1) (soit 11...11),
• −2 la même que (2n − 2) (soit 11...10),
• etc.
Le complément à deux n’est qu’une convention, consistant à dire qu’ on décale la plage des nombres
représentables, en mettant le 0 au centre, et que, par compatibilité avec la représentation binaire
non signée, les nombres commençant par 0 seront considérés positifs, et ceux commençant par 1
52
CHAPITRE 3. OPÉRATEURS ARITHMÉTIQUES
négatifs.
Autrement dit, au lieu de représenter des nombres non-signés allant de 0 à (2n − 1), on représentera
des nombres signés allant de −(2n−1 ) à +(2n−1 − 1), soit 2n nombres au total dans les deux cas.
Remarques :
• Par convention, le 0 est donc classé dans les nombres positifs.
• Les nombres positifs ont la même représentation en binaire non signé qu’en complément à 2.
• Le complément à 2 permet de représenter moins de nombres positifs que le binaire non signé
(c’est normal, l’intervalle de 2n nombres a été séparé en deux parties de même longueur, une
pour les positifs, une pour les négatifs).
• Le nombre d’entiers non nuls représentables en CA2 etant impair, une des deux plages sera
plus grande que l’autre. Le 0 étant considéré positif (car sa représentation commence par un
0), il y aura donc un nombre strictement négatif de plus que de nombres strictement positifs.
Par exemple, pour une représentation sur 4 bits (n = 4),
• on peut représenter les nombres signés allant de −8 à +7,
• +5 ≡ 01012 ,
• −5 ≡ 24 + (−5) ≡ +11 ≡ 10112
• +7 ≡ 01112
• −7 ≡ 24 + (−7) ≡ +9 ≡ 10012
• −8 ≡ 24 + (−8) ≡ +8 ≡ 10002
• +8 est non représentable (car il aurait la même représentation que −8).
Le complément à deux permet que l’opérateur utilisé pour faire des additions puisse aussi faire des
soustractions : au lieu de soustraire un nombre à l’aide d’un opérateur spécialisé de soustraction, il
suffit d’ajouter son opposé en complément à deux, et de travailler à nombre de bits constant (pour
rester modulo 2n ).
Exemple : soit l’opération 7 − 5 en décimal. En binaire, pour une représentation sur 4 bits, cela
correspond à 01112 − 01012 .
La soustraction de 01012 peut être remplacée par une addition de son complément à 2, soit
10112 .
7 − 5 = 7 + (−5) = 01112 + 10112 = 100102 . Il ne faut garder que les 4 bits de poids faible,
pour obtenir la réponse exacte, c’est-à-dire, 00102 = 2.
3.2.5
Autres Codes
Ci-après sont présentés quelques codes utilisés dans les systèmes numériques. Les codes de
Gray, p parmi n et le code à bit de parité ne sont pas pondérés, c’est-à-dire qu’il n’y a pas de
poids attribué à chaque position (rang). Les rapports entre les symboles des codes et les nombres
sont de simples tableaux de correspondances convenus. De ce fait, ils sont moins appliqués aux
opérations arithmétiques. Ils sont principalement rencontrés dans les systèmes de communication
pour le contrôle de transmission/réception de données.
Code BCD (Binary Coded Decimal)
Dans le code BCD chaque chiffre décimal (0, 1, 2, 3, 4, 5, 6, 7, 8, 9) est codé en binaire à l’aide de
4 bits, comme le montre le tableau ci-dessous. Pour la conversion DCB vers Binaire, il suffit de
convertir chaque chiffre individuellement. La conversion Binaire vers DCB se fait en regroupant les
bits 4 par 4. Ainsi, 178DCB = 0001011110002 .
Code de Gray
Dans le code de Gray, deux termes successifs ne diffèrent que par un seul bit. Les termes ne
différant que par un seul bit sont appelés adjacents.
3.3. FONCTIONS ARITHMÉTIQUES
53
Code p parmi n
Dans ce code, à chaque nombre décimal correspondent n bits, dont p valent 1 et n − p valent
0. Il permet de détecter jusqu’à une erreur : si lors d’une communication, il y a réception d’un
nombre de 1 différent de p, cela signifie il y a eu une erreur de transmission. Le tableau 3.2 illustre
un exemple de ce code pour le cas n = 5 et p = 2.
Code à bits de parité
Dans ce code, un bit est ajouté aux symboles de départ de sorte que le nombre total de 1’s soit
pair (impair), si la parité convenue est paire (impaire). Le tableau 3.2 donne l’exemple pour 4 bits
d’information et une parité paire.
Décimal
Binaire
BCD
Gray
p parmi n
parité
n
DCBA
DCBA
DCBA
EDCBA
DCBAP
0
0000
0000
0000
00011
00000
1
0001
0001
0001
00101
00011
2
0010
0010
0011
01001
00101
3
0011
0011
0010
10001
00110
4
0100
0100
0110
00110
01001
5
0101
0101
0111
01010
01010
6
0110
0110
0101
10010
01100
7
0111
0111
0100
01100
01111
8
1000
1000
1100
10100
10001
9
1001
1001
1101
11000
10010
10
1010
-
1111
-
10100
11
1011
-
1110
-
10111
12
1100
-
1010
-
11000
13
1101
-
1011
-
11011
14
1110
-
1001
-
11101
15
1111
-
1000
-
11110
Tab. 3.2: Exemple de différents codes
3.3
Fonctions arithmétiques
La réalisation de fonctions arithmétiques est basée sur la décomposition de ces fonctions en
opérations booléennes élémentaires.
Attention : ne pas confondre les opérations booléennes et les opérations arithmétiques.
3.3.1
Additionneur
Considérons l’addition de deux nombres ai et bi codés sur 1 bit. Le résultat peut prendre les
valeurs 0, 1 ou 2, que l’on peut coder binaire comme 00, 01 et 10. Les deux bits de ce code sont
appelés bit de somme si (poids faible) et bit de retenue ri+1 (poids fort). A l’aide de ces deux bits,
l’addition s’exprime de la façon suivante :
ai + bi = 2 · ri+1 + si
54
CHAPITRE 3. OPÉRATEURS ARITHMÉTIQUES
L’addition peut être vue comme une fonction booléenne à deux entrées (ai et bi ) et à deux sorties
(si et ri+1 ). Cette fonction est appelée demi-additionneur. Ses caractéristiques sont résumées dans
le tableau 3.1.
Ri+1 = ai · bi
Si = ai ⊕ bi
ai
bi
Si
Ri+1
Valeur décimale
0
0
0
0
0
0
1
1
0
1
1
0
1
0
1
1
1
0
1
2
Fig. 3.1: Équations algébriques, table de vérité et schéma d’un demi-additionneur.
Nous pouvons généraliser cette structure pour décrire l’addition de deux mots A et B de tailles
supérieure à 1. Chacun des bits ai et bi sont additionnés un par un en commençant par les bits de
poids faible. Il faut pour cela répercuter à l’étape i + 1 l’éventuelle retenue provenant de l’addition
de ai et bi . Une variable supplémentaire ri représentant une retenue entrante est donc introduite.
Par analogie, le bit ri+1 est appelé retenue sortante.
A chaque itération i, le résultat de cette addition des nombres ai , bi et ri peut prendre les
valeurs 0, 1, 2 ou 3, que l’on code en binaire comme 00, 01 et 10, 11. En utilisant les notations précédentes, l’équation arithmétique de l’additionneur « 1 bit » avec retenue entrante (ou additionneur
« complet ») est alors :
ai + bi + ri = 2 · ri+1 + si
Nous présentons dans les tableaux suivants ( 3.3, 3.4 page ci-contre, 3.5 page suivante) la table de
vérité de l’additionneur complet ainsi que les tables de Karnaugh associées à ri+1 et si .
ai
bi
Ri
Si
Ri+1
Valeur décimale
0
0
0
0
0
0
0
0
1
1
0
1
0
1
0
1
0
1
0
1
1
0
1
2
1
0
0
1
0
1
1
0
1
0
1
2
1
1
0
0
1
2
1
1
1
1
1
3
Tab. 3.3: Table de vérité de l’additionneur complet
Nous observons sur les tables de Karnaugh que l’expression de la somme si n’est pas réductible,
3.3. FONCTIONS ARITHMÉTIQUES
55
ri \ai bi
00
01
11
10
0
0
1
0
1
1
1
0
1
0
Tab. 3.4: Table si
ri \ai bi
00
01
11
10
0
0
0
1
0
1
0
1
1
1
Tab. 3.5: Table ri+1
la forme en damier obtenue est caractéristique des fonctions de type ou-exclusif :
Si = ai ⊕ bi ⊕ ri
En ce qui concerne la retenue, pour donner un exemple « d’optimisation », nous allons supposer
l’existence d’une structure de calcul de la somme et tenter de mettre en facteur le « matériel » :
ri+1
= ai · bi + ri · bi + ri · ai = ai · bi + ri · bi · (ai + ai ) + ri · ai · (bi + bi )
= ai · bi + ri · (ai · bi + ai · bi ) + ri · (ai · bi + bi · ai ) = ai · bi + ri · (ai · bi + ai · bi )
= ai · bi + ri · (ai ⊕ bi )
Le schéma de l’additionneur complet s’en déduit :
Fig. 3.2: Exemple de schéma pour l’additionneur complet.
Pour des nombres de n chiffres, la sommation va entraîner une propagation de la retenue si
l’on adopte la structure série qui résulte de la mise en oeuvre de l’équation précédente. Dans
l’additionneur à retenue série (Ripple Carry Adder), on assiste à un phénomène de propagation de
la retenue (cf. Fig. 3.3 page suivante), facile à cerner si l’on étudie l’addition de tranches de bits
du type suivant : 11111111 + 00000001
Remarque : La structure proposée dans la Fig. 3.2 pour l’additionneur complet n’est pas
la seule possible. Suivant l’objectif visé par l’utilisateur, d’autres structures sont envisageables,
notamment dans le but d’accélérer la vitesse de calcul de la retenue qui conditionne le temps de
calcul total de l’additionneur.
3.3.2
Soustracteur
La soustraction de deux nombres ai et bi codés sur 1 bit donne un résultat pouvant prendre les
valeurs −1, 0 et 1. Nous pouvons formuler cette opération sous la forme :
ai − bi = −2 · ri+1 + di ,
56
CHAPITRE 3. OPÉRATEURS ARITHMÉTIQUES
Fig. 3.3: Additionneur à retenue série.
où ri+1 et di sont deux variables booléennes représentant respectivement la retenue sortante et la
différence.
Attention : Le bit de retenue ri+1 est interprété comme une valeur négative.
Cette fonction de deux entrées et deux sorties est appelée demi-soustracteur. Ses caractéristiques
sont résumées dans le tableau suivant :
Ri+1 = ai · bi
Di = ai ⊕ bi
ai
bi
Di
Ri+1
Valeur décimale
0
0
0
0
0
0
1
1
1
−1
1
0
1
0
1
1
1
0
0
0
Fig. 3.4: Equations algébriques, table de vérité et schéma d’un demi-soustracteur.
Nous pouvons généraliser cette structure pour décrire la soustraction de mots de taille supérieure
à 1. Pour cela il faut introduire une variable supplémentaire ri qui représente une retenue entrante.
L’équation générale du soustracteur « 1 bit » avec retenue entrante (ou soustracteur « complet »)
est alors :
ai − bi − ri = −2 · ri+1 + di
Nous présentons, dans les tableaux suivants, la table de vérité du soustracteur complet (Tab. 3.6 page
ci-contre) ainsi que les tables de Karnaugh associées à ri+1 ( 3.7 page suivante) et di ( 3.8 page
ci-contre).
Un raisonnement identique à celui utilisé dans le cas de l’additionneur aboutit aux équations :
Di
Ri+1
= ai ⊕ bi ⊕ ri ,
= ai · bi + ri · (ai ⊕ bi )
Un schéma du soustracteur complet s’en déduit (cf Fig. 3.5 page suivante).
3.3. FONCTIONS ARITHMÉTIQUES
57
ai
bi
Ri
Di
Ri+1
Valeur décimale
0
0
0
0
0
0
0
0
1
1
1
−1
0
1
0
1
1
−1
0
1
1
0
1
−2
1
0
0
1
0
1
1
0
1
0
0
0
1
1
0
0
0
0
1
1
1
1
1
−1
Tab. 3.6: Table de vérité du soustracteur complet
ri \ai bi
00
01
11
10
0
0
1
0
1
1
1
0
1
0
Tab. 3.7: Table di
ri \ai bi
00
01
11
10
0
0
1
0
0
1
1
1
1
0
Tab. 3.8: Table ri+1
Fig. 3.5: Schéma interne du soustracteur complet.
58
CHAPITRE 3. OPÉRATEURS ARITHMÉTIQUES
Chapitre 4
Du silicium aux transistors
4.1
4.1.1
Introduction
Historique
Le transistor MOS est un élément décisif dans l’évolution technologique de l’électronique. Celle
ci permet la réalisation de circuits de traitement d’informations de très grandes performances et de
très grande diffusion. Le moteur de cette évolution est la diminution des dimensions du transistor.
Nous verrons comment cette diminution géométrique entraîne une vitesse et une puissance de
traitement plus grandes pour un coût, au sens général, plus faible.
La technologie (mot qui désigne ici l’ensemble des procédés matériels aboutissant à la fabrication de circuits intégrés) CMOS sur Silicium domine très largement l’industrie de l’électronique.
Pourtant le premier transistor (contraction de l’anglais “transfer resistor”) construit en 1947 aux
Laboratoires Bell Telephone (aux États Unis) par Bardeen, Brattain et Shockley, fut un transistor
bipolaire à pointes. Le premier transistor MOS ne fut construit qu’en 1961, au même endroit par
Kahng et Atalla, bien que la première publication scientifique décrivant son principe de fonctionnement soit le fait de Lilienfeld en 1928.
Kilby de Texas Instruments en 1958 et Noyce de Fairchild Camera and Instrument en 1959
élaborèrent les premiers circuits intégrés bipolaires. Notons enfin que 2 ingénieurs de Fairchild,
Moore et Noyce, fondèrent Intel en 1968 pour y développer les premiers circuits intégres MOS.
4.1.2
Objectifs
À partir de lois et de principes physiques simples que nous rappellerons rapidement, nous
élaborerons deux modèles du transistor MOS :
• un modèle électrique nous permettant d’évaluer les performances (vitesse, consommation,
surface...) du circuit,
• à partir de ce modèle et dans le chapitre 5 page 83, nous élaborerons un modèle interrupteur
ou modèle logique nous permettant d’évaluer simplement la fonction logique réalisée par le
circuit.
4.1.3
Organisation de la leçon
Nous allons répondre aux questions suivantes :
• Comment fonctionne un circuit élémentaire à un transistor ?
• Quelle fonction électrique doit réaliser un transistor ?
• Quel phénomène physique utiliser pour celà ?
• Comment est construit un transistor ?
• Comment est modéliser son fonctionnement ?
59
60
CHAPITRE 4. DU SILICIUM AUX TRANSISTORS
4.2
Circuit élémentaire
Les systèmes de traitement de l’information utilisent, souvent de manière cachée mais quasi
exclusivement, des transistors. De la même façon, l’information est portée par la variation d’un
signal électrique. Ce signal peut être un courant, une tension, une quantité de charge, un champ
électrique et/ou magnétique. . . La variable porteuse d’information peut être l’amplitude, la fréquence, ou la phase. . . Afin de simplifier l’exposé, nous supposerons que l’information est portée
par l’amplitude de la tension du signal électrique.
Le schéma de la figure 4.1 représente le circuit électronique permettant de réaliser la fonction
élémentaire inversion/amplification.
Fig. 4.1: Circuit élémentaire inverseur
Il est constitué de :
• une alimentation stabilisée, qui délivre une tension continue VDD , quel que soit le courant
sortant IDD (source de tension constante idéale),
• une résistance de charge R, aux bornes de laquelle le courant qui la traverse IR , engendre
une tension VR (loi d’Ohm) : VR = R · IR ,
• un transistor T, dont le modèle est un quadripôle linéaire constitué de :
– dipôle de sortie : une source de courant dépendante linéairement de la tension d’entrée Ve :
IT = Gm · Ve ,
– dipôle d’entrée : un prélèvement de la tension d’entrée Ve .
Ce type de quadripôle est appelé une transconductance idéale.
Analysons le fonctionnement de ce circuit :
• en utilisant la loi des mailles, puis la loi d’Ohm, nous pouvons écrire :
VDD = VR + Vs = R · IR + Vs
• les seuls éléments connectés sur le noeud de sortie sont la charge R et le dipôle de sortie du
transistor T. Ainsi, (loi des noeuds) nous pouvons écrire :
IDD = IR = IT
• utilisons la transconductance idéale Gm du transistor :
VDD = R · Gm · Ve + Vs
• nous obtenons la caractéristique de transfert Vs = f (Ve ) du circuit :
Vs = VDD − R · Gm · Ve
Ce circuit est utilisé en électronique analogique pour réaliser, dans certaines conditions, la
fonction amplification, dont le principal paramètre est le gain en tension :
Gv =
δVs
= −Gm · R
δVe
De même il est utilisé en électronique numérique pour réaliser la fonction inversion logique.
Dans ce type de traitement l’information est portée par les deux états extrêmes de l’amplitude de
4.3. RAPPELS DE PHYSIQUE SIMPLIFIÉE
61
tension :
Ve = VDD = ”1” ⇒
⇒
⇒
Ve = 0V = ”0” ⇒
⇒
⇒
IT = IT max
VR = R · IT max = −VDD
Vs = 0V = ”0”
IT = 0A
VR = 0V
Vs = VDD = ”1”
Poursuivons l’exemple de l’électronique numérique : le traitement de l’information consiste à
faire commuter (dans certaines conditions qui spécifient la fonction logique réalisée) la tension du
noeud de sortie de 0V à VDD ou de VDD à 0V. Le principal paramètre de performance du circuit
logique est le temps mis pour passer d’un état logique à l’autre (vitesse).
Nous utilisons une modélisation simple du nœud de sortie où les seuls éléments passifs qui y
sont connectés sont les capacités parasites des transistors et des connexions et les équations de
constitution du condensateur :
• condensateur idéal : Q = C · V ,
• courant : I = dQ
dt ,
nous permettent d’obtenir :
• le temps de commutation : dt = C · dV
i
où :
• dV = ±V DD (suivant la transition ”0” 7→ ”1” ou ”1” 7→ ”0”),
• C = capacité totale équivalente du noeud commutant,
• i = courant traversant le dipôle de sortie du transistor et chargeant C.
Il ne reste plus ( !) qu’à identifier et caractériser i et C.
Dans ce chapitre nous allons donc voir comment le transistor MOS peut être réalisé à partir de
matériaux semi-conducteurs tels que le Silicium.
Pour cela nous rappellerons quelques propriétés élémentaires des matériaux semi-conducteurs
intrinsèques et dopés. En annexe nous trouverons des explications plus fournies autour de ces
rappels (densité de courant, conductivité, résistivité, dopages...).
A l’aide de ces notions, nous décrirons la structure et le fonctionnement du transistor MOS de
manière à disposer d’un modèle simple et quantifiable de l’intensité du courant de sortie et des
capacités parasites du transistor MOS.
4.3
4.3.1
Rappels de physique simplifiée
Notion de courant
Un courant électrique dans un matériau est un déplacement de charges libres. Il nécessite
l’existence de :
• charges libres, c’est à dire ne participant pas aux liaisons de valence de la structure cristalline,
donc libres de s’y déplacer,
• d’une force capable de les entraîner.
Pour simplifier, il existe deux types de courant : le courant de diffusion et celui de conduction.
Diffusion
La force de diffusion est due à un gradient de concentration (densité) de charges. Elle entraîne
les porteurs libres vers les régions de moindre concentration, créant ainsi un courant de diffusion.
C’est celle qui est utilisée dans la jonction PN (voir plus loin) et dans l’effet bipolaire.
62
CHAPITRE 4. DU SILICIUM AUX TRANSISTORS
Conduction
Le champ électrique E engendre sur un porteur libre une force F :
F = qc · E
Compte tenu des frottements et des collisions avec le réseau cristallin, le porteur libre atteint
rapidement une vitesse limite vc :
vc = µc · E
La densité du courant de conduction ainsi créé est J :
J = σ · E = nc · qc · µc · E
• E est le champ électrique en V · m−1 ,
• qc est la charge du porteur libre en C (Coulomb),
• F est la force d’entraînement en N,
• µc est sa mobilité dans ce matériau en m2 · V −1 · s−1 ,
• vc est sa vitesse en m · s−1 ,
• σ est la conductivité en Ω−1 · m−1 ou en S · m−1 de ce matériau pour ces charges libres,
• nc est la densité (concentration par unité de volume) des charges libres en m−3 ,
• J est la densité du courant de conduction en A · m−2 ,
Ainsi nous pouvons modéliser un courant en connaissant :
• la technologie du matériau par :
– la mobilité de ses porteurs libres (µ),
– leur densité dans la région active (n),
• la charge unitaire de ces porteurs (qc ),
• l’action appliquée : ici le champ électrique (E)
4.3.2
Conducteur, semi-conducteur, dopages
Fig. 4.2: Résistance d’un tube
La résistance (en Ohms, Ω) d’un tube de longueur L, dont l’aire de la section est AS , dans un
matériau de conductivité σ est :
1 L
R= ·
σ AS
Nous allons expliquer succinctement le mode de conduction à la température ambiante dite
normale et calculer la résistance d’un même tube de longueur L, d’aire de section AS pour 4 types
de matériau :
• un conducteur métallique,
• un semi-conducteur pur, le Silicium,
• du Silicium dopé N,
• du Silicium dopé P.
La charge de l’électron est qe et la charge élémentaire est q =| qe | (voir la valeur des paramètres
communs dans le tableau 4.1 page ci-contre.
Conducteur
Supposons que le matériau utilisé soit un métal de densité atomique Nm et dans lequel la
mobilité des électrons est µm . Supposons que chaque atome métallique fournisse un électron libre,
ainsi la densité des électrons libres est nm = Nm (voir le tableau 4.2 page suivante).
4.3. RAPPELS DE PHYSIQUE SIMPLIFIÉE
Dimensions
63
Charges
L = 10mm
AS = 1mm2
Température
(a = 10−18 )
q = qtr = −qe = 0, 16 aC
T = 300K
ou θ = 27◦ C
Tab. 4.1: paramètres communs
En résumé, pour un métal conducteur (T = 300K)
un électron libre par atome métallique : nm = Nm
Technologie
27
Nm = 50 · 10 m
2
µm = 0, 15m V
Résistance
−3
−1 −1
R=
s
L
1
·
≈ 8µΩ
q · nm · µm AS
Tab. 4.2: paramètres du conducteur
Semi-conducteur pur
Le Silicium (Si) à l’état solide est un semi-conducteur, il forme un cristal de structure tétraédrique. Il appartient à la colonne IV de la classification périodique des éléments. Chaque atome
Si est ainsi relié à ses 4 plus proches voisins par l’intermédiaire des 4 électrons de sa couche périphérique.
Un semi-conducteur est isolant au froid absolu (T = 0K) c’est à dire qu’aucun électron n’y
est libre. À la température normale : T = 300K, θ = 27◦ C l’énergie fournie est telle que certains
des électrons périphériques sont libres laissant autant d’atomes ionisés Si+ . À son tour l’ion Si+
peut capter l’électron d’un atome Si voisin. Le manque d’électron (l’ion Si+ ) peut ainsi se déplacer
comme l’ion e− , et il peut être modélisé par un porteur libre : le trou tr+ .
La densité atomique du Silicium cristallisé est NSi . La densité de paires électrons-trous libres à
la température normale est ni = pi . L’indice i signifie que le Silicium est pur (intrinsèque). ni et pi
varient très fortement avec la température (voir la valeur de ces paramètres dans le tableau 4.3).
Dans un semi-conducteur il existe donc deux types de courant : un courant d’électrons et un
courant de trous. Notons enfin que la charge du trou est égale à l’opposé de celle de l’électron :
qtr = −qe = q.
En utilisant les mêmes dimensions qu’au paragraphe 4.3.2 page précédente et les paramètres
typiques d’une technologie CMOS 0, 5µm (voir le tableau 4.3), nous calculons la résistance du tube
de Silicium pur.
Plus d’explications sur le calcul de cette résistance sont données dans l’annexe 22 page 225.
Semi-conducteur dopé N
Le dopage N consiste à remplacer un certain nombre d’atomes de Silicium par des atomes
donneurs en concentration ND . Ces atomes possédent 5 électrons sur leur couche périphérique. Ils
appartiennent donc à la colonne V de la classification périodique des éléments.
En résumé, pour le Silicium intrinsèque (T = 300K)
la densité des e− libres est égale à celle des tr+ libres : ni = pi
Technologie
27
Résistance
−3
NSi = 50 · 10 m
ni = pi = 15 · 10+15 m−3
2
−1 −1
2
−1 −1
µn = 0, 015m V
µp = 0, 006m V
s
R=
L
1
·
≈ 200M Ω
q · ni · (µn + µp ) AS
s
Tab. 4.3: paramètres du Silicium pur
64
CHAPITRE 4. DU SILICIUM AUX TRANSISTORS
En résumé, pour le Silicium dopé N (T = 300K)
−
les e
sont majoritaires les tr+ sont minoritaires : nN ≈ ND pN
Technologie
21
Résistance
−3
ND = 70 · 10 m
2
µN = 0, 015m V
−1 −1
s
R≈
1
L
·
≈ 60Ω
q · ND · µN AS
Tab. 4.4: paramètres du Silicium dopé N
Quatre des cinq électrons périphériques des atomes donneurs participent aux liaisons covalentes
avec les 4 atomes de Silicium voisins. Il suffit d’une énergie très faible pour que le 5e électron se
libère. L’atome dopant de type N est ainsi un donneur (D) d’électron libre.
À 0K aucun atome du cristal de Silicium dopé n’est ionisé, il n’y a pas de porteur libre. À la
température normale :
• certains atomes de Silicium s’ionisent, libérant chacun un électron et un trou libres appelés
porteurs intrinsèques (même phénomène thermique que pour le Silicium pur),
• tous les atomes dopants s’ionisent, libérant chacun un électron et laissant chacun un atome
fixe chargé positivement.
Le dopage de type N crée ainsi un déséquilibre entre les densités de porteurs libres :
• les porteurs majoritaires sont les électrons de densité : nN ≈ ND ,
n2i
,
• les porteurs minoritaires sont les trous de densité : pN ≈ ND
La densité de dopage N couramment utilisée pour les sources et les drains est typiquement :
ND = NS = 10 · 10+24 m−3 .
De même la densité de dopage N des substrats (Bulk, caisson) :
NB = 150 · 10+21 m−3 .
Ceci est à comparer avec la concentration des porteurs intrinsèques :
ni = pi = 15 · 10+15 m−3 .
Rappelons enfin, la densité atomique du Silicium :
NSi = 50 · 10+27 m−3 .
La neutralité électronique se vérifie en effectuant le bilan des charges :
• les charges positives sont :
– les trous libres pN ,
– les atomes dopants ionisés fixes ND .
• charges négatives sont :
– les électrons libresnN .
Dans les mêmes conditions qu’au paragraphe précédent nous calculons la résistance du tube de
Silicium dopé N (tableau 4.4).
Semi-conducteur dopé P
Le dopage P consiste à remplacer un certain nombre d’atomes de Silicium par des atomes
accepteurs en concentration NA . Ces atomes possédent 3 électrons sur leur couche périphérique.
Ils appartiennent donc à la colonne III de la classification périodique des éléments.
Quatre places sont disponibles pour les liaisons covalentes de la maille élémentaire de Silicium.
Les trois électrons périphériques des atomes accepteurs participent à ces liaisons. Il suffit d’une
énergie très faible pour qu’un 4e électron soit “emprunté” à un atome de Silicium voisin, qui se
trouve ainsi ionisé Si+ , c’est à dire transformé en trou libre. L’atome dopant de type P est ainsi
un accepteur (A) d’électron, un donneur de trou libre.
À 0K aucun atome du cristal de Silicium dopé n’est ionisé, il n’y a pas de porteur libre. À la
température normale :
4.3. RAPPELS DE PHYSIQUE SIMPLIFIÉE
65
En résumé, pour le Silicium dopé P (T = 300K)
les tr
+
sont majoritaires les e− sont minoritaires : pP ≈ NA nP
Technologie
21
NA = 70 · 10 m
2
µP = 0, 006m V
Résistance
−3
−1 −1
R≈
s
1
L
·
≈ 150Ω
q · NA · µP AS
Tab. 4.5: paramètres du Silicium dopé P
• certains atomes de Silicium s’ionisent, libérant chacun un électron et un trou libres appelés
porteurs intrinsèques (même phénomène thermique que pour le Silicium pur),
• tous les atomes dopants s’ionisent, produisant chacun un trou et laissant chacun un atome
fixe chargé négativement.
Le dopage de type P crée ainsi un déséquilibre entre les densités de porteurs libres :
• les porteurs majoritaires sont les trous de densité : pP ≈ NA ,
n2
• les porteurs minoritaires sont les électrons de densité : nP ≈ i ,
NA
Les ordres de grandeur des densités de dopage sont les mêmes que précédemment. La neutralité
électronique se vérifie de la même manière que précédemment.
Dans les mêmes conditions qu’au paragraphe 4.3.2 page 63 nous calculons la résistance du tube
de Silicium dopé P (tableau 4.5).
Notons que les deux dernières résistances sont dans le rapport inverse des mobilités.
4.3.3
La jonction PN
L’interface entre deux zones semi-conductrices, l’une dopée N et l’autre dopée P, est appelée
jonction PN diode. L’anode (A) correspond à la zone dopée P, la cathode (K) à la zone dopée N.
Mode de fonctionnement
Polarisation directe : si VP N est positive la diode est polarisée en direct elle est passante,
car un courant important la traverse (voir le modèle du courant).
Polarisation inverse : si VP N est négative la diode est polarisée en inverse ou bloquée,
car un courant extrêmement faible la traverse (voir le modèle du courant).
Modèle du courant
C’est le modèle de Shockley basé sur la modélisation du courant de diffusion :
Ij = Aj · Js · e
VP N
uth
−1
(4.1)
• Aj est l’aire de la jonction (l’interface N-P),
• Js est la densité du courant de saturation inverse, caractéristique de la technologie :
Js ≈ 1aA · µm−2
• le potentiel thermodynamique à T = 300K : uth = kT
q ≈ 26mV
Notons que :
• en direct avec VP N uth , le courant varie exponentiellement : décuplement de l’intensité
tout les 60mV : avec Ij1 = f (VP N ) et Ij2 = f (VP N + 60mV ) nous obtenons : Ij2 = 10 · Ij1 ,
• en inverse l’intensité est quasiment constante : Ij ≈ −Aj · Js .
66
CHAPITRE 4. DU SILICIUM AUX TRANSISTORS
En résumé, la jonction PN en inverse VP N ≤ 0
Coupe technologique
Dimensions
Aj = W · L
Schéma équivalent
Technologie
0
Cj0
Modèle
−2
= 0, 8f F · µm
0
Cj = Aj · Cj0
Tab. 4.6: paramètres d’une jonction PN en technologie CMOS 0, 5µm
Modèle capacitif
Le modèle capacitif de la jonction ne sera ici présenté que pour la polarisation inverse car le
transistor MOS est constitué de jonctions toutes polarisées à VP N ≤ 0 en mode de fonctionnement
normal.
En polarisation inverse, il se forme autour de l’interface des deux zones dopées une région déserte, où la densité de porteurs libres est pratiquement nulle. La zone déserte se comporte quasiment
comme un isolant : le diélectrique de la capacité équivalente Cj .
Un peu plus d’informations sur le fonctionnement de la jonction PN, sont données dans l’annexe 22 page 225.
• en inverse : l’épaisseur de la zone déserte xD = f (VP N ) dépend de la valeur de VP N sa valeur
est minimale xD0 pour VP N = 0V , ainsi la valeur de la capacité est elle maximale
• la permittivité relative du Silicium déserté : κSi = 11, 9
κSi · ε0
0
• la capacité surfacique maximale : Cj0
=
xD0
• où la permittivité du vide est : ε0 = 8, 854pF · m−1
4.4
Composants MOS
Les matériaux étudiés au paragraphe 4.3.2 page 62 nous permettent de créer des dipôles de
résistance fixe une fois choisie leur technologie et déterminées leurs dimensions. Si un potentiel est
appliqué à leurs bornes et qu’il ne produit pas un champ électrique trop élevé (environ 5M V · m−1 ,
soit 5V · µm−1 ) la loi d’Ohm, V = R · I, peut s’appliquer et permettre de calculer le courant
traversant le dipôle c’est la première solution décrite ci dessous.
4.4.1
Première étape : la résistance
Dans un barreau de Silicium faiblement dopé N (Si N-), le suBstrat B (bulk en anglais), disposons deux prises de contact de Silicium fortement dopées N (Si N+) : la source (S) et le drain (D)
(voir figure 4.3 page suivante).
Ces 3 zones sont dopées de même type. Nous pouvons y faire circuler un courant formé majoritairement d’électrons qui s’écoulent de la source vers le drain, par conduction due au champ
électrique longitudinal engendré par VDS .
Les dimensions (la largeur W, la longueur L et l’épaisseur e) de la partie du substrat située
entre D et S, et les paramètres technologiques du matériau dont est fait le substrat, déterminent
la résistance équivalente RDS ainsi que nous l’avons fait au paragraphe 4.3.2 page 63, et nous
obtenons : VDS = RDS IDS .
Nous n’avons pas de moyen externe au dipôle DS de commander l’intensité IDS .
4.4. COMPOSANTS MOS
67
Fig. 4.3: Résistance en technologie MOS
4.4.2
Seconde étape : la diode
Utilisons maintenant un substrat de Silicium faiblement dopé P (Si P-). Appliquons la même
polarisation que précédemment (voir figure 4.4). Les deux diodes DS et DB sont respectivement
polarisées l’une à 0V l’autre en inverse, aucun courant ne peut traverser ces dipôles.
Fig. 4.4: Diodes en technologie MOS
4.4.3
Troisième étape : le transistor bipolaire
Sur la structure précédemment décrite, où momentanément, nous appellerons la Source “Émetteur” (E), et le Drain “Collecteur” (C), créons une troisième connexion la “Base” (B), pour polariser
en direct la jonction BE. Nous venons de construire un transistor bipolaire où la zone P la Base
(B) : voir figure 4.5 commande le courant.
Fig. 4.5: Transistor bipolaire en technologie MOS
La tension VBE (quelques dixièmes de Volts) commande le courant de la jonction BE (en direct).
Des électrons sont injectés massivement dans la Base où ils sont minoritaires. La tension VCE (de
quelques Volts à quelques dizaines de volts) est telle que la jonction BC est fortement polarisée en
inverse, ce qui “détourne” les électrons du courant IBE injectés dans la Base, vers le Collecteur et
crée un courant ICE entre Collecteur et Émetteur.
Nous avons réalisé un dispositif modulant le courant de sortie ICE , par la tension d’entrée VBE .
Il s’agit bien d’une transconductance, malheureusement il existe un courant parasite (les trous de
68
CHAPITRE 4. DU SILICIUM AUX TRANSISTORS
IBE ) en l’entrée (la base). L’étape suivante consiste à isoler cette entrée afin d’annuler l’intensité
du courant parasite d’entrée.
4.5
Le transistor MOS
Quatrième étape : le transistor MOS
La quatrième étape consiste à faire croitre, au-dessus de la partie du substrat (du Semi conducteur Si faiblement dopé P) comprise entre Source et Drain, une couche fine d’isolant : de la silice
(Oxyde de Silicium, SiO2 ). Sur cet isolant déposons une couche conductrice : du Métal, comme
dans le temps, ou du Silicium très fortement dopé donc poly-cristallin, appelé polysilicium (poly)
tel que cela est fait maintenant. Appelons grille (G) la couche conductrice de polysilicium, et notons
les initiales de ces 3 matériaux : MOS (voir figure 4.6).
Fig. 4.6: le transistor MOS
La structure grille-isolant-substrat est une capacité MOS formée de :
• un isolant :
– d’épaisseur : tox ,
– de permittivité relative : κox = 3, 9
·ε0
0
– de capacité surfacique : Cox
= κox
tox
– où la permittivité du vide est : ε0 = 8, 854pF · m−1
• entre deux plaques conductrices (armatures) : la Grille et le suBstrat.
4.5.1
Le fonctionnement des transistors CMOS
Le transistor MOS à canal N
• VTN est la tension de seuil du NMOS.
Elle est caractéristique de la technologie dans laquelle le transistor est
construit : +0, 2V < VTN < +2V
• Si VGS > VTN , le canal existe, le
NMOS est passant.
• Si VGS ≤ VTN , le canal n’existe pas,
le NMOS est bloqué.
4.5. LE TRANSISTOR MOS
69
L’application d’une tension VGB supérieure à VTN aux bornes du condensateur CGB entraîne
l’apparition de charges positives sur la Grille et de charges de signe opposé (e− ) dans le substrat
P. Une zone de type N, le canal (zone d’inversion), apparaît ainsi dans le substrat P. Une pseudo
continuité N existe entre la Source et le Drain. Les électrons du canal se déplacent de la Source
vers le Drain par la conduction engendrée par le champ électrique longitudinal lui même créé par
VDS . Il s’agit d’un transistor NMOS, c’est à dire un transistor MOS à canal N (canal d’électrons).
Le transistor MOS à canal P
Construisons le dual du transistor NMOS le transistor PMOS. Le substrat est faiblement dopé
N (Si N-). Source et Drain sont fortement dopées P (Si P+). Isolant et Grille sont construits de la
même façon que pour le NMOS.
• VTP est la tension de seuil du PMOS.
Elle est caractéristique de la technologie dans laquelle le transistor est
construit : −2V < VTP < −0, 2V
• Si VGS < VTP , le canal existe, le
PMOS est passant.
• Si VGS ≥ VTP , le canal n’existe pas,
le PMOS est bloqué.
L’application d’une tension VGB inférieure à VTN aux bornes du condensateur CGB entraîne
l’apparition de charges négatives sur la Grille et de charges de signe opposé (tr+ ) dans le substrat
N. Une zone de type P, le canal (zone d’inversion), apparaît ainsi dans le substrat N. Une pseudo
continuité P existe entre la Source et le Drain. Les trous du canal se déplacent de la Source vers le
Drain par la conduction engendrée par le champ électrique longitudinal lui même créé par VDS . Il
s’agit d’un transistor PMOS, c’est à dire un transistor MOS à canal P (canal de trous).
La technologie CMOS
Le C de CMOS veut dire Complémentaire. Une technologie CMOS est un procédé qui permet
d’obtenir, sur une même puce de Silicium, des transistors NMOS et des transistors PMOS. Le
substrat d’une technologie CMOS est faiblement dopé P (nous pouvons y graver directement des
NMOS). Le substrat N (pour graver les PMOS) est une zone faiblement dopée N (Si N-) : le caisson,
dans le substrat (Si P-).
Fig. 4.7: Coupe simplifiée d’une technologie CMOS
70
CHAPITRE 4. DU SILICIUM AUX TRANSISTORS
4.5.2
Connexions des transistors
NMOS
PMOS
Tab. 4.7: Connexions des transistors CMOS
• Le caisson dopé N- (le substrat B) des PMOS leurs est commun.
Il est polarisé à la tension la plus positive du circuit : VDD ,
• Le substrat (B) dopé P- des NMOS leurs est commun.
Il est polarisé à la tension la plus négative du circuit : VSS = 0V parfois VSS = −VDD ,
• Le Drain (D) des transistors NMOS est toujours polarisé à une tension supérieure à celle de
leur Source (S),
• Le Drain (D) des transistors PMOS est toujours polarisé à une tension inférieure à celle de
leur Source (S).
4.6
Modèle électrique
Dans ce qui suit, nous nous efforcerons d’expliquer les phénomènes mis en jeu pour le cas du
transistor NMOS. Nous n’élaborerons pas les équations, pour cela nous pouvons nous référer aux
Leçons des modules SC ou PST, aux TD du module SC, ou à la bibliographie (voir 4.8 page 81).
Pour le transistor PMOS nous nous contenterons de présenter les modèles.
4.6.1
Les jonctions
Fig. 4.8: Jonctions DB et SB isolées
Les jonctions source-substrat (SB) et drain-substrat (DB) sont des diodes à polarisation nulle
ou inverse. Il se développe donc de part et d’autre de l’interface N-P, une zone déserte (z. d.) qui
les isole du reste du substrat.
Cependant un courant de fuite extrêmement faible mais non nul, circule au travers de ces
jonctions (voir en annexe). Ce courant peut-être non négligeable dans certaines applications comme
le point mémoire d’une DRAM.
4.6.2
Formation du canal : la capacité MOS CGB
Pour comprendre le phénomène de formation du canal d’e− ) dans le substrat P entre source
et drain, considérons la capacité MOS Grille-suBstrat CGB évoquée au paragraphe ?? page ??.
La grille et le substrat jouent le rôle des armatures conductrices du condensateur et l’isolant de
grille celui du diélectrique. Nous allons étudier son comportement statique, c’est à dire pour des
4.6. MODÈLE ÉLECTRIQUE
71
variations lentes de VGB . Attention le modèle utilisé ici ne peut s’appliquer que pour le cas de la
formation du canal.
Coupe technologique
Dimensions
W
L
Modèle
Technologie
Capacité maximale
épaisseur de l’isolant de grille :
tox = 10nm
capacité surfacique de l’isolant de grille :
0
CGB = W · L · Cox
0
= 3, 5f F · µm−2
Cox
Tab. 4.8: La capacité MOS CGB
0
=
La capacité surfacique de l’isolant est Cox
ε0 · κox
, où :
tox
• constantes physiques :
– permittivité du vide : ε0 = 8, 854pF · m−1 ,
– permittivité relative de l’isolant de grille (oxyde de silicium : SiO2 ) : κox = 3, 9.
• paramètre technologique (CMOS 0, 5µm) :
– épaisseur de l’isolant de grille : tox = 10nm.
L’application d’une tension VGB sur les armatures du condensateur CGB engendre l’apparition
de charges en quantités de valeurs absolues égales :
• positives sur l’armature connectée au pôle + du générateur VGB ,
• négatives sur l’armature opposée, connectée au pôle - du générateur. VGB
Notons les valeurs particulières de VGB caractéristiques de la technologie :
• VF B typiquement : −0, 5V < VF B < +0, 5V , la tension de “bande plate”.
• VTN typiquement : +0, 2V < VTN < +2V , la tension de seuil.
Étudions maintenant l’action de VGB sur CGB et sur la présence de porteurs libres.
Transistor bloqué : voir tableau 4.9 page suivante
Une quantité Qg de charges libres positives est injectée sur la grille. Une quantité Qd de charges
négatives apparaît sur l’autre armature du condensateur CGB dans le substrat Si P-. Ces dernières
proviennent de la désertion des tr+ majoritaires du substrat (charges libres positives) qui ont laissé
les atomes accepteurs ionisés (A− ) fixes dans le monocristal. À cet endroit la densité de porteurs
libres est donc nulle, c’est une zone déserte (z. d.). Nous disons que la couche de substrat sous
l’isolant est en régime de désertion. Aucune continuité électrique n’est possible entre la source et
le drain. Le transistor est bloqué.
Transistor passant (Canal créé) : voir tableau 4.9 page suivante
Au-delà de VTN , la tension VGB injecte sur la grille une quantité Qg de charges libres positives
qui dans le substrat est compensée par :
72
CHAPITRE 4. DU SILICIUM AUX TRANSISTORS
Désertion : VF B < VGB ≤ VTN
Inversion : VGB > VTN
Tab. 4.9: Régimes de la capacité MOS
• Qd la charge d’espace (des atomes accepteurs ionisés A− fixes) de la zone déserte,
• Qi la charge d’inversion du canal (les électrons libres situés sous l’isolant de grille, dans la
zone désertée par les trous).
Le canal est considéré comme formé, les électrons sont devenus majoritaires, et nous disons que
la couche sous l’isolant est en régime d’inversion.
Modèle capacitif de CGB : Nous obtenons entre Grille et suBstrat deux capacités en série :
CGC (entre Grille et Canal) et CCB (entre canal et suBstrat). CGC est une capacité dite “géomé0
· W · L). CCB est une capacité dite “électrique” car sa valeur
trique” de valeur fixe (CGC = Cox
dépend de VGB . La mesure du rapport CGB /CGC = f (VGB ) permet d’extraire les paramètres
technologiques VT et VF B .
4.6.3
Le courant drain-source (VGB > VTN )
Le canal quand il existe, est un ensemble de charges libres mais statiques. Encore faut-il les
entraîner par l’action du champ électrique longitudinal entre drain et source (produit par VDS ),
pour obtenir un courant IDS .
4.6.4
Le condensateur élémentaire
Le canal existe, et le courant drain-source IDS est un courant de conduction formé par :
• les charges libres injectées par l’effet capacitif du condensateur CGB polarisé par la tension
VGB ,
• le champ électrique E le long du canal et créé par VDS (pour le canal NMOS : VD > VS ).
Nous nous contenterons ici, de modéliser la quantité élémentaire de charges libres le long du
canal, afin d’identifier les principaux régimes de conduction du transistor.
Fig. 4.9: Condensateur élémentaire cgb
4.6. MODÈLE ÉLECTRIQUE
4.6.5
73
Calcul de IDS
Choisissons un axe 0y le long du canal partant de la source (où y = 0) vers le drain (où y = L).
Considérons un condensateur élémentaire cgb de dimensions W · dy, situé à la distance y de la
source.
L’armature supérieure du condensateur élémentaire est constituée d’une portion équivalente de
la grille et l’armature inférieure d’une portion équivalente du canal. L’application de la tension
VGB engendre une différence de potentiel VI (y) aux bornes de l’isolant de grille. Rappelons que
la couche d’inversion (le canal) est créée (VGB > VTN ), et que le bilan des densités de charges du
condensateur élémentaire cgb est :
• charges positives sur la grille élémentaire : dQg ,
• charges négatives dans le substrat :
– ions dopants fixes (charge d’éspace dans la zone déserte) : dQd ,
– électrons libres du canal : dQi .
• dQg = −dQd − dQi
Calculons dQi (y) la densité des charges d’inversion :
0
dQi (y) = −Cox
· W · dy · VI (y).
Pour VDS ≥ 0V , VI (y) n’est pas constante le long du canal. En effet, si le potentiel est le
même sur toute la surface de grille (l’armature supérieure de CGB ) la différence de potentiel VDS
le long du canal entre drain et source (l’armature inférieure) n’est pas nulle. Le canal n’est pas un
conducteur, ce qui court-circuiterait drain et source, et en ferait un parfait interrupteur fermé.
Soit V (y) le potentiel du substrat juste sous l’isolant, à la distance y de la source :
VGB = VI (y) + V (y).
V (y) augmente au fur et à mesure que l’on se déplace de la source vers le drain. Soient VSB le
potentiel de la source et VDB celui du drain :
• V (y = 0) = VSB près de la source,
• V (y = L) = VDB près du drain.
Ainsi la densité des électrons libres injectés dans le canal (VGB > VTN ) est elle :
0
· W · dy · [VGB − VTN − V (y)] en y entre source et drain (0<y<L),
• dQi (y) = −Cox
0
· W · dy · [VGB − VTN − VSB ] près de la source (y=0),
• dQi (y = 0) = −Cox
0
· W · dy · [VGB − VTN − VDB ] près du drain (y=L).
• dQi (y = L) = −Cox
Lorsque y croît de 0 à L, V (y) croît de VSB à VDB . Le facteur [VGB − VTN − V (y)] décroît, de
même que |dQi (y)|.
Supposons que la densité des porteurs libres soit constante dans la couche d’inversion (le canal).
La décroissance de |dQi (y)| signifie que l’épaisseur du canal diminue de la source vers le drain.
Maintenant pour simplifier, nous imposons VS = 0V . Alors VGB = VGS . La charge élémentaire
d’inversion s’écrit :
0
• dQi (y) = −Cox
· W · dy · [VGS − VTN − V (y)]
y varie de 0 à L et V (y) varie de 0V à VDS . |dQi (y)| diminue bien de la source vers le drain.
Positionnons nous près du drain où V (y = L) = VDS . Pour chaque VGS il existe une valeur VDSsat
de VDS telle que dQi (y = L) s’annule, c’est à dire pour laquelle l’épaisseur du canal est nulle
(pincement du canal) :
0
• dQi (y = L) = −Cox
· W · dy · VGS − VTN − VDSsat = 0 ⇒ VDSsat = VGS − VTN
VDSsat est la tension de pincement ou tension de saturation, elle dépend de VGS .
Régime quadratique : VDS < VGS − VTN
Soient :
• q = |qe | la charge élémentaire (en C Coulomb),
• µ0N la mobilité des électrons dans le canal (en m2 · V −1 · s−1 ),
• n la densité (constante) des électrons dans le canal (en m−3 ),
• IDS l’intensité (constante) du courant dans le canal (en A),
• s(y) l’aire de la section du canal en y (en m2 ),
74
CHAPITRE 4. DU SILICIUM AUX TRANSISTORS
• J(y) la densité du courant dans le canal en y (en A · m−2 ),
• E(y) le champ électrique longitudinal en y, du à V (y) (en V · m−1).
Nous pouvons ainsi écrire :
• relation entre l’intensité et la densité de courant : IDS = s(y) · J(y)
• définition de la densité du courant de conduction : J(y) = −n · q · µ0N · E(y)
• définition du champ électrique : E(y) = − dVdy(y)
• report dans l’expression de IDS : IDS = +n · q · µ0N · s(y) dVdy(y)
• enfin : IDS · dy = +n · q · µ0N · s(y) · dV (y)
Explicitons la charge élémentaire d’inversion dQi (y) en fonction des grandeurs définies plus
haut :
0
• dQi (y) = −n · q · s(y) · dy = −Cox
· W · dy [VGS − VTN − V (y)]
0
• ⇒ n · q · s(y) = Cox · W · [VGS − VTN − V (y)]
Pour trouver IDS nous intégrons le long du canal, c’est à dire pour y variant de 0 à L et pour
V (y) variant de 0V a VDS :
0
• IDS · dy = µ0N · Cox
· W · [VGS − VTN − V (y)] · dV (y)
Ce qui donne :
W
VDS
0
IDS = µ0N · Cox
·
· VGS − VTN −
· VDS
(4.2)
L
2
D’autre part, à l’aide de la tangente à l’origine de la caractéristique IDS = f (VDD , VDS ), pour
VGS = VDD , nous définissons la résistance RDS0N , qui nous sera utile dans le module ENI (voir le
tableau 4.10).
Coupe technologique
Dimensions
Technologie
capacité surfacique
W
Caractéristique de sortie
de l’isolant de grille
Modèle
0
IDS = µ0N · Cox
·
· VGS − VTN −
VDS
2
0
Cox
= 3, 5f F · µm−2
mobilité en surface
L
W
L
des électrons
RDS0N
∂IDS
=
∂VDS
−1
VGS =VDD ,VDS →0
µ0N = 14, 3 · 10−3 · m+2 · V −1 · s−1
tension de seuil
VTN = +0, 7V
=
µ0N ·
Tab. 4.10: Transistor NMOS en régime quadratique
0
Cox
L
· W · (VDD − VTN )
· VDS
4.6. MODÈLE ÉLECTRIQUE
75
Régime de pincement : VDS = VDSsat = VGS − VTN
Lorsque VDS = VDSsat = VGS − VTN , l’épaisseur du canal est nulle au droit du drain, le point
de pincement est en y = L. VDSsat est la tension de saturation. Voir le tableau 4.11
Coupe technologique
Dimensions
Caractéristique de sortie
Technologie
Modèle
capacité surfacique
W
de l’isolant de grille
0
= 3, 5f F · µm−2
Cox
mobilité en surface
L
des électrons
IDSsat =
0
W
µ0N · Cox
2
·
· (VGS − VTN )
2
L
µ0N = 14, 3 · 10−3 · m+2 · V −1 · s−1
tension de seuil
VTN = +0, 7V
Tab. 4.11: Transistor NMOS au pincement (point de saturation)
Régime de saturation : VDS > VDSsat = VGS − VTN
Lorsque VDS > VGS − VTN , le point de pincement (épaisseur du canal nulle) se situe entre la
source et le drain. Le transistor est saturé. Tous les électrons du canal sont happés par le fort champ
électrique qui règne, le courant est à son maximum pour un VGS donné, et n’augmente plus que
faiblement avec VDS (droites obliques en traits fins sur le graphe du tableau 4.12 page suivante).
L’augmentation vient du fait que le canal est plus court :
• longueur du canal en régime quadratique ou au point de saturation : L
• longueur du canal en régime saturé : L − ∆L
W
W
1
∆L
• ainsi le facteur W/L devient il : W
≈W
L = L−∆L = L 1− ∆L
L 1+ L
L
Nous supposons qu’entre le point de pincement et le drain, il n’y a aucune perte de porteur
libre puisque la zone est déserte et qu’il n’y a ainsi aucune recombinaison.
Nous utiliserons deux modèles pour le régime saturé :
• modèle simple, non prise en compte de l’effet Early :
IDS = IDSsat
(droites horizontales en traits gras sur le graphe du tableau 4.12 page suivante)
• prise en compte de l’effet Early par l’utilisation du coefficient de modulation de longueur de
canal λ, dépendant de la longueur de la grille :
λ ≈ VE1·L en V −1
avec la Tension d’Early :
VE ≈ 5M V · m−1
(droites obliques en traits fins sur le graphe du tableau 4.12 page suivante)
VDS −VDSsat
ainsi : ∆L
L = λ (VDS − VDSsat ) ou ∆L =
VE
76
CHAPITRE 4. DU SILICIUM AUX TRANSISTORS
Pour simplifier les notations nous utilisons les paramètres suivants :
0
• le facteur de transconductance NMOS (paramètre de technologie) kn = µ0N · Cox
,
0
µ
·C
kn W
0N
ox W
• le coefficient de conduction (propre au transistor) Kn = 2 L =
2
L.
Coupe technologique
Dimensions
W
L
Caractéristique de sortie
Technologie
0
Cox
kn = µ0N ·
0
µ0N · Cox
W
kn W
Kn =
=
·
2
L
2 L
coefficient de modulation de longueur de canal
1
λ=
VE · L
tension d’Early : VE ≈ 5M V · m−1
Modèle
2
IDS = IDSsat = Kn · (VGS − VTN )
IDS = IDSsat [1 + λ (VDS − VDSsat )]
Tab. 4.12: Transistor NMOS en régime saturé
4.6.6
Le courant IDS en résumé
NMOS : voir la table 4.13 page suivante. PMOS : voir la table 4.14 page ci-contre. Attention
la tension de seuil du transistor PMOS VTP est négative ! (voir paragraphe 4.5.1 page 69).
4.6.7
La tension de seuil
La tension de seuil d’un transistor MOS est une donnée technologique pour VSB = 0V , elle est
notée VT 0 . La tension de seuil augmente lorsque VSB augmente. Si VSB > 0V la tension de seuil
est notée VT .
Soient les grandeurs suivantes :
• la densité de dopage du substrat : NB (paramètre technologique en m−3 ),
0
• la capacité surfacique de l’isolant de grille : Cox
(paramètre technologique en F · m−2 ),
• la tension de bande plate : VF B (paramètre technologique en V ),
• la densité de paires électrons-trous libres dans le Silicium intrinsèque à T = 300K : ni
(constante physique du Si en m−3 ),
• la permittivité du Silicium : εSi (constante physique du Si en F · m−1 ),
• le potentiel thermodynamique à T = 300K : uth = kT
q (constante physique en V ),
• la charge élémentaire : q (constante physique en C Coulomb),
• le potentiel interne du substrat à l’inversion : ΨB = 2 uth · ln NnBi
(constante technologique en V ),
√
√
B ·εSi
• le coefficient d’effet de substrat : γ = 2q·N
(constante technologique en V ),
0
Cox
Nous avons alors :
p
VT 0 = VF B + ΨB + γ ΨB
(4.3)
p
p V T = VT 0 + γ
ΨB − VBS − ΨB
(4.4)
4.6. MODÈLE ÉLECTRIQUE
Conditions
VGS ≤ VTN
77
Régime
Courant
bloqué
IDS = 0
quadratique
VDS
IDS = +2 · Kn · VGS − VTN −
· VDS
2
0
W
kn W
µ0N · Cox
·
=
·
Kn =
2
L
2 L
VDS = VDSsat
pincement
IDSsat = +Kn · (VGS − VTN )
VDS > VDSsat
saturé
IDS = IDSsat 1 + λn (VDS − VDSsat )
∀VDS
VDS < VDSsat
VDSsat = VGS − VTN
VGS > VTN
VGS = VDD
VDS ≈ 0
Résistance
équivalente
2
RDS0N =
1
2 · Kn · (VDD − VTN )
Tab. 4.13: Courant et résistance équivalente du NMOS
Conditions
VGS ≥ VTP
∀VDS
Régime
Courant
bloqué
IDS = 0
VDS > VDSsat
IDS = −2 · Kp · VGS
quadratique
VDSsat = VGS − VTP
VGS < VTP
VGS = −VDD
Kp =
0
µ0P · Cox
2
VDS
− VTP −
· VDS
2
W
kp W
·
=
·
L
2 L
2
VDS = VDSsat
pincement
IDSsat = −Kp · (VGS − VTP )
VDS < VDSsat
saturé
IDS = IDSsat 1 + λp (VDS − VDSsat )
VDS ≈ 0
Résistance
équivalente
RDS0P =
1
2 · Kp · (−VDD − VTP )
Tab. 4.14: Courant et résistance équivalente du PMOS
Le plus souvent nous nous bornerons à utiliser le modèle graphique de la variation de VT en
fonction de VSB , selon la courbe 4.10 page suivante obtenue pour les paramètres d’une technologie
CMOS 0, 5µm. L’ordonnée à l’origine est VT 0 .
78
CHAPITRE 4. DU SILICIUM AUX TRANSISTORS
Fig. 4.10: VT = VT 0 + f (VSB )
Ce qui précède s’entend pour le transistor NMOS. En résumé l’évolution de la tension de seuil
pour les 2 types de transistors est la suivante :
• transistor NMOS :
– VT 0N > 0V
– VBSN = 0V ⇒ VTN = VT 0N
– VBSN < 0V ⇒ VTN > VT 0N
• transistor PMOS :
– VT 0P < 0V
– VBSP = 0V ⇒ VTP = VT 0P
– VBSP > 0V ⇒ VTP < VT 0P
4.6.8
Conclusion sur le courant IDS
Le modèle du courant de sortie du transistor MOS que nous venons d’élaborer, est un ensemble
de 3 équations correspondant à 3 régimes de fonctionnement. Lorsque le transistor est passant les
équations dépendent de 3 variables électriques, les trois tensions aux bornes du transistors dont
nous avons pris la Source comme référence : IDS = f (VGS , VBS , VDS )
4.6.9
Modélisation des capacités
Les jonctions
Les jonctions source-substrat (SB) et drain-substrat (DB) sont des diodes à polarisation nulle
ou inverse. Il se développe donc de part et d’autre de l’interface N-P une zone déserte qui les
isole du reste du substrat. Cette zone joue le rôle du diélectrique d’un condensateur (voir paragrapheé 4.3.3 page 66, et paragraphe 4.1.3 de l’annexe 2). Ce diélectrique est du silicium déserté, dont
0
la capacité surfacique maximale est Cj0
(paramètre technologique).
Les capacités de débordement (recouvrement)
Les zones de source et de drain sont obtenues par implantation ionique des dopants dans
le substrat. Sous l’effet de la température du recuit, qui a pour objectif de réorganiser la maille
cristalline, les atomes dopants ont tendance à migrer sous la grille, qui leur préexiste. Ainsi les zones
conductrices de source et de drain, débordent-elles sous l’isolant de grille, constituant l’armature
inférieure de deux capacités d’oxyde dont l’armature supérieure, commune, est le polysilicium de
grille (voir figure 4.16 page ci-contre).
La longueur de débordement LD est une caractéristique de la technologie, elle est de l’ordre de
quelques dizaines de nm.
4.6. MODÈLE ÉLECTRIQUE
79
Coupe technologique
Dimensions
W
Lj
schéma équivalent
Technologie
Modèle
0
Cj0
= 0, 8f F · µm−2
0
CjS = CjD = W · Lj · Cj0
Tab. 4.15: Capacités des jonctions du NMOS
Coupe technologique
Dimensions
W
schéma équivalent
Technologie
0
Cox
Modèle
−2
= 3, 5f F · µm
0
CGSr = CGDr = W · LD · Cox
LD = 60nm
LD
Tab. 4.16: Capacités des jonctions du NMOS
La capacité grille-substrat
Au paragraphe 4.6.2 page 70, nous avons utilisé un modèle statique simple de CGB propre à
la formation du canal. Le comportement de la capacité MOS, du fait des différents régimes de
concentration de porteurs libres sous l’isolant, et de leur non-équirépartition le long du canal, est
plus complexe. Le tableau 4.17 fait le bilan d’un modèle comportemental.
Suivant le régime de fonctionnement du transistor, la capacité CGB existe, ou se trouve “reportée” en deux capacités, l’une grille-source et l’autre grille-drain. Celles-ci se retrouvent alors en
parallèle avec les capacités de recouvrement, CGSr et CGDr , que nous avons étudiées précédemment.
0
Ci-dessous nous appelons CG la valeur maximale de CGB qui est égale à CG = W · L · Cox
.
Régime
CGB
CGS
bloqué
CG
CGSr
quadratique
0
saturé
0
CG
2 + CGSr
2·CG
3 + CGSr
CGD
CGDr
CG
2
+ CGDr
CGDr
Tab. 4.17: Bilan des capacités de grille du NMOS
4.6.10
Schéma du modèle
Dans la figure 4.11 page suivante
80
CHAPITRE 4. DU SILICIUM AUX TRANSISTORS
• en rouge les capacités dont le diélectrique est de l’oxyde de silicium et dont la capacité
0
surfacique est Cox
,
• en vert les capacités dont le diélectrique est la zone déserte de l’interface NP d’une jonction
0
(diode) et dont la capacité surfacique est Cj0
,
• en noir la capacité CGB qui est la mise en série de deux capacités de types différents (voir la
conclusion du paragraphe 4.6.2 page 70 et plus si affinité).
Fig. 4.11: Schéma du modèle
4.7
4.7.1
Caractéristiques de la technologie CMOS
Intégrabilité
Les premiers circuits intégrés (numériques et analogiques) utilisaient des technologies bipolaires.
Ce type de transistor est plus efficace en terme de transconductance et de vitesse. La technologie
CMOS a pourtant très vite envahi l’électronique intégrée à cause des faibles dimensions de ces
transistors et de la simplicité de sa technologie. Nous allons l’illustrer par deux observations.
• À polarisation normale toutes les jonctions PN dont nous avons déjà parlé : substrat-caisson,
source-substrat et drain-substrat, sont en inverse. Il se développe donc un zone déserte isolante
autour de l’interface PN. D’autre part, la tension VF B est ajustée par le technologue, pour
qu’à VGS = 0, la zone sous l’isolant de grille soit déserte. Ainsi une zone isolante entouret-elle normalement les transistors dans leur substrat. Cette auto-isolation électrique évite,
la plupart du temps, au technologue d’avoir à construire une isolation matérielle autour des
transistors.
• Le canal est un phénomène de surface et non de volume (la mobilité des porteurs µ0, utilisée
ici, est la mobilité en surface). La construction du MOS proprement dit, se fait, en “un étage”
diffusion dans le substrat des dopants de source et de drain, et dépôt de l’isolant de grille
(épaisseur 10nm). Les “étages supérieurs” séparés par l’isolant de champ (épaisseur 500nm)
sont réservés aux interconnexions.
4.7.2
Diminution des géométries “scaling down”
Lorsque nous parlons d’une technologie CMOS 0, 5µm, cela veut dire que la plus petite longueur de grille possible dans cette technologie est Lmin = 0, 5µm. De même sont spécifiées par le
technologue (le fondeur) la largeur minimale de la grille Wmin = 1, 5µm, (c’est aussi la largeur
des jonctions SB et DB) et la longueur minimale de jonction Ljmin = 1, 5µm. Wmin et Ljmin sont
souvent plus grandes que Lmin car les contacts S et D se prennent au dessus des jonctions et c’est
l’encombrement des contacts qui devient critique.
Le concepteur de circuits au niveau transistor, est libre de choisir ces 3 dimensions (W , L
et Lj ) à conditions de respecter les valeurs minimales. Ce sont des paramètres de conception. En
4.8. BIBLIOGRAPHIE
81
électronique numérique, dans la grande majorité des cas, le concepteur laisse L et Lj aux dimensions
minimales et ne joue, pour obtenir les performances spécifiées, que sur la valeur de W.
L’épaisseur de l’isolant de grille tox est aussi une donnée technologique dimensionnelle de même
que la longueur de débordement LD . Ce sont toutes ces dimensions (Lmin , Wmin , Ljmin , LD , tox )
que le technologue essaie de diminuer afin d’améliorer à la fois la densité d’intégration, mais aussi
les performances de sa technologie.
Notons enfin que le technologue doit diminuer, dans les mêmes proportions que précédemment,
la valeur des tensions d’alimentation afin de ne pas dépasser le champ électrique critique appliquable
aux isolants.
Un bon exercice de compréhension consiste à exprimer, en fonction du coefficient de diminution
géométrique (kw > 1), pour une technologie CMOS Lµm et une technologie CMOS Lµm
kw :
• la résistance équivalente du transistor “fermé” (RDS0 ),
• la somme des capacités connectées sur le drain (Cs ),
• la somme des capacités connectées sur la grille (Ce ),
• la constante de temps (τ = RDS0 · (Cs + Ce )),
• la consommation dynamique due à une charge (de 0 à VDD ) ou à une décharge (de VDD à 0)
de la capacité Ct = Cs + Ce au travers d’un transistor.
4.8
Bibliographie
• Yuhua CHENG and Chenming HU, MosFet modeling and Bsim3 user’s guide, Kluwer Academic Publishers, 1999.
• Ross Bassett New technology, new people, new organizatiom : the rise of the MOS transistor,
1945-1975, Ph.D. dissertation, North Carolina State University, 1998.
• Jan RABAEY Digital Integrated Circuits, a design perspective, Prentice Hall International
Editions, 1996.
• André VAPAILLE and René CASTAGNÉ Dispositifs et Circuits Intégrés Semiconducteurs,
Éditions Dunod, 1987.
• Neil WESTE and Kanrar ESHRAGHIAN Principles of CMOS VLSI Design , Addison Weslay
Publishing, 1985.
• S. M. SZE Physics of Semiconductors Devices, Wiley Interscience Publication, 1981.
82
CHAPITRE 4. DU SILICIUM AUX TRANSISTORS
Chapitre 5
Du transistor à la logique CMOS
5.1
5.1.1
Introduction
Objectifs
Il s’agit :
• de comprendre les principes de la construction de portes en structure "logique complémentaire" à partir de transistors NMOS et PMOS,
• de savoir évaluer les principales performances électriques de ce type de cellules,
• de savoir construire un modèle de performances utilisable au niveau fonctionnel, c’est à dire
à un niveau où le nombre de cellules appréhendées est supérieur à plusieurs dizaines,
• de connaître, pour ces différents niveaux d’analyse, les ordres de grandeurs caractéristiques.
5.1.2
Présentation
En utilisant les résultats du chapitre « Du Silicium au transistor MOS » 4 page 59 , nous
élaborerons un modèle de type interrupteur commandé, qui permet de construire des portes logiques
et de comprendre les principes et les caractéristiques de la logique complémentaire. Nous étudierons
un modèle linéaire du temps de propagation le long d’un chemin logique. Enfin nous évoquerons le
principe et l’utilisation d’une bibliothèque de cellules.
5.2
5.2.1
Modèle en interrupteur
Modélisation
Nous transformons le modèle électrique du transistor (transconductance non linéaire), rappelé
au chapitre 5.5 page 96, en un interrupteur commandé uniquement par la tension de grille VG .
Ainsi nous faisons correspondre :
• à l’état bloqué du transistor l’état ouvert de l’interrupteur que nous notons “O”,
• à l’état passant du transistor l’état fermé de l’interrupteur que nous notons “F”,
Du fait de la connexion systématique des substrats, nous omettrons souvent de le dessiner (voir 5.5 page 96).
transistor NMOS
• Lorsque la tension de grille VG est à "1" il suffit d’avoir :
VS < VDD − VTN
pour que la condition de conduction :
VGSN > VTN
soit respectée et que l’interrupteur équivalent soit fermé, ce que nous notons "F"
• Lorsque la tension de grille VG est à "0" la condition de blocage est remplie :
VGSN = 0V < VTN
l’interrupteur équivalent est ouvert, ce que nous notons "O"
83
84
CHAPITRE 5. DU TRANSISTOR À LA LOGIQUE CMOS
dipôle d’entrée
niveau logique sur la grille
0
transistor
1
modèle en interrupteur
du dipôle de sortie
NMOS
O
F
PMOS
F
O
Tab. 5.1: Modèle en interrupteur
transistor PMOS
• Lorsque la tension de grille VG est à "1", la condition de blocage est remplie :
VGSP = 0V > VTP
l’interrupteur équivalent est ouvert : "O"
• Lorsque la tension de grille VG est à "0" il suffit d’avoir :
VS > −VTP
pour que la condition de conduction :
VGSP < VTP
soit respectée et que l’interrupteur équivalent soit fermé : "F"
5.2.2
Quelques montages simples
Dans les tableaux suivants les lettres minuscules : a, b, désignent les variables logiques d’entrée
et les lettres majuscules : A, B les extrémités de la branche.
Nous notons F lorsqu’un transistor est passant (interrupteur équivalent fermé), O s’il est bloqué
(interrupteur équivalent ouvert). FAB désigne la fonction logique associée à l’état de la branche
située entre les points A et B. Son état est noté comme celui des transistors. La valeur logique de
la fonction FAB est obtenue en sommant les produits des états des entrées produisant la fermeture
de la branche AB (en gras dans les tableaux suivants). L’état "1" de l’entrée a est noté a. L’état
"0" de l’entrée a est noté a (a_barre, !a).
Montages séries
Pour qu’une branche constituée de 2 interrupteurs en série soit passante, il faut que les 2 interrupteurs soient fermés en même temps (fonction logique ET notée "." Si l’un au moins est ouvert,
la branche est ouverte.
Montages parallèles
Pour qu’une branche constituée de 2 interrupteurs en parallèle soit passante, il suffit qu’un interrupteur au moins soit fermé (fonction logique OU notée "+" Si les deux sont ouverts, la branche
5.2. MODÈLE EN INTERRUPTEUR
85
Entrées
Transistors
Branche
a
b
TNa
TNb
FAB
0
0
O
O
O
0
1
O
F
O
1
0
F
O
O
1
1
F
F
F
Tab. 5.2: FAB = a · b
Entrées
Transistors
Branche
a
b
T Pa
T Pb
FAB
0
0
F
F
F
0
1
F
O
O
1
0
O
F
O
1
1
O
O
O
Tab. 5.3: FAB = a · b = a + b
est ouverte.
Entrées
Transistors
Branche
a
b
TNa
TNb
FAB
0
0
O
O
O
0
1
O
F
F
1
0
F
O
F
1
1
F
F
F
Tab. 5.4: FAB = a · b + a · b + a · b = a + b
Entrées
Transistors
Branche
a
b
T Pa
T Pb
FAB
0
0
F
F
F
0
1
F
O
F
1
0
O
F
F
1
1
O
O
O
Tab. 5.5: FAB = a · b + a · b + a · b = a · b
Chaque transistor NMOS TNx peut évidemment être remplacé par un réseau de transistors
NMOS. De même chaque transistor PMOS TPx peut être remplacé par un réseau de transistors
PMOS... et ainsi de suite, pour constituer deux réseaux duaux complexes.
86
5.3
5.3.1
CHAPITRE 5. DU TRANSISTOR À LA LOGIQUE CMOS
La logique complémentaire CMOS
Introduction
Reprenons le schéma du circuit "Résistance Transistor Logique" (figure 5.1) du chapitre « Du
Silicium au Transistor »( 4 page 59. Remplaçons la transconductance idéale du transistor NMOS
par l’interrupteur équivalent TN . Identifions ses 2 états d’équilibre (on dit aussi états statiques).
Fig. 5.1: Circuit Résistance Transistor Logique
Nous avons vu que la grille d’un transistor NMOS ou PMOS, est isolée. Ainsi la commande de
l’interrupteur équivalent au transistor est-elle isolée de l’interrupteur lui même. Nous avons établi
les équations de ce circuit dans le chapitre 4 page 59 :
• VDD = VR + Vs = R · IR + Vs
• IDD = IR = IT
• Lorsque l’entrée vaut "0", l’interrupteur TN est ouvert. Aucun courant ne circule dans la
branche de sortie : IDD = IR = IT = 0 ⇒ VDD = Vs ≡ ”1”
• Lorsque l’entrée vaut "1", l’interrupteur TN est fermé : Vs = 0 ≡ ”0” ⇒ VDD = R · IRm ax
Ce type de circuit est un inverseur logique. En régime statique, à l’état bas ("0" en sortie)
il consomme du courant, et l’on a cherché un moyen pour éviter toute consommation en régime
statique. La logique complémentaire, est une des solutions efficaces à ce problème.
5.3.2
Notion de complémentarité
Le mot complémentaire veut dire que l’on dispose, autour de l’équipotentielle de sortie, non
plus d’une branche passive (R) et d’une branche active (TN ), mais de deux branches actives duales,
c’est dire conduisant l’une à la stricte exclusion de l’autre, et pour des signaux de commande
complémentaires. Un même signal commande au moins une paire d’interrupteurs complémentaires.
Exemple de l’inverseur
La porte la plus simple de la logique complémentaire est l’inverseur. Chacune des 2 branches
est constituée d’un seul transistor. Le symbole et le montage de l’inverseur CMOS sont représentés
dans la figure 5.2.
Fig. 5.2: l’inverseur CMOS
5.3. LA LOGIQUE COMPLÉMENTAIRE CMOS
87
Analysons son fonctionnement.
Fig. 5.3: Régime statique : les 2 états statiques de l’inverseur
• L’interrupteur TN est le modèle du transistor NMOS (entrée = "1" et il est fermé, entrée =
"0" et il est ouvert).
• L’interrupteur TP est le modèle du transistor PMOS (entrée = "0" et il est fermé, entrée =
"1" et il est ouvert).
• L’entrée Ve est commune aux deux grilles, celle de TN en parallèle avec celle de TP .
• Lorsque la branche N est fermée, la branche P est ouverte : la sortie est reliée à "0", électriquement : la masse (0V).
• Lorsque la branche N est ouverte, la branche P est fermée : la sortie est reliée à "1", électriquement : VDD .
Consommation
En régime statique, c’est à dire pour chacun des deux états stables, aucun chemin électrique
n’existe entre VDD et la masse, aucun courant n’est donc consommé.
Pour analyser ce qui se passe en régime transitoire, ce qui sera fait plus précisément dans le
chapitre « Performances de la logique CMOS »( 5 page 83), rappelons-nous que :
1. la tension d’entrée Ve n’a pas un temps de transition (à la montée comme à la descente)
nul. Ainsi pendant un certain temps : lorsque VT N < Ve < VDD − VTP , les deux transistors
sont ils passant. Un courant dit de court-circuit, délivré par l’alimentation, traverse les deux
transistors passants vers la masse.
2. la charge de cette porte logique, est essentiellement constituée d’une capacité CT , représentant
l’ensemble des capacités parasites connectées sur l’équipotentielle de sortie. La charge (de “0”
à “1”, soit de 0V à VDD ) et la décharge (de “1” à “0”, soit de VDD à 0V) du noeud de sortie,
nécessite un courant, donc une consommation dynamique (voir schéma 5.4).
Fig. 5.4: l’inverseur CMOS et sa charge capacitive
Durant le régime transitoire, l’alimentation va :
• soit charger, de 0V à VDD , la capacité CT au travers de l’interrupteur fermé TP équivalent
au transistor PMOS passant,
• soit décharger, de VDD à 0V, la capacité CT au travers de l’interrupteur fermé TN équivalent
au transistor NMOS passant.
88
CHAPITRE 5. DU TRANSISTOR À LA LOGIQUE CMOS
En conclusion, la consommation statique de l’inverseur CMOS est nulle. La consommation
transitoire (dynamique) est due au courant de court-circuit et à la (dé)charge de la capacité CT .
5.3.3
Porte complexe
Constitution du circuit
Dans l’exemple de l’inverseur, la branche N et la branche P ne sont constituées que d’un
interrupteur chacune. Pour réaliser une fonction plus complexe, nous allons remplacer chaque
branche par un réseau de plusieurs interrupteurs de même type, comme illustré dans la figure 5.5.
Les règles globales sont les mêmes que pour l’inverseur, mais chaque branche N et P, sera constituée
d’un réseau d’interrupteurs, montés en parallèle ou en série (voir le paragraphe 5.2.2 page 84), tous
reliés deux à deux (au moins) par leur grille, et respectant la condition de conduction d’une branche
à l’exclusion de celle de l’autre.
Fig. 5.5: schéma de principe de la logique complétaire
Principes et fontionnalité
En logique complémentaire, un circuit est constitué de deux réseaux duaux :
• un réseau N, constitué exclusivement de transistors NMOS, branché entre la sortie et le
"moins de l’alimentation" (en général la masse) qui correspond au "0" logique,
• un réseau P, constitué exclusivement de transistors PMOS, branché entre la sortie et le "plus
de l’alimentation" (VDD ) qui correspond au "1" logique,
Pour être duaux les deux réseaux doivent satisfaire les principes suivants :
• être commandés par les mêmes entrées ei , chaque entrée ei commandant au moins une paire
d’interrupteurs (un N et un P),
• quelque soit l’état des entrées ei, un seul réseau doit être passant à la fois.
Il est toléré toutefois que les deux branches soient ouvertes en même temps.
Fig. 5.6: schéma du fonctionnement de la logique complémentaire
La fonction de sortie F est générée par :
• la fermeture du réseau N, pour obtenir F = "0" soit F (F_barre !F),
• la fermeture du réseau P, pour obtenir F = "1" soit F,
• l’ouverture simultanée des 2 branches engendre F = Z soit l’état électrique haute impédance.
En électronique numérique ce troisième état sert à
– mémoriser l’état précédent,
5.3. LA LOGIQUE COMPLÉMENTAIRE CMOS
89
– ne pas influer sur une équipotentielle lorsque une autre sortie logique est censée y apporter
son signal.
Pourquoi des PMOS en haut et des NMOS en bas ?
NMOS déchargeant la capacité Cu
NMOS chargeant la capacité Cu
Tab. 5.6: Charge/décharge d’une capacité par un NMOS
Au paragraphe 4.2 page 60 du chapitre « Du silicium au transistor MOS »nous avons vu que
le temps de transition (charge ou décharge) est inversement proportionnel à l’intensité du courant
traversant la capacité. Dans les cas des 2 montages étudiés ce courant est égal à celui qui traverse
le dipôle de sortie du transistor : IDS .
Dans les conditions de la logique complémentaire le transistor NMOS décharge la capacité Cu
du noeud de sortie (cf. “montage du transistor MN1”).
• À l’état initial :
– Ve = 0V et Vs = VDD : Cu est chargée au maximum,
– VGS = Ve = 0 ≤ VT 0N (la tension de seuil pour VSB = 0V ) : le transistor MN1 est bloqué.
IDS est nul : Cu reste chargée à VDD .
• La commande de décharge arrive :
– Ve = VDD ,
– VGS = Ve = VDD > VT 0N : le transistor MN1 est passant saturé. IDS est maximum : Cu
se décharge,
Dans le second montage, le transistor MN2, n’est pas dans les conditions de la logique complémentaire, en effet il est branché en lieu et place de ce qui devrait être le réseau P.
• À l’état initial :
– Ve = 0V et Vs = 0V : Cu est déchargée au maximum,
– VGS = Ve = 0 ≤ VT 0N (la tension de seuil pour VSB = 0V ) : le transistor MN1 est bloqué.
IDS est nul : Cu reste déchargée à 0V.
• La commande de charge arrive :
– Ve = VDD ,
– VGS = Ve = VDD > VT 0N : le transistor MN1 est passant saturé. IDS est maximum : Cu
se charge, Vs augmente, d’où deux conséquences :
1. La tension VGS diminue puisque : VGS = Ve − VSB = Ve − Vs . Si VGS diminue IDS
diminue,
2
2. La tension VSB = Vs augmente, ainsi VT N > VT 0N . Or IDS ∝ (VGS − VT N ) !.
Première conclusion : MN1 "dispose" d’une intensité de courant beaucoup plus importante
pour décharger Cu que MN2 pour charger Cu . Ainsi le temps transition du premier montage sera t
il toujours plut petit que celui du second (MN1 et MN2 ayant les mêmes dimensions et les mêmes
paramètres technologiques).
Nous pouvons mener une démonstration semblable pour un transistor PMOS : excellent exercice
pour se prouver que ces notions sont correctement assimilées !
Seconde conclusion : de même que pour la consommation statique, la disposition d’un circuit
en logique complémentaire CMOS semble optimale pour les temps de transitions.
90
CHAPITRE 5. DU TRANSISTOR À LA LOGIQUE CMOS
5.3.4
Exemple d’analyse d’une porte logique
Sur la figure 5.7, nous avons représenté les schémas :
• du circuit en transistors de la porte logique à analyser,
• son modèle en interrupteurs,
• la table de vérité extraite du modèle en interrupteurs de la porte, où figure en gras, l’état des
entrées représenté sur le schéma du modèle.
entrées
circuit à transistors
réseaux
sortie
a
b
r
N
P
S
0
0
0
O
F
1
0
0
1
O
F
1
0
1
0
O
F
1
0
1
1
F
O
0
1
0
0
O
F
1
1
0
1
F
O
0
1
1
0
F
O
0
1
1
1
F
O
0
modèle en interrupteurs
table de vérité
Tab. 5.7: Analyse d’une porte logique
Les étapes de l’analyse, suivent évidemment les principes de la logique complémentaire CMOS.
Méthode de la table de vérité
• Pour chaque état logique de chaque variable d’entrée, nous en déduisons l’état de chacun des
deux réseaux (N et P) puis celui de la sortie,
• L’exhaustivité de l’analyse est garantie,
• Nous vérifions qu’un même jeu de valeurs logiques d’entrée n’entraîne pas à la fois la conduction des deux réseaux,
• Nous écrivons l’équation de S en faisant la somme logique des valeurs logiques d’entrée entraînant S = 1.
S
= a·b·r+a·b·r+a·b·r+a·b·r
= a·b+a·b·r+a·b·r
en remarquant que a · b = a · b + a · b · r, il vient :
S
= a·b+a·b·r+a·b·r
= a·b+a·b·r+a·b·r+a·b·r
= a·b+r· a·b+a·b+a·b
soit S = a · b + r · a + b
Appliquons de Morgan, nous obtenons S = a · b + r · (a + b), que nous pouvons aussi écrire de
la manière suivante :
S = a · b + r · (a + b)
Méthode de l’analyse par réseau
Nous analysons la conduction de chaque réseau (N et P) en fonction des valeurs logiques d’entrée, en appliquant les règles déjà vues (voir table 5.8 page ci-contre).
5.3. LA LOGIQUE COMPLÉMENTAIRE CMOS
91
Réseau P
Réseau N
Tab. 5.8: Analyse d’une porte logique
Le réseau N comprend deux branches en parallèle :
• la branche de gauche, sur le schéma, est passante pour la fonction des entrées : N1 = a · b
• celle de droite est passante pour : N2 = r · (a + b)
Le réseau N conduit pour la fonction : N = N1 + N2 = a · b + r · (a + b)
La fonction réalisée par le réseau N est donc : S = N = a · b + r · (a + b)
Le réseau P comprend deux branches en parallèle :
• la branche de gauche, sur le schéma, est passante pour la fonction des entrées : P1 = a · b
• celle de droite est passante pour : P2 = r · a + b
Le réseau P conduit pour la fonction : P = P1 + P2 = a · b + r · a + b
Après calcul nous obtenons : S = P = a · b + r · a + b = a · b + r · (a + b)
Enfin nous vérifions la conduction exclusive de chacun des deux réseaux : N = P
5.3.5
Exemples de synthèse d’une porte logique
La porte et-non à 2 entrées (nand2)
La fonction nand2 est égale à : Snand2 = a · b
• La fonction Nnand2 qui représente l’état du réseau N, vaut Nnand2 = Snand2 = a · b
Cette fonction correspond à deux transistor NMOS en série.
• La fonction Pnand2 qui représente l’état du réseau P, vaut Pnand2 = Snand2 = a · b = a + b
Cette fonction correspond à deux transistor PMOS en parallèle.
• Par construction, si les calculs logiques ne sont pas erronés, la réalisation satisfait la dualité
des deux réseaux.
La porte ou-non à 2 entrées (nor2)
La fonction nor2 est égale à : Snor2 = a + b
• La fonction Nnor2 qui représente l’état du réseau N, vaut Nnor2 = Snor2 = a + b
Cette fonction correspond à deux transistor NMOS en parallèle.
• La fonction Pnor2 qui représente l’état du réseau P, vaut Pnor2 = Snor2 = a + b = a · b
Cette fonction correspond à deux transistor PMOS en série.
• Par construction, si les calculs logiques ne sont pas erronés, la réalisation satisfait la dualité
des deux réseaux.
Nous obtenons les schémas de la table 5.9 page suivante.
92
CHAPITRE 5. DU TRANSISTOR À LA LOGIQUE CMOS
synthèse d’une porte NAND2
synthèse d’une porte NOR2
Tab. 5.9: schémas en transistors d’une porte NAND2 et d’une porte NOR2
Comment obtenir des fonctions non complémentées ?
Ainsi que nous l’avons vu au chapitre Principes et fonctionnalité ( 5.3.3 page 88), si nous ne
disposons que des entrées logiques naturelles (les ei et aucune ei ), nous ne pouvons réaliser que
des fonctions complémentées des entrées naturelles : F (ei ). Pour réaliser les fonctions logiques ET2
(and2) et OU2 (or2) nous pouvons utiliser les solutions suivantes (table 5.10) :
synthèse d’une porte AND2
synthèse d’une porte OR2
Tab. 5.10: synthèse de fonctions non complémentées à l’aide de portes en logique complémentaire
Nous pouvons aborder les exercices du TD “Synthèse en transistors de portes CMOS” (chapitre 12 page 173).
5.4. VITESSE DE TRAITEMENT D’UN CIRCUIT INTÉGRÉ NUMÉRIQUE CMOS
5.4
93
Vitesse de traitement d’un circuit intégré numérique CMOS
Les circuits intégrés numériques sont constitués de différents opérateurs de traitement (opérateurs arithmétiques,opérateurs de contrôle...). La nécessité de synchroniser ces opérateurs entre
eux pour permettre des échanges de données conduit à ce que la vitesse de traitement «potentielle»
du circuit est directement liée à la vitesse de traitement de l’opérateur le plus lent.
Si un circuit doit contenir, par exemple, un opérateur d’addition,la connaissance du temps de
calcul d’une addition est un indicateur nécessaire au concepteur pour déterminer les performances
du circuit. Les techniques de réalisation de circuits intégrés numériques les plus couramment employées reposent sur l’hypothèse forte qu’il n’est possible de démarrer un nouveau calcul dans un
opérateur que lorsque ses sorties se sont stabilisées. Le temps de traitement d’un opérateur combinatoire est donc le temps nécessaire à la stabilisation des sorties de l’opérateur après la mise en
place des entrées.
5.4.1
Notion de chemin critique
Un opérateur combinatoire est lui-même constitué d’un assemblage de portes logiques simples ;
son temps de traitement est directement lié à la propagation des signaux booléens dans les différentes portes logiques.
Considérons de nouveau l’exemple d’un additionneur combinatoire 4 bits. Un tel opérateur
est une fonction à 8 entrées et 5 sorties. Entre chaque entrée et chaque sortie de l’additionneur,
les signaux booléens peuvent se propager par une multitude de chemins différents traversants les
différentes portes logiques. Pour déterminer la vitesse de calcul de notre additionneur, il suffit de
déterminer parmi ces chemins celui qui correspond au temps de traversée le plus long. Ce chemin
sera appelé chemin critique de l’opérateur.
Fig. 5.7: Quelques chemins de propagation...
Si nous pouvons déterminer pour chaque porte traversée le long de notre chemin critique le
temps mis par le signal pour transiter de l’entrée à la sortie de la porte (temps de propagation
de la porte) alors nous pouvons déterminer de manière simple le temps du chemin critique en
accumulant les différents temps de propagation individuels.
5.4.2
Notion de temps de propagation
La définition du temps de propagation d’une porte doit permettre par simple additivité de
déterminer le temps de propagation d’une chaîne de portes. La définition la plus simple consiste à
mesurer le temps écoulé entre un changement d’état de l’entrée d’une porte et le changement d’état
de la sortie en prenant pour référence les instants de passage des différents signaux à mi-chemin
de la tension d’alimentation VDD, comme cela est représenté sur la figure 5.8 page suivante.
Une porte CMOS à plusieurs entrées n’est pas caractérisée par un unique temps de propagation.
Prenons l’exemple d’un NAND à 2 entrées A et B. Nous pouvons distinguer par exemple :
• Le temps de propagation de A vers la sortie pour une transition montante de la sortie (tpmA )
• Le temps de propagation de B vers la sortie pour une transition montante de la sortie (tpmB )
• Le temps de propagation de A vers la sortie pour une transition descendante de la sortie
(tpdA )
94
CHAPITRE 5. DU TRANSISTOR À LA LOGIQUE CMOS
Fig. 5.8: Temps de propagation dans une porte
• Le temps de propagation de B vers la sortie pour une transition descendante de la sortie
(tpdB )
Il n’y a pas de raison pour que ces différentes valeurs soient identiques, mais pour des raisons
de simplification nous considérerons un pire cas en appelant temps de propagation de la porte la
valeur maximum parmi ces différentes données (tp).
5.4.3
Modèle du temps de propagation d’une porte CMOS
De façon générale, le temps de propagation d’une porte peut se décomposer en deux termes.
Le premier terme représente le temps minimum nécessaire à la porte pour établir sa sortie et
ce indépendamment de tout contexte externe. Ce terme appelé temps de propagation à vide ou
temps de propagation intrinsèque de la porte est significatif de la complexité de la fonction logique
réalisée par la porte. On peut comprendre intuitivement que le temps de propagation à vide d’un
inverseur (tp0IN V ) soit plus faible que celui d’un ou-exclusif à 2 entrées (tp0OU EX ) compte tenu
de la différence de complexité des équation booléennes.
Le deuxième terme représente la facilité avec laquelle la porte transmet l’état de sa sortie aux
différentes portes qui lui sont connectées. Pour évaluer l’impact de la connection de l’entrée d’une
porte sur la sortie d’une porte précédente, il faut étudier la constitution de l’entrée d’une porte
CMOS. La figure 5.9 présente un NAND à deux entrées en logique CMOS. L’entrée A de la porte
est connectée aux grilles d’un transistor NMOS et d’un transistor PMOS.
Fig. 5.9: Capacité d’entrée de l’entrée A d’une porte NAND
Compte tenu de la technologie de fabrication du transistor MOS, ces grilles se comportent
comme des capacités parasites ( 4 page 59) dont une électrode est la grille elle même et l’autre
électrode est répartie entre la source, le drain et le substrat des transistors. Il est possible de faire
l’hypothèse simplificatrice qu’une capacité parasite unique est connectée entre l’entrée A et la masse.
Cette capacité sera nommée capacité d’entrée de la porte sur l’entrée A (CEAN AN D ). On détermine
de la même manière une capacité d’entrée sur l’entrée B.
En règle générale, les capacités d’entrée des différentes entrées d’une porte logique sont différentes et dépendent de la taille et du nombre de transistors dont les grilles sont connectées à ces
entrées.
Maintenant que nous avons identifié la nature physique de l’entrée d’une porte CMOS, il est
facile d’imaginer l’effet de sa connection sur la sortie d’une porte. La figure ci-dessous présente in
5.4. VITESSE DE TRAITEMENT D’UN CIRCUIT INTÉGRÉ NUMÉRIQUE CMOS
95
inverseur dont la sortie est connectée sur l’entrée A de notre porte NAND. Les transistors PMOS et
NMOS de l’inverseur vont devoir alternativement fournir les courants de charge et de décharge de
la capacité CEAN AN D pendant les transitions montantes et descendantes de la sortie de l’inverseur.
Cette capacité CEAN AN D sera appelée plus tard capacité d’utilisation de la porte.
Fig. 5.10: Charge et décharge de la capacité d’entrée CEA d’un NAND
Le temps nécessaire à cette charge est d’une part proportionnel à la valeur de cette capacité et
d’autre part dépendant des caractéristiques des transistors constituant l’inverseur. Dans la pratique
cela ce traduit par un accroissement du temps de propagation de l’inverseur par un terme de forme
dtpIN V · CEAN AN D où dtp est la dépendance capacitive du temps de propagation de l’inverseur. Le
temps total de propagation de l’inverseur est donc :
tpIN V = tp0IN V + dtpIN V · CEAN AN D
En résumé, pour une porte CMOS quelconque, l’établissement du temps de propagation d’une porte CMOS nécessite la connaissance de trois termes :
• tp0 : temps de propagation à vide de la porte, ne dépend que de la structure
physique de la porte
• dtp : dépendance capacitive de la porte ne dépend que des caractéristiques physiques de la porte. Le terme dtp est équivalent à une résistance
• CU : capacité d’utilisation ne dépend que des caractéristiques des entrées des
portes connectées en sortie de la porte
L’expression du temps de propagation de la porte chargée par CU est alors :
tp = tp0 + dtp ∗ CU
5.4.4
(5.1)
Temps de propagation dans un assemblage de portes logiques.
Nous allons illustrer sur un exemple le calcul des temps de propagation dans divers chemins
d’un assemblage de portes logiques. La figure 5.11 est une fonction logique à 3 entrées (T, U, V)
et 2 sorties Y,Z. Nous supposons que les sorties Y et Z sont connectées à 2 capacités d’utilisation
CU Y et CU Z.
Fig. 5.11: Temps de propagation dans un assemblage de portes
Nous pouvons compter six chemins (TY,UY,VY,TZ,UZ,VZ) dans cette structure et déterminer
pour chacun d’eux le temps de propagation total. Exprimons, par exemple, le temps de propagation
le long du chemin TZ. Le signal se propage, sur ce chemin, en traversant tout d’abord la porte
96
CHAPITRE 5. DU TRANSISTOR À LA LOGIQUE CMOS
NAND1. La sortie de cette porte est connectée d’une part à l’entrée de l’inverseur INV2 et d’autre
part à l’entrée A de la porte NAND2. La porte NAND1 est donc chargée par les deux capacités
d’utilisation connectées en parallèle CEIN V 2 et CEAN AN D2 .
L’équation du temps de propagation à travers la porte NAND1 est donc :
tpN AN D1 = tp0N AN D1 + dtpN AN D1 · (CEIN V 2 + CEAN AN D2 )
Le signal traverse ensuite la porte NAND2 chargée par la capacité CUZ. Le temps de propagation s’exprime de manière très simple sous la forme :
tpN AN D2 = tp0N AN D2 + dtpN AN D2 · CU Z
Le temps total le long du chemin TZ est égal à la somme de tpN AN D1 et de tpN AN D2 , soit :
tpT Z = tp0N AN D1 + dtpN AN D1 · (CEIN V 2 + CEAN AN D2 ) + tp0N AN D2 + dtpN AN D2 · CU Z
Nous pourrions évidemment calculer de la même façon les temps de propagation suivant les
différents chemins et déterminer ainsi le chemin critique de l’opérateur.
5.5
5.5.1
Rappels du modèle électrique
Connexions et tensions appliquées
NMOS
PMOS
Tab. 5.11: connexions des transistors CMOS
• Les caissons, faiblement dopés N, constituent le suBstrat (B) des PMOS et leurs est commun,
Il est polarisé à la tension la plus positive du circuit VDD .
• Le substrat, faiblement dopé P, constitue le suBstrat (B) des NMOS et leurs est commun,
Il est polarisé à la tension la plus négative du circuit VSS , (VSS = 0V , comme sur le schéma,
parfois VSS = −VDD ).
• La tension du drain (D) des transistors NMOS est toujours supérieure à celle de leur source
(S),
• La tension du drain (D) des transistors PMOS est toujours inférieure à celle de leur source
(S),
• La tension de seuil d’un NMOS : +0, 2V ≤ VT N ≤ +2V
• La tension de seuil d’un PMOS : −0, 2V ≥ VT P ≥ −2V
• La tension de la grille (VG ) de tous les transistors est une tension d’entrée de type logique à
2 états correspondant à deux niveaux électriques statiques :
VG = VDD ≡ ”1” et VG = 0V ≡ ”0”
5.5.2
Rappels du modèle électrique et des symboles
Voir les deux tableaux 5.12 page suivante et 5.13 page 98.
5.6. BIBLIOGRAPHIE
97
Transistor NMOS
Symboles
Conditions
VGS ≤ VT N
∀VDS
VDS < VDSsat
Régime
Courant
bloqué
IDS = 0
quadratique
VDS
· VDS
IDS = 2 · Kn · VGS − VT N −
2
1
0 W
Kn = µ0N · Cox
2
L
VGS > VT N
et VDSsat = VGS − VT N
VGS = VDD
VDS ≥ VDSsat
saturé
VDS ≈ 0
ohmique
2
IDSsat = Kn · (VGS − VT N )
RDS0N =
1
2 · Kn · (VDD − VT N )
IDS = (VGS , VDS )
Tab. 5.12: Courant et résistance équivalente du NMOS
5.6
Bibliographie
Pour en savoir plus...
• MosFet modeling and Bsim3 user’s guide, Yuhua CHENG and Chenming HU (Kluwer Academic Publishers, 1999).
• Digital Integrated Circuits, a design perspective, Jan RABAEY (Prentice Hall International
Editions, 1996).
• Dispositifs et Circuits Intégrés Semiconducteurs, André VAPAILLE and René CASTAGNÉ
(Éditions Dunod, 1987).
• Principles of CMOS VLSI Design, Neil WESTE and Kanrar ESHRAGHIAN, (Addison Weslay Publishing, 1985).
98
CHAPITRE 5. DU TRANSISTOR À LA LOGIQUE CMOS
Transistor PMOS
Symboles
Conditions
VGS ≥ VT P
∀VDS
VDS > VDSsat
Régime
Courant
bloqué
IDS = 0
quadratique
VDS
· VDS
IDS = −2 · Kp · VGS − VT P −
2
1
0 W
Kp = µ0P · Cox
2
L
VGS < VT P
et VDSsat = VGS − VT P
VGS = −VDD
VDS ≤ VDSsat
saturé
VDS ≈ 0
ohmique
2
IDSsat = −Kp · (VGS − VT P )
RDS0P = −
1
2 · Kp · (−VDD − VT P )
IDS = (VGS , VDS )
Tab. 5.13: Courant et résistance équivalente du PMOS
• Physics of Semiconductors Devices, S. M. SZE (Wiley Interscience Publication, 1981).
Chapitre 6
Performances de la logique
complémentaire CMOS
6.1
Introduction
La réalisation de systèmes électroniques de traitements numériques efficaces suppose le respect
d’un certain nombre de contraintes liées à des aspects très divers. Nous allons limiter notre étude
aux trois paramètres suivants :
• Le coût de production ;
• La vitesse de traitement ;
• La consommation.
Ces trois paramètres ne sont évidemment pas décorrélés, l’augmentation d’une vitesse de traitement se fait souvent au prix d’une consommation et d’un coût de production accru.
Parfois certain critères sont impératifs : si nous considérons, par exemple, une application de
traitement numérique pour une transmission d’images de télévision, les calculs doivent être effectués
à la volée sans possibilité d’interrompre le flux de données. Nous disons dans ce cas que le système
doit avoir la puissance de calcul (ou vitesse de traitement) nécessaire pour respecter le temps réel.
De manière moins impérative, si nous considérons une application de bureautique sur un ordinateur
personnel, il suffit que le système ait une puissance de calcul suffisante pour garantir un certain
confort à l’utilisateur.
De même, il est aisément concevable que les besoins en terme de modération de la consommation
d’un système alimenté par batterie soient différents de ceux d’un système connectable au réseau
électrique.
Les ingénieurs réalisant des circuits intégrés numériques sont constamment confrontés au problème de l’évaluation de ces paramètres. Nous allons montrer, dans ce chapitre, quelques méthodes
simples d’évaluation basées notamment sur notre connaissance de la technologie de fabrication des
circuits intégrés.
6.2
Coût de production d’un circuit intégré numérique CMOS
Le coût de production d’un circuit intégré est étroitement lié à l’aire du silicium nécessaire à
sa réalisation. En effet, plus le circuit est de taille importante, plus le rendement de fabrication est
faible. Le rendement de fabrication représente le rapport entre le nombre de circuits fonctionnels
produits et le nombre total de circuits produits. La probabilité d’avoir un défaut dans un circuit
augmentant avec sa taille, le concepteur a tout intérêt à minimiser la surface de silicium nécessaire
à la réalisation de l’application qui l’intéresse. Évidemment cette surface dépend du nombre de
transistors utilisés pour réaliser l’application et de la surface de chacun de ces transistors.
En électronique numérique intégrée, les transistors utilisés étant de taille relativement standard
(sauf fonctions exceptionnelles), on peut considérer que le nombre de transistors est un bon représentant de la surface du circuit intégré. On caractérise d’ailleurs les technologies CMOS numériques
99
100
CHAPITRE 6. PERFORMANCES DE LA LOGIQUE COMPLÉMENTAIRE CMOS
par le nombre de transistors qu’elles sont capables d’intégrer. En 2004, les densités d’intégration
des technologies les plus avancées étaient de l’ordre de 1 500 000 transistors par mm2 .
Par conséquent, en passant du niveau de l’application au niveau de la porte logique, minimiser
le nombre de transistors nécessaires à la réalisation de portes logiques contribue à minimiser l’aire
globale d’un circuit.
6.3
6.3.1
Estimation de la vitesse de la logique CMOS
Expression du temps de propagation d’un inverseur CMOS
Nous voulons exprimer le temps de propagation en descente tpd de l’inverseur INV 1 de la
figure 6.1 à partir de la connaissance du transistor MOS dont les caractéristiques électriques sont
rappelées au chapitre 5.5 page 96. Compte tenu de la complexité des phénomènes mis en jeu, la mise
au point d’un modèle analytique du temps de propagation d’une porte CMOS (même aussi simple
qu’un inverseur) n’est guère envisageable. Aussi nous contenterons-nous d’en faire une estimation
à partir d’un grand nombre d’hypothèses simplificatrices.
Fig. 6.1: Étude de cas de l’inverseur CMOS.
Nous modélisons l’ensemble des effets parasites pouvant perturber le fonctionnement de cet
inverseur par une unique capacité Cpar connectée entre la sortie S1 et la masse. Les phénomènes
électriques observés à la suite d’une transition montante du signal d’entrée E1 sont les suivants :
• bloquage du transistor PMOS et débloquage du transistor NMOS ;
• donc la décharge de la capacité Cpar à travers le transistor NMOS ;
• donc transition descendante du signal de sortie S1 .
Une vision réaliste des évolutions des signaux E1 et S1 au cours du temps est reproduite en
figure 6.2 page suivante.
Nous supposons que le signal d’entrée E1 passe en un temps très bref de l’état « 0 » à l’état
« 1 ». Ce temps sera considéré comme suffisamment bref pour ne pas influer sur le temps de
propagation de l’inverseur. En exploitant la définition du temps de propagation proposée dans
le chapitre 5.4.2 page 93, nous distinguons trois instants comme illustré dans la figure 6.3 page
suivante :
• « 0− » : instant de passage du signal d’entrée E1 à Vdd /2 ;
• « 0+ » : instant d’arrivée du signal d’entrée E1 à Vdd ;
• « tpd » : instant de passage du signal de sortie S1 à Vdd /2.
Le tableau 6.1 résume les valeurs des différentes tensions aux bornes des transistors de l’inverseur
INV 1 au début (instant 0+ ) et à la fin (instant tpd ) de la propagation du signal de sortie S1 .
Instant « 0+ »
Instant « tpd »
Transistor NMOS
Vgsn = Vdd
Vdsn = Vdd
Vgsn = Vdd
Vdsn = Vdd /2
Transistor PMOS
Vgsp = 0
Vdsp = 0
Vgsp = 0
Vdsp = −Vdd /2
Tab. 6.1: Tensions aux bornes de transistors pour les instants 0+ et tpd .
6.3. ESTIMATION DE LA VITESSE DE LA LOGIQUE CMOS
101
Fig. 6.2: Simulation électrique de l’inverseur CMOS.
Fig. 6.3: Conditions de mesures des transitions des signaux.
La tension Vgsp garde la valeur 0 durant toute la transition de la sortie. Le transistor PMOS
reste donc bien bloqué pendant toute la transition de la sortie : il n’est traversé par aucun courant
(Idsp = 0).
La tension Vgsn garde la valeur Vdd durant toute la transition de la sortie. Le transistor NMOS
est donc passant, le courant qui le traverse peut être évalué à l’aide de la figure 6.4 page suivante
qui représente la caractéristique Idsn = f (Vdsn ) pour Vgsn = Vdd .
À l’instant 0+ , le courant est maximal et correspond au courant de saturation du transistor
NMOS. Ensuite, la décharge de la capacité Cpar entraîne une baisse de la tension Vdsn qui se traduit
par une diminution du courant fourni par le transistor. La figure 6.4 page suivante montre cependant
clairement que lorsque la sortie S1 de l’inverseur atteint Vdd /2 le courant Idsn du transistor n’a
que faiblement évolué : on peut, en première approximation, considérer que le courant fourni par
le transistor est constant pendant toute la durée tpd .
Le courant de décharge de la capacité parasite Cpar pendant l’intervalle de temps [0, tpd ] est
donc égal au courant de saturation du transistor NMOS pour Vgsn = Vdd :
102
CHAPITRE 6. PERFORMANCES DE LA LOGIQUE COMPLÉMENTAIRE CMOS
Fig. 6.4: Évolution du courant drain-source du transistor NMOS durant la transition descendante.
ICpar = Kn · (Vdd − Vtn )2
Le courant de décharge étant constant nous en déduisons directement la valeur de tpd :
tpd = Cpar
Vdd /2
∆V
= Cpar
I
Kn · (Vdd − Vtn )2
En négligeant Vtn devant Vdd puis en introduisant la résistance Rds0n du transistor NMOS en
régime ohmique, l’expression précédente se simplifie en :
tpd =
6.3.2
Cpar
= Cpar × Rds0n
2 · Kn · (Vdd − Vtn )
Modèle du temps de propagation de l’inverseur CMOS
Notre objectif est, ici, d’affiner le modèle du temps de propagation en examinant l’origine des
capacités parasites contribuant à la valeur de Cpar . De manière générale, nous pouvons distinguer
trois types de capacités :
1. Les capacités internes propres à l’inverseur INV 1 ;
2. Les capacités dues aux liaisons entre l’inverseur INV 1 et les différentes portes logiques connectées à sa sortie ;
3. Les capacités d’entrées des portes logiques connectées à la sortie S1 de l’inverseur.
L’effet des capacités internes à la porte sera assimilé à celui d’une unique capacité Cs appelée
capacité de sortie de l’inverseur et connectée entre la sortie S1 et la masse. L’effet des capacités de
liaison et des capacités d’entrées des portes connectées à la sortie de l’inverseur sera assimilé à une
unique capacité Cu appelée capacité d’utilisation de l’inverseur. Ainsi l’expression de tpd peut être
réorganisée de la façon suivante :
tpd = (Cs + Cu ) × Rds0n
6.3. ESTIMATION DE LA VITESSE DE LA LOGIQUE CMOS
103
Soit
tpd = tp0d + dtpd × Cu avec dtpd = Rds0n et tp0d = dtpd × Cs
Nous retrouvons, appliquée au cas spécifique d’une transition descendante, la formulation du
temps de propagation proposée dans le chapitre 5.4.3 page 94. Pour cela nous avons introduit le
temps de propagation en descente à vide de l’inverseur tp0d ainsi que la dépendance capacitive du
temps de propagation en descente dtpd .
Le raisonnement effectué pour une transition descendante de la sortie peut être appliqué à la
transition montante. Dans ce cas, seul le transistor PMOS est actif, les capacités parasites restant
identiques, la seule différence provient de la valeur de la résistance en régime ohmique du transistor
PMOS qui n’est pas forcément identique à celle du transistor NMOS.
tpm = tp0m + dtpm × Cu avec dtpm = Rds0p et tp0m = dtpm × Cs
6.3.3
Schéma synthétique de l’inverseur
La figure 6.5 propose un schéma synthétique de l’inverseur basé sur un interrupteur, deux
résistances de valeurs respectives Rds0n et Rds0p , et enfin les capacités CeINV et CsINV . Suivant
la valeur de la tension d’entrée, l’interrupteur bascule d’un état à l’autre provoquant la charge
ou la décharge du nœud de sortie. L’état représenté correspond à une entrée égale à « 0 ». La
Fig. 6.5: Schéma synthétique de l’inverseur CMOS.
figure 6.6 page suivante illustre la mise en série de deux inverseurs. La sortie du premier inverseur
(à l’état « 1 ») présente une capacité parasite Cpar totale égale à la somme de la capacité de sortie
CsINV du premier inverseur et de la capacité d’entrée CeINV du deuxième inverseur. Le temps de
propagation en montée tpm du premier inverseur est donc tpm = (CeINV + CsINV )Rds0p .
6.3.4
Schéma synthétique d’une porte CMOS quelconque
L’extrapolation à une porte CMOS quelconque se fait en suivant les principes suivants :
• Il y a autant de « capacités d’entrée » qu’il y a d’entrées dans la porte. L’estimation d’une
capacité d’entrée se fait en sommant les capacités des grilles des transistors connectés à cette
entrée.
• On peut grossièrement estimer la « capacité de sortie » en ne considérant que les capacités
parasites connectées au nœud de sortie de la porte. Les capacités des nœuds intermédiaires
seront négligées.
• On peut établir un équivalent à la résistance Rds0 des transistors de l’inverseur en considérant
le pire cas de mise en série des transistors et en faisant la somme des différentes résistances
pour ce pire cas.
104
CHAPITRE 6. PERFORMANCES DE LA LOGIQUE COMPLÉMENTAIRE CMOS
Fig. 6.6: Deux inverseurs en série.
Prenons l’exemple d’une porte NAND (figure 6.7) à deux entrées utilisant des transistors identiques à ceux de l’inverseur :
• les capacités d’entrées sur les entrées A et B sont identiques à celle de l’inverseur (CeINV ) ;
• la capacité de sortie est supérieure à celle de l’inverseur (CsINV ), car deux transistors PMOS
et un transistor NMOS sont connectés au nœud de sortie ;
• dans le pire cas, la résistance équivalente à la descente est égale à deux fois celle de l’inverseur
(2 × Rds0n ) ;
• dans le pire cas, la résistance équivalente à la montée est égale à celle de l’inverseur (Rds0p ).
Fig. 6.7: Schéma synthétique d’une porte NAND.
6.3.5
Notion de bibliothèque de cellules précaractérisées
Les sociétés de fonderies de silicium, ou « fondeurs », qui produisent des circuits intégrés numériques, proposent à leurs clients, des bibliothèques de portes logiques dites précaractérisées. Les
ingénieurs de ces sociétés développent, dessinent et simulent le comportement et les performances
de chacune des portes logiques de la bibliothèque. Ils fournissent à leurs clients des tables de caractéristiques permettant à ces derniers de concevoir des circuits intégrés et prédire leurs performances
sans avoir à explorer des niveaux de détail allant jusqu’au transistor. Le tableau 6.2 propose un
exemple simple d’une telle bibliothèque dont les caractéristiques globales sont les suivantes :
6.3. ESTIMATION DE LA VITESSE DE LA LOGIQUE CMOS
105
• les transistors NMOS des différentes portes sont tous de dimensions identiques ;
• les transistors PMOS des différentes portes sont tous de dimensions identiques ;
• les portes sont réalisées en utilisant exclusivement les principes de construction exposés dans
le chapitre 5 page 83.
Fonction
Équation booléenne
Cei
(fF)
tp0
(ns)
dtp
(ns/pF)
Inverseur
Y =A
CeA = 70
0,06
1
Nand à 3 entrées
Y = ABC
∀i ∈ {A, B, C}Cei = 70
0,42
3
Nand à 6 entrées
Y = ABCDEF
∀i ∈ {A · · · F }Cei = 70
1,56
6
Nor à 2 entrées
Y =A+B
∀i ∈ {A, B}Cei = 70
0,16
2
Nor à 6 entrées
Y =A+B+C +D+E+F
∀i ∈ {A · · · F }Cei = 70
0,96
6
nMaj à 3 entrées
Y = AB + BC + AC
CeA = CeB = 140
CeC = 70
0,25
2
Tab. 6.2: Une bibliothèque précaractérisée.
Nous pouvons faire les constatations suivantes :
• les temps de propagation s’expriment en dixièmes de nano-secondes ;
• les capacités s’expriment en dizaines de femto-farads (10−15 farads) ;
• les dépendances temporelles s’expriment en nano-secondes par pico-farad (équivalentes à des
kΩ) ;
• l’inverseur, porte booléenne la plus simple que l’on puisse imaginer est à la fois intrinsèquement la plus rapide (tp0 ) et la moins dépendante de l’environnement extérieur (dtp ).
De plus, conformément au modèle proposé dans le chapitre 6.3.4 page 103, la porte NAND
à 6 entrées est la porte ayant les performances les moins bonnes. En effet, dans le pire cas, la
décharge du nœud de sortie se fait à travers 6 transistors NMOS connectés en série. De plus 6
transistors PMOS étant connectés en parallèle sur la sortie, la capacité de sortie est très élevée ce
qui donne un tp0 catastrophique (20 fois plus grand que celui de l’inverseur). Cet exemple montre
une des limitations de la construction de portes en logique CMOS. En général, on préfère limiter
la bibliothèque à des portes à 4 ou 5 entrées maximum, quitte à créer des assemblages de portes
pour réaliser des fonctions booléennes complexes.
Enfin, les capacités d’entrées Cei des portes simples de type NAND ou NOR sont identiques à
celles d’un inverseur, car chaque entrée de ce type de porte est connectée à un couple de transistors
NMOS et PMOS comme dans le cas de l’inverseur. Ceci n’est pas un cas général, l’exemple de la
porte nMAJ montre qu’il peut y avoir différentes valeurs de capacités d’entrée suivant la manière
dont la logique est réalisée.
6.3.6
Influence du dimensionnement des transistors sur les caractéristiques de l’inverseur
Dans le paragraphe précédent, nous avons examiné les caractéristiques de portes CMOS constitués de transistors NMOS (ou PMOS) de dimensions standardisées. Il est possible d’optimiser le
comportement temporel des portes en jouant sur les dimensions des transistors qui les composent.
Nous n’étudierons ici que le cas simple de l’inverseur.
Nous avons vu que le temps de propagation est proportionnel à la résistance Rds0 des transistors
en régime ohmique. En ce qui concerne le transistor NMOS, cette résistance a pour expression :
Rds0n =
1
Wn
0
µ0N COX
Ln (Vdd
− Vtn )
À l’évidence, nous pouvons augmenter les performances de l’inverseur en diminuant la longueur
Ln du transistor NMOS ou en augmentant sa largeur Wn . En règle générale, tous les transistors
sont dimensionnés avec la longueur de grille minimale Lmin autorisée par la technologie. C’est pour
106
CHAPITRE 6. PERFORMANCES DE LA LOGIQUE COMPLÉMENTAIRE CMOS
cette raison qu’une technologie est souvent qualifiée par cette longueur de grille minimale : on
parle, par exemple, d’une technologie « 0,09 microns ». Donc en réalité, seul le paramètre Wn peut
servir de variable d’ajustement.
Retenons que les transistors sont le plus souvent dimensionnés avec une longueur de grille
minimale Lmin .
Retenons que la dépendance capacitive dtpdINV est inversement proportionnelle à la largeur Wn
du transistor NMOS.
Retenons que la dépendance capacitive dtpmINV est inversement proportionnelle à la largeur Wp
du transistor PMOS.
Cependant, l’augmentation de la largeur des transistors a pour conséquence l’augmentation de
la valeur de la capacité parasite à charger. En effet, la capacité Cs est la résultante des capacités
parasites propres aux transistors composant l’inverseur, toutes proportionnelles à la largeur des
transistors (voir chapitre 4.6.9 page 78).
Retenons que la capacité de sortie CsINV de l’inverseur est la somme de deux termes, l’un étant
proportionnel à la largeur Wn du transistor NMOS, l’autre étant proportionnel à la largeur Wp du
transistor PMOS.
Un raisonnement identique peut être fait pour la capacité d’entrée de l’inverseur. Cette capacité
ne dépend que des capacités de grille Cgsn et Cgsp des deux transistors :
Retenons que la capacité d’entrée CeINV de l’inverseur est la somme de deux termes, l’un étant
proportionnel à la largeur Wn du transistor NMOS, l’autre étant proportionnel à la largeur Wp du
transistor PMOS.
Ces résultats partiels, permettent de déterminer une règle générale de dimensionnement des
transistors d’un inverseur : disposant d’un inverseur donné de caractéristiques (CeINV , tp0INV ,
dtpINV ) connues, la multiplication des largeurs Wn et Wp des deux transistors NMOS et PMOS
par un même coefficient α modifie les caractéristiques de l’inverseur de la façon suivante :
• la capacité d’entrée de l’inverseur CeINV est multipliée par α ;
• la dépendance capacitive de l’inverseur dtpINV est divisée par α ;
• le temps de propagation à vide tp0INV reste inchangé.
Le dernier résultat est dû aux effets contraires des augmentations de capacités internes et de
diminution des résistances.
6.4
6.4.1
Consommation des circuits intégrés CMOS
Consommation d’une porte CMOS
Rappelons (voir chapitre 5.3.2 page 87) que la consommation statique (la porte étant dans
l’un de ses deux états d’équilibre) d’une porte logique complémentaire CMOS, est NULLE. Nous
nous intéressons, dans ce qui suit, à la consommation dynamique, c’est-à-dire à la consommation
nécessaire au passage de la porte CMOS d’un état d’équilibre à un autre. Si nous faisons l’hypothèse
que les deux réseaux NMOS et PMOS d’une même porte logique ne sont jamais simultanément
actifs (passants) alors la consommation d’une porte CMOS se résume à l’énergie nécessaire pour
charger les différentes capacités parasites connectées sur la sortie de la porte :
• pendant une transition montante de la sortie de la porte, l’alimentation fournit le courant qui,
au travers du réseau de transistor PMOS, charge la capacité connectée au nœud de sortie ;
• pendant une transition descendante de la sortie, la capacité de sortie est déchargée à travers
le réseau NMOS.
Comme l’illustre la figure 6.8 page suivante, l’énergie fournie par l’alimentation est dissipée par
effet Joule dans les réseau de transistors PMOS (respectivement NMOS) pendant les transitions
montantes (respectivement descendantes) de la sortie de la porte.
La puissance instantanée fournie par l’alimentation Vdd pendant la charge de la capacité Cpar
s’exprime de la façon suivante :
dVs
dt
L’énergie totale fournie par l’alimentation s’obtient en intégrant la puissance pendant la durée
totale de la transition :
PVdd (t) = Vdd ICpar = Vdd Cpar
6.4. CONSOMMATION DES CIRCUITS INTÉGRÉS CMOS
107
Fig. 6.8: Dissipation de l’énergie dans une porte CMOS.
Z
∞
EV dd =
0
dVs
Vdd Cpar
dt = Cpar Vdd
dt
Z
Vdd
2
dVs = Cpar Vdd
0
De manière similaire, l’énergie potentielle stockée dans la capacité après la charge est :
Z
ECpar =
∞
Vs Cpar
0
dVs
dt = Cpar
dt
Z
Vdd
Vs dVs = Cpar
0
2
Vdd
2
Ces résultats montrent que seule la moitié de l’énergie fournie par l’alimentation est stockée
dans la capacité. L’autre moitié est dissipée par effet Joule dans le réseau de transistors PMOS.
Remarquons que cette énergie dissipée est indépendante de la résistance équivalente des transistors
qui composent le réseau PMOS.
Une étude similaire pour la décharge montre que l’énergie potentielle stockée dans la capacité
est entièrement dissipée par effet Joule dans le réseau de transistors NMOS.
En résumé, chaque transition de la sortie d’une porte CMOS se traduit par une dissipation de
Cpar Vdd 2 /2 dans la porte CMOS, où Cpar est la capacité parasite totale chargée par la porte et
Vdd est la tension d’alimentation de la porte.
Connaissant l’énergie par transition, il est possible d’en déduire la consommation moyenne d’une
porte logique. Pour cela,nous devons introduire le rythme moyen Ftrans de changement d’état de
la porte que nous nommerons fréquence de transitions :
Pporte =
6.4.2
2
Ftrans Cpar Vdd
2
Extrapolation à un circuit intégré CMOS
La formule décrivant la consommation d’une porte CMOS peut être extrapolée au niveau d’un
circuit intégré complet. La grande majorité des circuits intégrés numériques sont des circuits dit
« séquentiels » et « synchrones ». Leur principe de fonctionnement est basé sur le cadencement des
opérations de calcul par une horloge externe dont la fréquence est nommée Fh . La fréquence de
transitions Ftrans des portes CMOS qui composent un circuit est évidemment étroitement corrélée
à la fréquence d’horloge du circuit, elle reste cependant plus faible que cette dernière car elle dépend
de la nature des fonctions logiques exécutées par les portes et des différentes corrélations entre les
signaux booléens internes au circuit. Pour tenir compte de cela, on introduit Tact , taux d’activité
moyen des portes du circuit intégré, qui représente la probabilité de transition des portes à chaque
période de l’horloge Fh . L’ensemble des capacités parasites du circuit peut être alors aggloméré en
un seul terme Ctotal conduisant à l’expression de la consommation du circuit intégré :
Pcircuit = Tact Fh Ctotal V dd2
108
6.5
CHAPITRE 6. PERFORMANCES DE LA LOGIQUE COMPLÉMENTAIRE CMOS
Évolution technologique et conclusions
Nous avons évalué de manière simple trois critères permettant d’évaluer les performances des
circuits intégrés CMOS. Les résultats obtenus montrent à l’évidence que certains compromis doivent
être faits.
Le temps de propagation des portes est inversement proportionnel à la tension d’alimentation,
on peut en déduire un peu rapidement qu’il suffit d’augmenter la tension d’alimentation Vdd pour
augmenter les performances des circuits. Cependant, nous devons constater que la consommation
des circuits varie comme le carré de la tension d’alimentation donc toute augmentation de celle-ci
diminue le rendement d’utilisation de la technologie...
C’est pourquoi, les travaux d’amélioration de la technologie ont porté sur la diminution des
capacités, termes présents en facteur à la fois dans l’expression des temps de propagation et de la
consommation. Le moyen le plus simple de réduire les capacités est la réduction des géométries des
transistors qui permet de gagner en même temps sur la surface des circuits intégrés. Les moyens
technologiques et financiers mis en jeu par les fonderies de silicium sont essentiellement tournés
vers cette réduction des dimensions des transistors.
Nous allons maintenant évaluer l’impact des réductions de dimension à partir des formules
établies dans les paragraphes précédents. Le principe généralement employé d’une génération technologique à une autre est d’accompagner les réductions géométriques de modifications des dopages
et tensions d’alimentations pour conserver les caractéristiques fonctionnelles des transistors. En
résumé les différents paramètres suivants sont touchés :
• division d’un facteur β de la largeur W des transistors ;
• division d’un facteur β de la longueur L des transistors ;
• division d’un facteur β de l’épaisseur d’oxyde de grille Tox des transistors ;
• division d’un facteur β de la tension de seuil Vt des transistors ;
• division d’un facteur β de la tension d’alimentation Vdd du circuit.
A fonctionnalité identique, le changement de génération technologique permet de réaliser des circuits
de surface β 2 fois plus petite !
La résistance équivalente des transistors devient :
Rds0 (β) =
1
0 ) W β Vdd −Vt
µ0 (βCox
β L
β
= Rds0
Donc la résistance équivalente des transistors ne varie pas.
Si, par simplification, nous réduisons les effets parasites des transistors aux capacités de grille
alors ces capacités de charge deviennent :
0
Cpar (β) = (W/β)(L/β)(βCox
)=
Cpar
β
Donc les capacités parasites sont divisées d’un facteur β. En conséquence, les temps de propagation
des portes (produit RC) sont divisés d’un facteur β :
tp (β) =
tp
β
À fonctionnalité identique, le changement de génération technologique permet de réaliser des
circuits de surface β 2 fois plus petite, ayant une vitesse de fonctionnement β plus élevée !
Cependant l’énergie dissipée par une porte pendant une transition devient :
Eporte (β) =
Cpar Vdd 2
β ( β )
2
=
Eporte
β3
Donc l’énergie est divisée par un facteur β 3 ce qui est extrapolable au circuit.
Si nous profitons de l’augmentation de vitesse des portes logiques pour augmenter la vitesse
d’horloge du circuit alors la puissance consommée par le circuit devient :
Pcircuit (β) = Tact (βFh )
Ecircuit
Pcircuit
=
3
β
β2
6.5. ÉVOLUTION TECHNOLOGIQUE ET CONCLUSIONS
109
À fonctionnalité identique, le changement de génération technologique permet de réaliser des
circuits de surface β 2 fois plus petite, ayant une vitesse de fonctionnement β plus élevée et dont la
consommation est β 2 fois moins élevée !
Supposons maintenant que nous profitions de la réduction de taille des transistors pour réaliser un circuit plus complexe. À surface identique, nous pouvons multiplier par β 2 le nombre de
transistors dans le circuit et donc multiplier par β 2 la capacité parasite totale à charger :
Le changement de génération technologique permet de réaliser des circuits β 2 fois plus complexes, fonctionnant à une vitesse β fois plus élevée et ayant une consommation identique aux
circuits de la génération précédente.
Pour conclure, n’oublions pas que ces lois d’évolution sont basées sur des hypothèses simplifiées
ne tenant pas compte de facteurs importants tels, par exemple, les capacités parasites liées au
connections métalliques entre transistors ou les courants de fuite ou de court-circuits des transistors.
Cela dit le formules obtenues dans ce chapitre donnent une première approche théorique à qui
s’intéresse aux évolutions à venir de l’industrie du semi-conducteur.
110
CHAPITRE 6. PERFORMANCES DE LA LOGIQUE COMPLÉMENTAIRE CMOS
Chapitre 7
Logique séquentielle synchrone,
bascules
7.1
Introduction
D’une façon complémentaire à la logique combinatoire, la logique séquentielle permet d’organiser les calculs booléens dans le temps. Par exemple, pour additionner 1000 nombres, plutôt que
d’effectuer 999 additions avec 999 additionneurs, une solution consiste à additionner à tour de rôle
les 1000 opérandes avec 1 seul additionneur. Pour ce faire un circuit à base de logique séquentielle
est nécessaire pour :
• présenter successivement les 1000 opérandes
• accumuler le résultat de l’addition avec un résultat intermédiaire
• arrêter le calcul sur le 1000ème opérande
Cet exemple illustre la « sérialisation » des calculs mais la logique séquentielle peut tout aussi bien
servir à « paralléliser » . Par exemple, si les débits de calculs sont 2 fois trop faibles en utilisant la
logique combinatoire, une solution consiste à mettre en parallèle 2 opérateurs et présenter alternativement les données impaires sur le premier et paires sur l’autre. Dans cet exemple, la logique
séquentielle permet d’orienter correctement les données et de concaténer les résultats.
L’ordonnancement temporel et conditionnel des tâches que procure la logique séquentielle permet de concevoir des algorithmes de calculs puissants et des machines à calculer génériques comme
les automates et les processeurs. Le séquencement nécessite une fonction propre à la logique séquentielle : la mémorisation. Celle-ci permet de geler les données et les commandes de façon à les
réutiliser dans un ordre défini.
7.1.1
Comment reconnaître la logique séquentielle ?
Depuis le début du cours d’ENI, nous avons étudié les circuits combinatoires. Le comportement
logique de ces circuits est tel que la présentation, à des instants différents, des mêmes valeurs
d’entrée produira à chaque fois les mêmes résultats. La figure 7.1 page suivante dans laquelle on
a représenté le chronogramme des combinaisons des entrées et des sorties par des couleurs illustre
cette propriété.
Quelles que soient les couleurs présentées aux entrées pendant les intervalles de temps figurés
en grisé et quelles que soient les couleurs correspondantes observées aux sorties, la couleur bleu à
l’entrée du circuit produit toujours (après un temps de propagation) la couleur vert en sortie.
Un circuit de logique séquentielle ne possède pas cette propriété ; la connaissance des entrées
appliquées à un instant donné ne suffit pas à déterminer les valeurs des sorties comme le montre la
figure 7.2 page suivante. La combinaison bleu présentée à plusieurs reprises aux entrées du circuit
ne produit pas toujours le même résultat. La valeur observée aux sorties est tantôt le vert, tantôt
le violet.
Le comportement de la logique séquentielle s’explique par la présence de variables supplémentaires internes au circuit dont la valeur évolue au cours du temps qui est la cause de ce non111
112
CHAPITRE 7. LOGIQUE SÉQUENTIELLE SYNCHRONE, BASCULES
Fig. 7.1: Chronogramme d’un circuit combinatoire
Fig. 7.2: Chronogramme d’un circuit séquentiel
déterminisme apparent. La connaissance de la valeur de ces variables internes est nécessairement
si l’on veut prévoir la valeur des sorties. La figure 7.3 page ci-contre illustre le chronogramme du
circuit en tenant compte des variables internes.
7.1.2
Comment construire la logique séquentielle ?
Les valeurs des variables internes reflètent « l’état du système » qui dépend des entrées et
de leurs valeurs précédentes. Les variables internes contiennent une partie de l’histoire du circuit
car elles dépendent de leurs valeurs passées. La structure du circuit de logique séquentielle possède donc un circuit combinatoire calculant les variables internes et recevant les entrées et les
variables internes, entraînant ainsi un rebouclage comme illustré dans la figure 7.4 page suivante.
C’est ce rebouclage qui réalise la fonction de mémorisation propre à la logique séquentielle (cf
paragraphe 7.2.1 page 114).
Comme il a été étudié dans le chapitre sur les performances 6 page 99, les temps de propagation
dans un circuit combinatoire sont extrêmement variables et dispersifs. Ils dépendent des structures
CMOS utilisées, des lignes de connexion, des procédés technologiques, de la tension d’alimentation
et de la température de la jonction. En conséquence, il est difficile de faire fonctionner le dispositif
de la figure 7.4 page ci-contre d’une façon fiable car chaque variable interne et chaque sortie a son
propre temps de propagation, générant des courses entre signaux et pouvant entraîner un dysfonctionnement du système. Une méthode largement répandue pour l’évolution des calculs consiste à
7.1. INTRODUCTION
113
Fig. 7.3: Chronogramme avec les variables internes
Fig. 7.4: structure de base d’un circuit en logique séquentielle
synchroniser les calculs. Dans cette méthode les variables internes et les sorties sont gelées dans
une mémoire, généralement une bascule D (cf paragraphe 7.2 page suivante), et mises à jour après
la fin de calcul du circuit combinatoire. Les sorties sont mémorisées car elles sont potentiellement
utilisées comme entrées d’autres circuits séquentiels. Un circuit sans variables internes avec sorties
mémorisées est également un circuit de logique séquentielle dans le sens où les mémoires ont leurs
propres variables internes, comme expliqué dans le paragraphe 7.2.2 page 115. La mise à jour des
mémoires, ou échantillonnage des résultats, se fait d’un façon synchrone au rythme d’un signal de
commande périodique : l’horloge. La figure 7.5 page suivante illustre la structure générale de la
logique séquentielle synchrone :
L’instant d’échantillonnage correspond à une transition montante ou descendante du signal
d’horloge dont le chronogramme est donné en figure 7.6 page suivante. Le rapport cyclique de cette
horloge, c’est à dire le rapport entre le temps où l’horloge vaut 1 et le temps ou l’horloge vaut 0,
peut en conséquence être différent de 50/50.
Pour assurer la bonne marche d’un circuit en logique séquentielle synchrone disposant d’une
unique horloge, il suffit de connaître le temps maximum de calcul du circuit combinatoire et d’utiliser une période d’horloge supérieure à ce temps. Le chemin le plus lent d’un circuit combinatoire
s’appelle « chemin critique » . Si Th est la période d’horloge et Tcrit est le temps de propagation
du chemin critique, alors il suffit de respecter :
Th > Tcrit
Le calcul du chemin critique se fait dans les conditions d’utilisation les pires, c’est-à-dire un
114
CHAPITRE 7. LOGIQUE SÉQUENTIELLE SYNCHRONE, BASCULES
Fig. 7.5: Structure de base d’un circuit en logique séquentielle synchrone
Fig. 7.6: Chronogramme du signal d’horloge
procédé technologique sous-optimal, une tension d’alimentation Vdd faible et une température de
jonction élevée.
7.2
Les bascules D
La brique de base spécifique à la logique séquentielle est le point mémoire. Il existe différentes
technologies pour créer le point mémoire. La « bascule D » est un composant de mémorisation
pour un seul point mémoire. La mémoire RAM Random Access Memory est un ensemble de points
mémoires regroupés dans une matrice. L’accès à la RAM ne permet pas d’accéder à tous les point
mémoires en même temps, mais à un seul. Un mécanisme d’adressage est donc nécessaire pour
sélectionner un point mémoire qui dispose ainsi de sa propre « adresse » .
7.2.1
Le point mémoire élémentaire
Une des techniques de mémorisation repose sur le principe de stabilité des systèmes en boucle
fermée comme illustré par la figure 7.7. Ce principe est utilisé en technologie CMOS pour construire
les bascules et les RAMs statiques. Un amplificateur rebouclé sur lui même constitue un système
stable (qui ne change pas d’état). S’il existe un moyen d’initialiser l’amplificateur avec une certaine
valeur, celle ci est gelée dans l’amplificateur qui, par le rebouclage sur lui-même, a le rôle de point
mémoire. Une autre technique de mémorisation consiste à capturer des charges électriques dans un
condensateur. Ce principe est utilisé pour les mémoires FLASH et RAM dynamiques. Il nécessite
une technologie de fabrication de circuits intégrés, différente du CMOS, qui ne sera pas étudiée en
ENI.
Fig. 7.7: Point mémoire basé sur un amplificateur rebouclé
7.2. LES BASCULES D
115
La fonction de transfert de l’amplificateur doit avoir une zone d’amplification dans son milieu
(pente strictement supérieure à 1) pour pouvoir converger vers le niveau haut ou bas de la courbe.
La figure 7.8 illustre un exemple de fonction de transfert.
Fig. 7.8: Fonction de transfert de l’amplificateur
Il existe 3 points stables de la fonction de transfert 0, Vmax et X. Les 2 premiers correspondent
au fonctionnement normal et permettent d’associer les grandeurs physiques (0,Vmax) à des niveaux
booléens (vrai, faux).
Le point X correspond à un état « métastable » associé à aucun niveau booléen, il faut donc
l’éviter . S’il existe la zone d’amplification en milieu de courbe, Il suffit de s’écarter légèrement de
ce point pour converger vers O ou Vmax. La figure 7.9 illustre le fait que le point initial (Ve1 , Vs1 )
proche du point X converge rapidement vers Vmax .
Fig. 7.9: Convergence vers un état stable en ne partant pas de X
Le bruit ambiant contribue à ce que cet état métastable ne dure pas et que le système converge.
Le temps de convergence n’est pas constant, il dépend de la technologie et peut être très long. Les
points mémoires ont toujours des contraintes d’utilisation pour éviter cet état.
7.2.2
structure avec 2 inverseurs tête bêche : bascule RS et RAM statique
En pratique, l’amplificateur est réalisé avec 2 inverseurs en tête bêche comme représenté sur la
figure 7.10 page suivante
Pour initialiser le point mémoire, il faut forcer un niveau sur l’entrée d’un inverseur et son opposé
sur l’autre inverseur. La bascule RS (Reset Set) consiste à utiliser une initialisation logique avec des
signaux pilotant des portes NAND ou NOR comme illustré dans la figure 7.11 page suivante. Par
exemple pour la bascule RS à base de NAND, les entrées RESET et SET sont complémentaires
et actives à 0. Quand RESET est actif (au niveau 0) , et SET inactif (au niveau 1), la sortie Q
116
CHAPITRE 7. LOGIQUE SÉQUENTIELLE SYNCHRONE, BASCULES
Fig. 7.10: inverseurs en tête bêche pour la mémorisation
est initialisée à 0. Quand RESET et SET sont inactifs (au niveau 1) la bascule RS est en mode
mémoire et garde la valeur préalablement initialisée. Dans ces structures apparaît clairement la
variable interne correspondant à l’équipotentielle Q réentrant sur le circuit.
Fig. 7.11: bascule RS avec une structure NAND et NOR
Les points suivants sont à noter :
• La structure de la bascule dispose de 2 sorties Q et son complément Q.
• les 2 entrées ne doivent pas être actives simultanément. Si c’est la cas, c’est l’entrée la plus
proche de la sortie qui est prioritaire.
Dans le cas du point mémoire RAM statique, l’initialisation est effectuée grâce à 2 transistors
NMOS de part et d’autre des 2 inverseurs comme le montre la figure 7.12. Lorsque la commande C
est activée, la valeur de D et son complément sur D sont écrites dans le point mémoire. Cette opération nécessite des transistors NMOS plus gros que ceux des inverseurs pour imposer électriquement
un niveau pouvant être différent au départ. Si D est flottant ou en haute impédance, la valeur du
point mémoire apparaît sur D et son complément sur D, ce qui permet d’effectuer une lecture de
ce point. Cette structure est plus petite que la bascule et ne dispose que d’une entrée spécifique
par point mémoire (la commande C) se prêtant bien à une structure matricée. La commande C est
issue d’un décodage de signaux d’adresse sur N bits permettant d’accéder à un seul point parmi
2N .
Fig. 7.12: Point mémoire RAM statique
7.2.3
De la bascule RS à la bascule D sur état : le latch
La bascule RS peut évoluer vers la bascule D qui voit les 2 entrées Reset et Set remplacées par
une unique entrée D = set = Reset. De façon à avoir la mémorisation quand Reset = Set = 0,
une entrée EN est utilisée pour forcer les entrées à 0 avec 2 portes ET. Ce dispositif est appelé
bascule D sur état ou Latch. Quand EN vaut 1, il y a recopie de l’entrée sur la sortie, le latch est
7.2. LES BASCULES D
117
transparent, et quand EN vaut 0, il est en état de mémorisation. La structure du latch est illustrée
par la figure 7.13 :
Fig. 7.13: Structure de la bascule D sur état ou latch
7.2.4
La bascule D sur front ou Flip-Flop
Dans le paragraphe 7.1.2 page 112, nous avons vu que la synchronisation des variables internes
et des sorties permet de fiabiliser les calculs. Cette méthode nécessite une mémoire mise à jour
par une horloge lors de l’instant d’échantillonnage. En conséquence, le latch ne convient pas pour
cette méthode car il perd sa fonction de mémorisation durant une phase de l’horloge, quand il
est transparent. Il faut nécéssairement utiliser une bascule D sur front aussi appelée Flip-Flop ou
tout simplement bascule D. La bascule D peut être obtenue avec 2 latches en cascade (figure 7.14
disposant d’entrées EN complémentaires. Cette bascule permet de mémoriser et d’échantillonner
la valeur de la variable d’entrée sur une transition du signal EN.
Fig. 7.14: structure de la bascule D à partir de latches
Le chronogramme de la figure 7.15 illustre le fonctionnement de la bascule D. La sortie S ne
change qu’après échantillonnage sur front montant de l’horloge H, et est mémorisée pendant une
période d’horloge. Ces points importants sont à noter :
• La sortie S ne change pas immédiatement après le front montant de H car la bascule D a son
propre temps de propagation.
• Si D1 change entre 2 fronts montants d’horloge (cas des valeurs e0 et e2), elles ne sont pas
prises en compte dans la bascules. Seules comptent les valeurs de D1 au moment du front
montant d’horloge.
En pratique il est possible d’avoir un recouvrement entre H et H , une technique consiste à
utiliser respectivement pour les 2 latches, 2 horloges φ1 et φ2 non recouvrantes correspondant aux
2 phases de l’horloge.
Fig. 7.15: Chronogramme de la bascule D avec 2 latches
La bascule D peut disposer optionnellement d’entrées d’initialisation de mise à 1 P reset ou
mise à 0 Reset ou Clear. Ces entrées sont asynchrones, c’est à dire actives immédiatement sans
être sensibles au front montant de l’horloge. Ces entrés asynchrones sont actives à 0 , ce qui est
118
CHAPITRE 7. LOGIQUE SÉQUENTIELLE SYNCHRONE, BASCULES
indiqué sur le symbole de la bascule par un cercle signifiant l’inversion de polarité. Le symbole de
la bascule D est illustré en figure 7.16 et la table de vérité par la table 7.1. La bascule D peut avoir
une sensibilité au front descendant plutôt qu’au front montant de l’horloge. Dans ce cas le symbole
de la bascule dispose d’un cercle sur l’entrée de l’horloge signifiant l’inversion de polarité.
Fig. 7.16: Symbole de la bascule D
D
H
Preset
Reset
Q
Etat
0
↑
1
1
0
échantillonnage
1
↑
1
1
1
X
0
1
1
Q
X
1
1
1
Q
X
X
0
1
1
forçage à 1
X
X
1
0
0
forçage à 0
mémorisation
Tab. 7.1: Table de vérité de la bascule D
7.2.5
Conditions d’utilisation de la bascule
De façon à éviter les états métastables (cf paragraphe 7.2.1 page 114) de la bascule, les constructeurs spécifient une fenêtre temporelle autour de l’instant d’échantillonnage, dans laquelle la variable d’entrée ne doit pas changer de valeur. 2 temps sont utilisés à cette fin :
• tsu : temps de prépositionnement ou set up : temps durant lequel les données doivent rester
constantes avant le front montant d’horloge.
• th : temps de maintien ou hold : temps durant lequel les données doivent rester constantes
après le front montant d’horloge.
Le temps de propagation des bascules tco correspond au temps séparant le front d’horloge des
données stabilisées en sortie. La figure 7.17 page ci-contre illustre les caractéristiques temporelles
de la bascule D.
Dans le calcul du chemin critique, les temps de propagation Tco et de prépositionnement Tsu
doivent être pris en compte, comme indiqué dans la figure 7.18 page suivante. Si Th est la période
d’horloge alors il faut respecter :
Th > Tco + Tcrit + Tsu
7.3. EXEMPLES FONDAMENTAUX DE LA LOGIQUE SÉQUENTIELLE SYNCHRONE 119
Fig. 7.17: Caractéristiques temporelles de la bascule D
Fig. 7.18: Temps de propagation à considérer en logique séquentielle
7.3
7.3.1
Exemples fondamentaux de la logique séquentielle synchrone
Le mécanisme de décalage avec un registre à décalage
Un registre est par définition un ensemble de bascules. Un registre à décalage est constitué de
N bascules en cascade comme indiqué dans la figure 7.19.
Fig. 7.19: registre à décalage
A chaque front d’horloge, le contenu de chaque bascule amont est décalé dans la bascule aval.
Ainsi au bout de N fronts montants d’horloge, la première valeur rentrée se retrouve en sortie comme
représenté dans la figure 7.20 page suivante. Le fonctionnement correct du registre impose d’avoir
un temps de propagation Tco supérieur au temps de maintien Th . Cette condition est toujours
garantie par les constructeurs de bascules.
Le registre à décalage est une structure importante de la logique séquentielle qui permet de
réaliser beaucoup d’opérations élémentaires :
120
CHAPITRE 7. LOGIQUE SÉQUENTIELLE SYNCHRONE, BASCULES
Fig. 7.20: Chronogramme du registre à décalage
• Passage d’un format série à un format parallèle : les bits rentrent en série et les N bits du
registre sont les sorties.
• Passage d’un format parallèle à un format série : Les bascules sont initialisées par un mot
d’entrée et la sortie s’effectue sur la dernière bascule.
• Recherche d’une chaîne de bits particulière : les sorties des bascules sont comparées avec la
chaîne de référence.
• Compteur de Johnson : le registre est rebouclé sur lui même et ne contient qu’un seul ’1’ qui
boucle.
• Et encore : générateur de nombres pseudo aléatoires (LFSR Linear Feedback shift register ),
filtres numériques RIF,...
7.3.2
Le mécanisme de comptage
Le compteur est un opérateur très fréquemment utilisé en électronique numérique. Dans sa
version la plus simple il s’agit d’un dispositif dont la sortie représente une donnée numérique qui
augmente d’une unité à chaque période d’horloge. Celui que nous allons présenter possède une
sortie codée sur 3 bits et enchaîne la séquence :
0, 1, 2, 3, 4, 5, 6, 7, 0, 1, ...
Le compteur est muni d’une horloge qui rythme son fonctionnement et d’un signal optionnel de
remise à zéro asynchrone, RAZ. Pour réaliser ce compteur il suffit de se munir d’un incrémenteur
combinatoire de 3 bits (opérateur qui réalise +’001’) et d’un registre 3 bits comme l’illustre la
figure 7.21. A chaque période d’horloge, l’état futur du compteur est égal à son état courant
augmenté de 1. L’initialisation du compteur se fait par le signal RAZ sur l’entrée Reset asynchrone
des 3 bascules.
Fig. 7.21: Compteur binaire
7.3. EXEMPLES FONDAMENTAUX DE LA LOGIQUE SÉQUENTIELLE SYNCHRONE 121
7.3.3
Principe de sérialisation des calculs
La logique séquentielle permet de sérialiser les opérations sur N opérandes. A chaque période
d’horloge, une seule opération est effectuée entre un nouvel opérande sur l’entrée, et un résultat
intermédiaire stocké dans un registre. La figure 7.22 représente un additionneur de mots de 16 bits
dont la somme totale ne dépasse pas 255. Cet opérateur s’appelle aussi accumulateur. Il faut noter
dans le circuit proposé qu’il manque la fonction d’initialisation et que l’additionneur utilisé est sur
8 bits, ce qui limite la dynamique de la variable accumulée à 255.
Le compteur binaire étudié préalablement est une version simplifiée de l’accumulateur où tous
les mots à accumuler sont remplacés par une constante égale à 1. Dans les microprocesseurs,
les opérations sont effectuées dans un accumulateur capable d’effectuer la plupart des opérations
arithmétiques et logiques.
Fig. 7.22: Accumulateur
122
CHAPITRE 7. LOGIQUE SÉQUENTIELLE SYNCHRONE, BASCULES
Le chronogramme des opérations est indiqué dans la figure 7.23 où il est supposé que la valeur
initiale est égale à 0.
Fig. 7.23: Chronogramme de l’accumulateur
7.3.4
Principe d’accélération des calculs par la mise en pipeline
Le débit de calcul est une caractéristique importante des systèmes électroniques, en particulier
dans le domaine des télécommunications. Les données à traiter arrivent d’une façon synchrone à
un rythme f . Pour traiter ces données il suffit d’utiliser un circuit séquentiel utilisant une horloge
de fréquence f comme illustré dans la figure 7.24 où φ représente l’opération à effectuer.
Fig. 7.24: circuit séquentiel de traitement de flot de données
Pour que l’opérateur fonctionne correctement il suffit que :
Th = 1/f et Tp < 1/f , où
• f est le débit de calcul
• Th est la période d’horloge
• Tp est le temps de propagation du chemin critique, incluant celui des bascules
Si cette condition n’est pas respectée, des solutions architecturales existent en logique séquentielle pour accélérer le débit des calculs. Une méthode consiste à faire une mise en pipeline. Si par
exemple Tp est 3 fois trop long : T p = 3/f , on peut décomposer φ en 3 sous-fonctions cascadables
φ1 ∗ φ2 ∗ φ3. On obtient alors la structure de la figure 7.25 page ci-contre. Celle ci ne résout toujours
pas le problème de non respect de la contrainte de débit de f .
Si les 3 circuits réalisant les sous-fonctions ont des temps de propagation identiques de T p/3 ,
le temps de propagation du chemin critique devient Tp /3 à la place de Tp en plaçant des registres
entre ces circuits. Cette mise en pipeline permet ainsi de respecter la contrainte de débit. La
figure 7.26 page suivante illustre cette nouvelle structure avec les étages de pipeline correspondant
aux registres rajoutés.
Par définition la latence de calcul est le nombre de cycles pour obtenir le résultat du calcul.
Dans l’exemple ci-dessus, la latence est passée de 1 à 3. Une plus grande latence ne signifie pas un
retard absolu plus grand car la période d’horloge est d’autant diminuée.
7.3. EXEMPLES FONDAMENTAUX DE LA LOGIQUE SÉQUENTIELLE SYNCHRONE 123
Fig. 7.25: Circuit séquentiel de traitement de flot de données après décomposition en sous fonctions
Fig. 7.26: Circuit séquentiel de traitement de flot de données après décomposition en sous fonctions
En pratique, si on veut générer N étages de pipeline, il est souvent difficile d’équirépartir les
temps de propagation en Tp /N et il faut aussi prendre en compte les temps de propagation et de
prépositionnement des bascules. Donc la décomposition en N étages de pipeline permet de gagner
en débit d’un facteur un peu inférieur à N .
124
CHAPITRE 7. LOGIQUE SÉQUENTIELLE SYNCHRONE, BASCULES
Chapitre 8
Machines à états
8.1
Introduction
Les machines à états sont des circuits de logique séquentielle (cf chapitre 7 page 111) servant
exclusivement à générer des signaux de commande. Il existe en effet 2 grands types de signaux en
électronique :
• Signaux à traiter : les données
• Signaux pilotant le traitement : les commandes
Cette classification des signaux se retrouve au niveau des architectures des systèmes électroniques qu’on peut schématiser comme dans la figure 8.1 où la partie contrôle, générant les commandes, est dissociée de la partie opérative, traitant les données. Les 2 parties sont toujours réalisées
en logique séquentielle et dans un très grande majorité des cas en logique séquentielle synchrone.
Fig. 8.1: Architecture générique d’un circuit électronique
Pour la logique séquentielle synchrone, il existe 2 signaux de commandes importants :
• L’horloge : pour le déroulement des séquences
• Le Reset : pour l’initialisation du système
La machine à état représente la partie contrôle, c’est à dire le cerveau du système électronique
et la partie opérative , les jambes.
Il existe beaucoup de déclinaisons de cette architecture, des plus compliquées comme les microprocesseurs qui ont plusieurs machines à états et plusieurs parties opératives, des plus simples mais
tout aussi importantes comme les contrôleurs d’ascenseurs ou de machine à café. Pour ce dernier
type de système, les données sont inexistantes car les commandes servent à piloter des actionneurs,
valves et moteurs,...
Les états de la machine à états représentent toutes les valeurs que peuvent prendre les variables
internes du circuit de logique séquentielle (cf chapitre 7 page 111). Le schéma de la machine à états
générique est représenté en figure 8.2 page suivante
Par exemple pour la machine à café, les états peuvent être :
1. Attente de pièce
2. Descendre le gobelet
125
126
CHAPITRE 8. MACHINES À ÉTATS
Fig. 8.2: Schéma d’un machine à état générique
3. Verser la poudre de café
4. Verser l’eau chaude
5. Indiquer que c’est prêt
Cette machine peut se compliquer en prenant en compte : le choix de la boisson, le dosage
du sucre, mais elle reste néanmoins très simple par rapport à certaines machines à états industrielles comme la conduite d’une centrale nucléaire, ou l’automatisation d’un usine de production.
D’autres types de machines à états ont des contraintes de performances très grandes, c’est la cas
de celles utilisées dans les microprocesseurs ou des processeurs spécialisées pour le graphisme ou
les télécommunications.
Fig. 8.3: Où rencontrer les machines à états
Un circuit de logique séquentielle sur les données n’est pas une machine à états. En effet les
données sont stockées dans des mémoires de grande taille. En considérant une mémoire de 128
Moctets (1G bits), le nombre d’états possible serait de 21G nombre largement supérieur au nombre
de particules de l’univers (1080 ).
8.2
8.2.1
Le graphe d’états
Comment représenter graphiquement le comportement d’une machine à états ?
Dans une machine à états donnée, la loi d’évolution de l’état n’est évidemment pas aléatoire,
pas plus que celle qui détermine la valeur des sorties. Ces lois sont soigneusement choisies par le
créateur de la machine afin que celle-ci remplisse une fonction précise. La conception d’une machine
à états, pour peu que sa complexité dépasse celle des cas d’école qui nous serviront d’exemples, est
une tâche délicate. Le graphe d’états est l’un des outils les plus utilisés pour la spécification de la
machine à états (entrées, sorties, fonctionnement souhaité).
Le graphe d’états, comme son nom l’indique, représente graphiquement les états d’une machine
à états. Chaque état est dessiné sous la forme d’une bulle contenant son nom. On comprend
8.2. LE GRAPHE D’ÉTATS
127
immédiatement que cet outil ne sera pas d’un grand secours lorsque le nombre d’états de la machine
dépassera quelques dizaines. Prenons l’exemple d’une machine à laver où on considère 5 états comme
illustré dans la figure 8.4.
Fig. 8.4: Graphe d’état au départ
On complète le graphe en figurant les transitions possibles par des flèches entre les états. On
appelle état source l’état de départ d’une transition et état destination l’état d’arrivée. La transition
T 0 a Prélavage pour état source et Lavage pour état destination. Certaines transitions ont le même
état pour source et pour destination. Cela signifie que la machine peut rester dans le même état
pendant un certain temps. La transition T 1 est de cette sorte comme illustré dans la figure 8.5.
Fig. 8.5: Graphe d’état avec quelques transitions
Muni de toutes les transitions possibles comme représenté dans la figure 8.6 page suivante, le
graphe constitue une représentation assez dense de l’évolution possible de la machine au cours du
temps. A tout instant la machine est dans l’un des états représentés ; c’est ce que nous appellerons
l’état courant de la machine. A chaque front montant de l’horloge, la machine emprunte l’une
des transitions possibles à partir de son état courant. Elle change alors d’état. Retenez bien cette
conséquence du fait que notre machine est synchrone sur front montant de l’horloge : elle reste dans
un état donné (une bulle du graphe) pendant le temps qui sépare deux fronts montants de l’horloge
(voire plus si elle emprunte ensuite une transition vers le même état). Les transitions (les flèches
du graphe), en revanche, sont quasi-instantanées puisqu’elles correspondent aux fronts montants
128
CHAPITRE 8. MACHINES À ÉTATS
de l’horloge.
Fig. 8.6: Graphe d’état avec les transitions
Pour enrichir encore notre graphe nous devons préciser les spécifications de la machine et, plus
particulièrement, la loi d’évolution des variables internes (l’état) en fonction des entrées. Supposons
que les entrées de notre machine soient au nombre de trois :
• M : variable booléenne qui traduit la position du bouton Marche/Arrêt du lave-linge.
• P : variable booléenne qui indique si le programme de lavage sélectionné par l’utilisateur
comporte ou non une phase de prélavage.
• C : valeur en minutes d’un chronomètre qui est remis à zéro automatiquement au début de
chaque étape de lavage.
Les durées des différentes étapes de lavage sont fixées par le constructeur :
• prélavage : 10 minutes
• lavage : 30 minutes
• rinçage : 10 minutes
• essorage : 5 minutes
A partir de ces informations complémentaires nous pouvons faire figurer sur le graphe les
conditions logiques associées à chaque transition. Avec un graphe ainsi complété comme il apparaît
dans la figure 8.7 page suivante, il devient très facile de comprendre ou de prévoir le comportement
de la machine. On sait par exemple que lorsque la machine est dans l’état Arrêt elle y reste tant
que M n’est pas vrai au moment d’un front montant de l’horloge. Dès que M est vrai au moment
d’un front montant de l’horloge la machine change d’état : elle passe dans l’état Prélavage si P est
vrai et dans l’état Lavage si P est faux. Il est important de comprendre que la valeur des entrées
de la machine n’a d’importance qu’au moment précis des fronts montants de l’horloge. C’est une
conséquence du fait que notre machine est synchrone sur front montant de l’horloge.
Notre machine à états possède des entrées mais nous n’avons pas encore étudié les sorties. Or un
circuit électronique sans sorties n’est que de peu d’utilité. Il existe deux sortes de machines à états :
celles dont les sorties ne dépendent que de l’état courant (ce sont les machines dites de Moore)
et celles dont les sorties dépendent de l’état courant et des entrées (ce sont les machines dites
de Mealy). L’analyse des mérites comparés des machines de Mealy et de Moore est un problème
complexe qui n’entre pas dans le cadre de ce cours. Nous allons donc réduire encore la généralité
de notre étude et nous concentrer sur les machines de Moore. Le programmateur de notre lavelinge est donc une machine de Moore dont les sorties ne dépendent que de l’état courant. Nous
supposerons que ses sorties sont trois signaux booléens, X, Y et Z destinés à piloter les différents
moteurs du lave-linge. Les spécifications précisent leur valeur pour chaque état que peut prendre la
machine. Nous pouvons encore compléter le graphe d’états afin d’y faire figurer cette information.
8.2. LE GRAPHE D’ÉTATS
129
Fig. 8.7: Graphe d’état avec les transitions spécifiées
Le graphe est alors achevé comme illustré dans la figure 8.8. Il est équivalent aux spécifications du
programmateur tout en étant plus dense qu’une description en langage naturel.
Fig. 8.8: Graphe d’état final
8.2.2
Comment vérifier cette représentation à l’aide de quelques règles
simples ?
Les spécifications sont généralement écrite en langage naturel. La traduction des spécifications
en graphe d’état est donc entièrement manuelle et les risques d’erreurs sont nombreux, comme c’est
toujours le cas lorsqu’un humain intervient dans un processus. Si une erreur venait à se glisser dans
130
CHAPITRE 8. MACHINES À ÉTATS
le graphe elle se retrouverait probablement dans le circuit électronique final (il est peu probable,
sauf intervention surnaturelle, qu’une deuxième erreur annule la première), ce qui est inacceptable :
un lave-linge qui "oublie" de rincer n’est pas très satisfaisant, sans parler des centrales nucléaires
ou des avions de ligne.
Il faut donc vérifier le graphe avant de poursuivre la réalisation de la machine. Comme toute
bonne spécification il doit vérifier deux propriétés fondamentales : :
• il doit être complet ou non ambigu
• il doit être non contradictoire
La première signifie que le comportement est toujours défini : à chaque front montant d’horloge,
quel que soit l’état dans lequel se trouve la machine et quelles que soient les valeurs des entrées,
on doit connaître l’état suivant. L’une des conditions associées aux transitions partant d’un état
quelconque du graphe doit donc toujours être vraie. On peut traduire cette propriété sous forme
d’équation booléenne en écrivant que le ou logique de toutes les conditions associées au transitions
partant d’un état quelconque est toujours vrai : soient C1, C2, ..., Ci, ..., Cn ces conditions, alors :
i=n
P
Ci = 1
i=1
Par exemple, pour le programmateur de notre lave-linge, les transitions partant de l’état Arrt
sont au nombre de trois comme indiqué en pointillé sur la figure 8.9
Fig. 8.9: Graphe d’état final
Et les conditions associées sont :
M , M.P , M.P
Le OU logique de ces trois conditions vérifie donc :
M + M.P + M.P = M + M.(P + P ) = M + M = 1
L’état Arrêtrespecte donc la première règle. A titre d’exercice vous pouvez vérifier que c’est
également le cas pour les quatre autres états.
La deuxième règle signifie qu’à tout front montant d’horloge une seule transition est possible.
Si plus d’une transition a sa condition associée vraie, le graphe est contradictoire (deux actions
incompatibles sont simultanément possibles). Le respect de cette règle est plus difficile à vérifier :
le OU logique de tous les ET logiques de deux conditions associées aux transitions partant d’un
état quelconque est toujours faux :
Pi=n Pj=n
i=1
j=i+1
Ci .Cj = 0
8.3. LA COMPOSITION D’UNE MACHINE À ÉTATS
131
En reprenant l’état Arrêt du programmateur de lave-linge comme exemple :
M .M.P + M .M.P + M.P .M.P = 0 + 0 + 0 = 0
L’état Arrêt respecte donc également la deuxième règle. Si elle est aussi vérifiée par les autres
états alors nous sommes en présence d’un véritable graphe de machine à états sans ambiguïté ni
contradiction. Malheureusement cela ne prouve pas que le graphe est conforme à la spécification.
Il faut encore vérifier que la fonctionnalité est la même dans les deux descriptions. Il n’existe pas
d’outils de vérification ou de formules logiques permettant de le faire. Vous pouvez par exemple
parcourir le graphe état par état et, pour chacun d’eux, comparer la partie de spécification qui le
concerne avec les conditions associées aux transitions sortantes. Toute méthode est bonne si elle
permet d’éviter des erreurs à ce stade du travail de conception.
8.3
8.3.1
La composition d’une machine à états
Le calcul de l’état futur
En logique séquentielle synchrone, l’état courant est modifié à chaque front montant de l’horloge.
Entre deux fronts montants de l’horloge (pendant une période d’horloge) il reste stable, ce qui donne
le temps aux circuits combinatoires qui composent la machine de calculer le prochain état et les
sorties. Il existe donc, entre autres, un circuit combinatoire chargé de calculer le prochain état, que
nous appellerons aussi état futur, à partir de l’état courant et des entrées de la machine. Ce circuit
(nommé P1 sur le schéma de la figure 8.10) est en général le plus difficile à concevoir. Ses entrées
sont :
• L’état courant qui est mémorisé dans le registre d’état (RE sur le schéma).
• Les entrées de la machine.
Fig. 8.10: Calcul de l’état futur
Sa sortie est l’état futur.
Dès que les entrées changent de valeur ou dès que l’état courant est modifié, le circuit P1
commence à calculer l’état futur. Ce calcul n’est pas instantané (voir le TD 6 page 99 sur le temps
de propagation dans les portes CMOS). Pour que la machine puisse fonctionner correctement il
faut que les entrées de ce circuit restent stables pendant une durée suffisante pour que sa sortie
puisse, elle aussi, s’établir et se stabiliser avant le front montant de l’horloge suivant. Sinon la
valeur échantillonnée par le registre d’état ne sera pas la bonne et le déroulement des opérations
sera perturbé.
8.3.2
Le registre d’état
Il est composé de plusieurs bascules D (la question de leur nombre exact est traitée dans le
paragraphe 8.4 page 133). L’horloge est la même pour toutes : c’est l’horloge générale du circuit
électronique dont fait partie la machine. Son entrée est la sortie du circuit P1, c’est l’état futur. Sa
sortie, l’état courant, sert d’entrée à P1 mais aussi au circuit destiné à calculer les sorties.
132
CHAPITRE 8. MACHINES À ÉTATS
Une machine à état est un dispositif avec rétroaction : l’état courant conditionne les états futurs.
Dans un tel dispositif la question des conditions initiales se pose. En d’autres termes, pour que le
fonctionnement soit celui souhaité dès la mise sous tension, il faut introduire un moyen de forcer
un état de départ. Il en va de même pour le microprocesseur qui constitue l’unité de calcul de
votre ordinateur. Comme nous l’avons vu dans le paragraphe 8.1 page 125 il contient un grand
nombre de machines à états qui le commandent et le contrôlent. Si, lorsque vous allumez votre
ordinateur l’état de ces machines n’est pas forcé à une valeur connue et choisie par les concepteurs
la séquence de démarrage risque d’être fortement perturbée. C’est pourquoi toute machine à état
dispose d’une entrée d’initialisation Reset grâce à laquelle l’état des machines est forcé lors de la
mise sous tension.
Il existe deux méthodes pour forcer l’état initial avec le Reset :
1. Le reset synchrone. Il est pris en compte uniquement sur le front montant de l’horloge. Il agit
donc de la même façon que les entrées "normales" de la machine. Son influence est prioritaire
sur les autres. Le circuit P1 possède donc ce signal comme entrée supplémentaire. Lorsque
cette entrée est active (elle peut être active lorsqu’elle vaut 0 ou bien 1, c’est une convention
à définir) l’état futur que calcule P1 est l’état initial. Au front montant d’horloge suivant
la machine passe donc dans cet état. Dans l’exemple de notre programmateur de lave-linge
il semble judicieux de choisir Arrêt comme état initial. Le graphe doit être modifié comme
indiqué dans la figure 8.11 pour tenir compte du reset synchrone.
Fig. 8.11: Graphe d’état avec Reset synchrone
2. Le reset asynchrone. Il utilise les entrées Set et Reset des bascules D (voir le chapitre 7 page 111)
du registre d’état pour forcer l’état initial. On branche l’entrée Reset sur l’entrée set des bascules si on désire forcer un 1, ou sur l’entrée Reset des bascules si on désire forcer un 0. Les
entrées de la partie P1 ne sont pas modifiées. Le graphe d’état non plus si ce n’est l’indication de l’état de départ par le Reset comme indiqué dans la figure 8.12 page ci-contre. Cette
solution est donc plus simple à concevoir que la précédente, donne des tailles (en nombre de
composants) plus faibles pour des vitesses de fonctionnement plus élevées. C’est pourquoi on
la préférera lorsqu’elle n’entre pas en conflit avec d’autres contraintes.
8.3.3
Le calcul des sorties
La troisième et dernière partie d’une machine à états est le circuit combinatoire de calcul des
sorties (P2 sur le schéma de la figure 8.13 page suivante). Dans une machine de Moore, ses entrées
8.4. LE CODAGE DES ÉTATS
133
Fig. 8.12: Graphe d’état avec Reset Asynchrone
sont l’état courant et ses sorties sont les sorties de la machine. Dès que l’état courant change, après
un front montant d’horloge, ce circuit commence à calculer les sorties caractéristiques du nouvel
état. Comme pour le circuit P1 il faut absolument qu’il dispose d’assez de temps pour le faire avant
le front montant d’horloge suivant.
Fig. 8.13: calcul des sorties
8.4
8.4.1
Le codage des états
Comment représenter les différents états sous forme de mots binaires ?
Jusqu’ici nous avons identifié les différents états par leur nom (Arrêt, Prélavage, etc.). L’électronique numérique ne manipule pas de tels symboles. L’alphabet y est nettement plus restreint
puisqu’il se compose des seuls 0 et 1 de l’algèbre de Boole. Pour chaque état d’une machine il
va donc falloir trouver un nom unique exprimé dans cet alphabet. Nous avons vu dans les paragraphes 8.1 page 125 et 8.3 page 131 que les machines à états synchrones mémorisent l’état courant
dans des bascules D du type de celles du chapitre 7 page 111. Chacune de ses bascules contiendra
à tout moment un caractère (0 ou 1) du nom de l’état courant.
A la différence des noms d’états exprimés en langage naturel ceux exprimés dans l’alphabet
binaire auront tous le même nombre de caractères. La raison en est simple : pour pouvoir mémoriser
134
CHAPITRE 8. MACHINES À ÉTATS
n’importe quel état dans les bascules D du circuit le nombre de bascules doit être au moins égal à
la taille du nom le plus long. Si ces bascules ne servent pas toutes à un instant donné on ne peut en
tirer aucun profit ni pour réduire la taille du circuit, ni pour augmenter sa vitesse. L’électronique
a ceci de contraignant que le matériel inutilisé coûte aussi cher que le matériel utilisé. Nous allons
continuer à exploiter l’exemple du programmateur de lave-linge. Commençons par déterminer le
nombre de symboles binaires (bits) nécessaires à représenter les cinq états. Contrairement à ce que
l’on pourrait penser ce choix n’est pas trivial. Nous pouvons d’ores et déjà constater que trois bits
au moins sont nécessaires. En effet, deux bits permettent, au maximum, la représentation de quatre
situations différentes seulement. Deux états différents seraient donc représentés de la même façon
et ne pourraient être différenciés ; la machine ne pourrait pas fonctionner correctement. Trois bits
permettent de représenter huit mots différents. On peut également éliminer les solutions à plus de
cinq bits car elles sont forcément redondantes (il existe toujours au moins un bit inutile que l’on
peut retirer en conservant cinq mots différents). Restent les solutions à trois, quatre ou cinq bits.
On appelle codage la représentation en mots binaires des noms des états. La table 8.1 propose
un exemple de codage à trois, quatre, cinq et six bits pour notre exemple.
Etat
Trois bits
Quatre bits
Cinq bits
Six bits
Arrêt
100
0001
11110
110001
Prélavage
000
0110
10100
101010
Lavage
001
1111
01100
110111
Rinçage
010
0000
01101
010110
Essorage
111
1011
01110
010111
Tab. 8.1: Exemples de codage des états
8.4.2
En quoi le codage choisi influe-t-il sur la taille de la machine à
états ?
La partie combinatoire de la machine qui calcule l’état futur en fonction des entrées et de
l’état courant est très largement influencée par le codage des états. Donc sa taille (en nombre de
composants utilisés) en dépend également. Elle possède N e + N b entrées et N b sorties (N e est le
nombre d’entrées de la machine et N b le nombre de bits choisi pour coder les états comme illustré
dans la figure 8.14).
Fig. 8.14: Schéma d’une machine à états avec le nombre de bits nécessaires
Le nombre de fonctions booléennes calculées est donc égal à N b et chacune de ces fonctions
8.4. LE CODAGE DES ÉTATS
135
possède N e + N b entrées. On pourrait en conclure qu’il faut coder les états avec le moins de bits
possibles pour que cette partie combinatoire soit la plus petite possible. Mais il n’en est rien. On
peut facilement trouver des exemples qui prouvent le contraire. Pour s’en convaincre il suffit de
remarquer qu’une fonction booléenne de quatre variables peut être plus simple qu’une autre de
deux variables :
F (A0 , A1 , A2 , A3 ) = A0
est plus simple que :
G(A0 , A1 ) = A0 ⊕ A1
Il se pourrait que notre exemple soit une illustration de ce phénomène et que cinq fonctions
booléennes simples vaillent mieux que trois complexes.
La partie combinatoire qui calcule les sorties en fonctions de l’état courant possède N b entrées
et N s sorties (où N s est le nombre de sorties de la machine). Elle calcule donc N s fonctions
booléenne de N b entrées. Là encore, méfions nous des évidences ; la solution qui se traduit par une
taille minimum n’utilise pas nécessairement un codage des états sur un nombre de bits minimum.
La seule certitude que l’on ait concerne le registre d’état. Sa taille est directement liée au nombre
de bits du codage d’états. Comme on le voit, le problème n’est pas simple. Il l’est d’autant moins
qu’une solution optimale au sens de la taille pour la partie combinatoire de la machine qui calcule
l’état futur a peu de chances d’être également la meilleure pour la partie combinatoire qui calcule
les sorties.
8.4.3
Quelles méthodes permettent de choisir le meilleur codage possible ?
Il faut, avant de répondre à cette question, déterminer ce que l’on entend par meilleur. La taille
est un critère de sélection mais il n’est pas le seul. On peut également s’intéresser à la vitesse de
fonctionnement, à la consommation ou la simplicité de conception. Selon l’objectif fixé les stratégies
de codage seront différentes. Parmi celles-ci nous allons en citer trois :
1. Le codage adjacent : il utilise un nombre de bits minimum (trois bits pour l’exemple de la
figure 8.15 page suivante) et se caractérise par le fait que le passage d’un état à un autre
ne modifie qu’un seul bit du registre d’état, un peu à la manière d’un code de Gray. Il n’est
pas toujours possible de trouver un tel codage. Pour notre programmateur, par exemple, il
n’existe pas de codage adjacent. On peut cependant essayer de s’en approcher en réduisant
autant que faire se peut, le nombre de transitions modifiant plus d’un bit du registre d’état.
Ici, seule la transition de l’état Prélavage, codé 001 à l’état Lavage, codé 010, ne respecte pas
la contrainte.
L’intérêt d’un tel codage n’est pas systématique. Il donne cependant souvent de bons résultats
en taille et en vitesse pour la partie combinatoire qui calcule l’état futur. Elle se trouve en
quelque sorte simplifiée par la faible agitation des bits représentant l’état.
2. Le codage « one-hot » : il utilise un nombre de bits égal au nombre d’états (cinq bits pour
l’exemple de la figure 8.16 page suivante). Chaque état est représenté par un mot binaire
dont tous les bits sauf un valent 0. Ce codage donne souvent les machines les plus simples à
concevoir. Il est également parfois intéressant en vitesse et en surface malgré le handicap dû
à la taille du registre d’état.
3. Le codage aléatoire : il consiste à coder les états sur un nombre de bits minimum sans aucune
autre préoccupation que d’éviter que deux états aient le même code. Les résultats en terme
de surface, vitesse ou difficulté de conception sont imprévisibles mais peuvent parfois être
meilleurs que ceux produits par les deux autres stratégies.
Pour ce problème précis de l’optimisation du codage des états les outils logiciels de type
synthétiseurs logiques peuvent aider le concepteur pour trouver un « bon » codage.
136
CHAPITRE 8. MACHINES À ÉTATS
Fig. 8.15: Graphe avec codage adjacent
Fig. 8.16: Graphe avec codage "one-hot"
8.5
La conception d’une machine à états
Considérons l’exemple du programmateur du lave-linge (voir le paragraphe 8.2 page 126 . Le
graphe d’état final représenté dans la figure 8.9 page 130 fait apparaître un minuteur qui fournit en
entrée de notre machine à états trois signaux C5, C10 et C30, toutes trois booléennes, qui indiquent
respectivement si la valeur 5 minutes, 10 minutes ou 30 minutes est atteinte.
Ces minuteurs sont aussi des machines à états dont l’état change à chaque cycle d’horloge, . Ils
auraient pu être incorporés au graphe principal, mais en considérant un fréquence d’horloge de 1
seconde, le graphe aurait été muni de plus de 3300 états (5mn + 2fois 10mn + 30mn)* 60 s . Le
chapitre 8.5.2 page 139 étudie la conception de ces minuteurs.
Les machines à états peuvent donc être factorisables. Cet exemple montre un exemple de machines à états imbriquées de façon à en simplifier leur conception. Commençons par concevoir la
machine àà états principale dont le graphe a été étudié préalablement.
8.5. LA CONCEPTION D’UNE MACHINE À ÉTATS
8.5.1
137
machine à états principale
L’interface de la machine avec le monde extérieur est spécifié dans la table 8.2.
Nom
Mode
Description
H
Entrée
Horloge
R
Entrée
Reset actif à 0 , initialise à l’état Arrêt
M
Entrée
Position du bouton Marche/Arrêt
P
Entrée
Existence d’une phase de prélavage
C5
Entrée
Chronomètre supérieur ou égal à 5 minutes
C10
Entrée
Chronomètre supérieur ou égal à 10 minutes
C30
Entrée
Chronomètre supérieur ou égal à 30 minutes
X
Sortie
Vaut 0 dans l’état Arrêt, 1 dans les autres
Y
Sortie
Vaut 1 dans les états Prélavage et Lavage, 0 dans les autres
Z
Sortie
Vaut 1 dans les états Lavage et Essorage, 0 dans les autres
Tab. 8.2: Spécification de l’interface
La première chose à faire est le graphe d’état qui a déjà été étudié au paragraphe 8.2 page 126 et
vérifié pour ne pas être ambigu ni contradictoire. La figure 8.9 page 130 illustre le graphe considéré.
Dans une deuxième temps le codage des états doit être choisi. Considérons le codage représenté
dans la table 8.3.
Etat
Codage
Arrêt
000
Prélavage
001
Lavage
010
Rinçage
110
Essorage
100
Tab. 8.3: Codage des états
Le codage des états choisi est indiqué en haut de chaque bulle du graphe représenté en figure 8.17 page suivante.
Il faut maintenant établir la table de vérité des différentes fonctions booléennes calculées à
l’intérieur de la machine.
Commençons par la partie combinatoire qui calcule l’état futur à partir de l’état courant et des
entrées, que nous appellerons P1. Nous noterons les trois bits de l’état futur EF2, EF1 et EF0 avec
la convention que EF2 est le bit de gauche, EF1 le bit du milieu et EF0 le bit de droite du code de
l’état. De même les trois bits de l’état courant seront notés EC2, EC1 et EC0. Cette table de vérité
s’appelle également table d’évolution (ou de transition) car elle décrit l’évolution de la machine au
cours du temps. Elle donne pour chaque état courant possible et pour chaque combinaison possible
des entrées la valeur prise par l’état futur. Lorsque la valeur d’une entrée est X cela signifie qu’elle
est indifférente. La table 8.4 page suivante représente la table d’évolution de la machine à états.
En utilisant les méthodes et principes exposés dans le chapitre 2 page 35, on en déduit des
équations non simplifiées des trois fonctions booléennes EF2, EF1 et EF0 que calcule P1 :
EF2
EF1
EF0
= (EC2 + EC1 ).(EC2 + C30).(EC2 .EC1 .C5)
= (EC1 + EC0 ).(EC1 + C10).(EC2 .EC1 .C10) + (EC2 + EC1 + EC0 ).M.P
= (EC2 + EC1 + EC0 ).M.P + EC0 .C10
138
CHAPITRE 8. MACHINES À ÉTATS
Fig. 8.17: Graphe avec codage choisi pour la conception
Etat courant
Entrées
Etat futur
EC2
EC1
EC0
M
P
C5
C10
C30
EF2
EF1
EF0
0
0
0
0
X
X
X
X
0
0
0
0
0
0
1
1
X
X
X
0
0
1
0
0
0
1
0
X
X
X
0
1
0
0
0
1
X
X
X
0
X
0
0
1
0
0
1
X
X
X
1
X
0
1
0
0
1
0
X
X
X
X
0
0
1
0
0
1
0
X
X
X
X
1
1
1
0
1
1
0
X
X
X
0
X
1
1
0
1
1
0
X
X
X
1
X
1
0
0
1
0
0
X
X
0
X
X
1
0
0
1
0
0
X
X
1
X
X
0
0
0
Tab. 8.4: Table d’évolution
Après simplification et toujours en utilisant les méthodes du chapitre 2 page 35 :
EF2
EF1
EF0
= EC1 .C30 + EC2 .(EC1 + C5)
= EC0 .C10 + EC1 .EC2 .C10 + EC2 .EC1 .EC0 .M.P
= EC2 .EC1 .EC0 .M.P + EC0 .C10
La réalisation en portes logiques de ces trois équations ne pose pas de problème particulier. Il
peut cependant être intéressant d’affiner l’étude dans le but de réduire la complexité de l’ensemble.
On peut par exemple remarquer que le terme :EC2 .EC1 .EC0 .M se retrouve dans les équations de
EF1 et EF0 Il est possible de partager certaines portes entre plusieurs fonctions logiques et réaliser
des économies de matériel.
8.5. LA CONCEPTION D’UNE MACHINE À ÉTATS
8.5.2
139
Machine à états du minuteur
Chaque minuteur dispose en entrée d’un signal de commande GO correspondant à une sortie
de la machine à états principale.
L’interface du minuteur avec le monde extérieur est spécifié dans la table 8.5. Cx représente C5
, C10 ou C30.
Nom
Mode
Description
H
Entrée
Horloge
R
Entrée
Reset actif à 0 , initialise à l’état Arrêt
GO
Entrée
Commande venant de la machine à état principale
actif à 1 pour autoriser la sortie, sinon force la sortie à 0
Cx
Sortie
Vaut 1 dès que le temps est atteint
Tab. 8.5: spécification de l’interface
Le graphe d’état de la machine à état est cyclique et reflète l’avancement de la machine quand
le signal GO est actif. Le graphe est illustré dans la figure 8.18.
Fig. 8.18: Graphe avec codage choisi pour la conception
Ce graphe correspond à la fonction d’un compteur binaire piloté par le signal GO, et dont la
sortie est comparée au temps d’attente du minuteur. L’état N est le seul état où la sortie est active
140
CHAPITRE 8. MACHINES À ÉTATS
et où il n’y a pas de condition pour aller à l’état suivant. Autrement dit il s’agit d’un compteur
modulo N+1 si GO est toujours actif.
Plutôt que d’utiliser une méthode systèmatique de synthèse de machines à états, qui déboucherait sur un grand nombre d’états (300 états pour obtenir 5mn avec une horloge d’1s de période),
il suffit de considérer la structure d’un compteur binaire (cf chapitre 7 page 111 suivi d’un comparateur (cf chapitre 2 page 35). Ce compteur est mis à 0 (correspondant à l’état Arrêt = 0) par
GO et le codage des états est tel que les sorties du compteur correspondent aux bits codant l’état.
La figure 8.19 représente la structure du minuteur. Le signal R agit sur le Reset asynchrone des
bascules. Il aurait pu être supprimé du fait que GO effectue un Reset synchrone.
Fig. 8.19: Schéma d’un minuteur
Plutôt que d’utiliser 3 minuteurs, il est possible d’avoir un seul minuteur en utilisant en entrée
le temps d’attente. Dans ce cas l’interface avec l’extérieur dispose de 2 signaux supplémentaires
SEL1 et SEL0 permettant de programmer le minuteur comme indiqué dans le tableau 8.6. La
spécification de la machine à état principale doit donc changer légèrement afin de :
• Sortir SEL1, SEL0 et GO plutôt que 3 signaux GO séparés
• Avoir en entrée un seul signal C − x à la place de C5, C10 et C30
SEL1
SEL0
Mode de programmation
0
0
5mn
1
x
10mn
0
1
30mn
Tab. 8.6: Spécification de la programmation du minuteur
Bien entendu les sorties de la machine à états principales doivent être modifiées en conséquence.
Il existe toutefois un problème dans la machine à état principale car il n’ y a pas d’état permettant
de remettre le signal GO à 0 , par exemple entre l’état Lavage et l’état Rinage pour programmer
le minuteur de C10 à C30.
Une solution consiste à rajouter des états dans la machine à état principale, de façon à mettre
le signal GO à 0. Par exemple il y aurait l’état Lavage − bis tout de suite après Lavage , identique
à Lavage mais avec GO à 0.
Une autre solution, certainement plus optimale en temps de développement, consiste à générer
un signal de remise à zéro , RAZ, du minuteur lorsqu’il y a eu un changement sur les entrées SEL1
ou SEL0. Au vu de la séquence nécessaire (C10 → C30 → C10 → C5) , il suffit de détecter le
8.5. LA CONCEPTION D’UNE MACHINE À ÉTATS
141
changement uniquement sur SEL1 car SEL0 ne change pas sur les transitions. Pour ce faire il suffit
de comparer l’ancienne valeur de SEL1 avec la nouvelle et mettre à zéro le minuteur si les 2 valeurs
sont différentes. la figure 8.20 illustre le schéma du minuteur générique gérant automatiquement
les changements de programmation.
Fig. 8.20: Schéma d’un minuteur générique avec RAZ automatique
142
CHAPITRE 8. MACHINES À ÉTATS
Chapitre 9
Des machines à états aux processeurs
9.1
Introduction
9.1.1
Objectifs
Le but de ces deux leçons-TD est de
• vérifier que les principes des machines à états sont bien assimilés,
• introduire la notion de microprocesseur, à partir d’exemples progressifs et simples,
• concevoir un microprocesseur simple, d’architecture RISC, que vous réaliserez physiquement
lors du prochain TP (voir 21 page 221).
Pour cela, nous allons procéder par étapes, et le construire petit à petit. . .
9.1.2
Introduction
Les processeurs ne sont rien d’autres que des machines à calculer (un peu évoluées) programmables. Imaginez que vous êtes comptable, et que vous ayez à effectuer une série d’opérations qu’on
vous a gentiment inscrites sur une feuille de papier. Voici un exemple d’instructions qu’on peut
vous avoir donné :
1. faire 112 + 3
2. faire 4 + 5
3. faire 2 + 16
4. . . .
Un exemple un peu plus compliqué serait :
1. faire 112 + 2
2. faire “résultat précédent” * 5
3. . . .
ou bien
143
144
CHAPITRE 9. DES MACHINES À ÉTATS AUX PROCESSEURS
1. 112 + 3
2. résultat précédent - 4
3. si le résultat est nul, passer à l’étape 6, sinon continuer
4. 3 * 4
5. résultat précédent + 9
6. ouvrir la fenêtre
7. résultat de l’étape 2 - 15
8. passer à l’étape 12
9. . . .
Un microprocesseur est un dispositif électronique qui pourrait faire ce travail à votre place,
pourvu qu’on lui donne la feuille de papier (et de l’énergie).
9.1.3
Instructions et données
Les séries d’opération ci-dessus sont appelées programme. En d’autres termes, un programme de
microprocesseur est juste une liste d’opérations à effectuer. Dans notre cas, où le microprocesseur
est simple1 , les instructions resteront simples. Si le processeur est plus complexe, incluant des
périphériques multiples (gestionnaire de mémoire, entrées-sorties, . . . ), les instructions peuvent
devenir complexes, comme c’est le cas dans les processeurs CISC2 .
Dans les suites d’opérations ci-dessus, on distingue deux types d’objets :
• les données :
– d’abord les opérandes proprement dits (“3”, “4”, “112”, . . . ),
– et les opérandes implicites (“résultat précédent”, “résultat de l’étape 2”, . . . ) ;
• les instructions :
– pour nous ce sont principalement les opérations (au sens arithmétique du terme) à effectuer
(“+”, “−”, “∗”, “/”...),
– il y a aussi des tests (“si le résultat précédent est nul...”),
– et des sauts, conditionnés par un test (“alors passer à l’étape 6”) ou non (“passer à l’étape
12”)
– ainsi que des instructions spéciales (“ouvrir la fenêtre”).
Dans notre cas, une instruction de ce genre pourrait être “mettre en marche le buzzer”, ou
“allumer la LED numéro 10”...
Notez que ces suites d’opérations sont numérotées : elles ont un ordre. Dans le premier exemple,
l’ordre n’a pas tellement d’importance, mais il en a une dans le deuxième et le troisième quand on
parle de “résultat précédent”, d’“étape 6”, . . .
9.1.4
de la feuille à l’électronique
Passons du comptable et de la feuille de papier aux composants électronique.
La feuille de papier a un rôle de mémorisation :
• c’est sur elle qu’est écrite la suite d’opérations à effectuer,
• c’est probablement aussi sur elle que seront écrit les résultats.
Nous la modéliserons par une mémoire vive, une RAM. Vous avez déjà vu ce genre de composant
au lors du TD sur les bascules et la mémorisation ( 14 page 181). C’est cette RAM qui stockera
les instructions à effectuer, les données, ainsi que les résultats que le microprocesseur va calculer.
Le microprocesseur sera donc relié à cette RAM, et ira lire les instructions à effectuer, selon le
principe suivant :
1. aller lire la première ligne (instructions et données associées)
2. faire ce qui est indiqué
3. aller lire la ligne suivante (instructions et données associées)
1 et
plus généralement pour tous les processeurs dits RISC
Instruction Set, par opposition à RISC : Reduced Instruction Set
2 Complex
9.1. INTRODUCTION
145
4. faire ce qui est indiqué
5. revenir à l’étape 3 (etc. jusqu’à ce que mort s’ensuive...)
Première remarque : le microprocesseur doit lire les lignes une par une. Il doit donc maintenir
un compteur de ligne interne qui indique la ligne courante (ou la prochaine ligne à lire, comme cela
nous arrangera).
Deuxième remarque : le processeur est un dispositif électronique qui ne comprend que des
suites de bits. Il faudra donc coder les instructions sur un nombre de bit suffisant pour coder
toutes les instructions dont nous aurons besoin. Les données naturelles (les chiffres) seront codées
de façon normale (en complément à 2, voir 3 page 49), et il faudra trouver un moyen de coder les
données implicites.
Troisième remarque : dans notre architecture, la RAM stockera les données et les instructions
de façon imbriquée. Il est possible d’utiliser deux RAM différentes, ou des zones distinctes, mais
vous verrez cela en détail dans le module ARSE !
9.1.5
Interlude rappel : fonctionnement de la RAM
Le schéma de la RAM est donné en figure 9.1.
Fig. 9.1: Symbole de la RAM
La RAM possède trois bus :
• un bus d’adresses, ADDRESS[7 : 0] indiquant l’emplacement en mémoire de la donnée à
laquelle on accède,
• un bus de donnée, D[7 : 0], pour les données qu’on écrit en RAM,
• un bus de donnée, Q[7 : 0], pour les données qu’on va lire en RAM,
ainsi que
• un signal de contrôle sur 1 bit, W RIT E, indiquant si on est entrain de faire une lecture dans
la RAM (W RIT E = 0), ou une écriture (W RIT E = 1).
Le fonctionnement de la RAM est le suivant :
• la RAM sort en permanence sur Q[] la donnée stockée à l’adresse présente sur ADRESSE[]
(après, Q[], on en fait ce qu’on veut... Si on n’a pas envie de l’utiliser, on l’ignore),
• si W RIT E est actif (1), la valeur présente sur D[] est stockée à l’adresse présente sur
ADRESSE[],
• si W RIT E est inactif (0), D[] est ignoré.
• De plus, pendant que W RIT E est actif, le bus Q[] prend la même valeur de D[].
Pour les chronogrammes, on se reportera à la figure 9.2 page suivante
Nous relierons notre microprocesseur (automate) à une RAM pouvant stocker 256 mots de 8
bits chacun :
• 8 bits : les lignes de données D[] seront un bus 8 bits
• 256 mots : il nous faudra donc 8 lignes d’adresse (pour coder une adresse allant de 0 à 255)
L’architecture globale, qui nous re-servira en TP est donc la suivante (voir figure 9.3 page
suivante :
146
CHAPITRE 9. DES MACHINES À ÉTATS AUX PROCESSEURS
Fig. 9.2: Exemple d’accès à la RAM
• notre microprocesseur
• la RAM, reliée au processeur par ses bus de données, adresses et la ligne de WRITE
• un buzzer qui servira à jouer de la musique
Fig. 9.3: schéma global
9.2
Étape 1 : automate linéaire basique
Dans cette première étape, nous n’implémenterons que les instructions et données du premier
exemple. Le processeur est donc relié à une mémoire vive (RAM) stockant 256 mots de 8 bits.
9.2.1
Organisation de la mémoire
On suppose que le programme (opérations à effectuer) ainsi que les données sont déjà chargées
dans la mémoire, et qu’ils respectent le format suivant :
adresse
type du mot stocké
exemple
0
instruction
+
1
donnée (premier opérande)
3
2
donnée (deuxième opérande)
4
3
donnée (résultat)
X
4
instruction
-
5
donnée (premier opérande)
12
6
donnée (deuxième opérande)
8
7
donnée (résultat)
X
Le “X” indique que la RAM ne contient rien de valide à cet endroit là. C’est au microprocesseur d’aller y écrire le résultat correct. Après avoir lancé le microprocesseur, le contenu de la RAM
sera donc le suivant (on indique en gras les endroits de la RAM qui ont changé) :
9.2. ÉTAPE 1 : AUTOMATE LINÉAIRE BASIQUE
adresse
type du mot stocké
exemple
0
instruction
+
1
donnée (premier opérande)
3
2
donnée (deuxième opérande)
4
3
donnée (résultat)
7
4
instruction
-
5
donnée (premier opérande)
12
6
donnée (deuxième opérande)
8
7
donnée (résultat)
4
147
Remarques :
• le microprocesseur doit commencer son exécution à l’adresse 0 de la mémoire,
• on part donc du principe qu’on aura donc toujours une instruction à l’adresse 0 de la mémoire,
• et qu’on aura toujours en mémoire une instruction, puis l’opérande 1, puis l’opérande 2, puis
un octet pour stocker le résultat
9.2.2
Les instructions
Elles seront (pour l’instant) au nombre de deux :
code (binaire sur 8 bits)
instruction
00000100
addition
00000110
soustraction
Ces opérations arithmétiques opèrent sur des nombres de 8 bits, représentant des entiers non
signés. Les instructions étant stockées en RAM, il est nécessaire de les coder. Comme la RAM stocke
des mots de 8 bits, ça nous donne 256 instructions possibles, ce qui est largement suffisant pour
un processeur basique... Le code choisi ci-dessus pour l’addition et la soustraction est parfaitement
arbitraire : il correspond à celui qui sera implémenté en TP.
9.2.3
Fonctionnement de l’automate
Vu l’organisation de la RAM qui a été choisie, le fonctionnement de l’automate est simple :
à chaque coup d’horloge, il va chercher successivement une instruction, puis le premier opérande,
puis le deuxième opérande, calcule le résultat et le stocke. Puis il recommence à l’adresse suivante.
En détail :
1. Premier coup d’horloge : le microprocesseur présente l’adresse “0” à la RAM.
La RAM lui présente donc sur son bus de sortie le contenu de l’adresse 0, qui est la première
instruction.
2. Deuxième coup d’horloge : le microprocesseur incrémente l’adresse qu’il présente à la RAM
(“1”).
La RAM lui présente donc sur son bus de sortie le contenu de l’adresse 1, qui est le premier
opérande.
3. Troisième coup d’horloge : le microprocesseur incrémente l’adresse qu’il présente à la RAM
(“2”).
La RAM lui présente donc sur son bus de sortie le contenu de l’adresse 2, qui est la deuxième
opérande.
A ce moment là, le microprocesseur dispose de toutes données nécessaire au calcul : l’instruction, et les deux opérandes. Il peut donc calculer le résultat.
148
CHAPITRE 9. DES MACHINES À ÉTATS AUX PROCESSEURS
4. Quatrième coup d’horloge : le microprocesseur incrémente l’adresse qu’il présente à la RAM
(“3”).
Parallèlement, il présente sur le bus de donnée en entrée de la RAM le résultat qu’il vient de
calculer.
Parallèlement, il passe la ligne WRITE de la RAM à l’état haut, pour dire à la mémoire qu’il
désire effectuer une écriture.
Le résultat du calcul est donc à ce moment là écrit à l’adresse “3” de la mémoire.
5. Cinquième coup d’horloge : le microprocesseur incrémente l’adresse qu’il présente à la RAM
(“4”).
La RAM lui présente donc sur son bus de sortie le contenu de l’adresse 4, qui est la deuxième
instruction.
6. etc...
Question 1 : concevoir l’architecture de cet automate.
On ne demande pas une représentation de toutes les portes logique de l’automate, mais juste
une représentation de haut niveau : vous disposez de registres, de boites combinatoires dont vous
ne donnerez que les équations, de multiplexeurs, de compteurs, etc.
Réponse 1 : elle se trouve en section 9.7 page 152
9.3
9.3.1
Étape 2 : automate avec accumulateur
Chaînage des opérations
L’architecture actuelle ne permet pas de chaîner les calculs (exemple : 3 + 4 + 5). Pour pouvoir
le faire, il y a plusieurs possibilités. . .
Question 2 : lesquelles ?
Réponse 2 : elle se trouve en section 9.8 page 156
9.3.2
L’accumulateur
Nous allons doter notre processeur d’un registre interne sur 8 bits, que nous appellerons accumulateur. Toutes les opérations arithmétiques à deux opérandes s’effectueront entre l’accumulateur
et une donnée en RAM. Plus précisément : pour effectuer “3 + 4” et stocker le résultat en RAM, le
processeur effectuera les instructions suivantes :
1. chargement de 3 dans l’accumulateur
2. addition de l’accumulateur avec un opérande en RAM (“4”)
3. stockage du contenu de l’accumulateur en RAM
Pour effectuer “3 + 4 + 5” :
1. chargement de 3 dans l’accumulateur
2. addition de l’accumulateur avec un opérande en RAM (“4”)
3. addition de l’accumulateur avec un opérande en RAM (“5”)
4. stockage du contenu de l’accumulateur en RAM
On ajoute donc deux instructions à notre processeur :
• load : chargement de l’accumulateur à partir de la RAM
• store : stockage du contenu de l’accumulateur dans la RAM
Parallèlement, les instructions d’addition et de soustraction n’ont plus besoin que d’un seul
opérande - le deuxième opérande est dans l’accumulateur.
De plus, tant qu’on y est, nous allons ajouter trois instructions de manipulation de bits : AND,
OR et XOR (cf. le tableau 9.1 page suivante), qui comme l’addition, opèrent sur le contenu de
l’accumulateur et un opérande en RAM.
Le nouveau jeu d’instruction devient donc :
9.4. ÉTAPE 3 : AUTOMATE AVEC ACCUMULATEUR ET INDIRECTION
149
code (binaire sur 8 bits)
instruction
effet
00000001
XOR
Effectue un XOR bit à bit entre le contenu de l’accumulateur et une donnée en RAM ; le résultat est
stocké dans l’accumulateur
00000010
AND
Effectue un ET bit à bit entre le contenu de l’accumulateur et une donnée en RAM ; le résultat est
stocké dans l’accumulateur
00000011
OR
Effectue un OU bit à bit entre le contenu de l’accumulateur et une donnée en RAM ; le résultat est
stocké dans l’accumulateur
00000100
addition
Additionne le contenu de l’accumulateur à une donnée en RAM ; le résultat est stocké dans l’accumulateur
00000110
soustraction
Soustrait du contenu de l’accumulateur une donnée
en RAM ; le résultat est stocké dans l’accumulateur
00001010
load
Charge dans l’accumulateur une donnée en RAM
00001011
store
Stocke le contenu de l’accumulateur en RAM
Tab. 9.1: Nouveau jeu d’instructions
Question 3 : quel est l’impact de ces spécifications sur la façon de stocker le programme en
RAM ?
Question 4 : concevoir la nouvelle architecture du processeur. Quels sont les avantages en terme
de vitesse par rapport à l’architecture précédente ?
Réponses 3 et 4 : elles se trouvent en section 9.9 page 156
9.4
9.4.1
Étape 3 : automate avec accumulateur et indirection
Indirection
Imaginez qu’on souhaite séparer le code des données, pour :
• faire tourner un même code sur des données différentes (sans le dupliquer pour chaque set de
donnée...)
• faire tourner différents codes sur des mêmes données (sans dupliquer les sets de données...)
• faire tourner un code sur des données qui ne sont pas connues avant l’exécution du programme
(du genre, le début du programme demande à l’utilisateur d’entrer des valeurs...)
Pour le moment, notre processeur ne sait pas faire : on doit connaître les données au moment
du pré-chargement de la RAM avec le code...
Il faudrait disposer d’instructions de manipulation du contenu de la RAM à des endroits arbitraires (on ne modifierait que des données, hein, pas le code...) Cela permettrait d’aller modifier
les zones où se trouvent les opérandes. Mais c’est peut-être un peu compliqué d’avoir à modifier
plein de zones éparses.
Pour être plus propre, on pourrait séparer le code des données. On aurait, en RAM, une zone
avec les instructions et une zone avec les données. Il suffirait juste d’aller modifier la zone des
données, et d’exécuter le code générique qui saurait, pour chaque instruction, où trouver les bons
opérandes.
Pour cela, on modifie (toutes) les instructions de la façon suivante : au lieu d’avoir en RAM
deux octets instruction - opérande, on aura plutôt instruction - adresse de l’opérande.
Par exemple, pour effectuer “3 + 4, 3 − 1” on pourra voir une organisation du genre (voir
tableau 9.2 page suivante :
150
CHAPITRE 9. DES MACHINES À ÉTATS AUX PROCESSEURS
adresse
type du mot stocké
exemple
0
instruction
load
1
adresse de l’opérande
100
2
instruction
+
3
adresse de l’opérande
101
4
instruction
store
5
adresse de l’opérande
103
6
instruction
load
7
adresse de l’opérande
100
8
instruction
-
9
adresse de l’opérande
102
10
instruction
store
11
adresse de l’opérande
104
...
...
...
100
donnée
3
101
donnée
4
102
donnée
1
103
donnée
X
104
donnée
X
...
...
...
zone
zone de code
zone de données
Tab. 9.2: Organisation de la mémoire, avant exécution du programme
Après l’exécution du code, on aura ceci en RAM (voir tableau 9.3 page ci-contre :
Remarque : d’habitude on sépare même la zone de données en deux, celles qui sont connues à
l’écriture du programme, et les autres (celles qui sont modifiées par le programme)...
Question 5 : proposer une modification de l’automate pour que les instructions travaillent avec
des adresses d’opérandes...
Réponse 5 : elle se trouve en section 9.10 page 159
9.5
Étape 4 : processeur RISC
L’architecture actuelle ne sait effectuer que des calculs linéaires (suite fixe d’instructions), sur
des données potentiellement inconnues (mais dont l’adressage de stockage est connue).
Nous allons maintenant lui ajouter des instructions de saut conditionnels (et, tant qu’on y est,
inconditionnels).
9.5.1
Flags
Pour cela, chaque opération (logique ou arithmétique) va positionner deux signaux devant être
mémorisés pour l’instruction suivante, qui ne doivent être modifiés que si on modifie l’accumulateur :
• C (comme carry) :
– mis à 1 si l’opération courante est une opération arithmétique et donne lieu à une retenue,
– mis à 0 si l’opération courante est une opération arithmétique et ne donne pas lieu à une
retenue,
– mis à 0 si on fait un load
9.5. ÉTAPE 4 : PROCESSEUR RISC
151
adresse
type du mot stocké
exemple
0
instruction
load
1
adresse de l’opérande
100
2
instruction
+
3
adresse de l’opérande
101
4
instruction
store
5
adresse de l’opérande
103
6
instruction
load
7
adresse de l’opérande
100
8
instruction
-
9
adresse de l’opérande
102
10
instruction
store
11
adresse de l’opérande
104
...
...
...
100
donnée
3
101
donnée
4
102
donnée
1
103
donnée
7
104
donnée
2
...
...
...
zone
zone de code
zone de données
Tab. 9.3: Organisation de la mémoire, après exécution du programme
• Z (comme zéro) :
– mis à 1 si on charge 0 dans l’accumulateur
– mis à 0 dans tous les autres cas.
Question 6 : les implémenter, et rajouter deux opérations ADDC et SUBC, prenant en compte
la retenue C de l’opération précédente (pour implémenter des additions / soustractions sur des
grands nombres par exemple).
Réponse 6 : elle se trouve en section 9.11 page 160
9.5.2
Sauts
Pour implémenter les sauts, on définit trois instructions supplémentaires :
• JMP : saut inconditionnel.
L’exécution de cette instruction fait sauter l’exécution du programme directement à une
adresse donnée (passée comme opérande).
• JNC : saut si C est nul.
Idem à JMP, mais seulement si C est nul. Sinon, équivalent à NOP (on continue à l’adresse
suivante)
• JNZ : saut si Z est nul.
Idem à JMP, mais seulement si Z est nul. Sinon, équivalent à NOP (on continue à l’adresse
suivante)
Question 7 : modifier l’architecture du processeur pour implémenter les sauts.
152
CHAPITRE 9. DES MACHINES À ÉTATS AUX PROCESSEURS
Réponse 7 : elle se trouve en section 9.12 page 160
Tant qu’on y est, pour disposer de pauses, on définit l’instruction NOP, qui ne fait rien.
Question 8 : comment l’implémenter de façon simple ?
Réponse 8 : elle se trouve en section 9.13 page 162
On ajoute aussi deux instructions, de rotation de bits (vers la droite ou vers la gauche) :
• ROL : ACC[7 :0] devient ACC[6 :0], ACC[7]
• ROR : ACC[7 :0] devient ACC[0], ACC[7 :1]
De plus, pour tester ce processeur lors du TP, on ajoute un port de sortie : c’est un ensemble
de broches dont on veut pouvoir piloter l’état (passer certaines d’entre elles à l’état haut ou bas).
Pour nous, il s’agit de piloter un buzzer, donc une seule sortie suffira.
Le jeu d’instruction devient donc (tableau 9.4 page suivante) :
Remarques :
• AD est le deuxième octet (en RAM) de l’instruction
• (AD) est la valeur en RAM stockée à l’adresse AD
Question 9 : finir le processeur. . .
Réponse 9 : elle se trouve en section 9.14 page 162
9.6
Étape 5 : optimisations
Question : Certaines opérations peuvent s’exécuter en moins de cycles. Lesquelles, en combien
de cycles ? Modifier le processeur de façon à optimiser son temps de fonctionnement.
Question : partant du principe que certaines opérations n’ont pas besoin d’opérande (NOP,
ROT, ROR), pourquoi ne pas réduire la taille du code en RAM ?
Question : on veut non seulement augmenter le nombre de sorties, disons à 16, mais aussi à
pouvoir utiliser certaines d’entre elles non pas comme des sorties mais comme des entrées. Et ce,
de façon dynamique : au cours du programme, une broche peut devenir un sortie, puis une entrée,
puis une sortie etc. Comment l’implémenter ?
Question : comment modifier le processeur pour supporter une taille mémoire de 161024 mots
(10 bits) ?
9.7
Réponse 1
La première réponse est très détaillée. Les autre réponses seront plus succinctes.
9.7.1
Les adresses
Pour effectuer un calcul, l’automate doit disposer de trois informations :
• l’instruction (l’opération)
• l’opérande 1
• l’opérande 2
Plus que ça, il doit en disposer en même temps. Mais elles sont stockées en RAM, et ne peuvent
être lues que l’une après l’autre. Il faudra donc prévoir un moyen de stockage de ces trois informations à l’intérieur du processeur pour pouvoir effectuer le calcul.
Vu l’organisation de la mémoire, il semble logique de lire ces trois informations de la façon la
plus simple possible, c’est à dire :
9.7. RÉPONSE 1
code
153
instruction
effet
explication
(binaire sur 8 bits)
00000000
NOP
ne fait rien !
00000001
XOR
Acc = Acc XOR (AD)
effectue un XOR bit à bit entre le
contenu de l’accumulateur et une donnée en RAM, le résultat est stocké dans
l’accumulateur
00000010
AND
Acc = Acc AND (AD)
effectue un ET bit à bit entre le contenu
de l’accumulateur et une donnée en
RAM, le résultat est stocké dans l’accumulateur
00000011
OR
Acc = Acc OR (AD)
effectue un OU bit à bit entre le contenu
de l’accumulateur et une donnée en
RAM, le résultat est stocké dans l’accumulateur
00000100
ADD
Acc = Acc + (AD)
additionne le contenu de l’accumulateur
à une donnée en RAM, le résultat est
stocké dans l’accumulateur
00000101
ADC
Acc = Acc + (AD) + C
additionne le contenu de l’accumulateur
à une donnée en RAM et à la carry C, le
résultat est stocké dans l’accumulateur
00000110
SUB
Acc = Acc - (AD)
soustrait du contenu de l’accumulateur
une donnée en RAM, le résultat est stocké dans l’accumulateur
00000111
SBC
Acc = Acc - (AD) - C
soustrait du contenu de l’accumulateur
une donnée en RAM et la carry C, le
résultat est stocké dans l’accumulateur
00001000
ROL
Acc = {Acc[6 :0], Acc[7]}
effectue une rotation vers la gauche des
bits de l’accumulateur
00001001
ROR
Acc = {Acc[0], Acc[7 :1] }
effectue une rotation vers la droite des
bits de l’accumulateur
00001010
LDA
Acc = (AD)
charge dans l’accumulateur une donnée
en RAM
00001011
STA
(AD) = Acc
stocke le contenu de l’accumulateur en
RAM
00001100
OUT
BZ = (AD)[0]
Sort sur la broche BZ le bit de poids
faible de la donnée en RAM, stockée à
l’adresse opérande
00001101
JMP
PC = AD
00001110
JNC
PC = AD si C=0
saute à l’adresse opérande si C est nul,
ne fait rien sinon
00001111
JNZ
PC = AD si Z=0
saute à l’adresse opérande si Z est nul,
ne Afait rien sinon
Tab. 9.4: Nouveau jeu d’instructions
• tout d’abord l’instruction,
• puis l’opérande 1,
saute à l’adresse opérande
154
CHAPITRE 9. DES MACHINES À ÉTATS AUX PROCESSEURS
• puis l’opérande 2,
ce qui correspond à un parcours linéaire de la mémoire.
De plus, le stockage du résultat s’effectue dans la RAM à l’adresse suivant celle de l’opérande 2.
On peut donc doter l’automate d’un compteur qu’on appellera compteur d’adresse ou PC (Program
Counter), qui donnera l’adresse de la RAM à laquelle on est en train d’accéder (que ce soit en lecture
ou en écriture). Ce compteur sera incrémenté à chaque coup d’horloge, et pilotera directement le
bus d’adresse de la RAM.
9.7.2
Les données
Vu ce qui vient d’être dit, l’automate a un fonctionnement linéaire - l’ordre des actions effectuées
est toujours le même :
1. chercher une instruction
2. chercher le premier opérande
3. chercher la deuxième opérande
4. stocker le résultat du calcul
On peut donc le concevoir comme une machine à quatre états, dont le fonctionnement est
circulaire : état 1 → état 2 → état 3 → état 4 → état 1 → état 2 → . . .
État 1 :
• le compteur est en train de présenter à la RAM une adresse correspondant à une instruction.
Le processeur récupère sur le bus Q[7 :0] la contenu de la RAM à cette adresse, c’est à dire
l’instruction à effectuer.
• il faut stocker cette instruction pour plus tard (quand on effectuera l’opération demandée).
On ajoute donc à l’automate un registre sur 8 bits disposant d’un enable (8 bascules DFFE
en parallèle).
L’entrée de ce registre est reliée au bus Q[7 :0] (sortie de la RAM)
Le signal d’enable de ce registre est mis à l’état haut seulement pendant l’état 1 –> stockage
de l’instruction dans le registre
État 2 :
• le compteur est en train de présenter à la RAM une adresse correspondant aux premier
opérande.
le processeur récupère sur le bus Q[7 :0] la contenu de la RAM à cette adresse, c’est à dire
l’opérande 1. . .
• il faut stocker cet opérande, donc re-belotte, on ajoute un registre 8 bits avec enable, relié à
la sortie de la RAM (Q[7 :0]).
l’enable est mis à l’état haut seulement pendant l’état 2.
État 3 :
• le compteur est en train de présenter à la RAM une adresse correspondant aux deuxième
opérande.
le processeur récupère sur le bus Q[7 :0] la contenu de la RAM à cette adresse, c’est à dire
l’opérande 2. . .
• comme d’habitude on stocke cet opérande dans un registre 8 bits, dont l’enable est piloté à
l’état haut seulement pendant ce cycle-ci.
Remarque : on peut se dire que ce n’est pas la peine de stocker cet opérande, car on dispose dès
à présent de toutes les données pour effectuer le calcul : l’instruction dans un registre, l’opérande
dans un autre registre, et le deuxième opérande sur le bus Q[7 :0]. Mais il faudrait alors stocker le
résultat dans un registre 8 bits, car on ne fait son stockage en RAM qu’au prochain cycle. . . Alors
qu’ici, le calcul et le stockage seront faits en bloc au prochain cycle (donc pas besoin de stocker le
résultat dans un registre). Au total, dans les deux approches, le nombre de registres est le même,
et ce ne sont que des considérations de chemin critique qui permettront de déterminer la meilleure
des deux méthodes. . .
9.7. RÉPONSE 1
155
État 4 :
• le compteur est en train de présenter à la RAM une adresse correspondant au résultat à
stocker.
• l’automate dispose dans ses trois registres de toutes les données pour effectuer le calcul. Il
suffit d’ajouter une fonction combinatoire pure, pour produire le résultat.
La sortie de cette fonction combinatoire sera reliée au bus d’entrée de la RAM.
L’équation de cette fonction sera du genre : RES[7:0] = (si INSTRUCTION="00000100" :
OP_1[7:0] + OP_2[7:0], sinon OP_1[7:0] - OP_2[7:0])
Une telle fonction combinatoire a été réalisée au TP n◦ 2. . . (ALU)
• Parallèlement, l’automate doit piloter le signal WRITE de la RAM à l’état haut, pour dire à
la RAM de stocker à l’adresse courante la sortie de la fonction de calcul.
On obtient donc l’architecture suivante pour notre processeur :
• En rouge : le compteur d’adresse courante
• En bleu : les trois registres 8 bits, les signaux load sont les enable
• En noir rond : la fonction combinatoire de calcul proprement dite (ALU)
• En noir carré : la machine à état qui séquence tout ça. . .
La machine à états (CTRL) est présentée en figure 9.4, et son graphe d’états en figure 9.5
Fig. 9.4: Architecture de la première version
Fig. 9.5: Graphe d’états de la première version
Elle a quatre état, parcourus de façon linéaire, sans condition sur les transitions.
Elle dispose de 4 sorties, chacune d’entre elles à l’état haut dans un seul état de la machine.
Un codage one-hot est donc très approprié.
156
CHAPITRE 9. DES MACHINES À ÉTATS AUX PROCESSEURS
L’implémentation en registre a déjà été vue (registres les uns à la suite des autres), et ne sera
pas détaillée ici. Les sorties des registres donnent directement les sorties de la machine à état. . .
9.8
Réponse 2
Plusieurs possibilités, leur nombre est limité seulement par votre imagination. Voici quelques
exemples :
• Garder le résultat de chaque opération en mémoire, et définir une nouvelle addition qui opère
sur un opérande en RAM et celle qu’on a gardé.
L’inconvénient est qu’on rajoute une instruction pour chaque type d’opération, que cette
nouvelle opération, ne nécessitant qu’un seul opérande en RAM pourra être effectuée en 3
cycles au lieu de 4, et que ça risque de compliquer la machine à état si on veut l’optimiser
(certaines opération en 3 cycles, d’autres en 4). . .
• Définir des opérations de manipulation de la RAM, et grâce à elles recopier le résultat en RAM
à l’endroit d’une des deux opérandes de la prochaine instruction. C’est bien compliqué. . .
• Définir une nouvelle addition qui opère sur un opérande à l’endroit habituel en RAM, et sur
un autre opérande situé à l’adresse (instruction - 1). . .
• Utiliser la première solution, mais pour simplifier les choses (et par cohérence) supprimer
les opérations sur deux opérandes en RAM. Toutes les opérations (à deux opérandes) se
feront entre un opérande en RAM, et un gardé dans un registre interne au processeur. Et
pour rendre cela possible, on définit deux nouvelles instructions : chargement de ce registre
à partir d’une donnée en RAM, et stockage du contenu de ce registre en RAM. C’est l’objet
de la suite !
9.9
Réponses 3 et 4
Chaque opération ne nécessite plus qu’un seul opérande :
• pour le load, c’est normal !
• pour le store, aucun opérande. Par contre, en RAM, à la suite de l’instruction store, il doit y
avoir un emplacement libre pour stocker le contenu de l’accumulateur
• pour les opération à deux opérandes, l’un est en RAM, l’autre est interne à l’automate (c’est
l’accumulateur)
Le contenu de la RAM se présentera donc maintenant ainsi :
adresse
type du mot stocké
exemple
0
instruction
load
1
donnée
3
2
instruction
+
3
donnée
4
4
instruction
-
5
donnée
1
6
instruction
store
7
donnée
X
effet
l’accumulateur contient maintenant 3
l’accumulateur contient maintenant 7
l’accumulateur contient maintenant 6
après l’exécution du programme cet emplacement en
RAM contiendra “6”
On remarque donc qu’une adresse sur deux contient une instruction, une sur deux contient une
donnée (soit opérande, soit stockage du contenu de l’accumulateur). . .
9.9. RÉPONSES 3 ET 4
9.9.1
157
Les adresses
Comme précédemment, les adresses de la RAM sont parcourues de façon linéaire. On garde
donc le compteur d’adresse incrémenté à chaque cycle d’horloge.
9.9.2
Les données
Pour effectuer les calculs, le processeur n’a plus besoin de connaître que deux informations :
l’instruction et l’opérande. On garde donc le registre d’instruction (8 bits) qui stocke l’instruction
à effectuer pendant qu’on va chercher l’opérande en RAM.
Par contre, auparavant on parcourait 4 emplacements en RAM pour chaque instructions, d’où
une machine à états à 4 cycles. Maintenant on ne parcourt plus que 2 emplacements en RAM, donc
une machine à état à 2 cycles devrait convenir. . .
A chaque instruction, le processeur effectuera ceci :
Pour une opération normale :
1. aller chercher l’instruction en RAM, la stocker dans le registre d’instruction
2. aller lire l’opérande en RAM, effectuer le calcul et stocker le résultat dans l’accumulateur
(opération)
Pour un load :
1. aller chercher l’instruction en RAM, la stocker dans le registre d’instruction
2. aller lire l’opérande en RAM, et le stocker dans l’accumulateur (opération)
Pour un store :
1. aller chercher l’instruction en RAM, la stocker dans le registre d’instruction
2. écrire le contenu de l’accumulateur en RAM à l’adresse courante
Chaque instruction est donc traitée de façon très similaire :
1. un cycle de récupération de l’instruction (dans lequel l’enable du registre d’instruction est
mis à l’état haut).
2. un cycle de traitement de l’instruction
9.9.3
L’accumulateur
Lors du second cycle, l’accumulateur peut subir trois traitements différents :
• pour une opération (+, −, AN D, XOR, OR), l’accumulateur se voit modifié et chargé avec
le résultat de l’opération
• pour un load, l’accumulateur est modifié aussi, et chargé avec la donnée sortant de la RAM
• pour un store par contre, l’accumulateur n’est pas modifié. . .
En entrée de l’accumulateur on mettra donc un multiplexeur qui présentera soit le résultat
de l’opération en cours (si on exécute une opération standard), soit le contenu de la RAM (si on
exécute un load). De plus, dans ces deux cas, le signal enable de l’accumulateur sera mis à l’état
haut (pour autoriser sa modification) dans l’état 2 (quand on accède à la partie donnée de la RAM)
Dans le cas d’un store, on laisse l’enable de l’accumulateur à l’état bas pour ne pas le modifier.
En d’autre termes, l’enable de l’accumulateur a pour équation : LOAD_ACC = (Instruction <>
STORE) ET (Etat = état 2)
Le pilotage du multiplexeur en entrée de l’accumulateur aura pour équation quelque chose du
genre : ACC = (si Instruction == LOAD alors Q[7:0], si Instruction == opération alors
ALU(ACC, Q[7:0]), si Instruction == STORE alors peu importe...). Ce qui se simplifie en
ACC = (si Instruction == LOAD alors Q[7:0], sinon ALU(ACC, Q[7:0]))
la sortie de l’accumulateur est branchée en même temps
• sur le bus d’entrée de la RAM (pour le cas ou on fait un store)
• sur l’ALU (qui implémente, selon l’instruction à effectuer, l’addition, la soustraction, le XOR,
etc. . . )
Enfin la génération du signal d’écriture en RAM est simple : il est mis à l’état haut quand
l’instruction est un STORE, et qu’on est dans l’état 2. Le contenu de l’accumulateur est présenté
sur l’entrée de la RAM (cf. ci dessus), l’adresse courante est sur le bus d’adresse de la RAM, la
RAM est donc mise à jour avec la bonne valeur. . .
158
9.9.4
CHAPITRE 9. DES MACHINES À ÉTATS AUX PROCESSEURS
Bilan
On a donc les éléments suivants :
• compteur d’adresse (PC)
• registre d’instruction
• accumulateur avec multiplexeur en entrée
• une machine à état générant les signaux LOAD_I, LOAD_ACC, W RIT E et le contrôle
du multiplexeur
Remarque : les signaux générés par la machine à état ne dépendent pas seulement de l’état
courant, mais aussi de l’instruction à exécuter. C’est donc une machine de Mealy. . .
L’architecture globale est donc celle représentée sur la figure 9.6, et son graphe d’états en
figure 9.7
Fig. 9.6: Architecture de la deuxième version
Fig. 9.7: Graphe d’états de la deuxième version
avec :
• SEL_ACC = (I[7:0] == LOAD)
• LOAD_ACC = (I[7:0] <> STORE) ET (Etat = état 2)
• WRITE = (I[7:0] == STORE) ET (Etat = état 2)
9.9.5
Performances
Pour une opération :
• avant : 4 cycles
• maintenant : 6 cycles (2 + 2 + 2)
9.10. RÉPONSE 5
159
Pour deux opérations chaînées :
• avant : 8 cycles (4 + 4. Enfin, plus exactement, on ne savait pas faire. . . )
• maintenant : 8 cycles (2 + 2 + 2 + 2)
Pour trois opérations chaînées :
• avant : 12 cycles (4 + 4 + 4. Même remarque)
• maintenant : 10 cycles
Bref, pour n opérations :
• avant : 4n cycles
• maintenant : 2n+4 cycles si peut les enchaîner, 3n sinon.
On a donc tout intérêt à enchaîner les calculs. Ce qui est très souvent le cas en pratique. . .
9.10
Réponse 5
L’automate doit maintenant pour chaque instruction
• aller chercher l’instruction (la stocker dans le registre d’instruction)
• aller chercher l’adresse de l’opérande (le stocker, dans un registre dit "d’adresse")
• aller chercher l’opérande proprement dit, en lisant la RAM à l’adresse stockée au cycle précédent.
On a donc une machine qui possède un état de plus (celui où on va lire en RAM l’opérande
proprement dit).
9.10.1
Les adresses
Maintenant, on n’accède plus à la RAM de façon linéaire. Dans l’exemple de programme donné,
les adresses présentées à la RAM seront celles-ci :
1. 0
2. 1
3. 100
4. 2
5. 3
6. 101
7. 4
8. 5
9. 102
10. . . .
Les adresses de code sont globalement linéaires (0, 1, 2, 3, . . . ), celles des données ne le sont
pas (elles sont arbitraires). Il faut donc présenter sur le bus d’adresse RAM
• soit le compteur d’adresse pendant les deux premiers cycles (et on l’incrémente à chaque fois)
• soit le contenu du registre d’adresse (adresse de l’opérande à aller chercher) pendant le troisième cycle (et ici le compteur d’adresse ne doit pas être incrémenté)
donc : multiplexeur. . .
De plus, le compteur d’adresse doit être piloté par un signal INCR_PC : il n’est incrémenté que
si INCR_PCest à l’état haut.
Le registre d’adresse est chargé au cycle numéro 2. Son contenu n’est utile qu’au cycle numéro
3. Il n’est donc pas nécessaire de le piloter avec un enable. . . Il peut rester tout le temps actif :
son contenu sera indéterminé pendant les cycles 1 et 2, mais ce n’est pas grave, il n’est pas utilisé
pendant ces cycles là. . .
L’architecture globale est donc celle représentée sur la figure 9.8 page suivante, et son graphe
d’états en figure 9.14 page 163
C’est là aussi une machine de Mealy, et les équations sont :
• SEL_ACC = (I[7:0] == LOAD)
• LOAD_ACC = (I[7:0] <> STORE) ET (Etat = Ex)
• WRITE = (I[7:0] == STORE) ET (Etat = Ex)
160
CHAPITRE 9. DES MACHINES À ÉTATS AUX PROCESSEURS
Fig. 9.8: Architecture de la troisième version
Fig. 9.9: Graphe d’états de la troisième version
9.11
9.11.1
Réponse 6
Flags
La génération de C et Z est combinatoire et peut être effectuée par l’ALU.
Il suffit juste de rajouter deux registres 1 bits pour stocker ces deux signaux, pilotés par le même
enable que l’accumulateur (LOAD_ACC, qu’on appellera maintenant LOAD_AZC). On considérera donc
que Z et C font partie de l’accumulateur (qui devient donc un registre sur 10 bits : 8 de donnée, 1
pour Z, un pour C).
Remarque : le fonctionnement de Z et C ici n’est pas tout à fait standard !..
9.11.2
ADDC / SUBC
Il suffit de faire entrer C sur la retenue entrante de l’addition ou de la soustraction. . .
9.12
Réponse 7
Pour implémenter les sauts, il suffit de se donner la possibilité de remplacer le contenu de PC
par la valeur lue en RAM.
PC devient donc un peu plus complexe. C’est globalement un compteur, mais il
• est incrémenté si son signal de commande INCR_PC= 1
• est chargé avec une nouvelle valeur si un signal de chargement LOAD_PC= 1
• si LOAD_PCet INCR_PCvalent 1, c’est LOAD_PCqui prime...
9.12. RÉPONSE 7
161
Fig. 9.10: Implémentation du PC
Ceci peut être implémenté comme sur la figure 9.10.
Pour simplifier les schémas, lorsque nous parlerons de PC, ce sera de ce bloc-ci.
Il faut maintenant générer le signal LOAD_PC. Ce signal sera aussi généré par la machine à états
CTRL. Le PC doit être remplacé lorsqu’on exécute un saut, et que le condition du saut est vérifiée.
La nouvelle valeur est présente sur le bus de sortie de la RAM pendant le cycle 2.
On aura donc une équation du style : LOAD_PC = si (I[7:0] == JMP ou I[7:0] == JNC et
C == 0 ou I[7:0] == JNZ et Z == 0) et (état = etat 2), alors 1, sinon 0.
L’architecture globale est donc celle représentée sur la figure 9.11, avec une machine à état
CTRL à peine modifiée (même graphe d’état) représentée figure 9.14 page 163.
Fig. 9.11: Architecture de la quatrième version
Fig. 9.12: Graphe d’états de la quatrième version
• SEL_ACC = (I[7:0] == LOAD)
• LOAD_ACC = (I[7:0] <> (STORE ou saut)) ET (Etat = Ex)
• WRITE = (I[7:0] == STORE) ET (Etat = Ex)
162
CHAPITRE 9. DES MACHINES À ÉTATS AUX PROCESSEURS
• LOAD_PC = si (I[7:0] == JMP ou I[7:0] == JNC et C == 0 ou I[7:0] == JNZ et Z ==
0) et (état = Ad), alors 1, sinon 0
9.13
Réponse 8
L’instruction NOP ne fait rien. Elle n’a pas besoin d’opérande, et pourrait donc être stockée
sur un seul octet (au lieu de deux pour les autres).
Mais cela compliquerait la gestion de la machine à états pour générer les signaux LOAD_PCet
INCR_PC. De plus, ça pourrait poser d’autres problèmes (cf. les optimisations).
On peut donc accepter de perdre un octet de mémoire, et ne rien changer à l’organisation
de la mémoire. L’instruction NOP sera accompagnée d’un opérande qui ne servira a rien... Une
instruction sera toujours exécutée en trois cycles. La seule modification de la machine à état sera
l’équation suivante : LOAD_ACC = (I[7:0] <> (STORE ou saut ou NOP)) ET (Etat = Ex)
9.14
9.14.1
Réponse 9
ROL / ROR
ces opérations sont combinatoires et seront donc implémentées dans l’ALU.
Remarque : comme le NOP, elles ne nécessitent pas d’opérande. De même, pour garder une
cohérence (nous optimiserons ça plus tard), on garde un codage des instructions sur deux octets.
Pour ROR et ROL, le deuxième octet n’a pas de signification...
9.14.2
Sortie BZ
On ajoute un registre 1 bit, piloté par un signal d’enable appelé LOAD_BZ.
• l’entrée de ce registre est le bus de sortie de la RAM
• sa sortie est connectée à la broche de sortie buzzer du processeur...
LOAD_BZsera généré par la machine à état, selon l’équation suivante : LOAD_BZ = (I[7:0] ==
OUT) et (état = EX). . .
L’architecture globale est donc celle représentée sur la figure 9.13, avec une machine à état
CTRL représentée figure 9.14 page suivante.
Fig. 9.13: Architecture de la version finale
9.14. RÉPONSE 9
163
Fig. 9.14: Graphe d’états de la version finale
•
•
•
•
SEL_ACC = (I[7:0] == LOAD)
LOAD_ACC = (I[7:0] <> (STORE ou saut ou NOP ou ROR ou ROL)) ET (Etat = Ex)
WRITE = (I[7:0] == STORE) ET (Etat = Ex)
LOAD_PC = si (I[7:0] == JMP ou I[7:0] == JNC et C == 0 ou I[7:0] == JNZ et Z ==
0) et (état = Ad), alors 1, sinon 0.
• LOAD_BZ = (I[7:0] == OUT) et (état = Ex)
Remarque : le signal SEL_ACCne sort pas de CTRL sur le schéma : il peut être inclus, avec le
multiplexeur qu’il pilote, dans l’ALU...
164
CHAPITRE 9. DES MACHINES À ÉTATS AUX PROCESSEURS
Deuxième partie
TD
165
Chapitre 10
TD - Fonctions de base
Ce TD traite de la logique combinatoire et comprend les exercices suivants :
1. 10.1 : Simplification algébrique d’équations.
2. 10.2 : Simplification d’équations par tableau de Karnaugh.
3. 10.5 : Décodage.
4. 10.6 page 169 : Génération de fonctions.
10.1
Simplification algébrique
On considère qu’une équation booléenne est simplifiée si le nombre d’apparition des variables
dans l’équation est le plus petit possible.
1. En utilisant les propriétés et théorèmes de l’algèbre de Boole, simplifiez l’expression : S =
(a + b + c) · (ā + d¯ · e + f ) + (d¯ + e) · ā · c + a · b
10.2
Simplification par tableau de Karnaugh
La méthode de Karnaugh permet de simplifier les fonctions logiques ayant peu de variables, à
partir de la table de vérité de la fonction.
1. Simplifiez les deux fonctions F et G suivantes (cf. Tab. 10.1 page suivante et 10.2 page
suivante) après avoir transformé leur table de vérité en tableau de Karnaugh.
10.3
Fonction F
• Les entrées sont a, b, c, d, e.
• Une variable d’entrée à « X » indique qu’elle peut être à 0 ou à 1.
10.4
Fonction G
• Les entrées sont a, b, c et d,
• i indique la valeur de la combinaison (ou minterme) en notation décimale,
• le « − » indique que G peut prendre indifféremment la valeur 0 ou 1.
10.5
Décodage
Le décodeur est un circuit combinatoire à l’entrée duquel est appliqué un code binaire de n
bits. Ce circuit possède N sorties (avec N = 2n , en général). A chaque valeur du code d’entrée, il
y a une seule sortie à l’état haut, toutes les autres sont à l’état bas. Les entrées d’un décodeur sont
167
168
CHAPITRE 10. TD - FONCTIONS DE BASE
e
d
c
b
a
F
0
X
X
X
X
0
1
0
0
X
X
0
1
0
1
0
X
1
1
0
1
1
X
0
1
1
0
0
0
0
1
1
0
0
1
1
1
1
0
1
X
1
1
1
1
0
0
1
1
1
1
0
1
0
1
1
1
1
X
0
Tab. 10.1: Table de vérité de la fonction F .
i
d
c
b
a
G
0
0
0
0
0
1
1
0
0
0
1
1
2
0
0
1
0
−
3
0
0
1
1
0
4
0
1
0
0
−
5
0
1
0
1
−
6
0
1
1
0
−
7
0
1
1
1
1
8
1
0
0
0
−
9
1
0
0
1
1
10
1
0
1
0
1
11
1
0
1
1
0
12
1
1
0
0
0
13
1
1
0
1
1
14
1
1
1
0
0
15
1
1
1
1
1
Tab. 10.2: Table de vérité de la fonction G.
souvent appelées adresses, car elles expriment en binaire le numéro décimal de la sortie activée. Les
décodeurs peuvent être utilisés pour l’adressage de mémoires et la génération de fonctions logiques.
Décodeur BCD
Le BCD (« binary coded decimal ») est un code de 4 bits dont seules les 10 premières combinaisons
de 0 à 9 sont employées. Les combinaisons restantes de 10 à 15 ne sont jamais utilisées. Un décodeur
BCD est donc un décodeur qui a 4 entrées et 10 sorties.
1. Réalisez ce décodeur en considérant que si l’une des 6 combinaisons non autorisées est à
l’entrée, toutes les sorties sont à l’état inactif « 0 ».
10.6. GÉNÉRATION DE FONCTIONS
169
Décodeur de grande capacité
Si le nombre N est très élevé, on peut imaginer réaliser le décodage en cascadant des décodeurs
de tailles moins importantes.
1. Par exemple essayez de concevoir un décodeur binaire 5 entrées / 32 sorties à partir de 2
décodeurs binaires 4 entrées / 16 sorties.
2. Quelle doit être la modification à apporter au décodeur 4 entrées / 16 sorties pour créer
facilement le décodeur 5 entrées ?
3. Concevez un décodeur binaire 8 entrées / 256 sorties en utilisant le décodeur 4 entrées / 16
sorties précédemment modifié.
10.6
Génération de fonctions
Un transcodeur ou convertisseur est un circuit combinatoire à x entrées et y sorties. A chaque
code d’entrée de x bits correspond un code de sortie y bits. Les décodeurs que nous avons étudiés
dans l’exercice précédent sont donc des cas particuliers de transcodeurs.
On désire réaliser la fonction de transcodage d’un code BCD vers un code « 2 parmi 5 ». Dans
le code « 2 parmi 5 », il y a toujours deux bits à « 1 » et 3 bits à « 0 ». La table de vérité est
indiquée ci-dessous dans la Tab. 10.3.
• i indique la valeur de la combinaison (ou minterme) en décimal,
• les entrées sont a, b, c, d, e,
• les sorties sont F4 F3 F2 F1 F0 ,
• si i > 9 l’état des sorties est indifférent.
i
d
c
b
a
F4
F3
F2
F1
F0
0
0
0
0
0
1
1
0
0
0
1
0
0
0
1
0
0
0
1
1
2
0
0
1
0
0
0
1
0
1
3
0
0
1
1
0
0
1
1
0
4
0
1
0
0
0
1
0
0
1
5
0
1
0
1
0
1
0
1
0
6
0
1
1
0
0
1
1
0
0
7
0
1
1
1
1
0
1
0
0
8
1
0
0
0
1
0
0
0
1
9
1
0
0
1
1
0
0
1
0
Tab. 10.3: Table de vérité de la fonction de conversion BCD → « 2 parmi 5 ».
1. Réalisez la fonction à l’aide :
(a) D’un décodeur BCD et quelques portes.
(b) De multiplexeurs.
Pour cela écrivez l’équation logique d’un multiplexeur 16 entrées (et donc 4 entrées de sélection) et comparez à l’expression d’une fonction logique quelconque à 4 entrées.
170
CHAPITRE 10. TD - FONCTIONS DE BASE
Chapitre 11
TD - Opérateurs arithmétiques
Le but de ce TD est d’approfondir la représentation en complément à 2 (Exercice 11.1), ainsi
que l’arithmétique des nombres binaires (Exercice 11.2 sur l’addition, 11.3 sur la soustraction et
comparaison, 11.4 page suivante sur la multiplication).
11.1
Représentation en complément à 2
1. Donner la représentation en CA2 des nombres suivants : -8, +8, -30, -52, +15.
2. Soit B un nombre codé en CA2 sur n bits : (bn−1 , bn−2 , · · · , b1 , b0 ). Comment obtient-on la
valeur de B à partir de sa représentation lorsqu’il est positif ? lorsqu’il est négatif ?
3. Donner la représentation en CA2 des nombres +15, -12 :
• sur 5 bits,
• sur 7 bits.
4. D’une façon générale, comment peut-on étendre la représentation d’un nombre codé en CA2
sur n bits, à une représentation sur p bits, avec p plus grand que n ?
11.2
Addition en complément à 2
1. Quel est l’intervalle de variation d’un nombre codé en CA2 sur n bits ?
2. Soient A et B deux nombres codés en CA2 sur n bits et S la somme de ces 2 nombres. Quel
est l’intervalle de variation de S ? En déduire le nombre de bits nécessaires à son codage.
3. Réaliser en binaire les additions suivantes : 30 + 8, 30 + (-8), (-30) + 8, (-30) + (-8).
11.3
Soustraction et comparaison
On désire réaliser un opérateur capable d’effectuer la comparaison de 2 nombres positifs A et
B codés sur 4 bits. La sortie S de l’opérateur vaut « 1 » si A est strictement inférieur à B, « 0 »
sinon :
• S = 1 si A < B,
• S = 0 si A > B ou A = B.
1. Proposer une solution à l’aide d’un soustracteur.
2. Une autre solution appelée « comparaison MSB en tête » consiste à comparer bit à bit les
nombres A et B en commençant par les bits de poids forts. L’algorithme utilisé est le suivant :
S=1
SI
(a3 < b3 )
OU ((a3 = b3 ) ET (a2 < b2 ))
OU ((a3 = b3 ) ET (a2 = b2 ) ET (a1 < b1 ))
OU ((a3 = b3 ) ET (a2 = b2 ) ET (a1 = b1 ) ET (a0 < b0 )) .
171
172
CHAPITRE 11. TD - OPÉRATEURS ARITHMÉTIQUES
• Construire l’opérateur élémentaire à 2 entrées ai et bi dont les sorties Ii (Inférieur) et Ei
(Égal) vérifient :
Ii
=
1 si ai < bi ,
Ii
=
0 sinon.
Ei
= 1 si ai = bi ,
Ei
=
0 sinon.
• En utilisant l’opérateur construit précédemment, proposer le schéma complet du comparateur.
• Comment peut-on généraliser simplement ce comparateur à n bits ?
11.4
Multiplication
1. Réaliser à la main l’opération : 1001 × 1100 (9 × 12).
2. Proposer le schéma d’un multiplieur de 2 nombres positifs de 4 bits. On dispose pour cela
d’additionneurs 4 bits.
3. Comment faut-il modifier ce schéma pour permettre la multiplication de 2 nombres en complément à 2 ?
Chapitre 12
TD - Analyse et synthèse en portes
logiques
12.1
Introduction
Le TD comprend 4 exercices portant sur l’analyse et la synthèse de portes logiques à partir de
transistors CMOS Exercices
1. 12.2 Analyse d’une porte complexe
2. 12.3 page suivante Analyse de portes présentant des dysfonctionnements
3. 12.4 page suivante Synthèse de la fonction majorité
4. 12.5 page 175 Synthèse d’un additionneur 1 bit
12.2
Analyse d’une porte complexe
La figure 12.1 représente l’implantation (la réalisation) d’une fonction logique en utilisant les
principes de la logique complémentaire CMOS (réseau de tirage à "1" à base de transistors PMOS
et réseau de tirage à "0" à base de transistors NMOS).
Fig. 12.1: Porte logique
12.2.1
Analyse de la fonction à l’aide du réseau de transistors P
1. En considérant que Y est à 1 uniquement si le réseau P est passant, donnez l’expression de
la fonction logique Y en utilisant la structure du réseau de transistors P.
173
174
12.2.2
CHAPITRE 12. TD - ANALYSE ET SYNTHÈSE EN PORTES LOGIQUES
Analyse de la fonction à l’aide du réseau de transistors N
1. En considérant que Y est à O uniquement si le réseau N est passant, donnez l’expression de
la fonction logique Y en utilisant la structure du réseau de transistors N.
2. Vérifiez que les fonctions obtenues à l’aide du réseau P puis du réseau N sont bien identiques.
12.2.3
L’implémentation est elle unique ?
1. Dressez le tableau de Karnaugh de la fonction Y. En simplifiant la fonction trouvez une
alternative au réseau de transistors P.
12.3
Analyse de portes présentant des dysfonctionnements
Une seule de ces portes réalise correctement une fonction logique.
Fig. 12.2: Trois portes...
12.3.1
Quelle est la "bonne" ?
1. En examinant la dualité des réseaux N et P (une structure de transistors série P correspond
à une structure parallèle N et vice versa), déduisez la bonne porte.
2. Quelle est l’expression de sa fonction logique ?
12.3.2
Causes de dysfonctionnements
1. Trouvez des combinaisons des entrées introduisant un problème pour les 2 portes défectueuses.
12.4
Synthèse de la fonction Majorité
Soit le complément de la fonction Majorité : M aj(A, B, C) = A · B + B · C + A · C
12.4.1
Construction CMOS de la fonction Majorité complémentée
1. En utilisant la dualité des réseaux P et N, établissez le schéma CMOS de la fonction Majorité
complémentée. Trouvez une structure minimisant le nombre de transistors.
12.4.2
Optimisation de la fonction Majorité complémentée
1. Démontrer la relation suivante :M aj(A, B, C) = M aj(A, B, C)
2. Déduisez une structure présentant une symétrie sur les réseaux P et N. Quels sont les intérêts
d’une telle structure ?
12.5. SYNTHÈSE D’UN ADDITIONNEUR 1 BIT
12.5
175
Synthèse d’un Additionneur 1 bit
Cet exercice traite de l’additionneur 1 bit qui est la cellule de base de l’additionneur à propagation de retenue.
Fig. 12.3: Table de vérité de l’Additionneur Complet 1 bit
12.5.1
Construction de la retenue Ri+1 en CMOS
1. Proposez une structure de porte CMOS pour réaliser la fonction Ri+1
12.5.2
Construction de la sortie Si en CMOS
1. Vérifier que Si peut s’exprimer sous la forme : Si = Ai Bi Ri + Ri+1 (Ai + Bi + Ri ) = Ai ⊕
B i ⊕ Ri
2. En utilisant le même raisonnement que pour la fonction Majorité (exercice 12.4.2 page cicontre) trouvez une structure optimale de la fonction Si
12.5.3
Évaluation de l’aire de la surface d’un additionneur
1. Sachant qu’on utilise une technologie CMOS de densité 1 500 000tr ·mm−2 , combien pouvons
nous intégrer d’additionneurs 32 bits dans 1cm2 ?
176
CHAPITRE 12. TD - ANALYSE ET SYNTHÈSE EN PORTES LOGIQUES
Chapitre 13
TD - Performances de la logique
complémentaire CMOS
13.1
Objectifs du TD
Ce TD est l’occasion d’une première mise en pratique des concepts de temps de propagation de
portes logiques. Les différents exercices visent à mettre en évidence :
• l’usage de bibliothèques précaractérisées ;
• le lien entre la structure des portes CMOS et leurs performances ;
• le lien entre l’optimisation de fonctions booléennes et leurs performances.
13.2
Temps de propagation d’une fonction décodeur
Nous désirons réaliser la fonction LM 20 dont l’équation logique est la suivante :
LM 20 = A0 · A1 · A2 · A3 · A4 · A5
Les effets parasites des fonctions logiques connectées en aval de la fonction LM 20 sont modélisés par une capacité d’utilisation Cu connectée en sortie de la fonction. La valeur de Cu n’est
pas connue. Un concepteur, utilisant les cellules d’une bibliothèque précaractérisée donnée en annexe 13.5 page 179, nous propose trois implantations illustrées dans la figure 13.1 (on suppose
disponibles les entrées et leurs complémentaires) :
Fig. 13.1: Trois implantations alternatives de la fonction LM20
• Question 1 : Vérifier que les schémas de la figure 13.1 représentent tous la fonction LM 20 et
comparer ces solutions en terme de nombre de transistors utilisés.
• Question 2 : En supposant que la sortie de la fonction LM 20 charge une capacité d’utilisation
égale à un multiple entier de la capacité de référence (Cu = N ×Cr ) déterminer pour chacune
des solutions l’expression du temps de propagation de la fonction LM 20 en fonction de N et
de tpr .
• Question 3 : Déterminer en fonction de N la solution donnant le temps de propagation le
plus faible. Pouvait-on prévoir ces résultats ? (expliquer).
177
178 CHAPITRE 13. TD - PERFORMANCES DE LA LOGIQUE COMPLÉMENTAIRE CMOS
13.3
Amélioration du décodeur par amplification logique
Nous avons maintenant fixé la valeur de la capacité d’utilisation Cu de la fonction LM 20 à
Cu = 175 × Cr . Nous décidons de reprendre la solution (3) modifiée suivant le schéma de la
figure 13.2, où INV 1 et INV 2 sont deux inverseurs de la bibliothèque.
Fig. 13.2: Solution (3) avec amplification logique
• Question 4 : Déterminer le temps de propagation de la fonction dans cette nouvelle configuration, et comparer de nouveau à la solution (1).
Nous décidons de nous affranchir des contraintes de la bibliothèque et décidons de remplacer
l’inverseur INV 2 par un inverseur dont nous définissons nous même les dimensions. Pour cela nous
multiplions les largeurs W des deux transistors NMOS et PMOS de l’inverseur de la bibliothèque
par un même coefficient α.
• Question 5 : Déterminer, en fonction des caractéristiques de l’inverseur de la bibliothèque et
du coefficient α, la valeur des paramètres CeINV , tp0INV et dtpINV de l’inverseur INV 2 .
• Question 6 : Déterminer de nouveau le temps de propagation de la fonction LM 20 en fonction
du coefficient α.
• Question 7 : Montrer qu’il existe une valeur de α minimisant le temps de propagation de la
fonction LM 20 . Calculer cette valeur et déterminer le nouveau temps de propagation.
La valeur de Cu est en fait la capacité résultante de 25 entrées de diverses portes connectées
en sortie de la fonction LM 20 .
• Question 8 : Imaginer une solution donnant le même résultat que précédemment mais évitant
de créer une nouvelle cellule (nous ne sommes pas maitres de la bibliothèque...).
Dans la pratique, les concepteurs ne cherchent pas à minimiser les temps de propagation des
fonctions combinatoires, mais plutôt à limiter ceux-ci à une valeur jugée acceptable pour le fonctionnement correct du circuit.
• Question 9 :Montrer que pour tout choix de temps de propagation supérieur au temps minimum, il existe une valeur de α minimisant l’aire du circuit réalisant la fonction LM 20 .
13.4
Généralisation du principe de l’amplification logique
Le problème précédent peut être généralisé de la façon suivante : Considérant une capacité Cu
devant être chargée (ou déchargée) par de la logique CMOS, existe-t-il une structure de chaîne
d’inverseurs optimale minimisant le temps de propagation ?.
La chaîne totale considérée (voir figure 13.3 page suivante) sera composée de N inverseurs INV i
dont les largeurs des transistors sont multipliées par des coefficients αi par rapport à l’inverseur de
la bibliothèque. Le coefficient α1 est figé à la valeur 1.
• Question 10 : Etablir l’expression du temps de propagation de la chaîne en fonction du
nombre N d’inverseurs et des coefficients αi .
• Question 11 : Montrer que les coefficients αi doivent suivre une progression géométrique pour
minimiser le temps de propagation de la chaîne. En déduire une nouvelle expression du temps
de propagation en fonction d’un coefficient unique α et de N.
• Question 12 :Montrer qu’il existe une valeur de α qui minimise le temps de propagation de
la chaîne. Exprimer cette valeur en fonction de Cu Ce et N. En déduire une expression du
temps de propagation minimal ne dépendant plus que de Cu , CeINV et N.
13.5. ANNEXE : BIBLIOTHÈQUE DE CELLULES PRÉCARACTÉRISÉES
179
Fig. 13.3: Amplification logique généralisée.
• Question 13 :Montrer qu’il existe une valeur de N qui minimise le temps de propagation de la
chaîne. Exprimer cette valeur en fonction de Cu et Ce . En déduire une expression du temps
de propagation minimal ne dépendant plus que de Cu et CeINV .
13.5
Annexe : Bibliothèque de cellules précaractérisées
Les sociétés de fonderies de Silicium, les "fondeurs", qui produisent des circuits intégrés numériques, proposent à leurs clients, des bibliothèques de portes logiques dites précaractérisées. Les
ingénieurs de ces sociétés développent, dessinent et simulent le comportement et les performances
de chacune des portes logiques de la bibliothèque. Ils fournissent à leurs clients des tables de caractéristiques permettant à ces derniers de concevoir des circuits intégrés et prédire leurs performances
sans avoir à explorer des niveaux de détail allant jusqu’au transistor. Le tableau 13.1 propose une
telle bibliothèque.
Fonction
Équation booléenne
Cei
tp0
dtp
Inverseur
Y =A
CeA = 7Cr
6tpr
dtpr
Nand à 3 entrées
Y = ABC
∀i ∈ {A, B, C}Cei = 7Cr
42tpr
3dtpr
Nand à 6 entrées
Y = ABCDEF
∀i ∈ {A · · · F }Cei = 7Cr
156tpr
6dtpr
Nor à 2 entrées
Y =A+B
∀i ∈ {A, B}Cei = 7Cr
16tpr
2dtpr
Nor à 6 entrées
Y =A+B+C +D+E+F
∀i ∈ {A · · · F }Cei = 7Cr
96tpr
6dtpr
Tab. 13.1: Une bibliothèque précaractérisée simple.
Pour chaque cellule de la bibliothèque sont précisés :
• La capacité d’entrée Cei de chaque entrée Ei de la cellule.
• Le temps de propagation à vide tp0 ;
• La dépendance capacitive (pente) du temps de propagation dtp .
Rappelons que le temps de propagation d’une porte chargée par une capacité Cu est donné par
la formule :
tp = tp0 + dtp × Cu
Nous avons simplifié les jeux de paramètres en ne distinguant notamment pas les temps de
propagation en montée et en descente. Pour faciliter les quelques calculs numériques de ce TD,
tous les paramètres sont définis comme des multiples entiers des valeurs de référence suivantes :
• Cr : capacité de référence
• tpr : temps de propagation de référence
• dtpr : dépendance capacitive de référence
Ces trois paramètres sont liés par la relation suivante :
tpr = dtpr × Cr
180 CHAPITRE 13. TD - PERFORMANCES DE LA LOGIQUE COMPLÉMENTAIRE CMOS
Chapitre 14
TD - Utilisation des bascules
Le TD comprend des exercices portant sur la mise en oeuvre de bascules dans des applications
courantes de l’électronique :
• 14.1 Mise en pipeline d’une fonction combinatoire
• 14.2 page suivante Changement de format série ↔ Parallèle
• 14.3 page 184 Calcul de parité.
14.1
Mise en pipeline d’une fonction combinatoire
La fonction électronique à étudier est illustrée par la figure 14.1. Il s’agit de traiter un flot
continu de données arrivant à un certain rythme. La fréquence d’arrivée des données, et donc de
traitement, doit être la plus grande possible.
Fig. 14.1: Circuit à étudier
14.1.1
Analyse de la fonction
1. Quelles sont les rôles respectifs des entrées SEL, RAZ et INV ?
2. On considère que toutes les entrées sont issues de bascules ayant un temps de propagation
tco de 1 ns et que les temps de prépositionnement tsu et tho des bascules sont négligeables.
Quelle est la fréquence d’échantillonnage maximum fmax de la fonction ?
14.1.2
Augmentation de la fréquence de fonctionnement avec un étage
de pipeline
Une barrière de registre est rajoutée comme indiqué dans la figure 14.2 page suivante. Le nouvel
étage de pipeline ainsi généré permet d’augmenter la fréquence de fonctionnement.
181
182
CHAPITRE 14. TD - UTILISATION DES BASCULES
Fig. 14.2: Circuit à étudier avec pipeline
1. Quelle est la nouvelle fréquence maximum fmax de fonctionnement ?
2. Quels sont le retard et la latence du signal de sortie ?
14.1.3
Optimisation en performances
1. Rajoutez un étage de pipeline permettant d’obtenir la meilleure fréquence possible.
2. Quelle est la nouvelle valeur de la fréquence fmax ?
14.1.4
Compromis performances/surface
La table 14.1 indique la surface des portes logiques. L’unité est la surface de la porte ET.
ET
MUX
XOR
DFF
1
2
2
6
Tab. 14.1: Surface des éléments
1. Calculez la surface pour les 3 cas étudiés ci-dessus. Analysez le rapport entre surface et
fréquence maximale de fonctionnement.
2. Quelle conclusion peut-on en tirer ?
14.2
Changement de format série ↔ Parallèle
Cet exercice a pour but de concevoir une fonction de changement de format d’une donnée
arrivant en série et sortant en parallèle, et vice-versa. La structure de registre à décalage sera
utilisée à cette fin.
14.2.1
Conversion série → parallèle
1. Concevez le composant D-EN dont le symbole est représenté par la figure 14.3 page suivante
et ayant les spécifications indiquées dans la table 14.2.
EN=0
Gel de la sortie Q
EN=1
bascule D avec entrées sur D et sortie sur Q
Tab. 14.2: Spécifications de D-EN
2. A l’aide du composant D-EN, concevez un convertisseur série=>parallèle SER-PAR dont
l’entrée D arrive sur 1 bit au rythme de l’horloge H et les sortie S sortent sur sur 4 bits. Le
symbole est représenté par la figure 14.4 et les spécifications sont indiquées dans la table 14.3.
14.3. CALCUL DE PARITÉ.
183
Fig. 14.3: Bascule D-EN
Fig. 14.4: Composant SER-PAR
DATA_OK=0
Gel de la sortie S
DATA_OK=1
La sortie S prend les 4 derniers bits de D
Tab. 14.3: Spécifications de SER-PAR
14.2.2
Conversion parallèle → série
1. Concevez le composant D-EN-LD dont le symbole est représenté par la figure 14.5 et ayant
les spécifications indiquées dans la table 14.4.
Fig. 14.5: Bascule D-EN-LD
EN=0
gel de la sortie Q
EN=1 et LD =0
bascule D avec entrée sur D1 et sortie sur Q
EN=1 et LD =1
bascule D avec entrée sur D2 et sortie sur Q
Tab. 14.4: Spécifications de D-EN-LD
2. A l’aide du composant D-EN-LD, concevez un convertisseur parallèle=>série PAR-SER avec
les entrées sur 4 bits et une sortie sur 1 bit changeant au rythme de l’horloge H. Le symbole
est représenté par la figure 14.6 et les spécifications indiquées dans la table 14.5.
14.3
Calcul de parité.
La parité d’un mot de n bits est vraie si le nombre de bits à 1 est pair. On se propose de réaliser
ce calcul sur une donnée de 8 bits.
184
CHAPITRE 14. TD - UTILISATION DES BASCULES
Fig. 14.6: Composant PAR-SER
EN=0
Gel de la sortie S
EN=1 et DATA_OK=0
la sortie S sort d’une façon cyclique les 4 bits de D enregistrées
EN=1 et DATA_OK=1
Les entrées D sont enregistrées
Tab. 14.5: Spécifications de PAR-SER
14.3.1
Calcul de parité sur un mot parallèle
1. Concevez un circuit calculant la parité d’un mot de 8 bits en parallèle, à partir exclusivement
de portes XOR et ayant un temps de propagation minimal.
14.3.2
Calcul de parité sur un mot série
Les bits du mot arrivent maintenant en série et d’une manière synchrone avec une horloge CLK.
Le signal DEB est actif juste avant le premier bit. Le chronogramme de la donnée et de DEB est
donné en figure 14.7.
Fig. 14.7: Chronogramme des entrées du calculateur
Comme les bits arrivent séquentiellement, on peut utiliser une structure simple calculant la
parité bit après bit et stockant le résultat dans une bascule D. La bascule doit être initialisée à
l’aide du signal DEB et contient le résultat au bout des 8 bits.
1. Donnez l’équation de l’entrée D de la bascule par rapport à DATA, DEB et la sortie de la
bascule.
2. Déduisez la structure du circuit séquentiel correspondant.
Chapitre 15
TD - Synthèse et utilisation des
machines à états synchrones
Ce TD comprend 2 exercices, permettant de reprendre et de mettre en oeuvre les notions
abordées dans la leçon sur les machines à états 8 page 125. Nous traiterons deux problèmes :
• Étude et conception d’un contrôleur de bus simple.
• Prise en compte du problème de l’équité.
Remarque : Vous pouvez, si vous le souhaitez, réaliser et intégrer les contrôleurs étudiés lors de
ce TD sur des circuits logiques programmables dans les salles de TP du département (A406-7).
15.1
Qu’est-ce qu’un bus de communication ?
Lorsque, au sein d’un système complexe, plusieurs dispositifs électroniques doivent communiquer entre eux on peut imaginer de relier chaque élément à tous les autres. Cette situation, illustrée
par la figure 15.1, est probablement la première qui vient à l’esprit. C’est aussi la plus puissante
car elle permet un nombre très important de communications simultanées.
Fig. 15.1: Liaisons point à point
185
186CHAPITRE 15. TD - SYNTHÈSE ET UTILISATION DES MACHINES À ÉTATS SYNCHRONES
Malheureusement elle est aussi très coûteuse car le nombre de connexions nécessaires est très
important. Il suffit d’imaginer pour s’en convaincre que les arcs du schéma ci-dessus véhiculent
des informations codées sur 32 bits. En outre elle n’offre pas une grande flexibilité car il n’est pas
possible d’ajouter des éléments à notre réseau (le nombre d’entrées et de sorties de chaque élément
est fixé à la construction). Ce système n’est pas très plug and play. C’est dommage car le plug and
play est justement très à la mode. Une autre solution, plus raisonnable et aussi plus courante, est
le bus central comme illustré dans la figure 15.2
Fig. 15.2: Bus central
Les possibilités d’échanges sont limitées mais chaque élément peut tout de même communiquer
avec n’importe quel autre et le nombre de connexions est considérablement réduit. Il est en outre
théoriquement possible d’ajouter à l’infini de nouveaux éléments au système. La gestion d’une telle
organisation des communications nous servira de thème tout au long de ce TD.
15.2
Le contrôleur de bus simple.
Nous nous proposons de concevoir un contrôleur de bus de communication. Le système au
sein duquel notre contrôleur doit s’intégrer comporte un arbitre de bus et un nombre indéterminé
mais potentiellement très grand de points d’accès au bus. Chaque point d’accès est composé d’un
contrôleur et d’un client. La figure 15.3 page suivante représente le système de communication
complet :
L’arbitre est chargé de répartir la ressource de communication (le bus) entre les différents points
d’accès. En effet, le système n’admet pas que plusieurs points d’accès émettent simultanément des
informations sur le bus. Si cela se produisait il y aurait conflit et perte d’informations. La présence
d’un arbitre est donc nécessaire. C’est lui qui autorise successivement les points d’accès à écrire sur
le bus en leur attribuant un "jeton". Le point d’accès possesseur du jeton peut écrire sur le bus.
Les autres ne peuvent que lire. Lorsque le point d’accès a terminé sa transaction il rend le jeton à
l’arbitre qui peut alors l’attribuer à un autre point d’accès. L’absence de conflit est garantie par
l’unicité du jeton.
Les clients sont les utilisateurs du bus. Lorsqu’un client désire écrire sur le bus il en informe
son contrôleur associé et attend que celui-ci obtienne le jeton et lui donne le feu vert.
Les contrôleurs servent d’interface entre l’arbitre et leur client. C’est l’un de ces contrôleurs que
nous allons concevoir. Ses entrées - sorties sont décrites dans le schéma illustré en figure 15.4 page
ci-contre et la table 15.1 page 188. A l’exception de l’horloge et du signal de reset toutes les entrées
- sorties sont actives à ’1’.
15.2.1
Le graphe d’états.
1. Dessinez un chronogramme représentant une ou plusieurs transactions complètes entre un
contrôleur, son client et l’arbitre.
2. Le contrôleur est une machine à états de Moore. Imaginez et dessinez son graphe.
15.2. LE CONTRÔLEUR DE BUS SIMPLE.
187
Fig. 15.3: Système de communication
Fig. 15.4: Contrôleur de communication
3. Vérifiez la cohérence du graphe en appliquant les méthodes du chapitre 2 de la leçon 6.
4. Vérifiez que les spécifications du contrôleur sont respectées par votre graphe.
15.2.2
Une optimisation possible.
Les échanges entre l’arbitre et le contrôleur (signaux TOK et PSS) présentent l’inconvénient
de ralentir inutilement les opérations et donc de gaspiller des cycles d’utilisation du bus. En effet,
188CHAPITRE 15. TD - SYNTHÈSE ET UTILISATION DES MACHINES À ÉTATS SYNCHRONES
Nom
Direction
Description
CLK
Entrée
Horloge pour la synchronisation du contrôleur
RST
Entrée
Signal de reset asynchrone, actif à ’0’. Lorsque ce signal est à état
bas (’0’) le contrôleur est entièrement réinitialisé.
TOK
Entrée
Ce signal provient de l’arbitre et indique que le contrôleur peut
disposer du bus. Il signifie donc que l’arbitre offre le jeton au
contrôleur. Il n’est actif que pendant une période d’horloge. Si le
contrôleur n’a pas besoin du jeton il le rend (voir le signal PSS).
Sinon il le garde jusqu’à ce qu’il n’en ait plus l’utilité.
REQ
Entrée
Ce signal est émis par le client et indique que ce dernier demande
à disposer du bus. Le client maintient ce signal jusqu’à la fin de sa
transaction sur le bus. Il ne le relache que lorsqu’il n’a plus besoin
du bus.
ACK
Entrée
Ce signal provient du client et indique que le client a pris le bus et
commence sa transaction. Il n’est actif que pendant une période
d’horloge.
PSS
Sortie
Ce signal est destiné à l’arbitre et l’informe que le contrôleur rend
le bus, soit parce que l’arbitre le lui a proposé alors qu’il n’en a
pas besoin, soit parce que la transaction du client est terminée. Il
signifie donc que le contrôleur rend le jeton à l’arbitre qui pourra
ensuite en disposer et l’attribuer à un autre contrôleur, voire au
même. Il n’est actif que pendant une période d’horloge.
GNT
Sortie
Ce signal est destiné au client et l’informe qu’il peut disposer du
bus. Il est maintenu tant que le client n’a pas répondu (par le
signal ACK) qu’il a pris le bus.
Tab. 15.1: Spécification du contrôleur
un cycle est perdu lorsqu’un contrôleur se voit proposer le jeton alors qu’il n’en a pas l’usage. Le
chronogramme de la figure illustre 15.5 ce phénomène :
Fig. 15.5: Illustration de la perte d’un cycle
TOKA et TOKB sont les signaux TOK destinés à deux contrôleurs, A et B. PSSA est le signal
PSS émis par le contrôleur A et indiquant qu’il rend le jeton que l’arbitre vient de lui confier et
dont il n’a pas l’usage. On voit que l’arbitre, lui aussi synchrone sur front montant de CLK, ne
peut pas proposer immédiatement le jeton à un autre contrôleur.
Pour améliorer les performances du système nous voudrions obtenir le chronogramme illustré
en figure 15.6 page suivante :
1. Proposez des modifications du contrôleur permettant d’obtenir ce nouveau comportement.
15.3. LE PROBLÈME DE L’ÉQUITÉ.
189
Fig. 15.6: Chronogramme optimisé
2. Discutez leurs mérites respectifs.
3. Le contrôleur est-il toujours une machine à états ? Pourquoi ?
15.2.3
Réalisation.
1. Décrivez sous forme de schéma la structure du contrôleur optimisé. Vous ne détaillerez pas
les parties combinatoires.
2. Décrivez, sous forme fonctionnelle symbolique, le comportement des parties combinatoires.
Un exemple de description fonctionnelle symbolique est illustré en figure 15.7 :
Fig. 15.7: Description fonctionnelle symbolique
15.3
15.3.1
Le problème de l’équité.
Le contrôleur équitable.
Le contrôleur que nous venons de concevoir n’est pas entièrement satisfaisant car il n’est pas
équitable. En d’autres termes, il ne garantit pas qu’un client n’accaparera pas le bus au détriment
des autres. Il ne garantit même pas qu’un client, après avoir obtenu l’accès au bus, l’utilisera
effectivement puis le relâchera. Il est en effet possible qu’un client ne réponde jamais au signal
GNT de son contrôleur (ce qu’il est sensé faire à l’aide du signal ACK). Le système complet serait
alors bloqué par un "mauvais" client qui monopolise une ressource dont il n’a pas l’usage. Pour
remédier à cet inconvénient il faut à nouveau modifier le contrôleur.
1. Imaginez des solutions afin de rendre équitable le contrôleur optimisé du premier exercice.
2. Décrivez, sans entrer dans les détails, la structure de ce nouveau contrôleur. Vous séparerez les
registres et les parties combinatoires. Vous donnerez une description fonctionnelle symbolique
des parties combinatoires et vous expliciterez le comportement des registres.
190CHAPITRE 15. TD - SYNTHÈSE ET UTILISATION DES MACHINES À ÉTATS SYNCHRONES
15.3.2
L’arbitre équitable.
1. Pour obtenir que l’ensemble du système soit équitable, la modification du contrôleur seul ne
suffit pas. L’arbitre doit, lui aussi, adopter un comportement particulier. Pourquoi ? Donnez
un exemple de comportement non équitable possible de l’arbitre et ses conséquences.
2. Imaginez et décrivez des comportements possibles de l’arbitre équitable.
3. Comme précédemment, décrivez la structure de l’arbitre équitable.
Troisième partie
TP
191
Chapitre 16
TP - Combinatoire dans un CLP
Le texte de ce TP n’est pour l’instant disponible qu’en ligne à l’adresse suivante :
http ://www.comelec.enst.fr/~danger/eni/TP-combi
193
194
CHAPITRE 16. TP - COMBINATOIRE DANS UN CLP
Chapitre 17
TP - Caractérisation du transistor
MOS
17.1
Sommaire
• Objectifs du TP,
• Caractérisation d’un transistor NMOS,
– Transconductance : Ids = f (Vgs ),
– Extraction de Kn et de VT 0N ,
– Caractéristique de sortie : Ids = f (Vds ), pour différents V gs.
– Variation de la tension de seuil avec VBS : VT 0N = f (VBS .
– Régimes de fonctionnement du NMOS et du PMOS dans l’inverseur CMOS.
• Annexes et rappels
– Description de la maquette expérimentale,
– Utilisation sommaire de l’oscilloscope,
– Modèles du courant des transistors MOS,
– Modèles de la tension de seuil des transistors MOS.
17.2
Objectifs
Les objectifs de ce TP sont d’une part d’acquérir une première familiarisation avec les modèles
de comportement des transistors MOS et d’autre part de découvrir expérimentalement (par la
mesure) la caractérisation d’un modèle simple de transistor.
L’utilisation de la maquette (voir le schéma du tableau 17.6 page 198) et celle de l’oscilloscope
sont décrites en annexe.
17.3
17.3.1
Caractérisation d’un transistor NMOS
Transconductance : Ids = f (Vgs )
Il s’agit de vérifier expérimentalement la variation du courant Ids d’un transistor NMOS en
fonction de la tension Vgs lorsque le transistor est en régime saturé grâce au montage du tableau 17.1 page suivante.
Question 17.3.1 Montrer que le transistor passe alternativement du régime bloqué au régime
saturé. En déduire l’expression théorique de Ids fonction de Vgs , en négligeant l’effet de modulation
de longueur de canal (effet Early).
Question 17.3.2 Réaliser le montage du tableau 17.1 page suivante et faire apparaître sur l’oscilloscope en mode XY, la courbe Ve − Vds = R · Ids = f (Vgs ), à l’aide des voies A et B connectées
selon le schéma.
195
196
CHAPITRE 17. TP - CARACTÉRISATION DU TRANSISTOR MOS
• VSS = 0V : court-circuit entre
masse (gnd) et VSS
• V e : signal triangulaire
• Vmax = +10V
• T = 10ms
• MN 1 = N M OS
• R = 1kΩ
Tab. 17.1: Schéma du montage 1
Question 17.3.3 Extraire la valeur des paramètres Kn et VT 0N du transistor, à partir de deux
mesures, genre
q Ids1 = 1mA pour Vgs1 et Ids2 = 4mA pour Vgs2 . Nous obtenons :
• VT =
Ids2
Ids1
q
Vgs1 − Vgs2
Ids2
Ids1
p
Ids2
• Kn =
(Vgs2
17.3.2
−1
p
− Ids2 2
− Vgs1 )
soit : VT = 2Vgs1 − Vgs2
soit : Kn =
1mA
2
(Vgs2 −Vgs1 )
Caractéristique de sortie : Ids = f (Vds )
Il s’agit de vérifier expérimentalement le changement de forme de la courbe de variation du
courant Ids d’un transistor NMOS en fonction de la tension Vds lors du passage du régime saturé
au régime quadratique (linéaire). Ce relevé sera obtenu pour différente valeurs de Vgs . Nous constaterons ainsi que le modèle simple du courant saturé ne suffit pas à rendre compte de la forme de
la caractéristique dans cette zone.
• VSS = 0V : court-circuit entre
masse (gnd) et VSS
• VG = tension continue
• V e = signal triangulaire
• Vmax = +10V
• T = 10ms
• MN 1 = N M OS
• R = 1kΩ
Tab. 17.2: Schéma du montage 2
Question 17.3.4 Réaliser le montage du tableau 17.2 et faire apparaître sur l’oscilloscope de la
même manière que précédemment, la courbe Ve − Vds = R · Ids = f (Vds ).
Question 17.3.5 Expliquer la forme du lieu de l’extémité : Mext (Idsmax , Vdsmax ) de la courbe
lorsque Vgs varie.
Question 17.3.6 Tenter d’évaluer la pente de la courbe Ids = f (Vds ) dans la zone de saturation.
17.3.3
Variation de la tension de seuil : VT = f (Vbs )
Il s’agit de vérifier expérimentalement l’influence de la tension Vbs sur la valeur de la tension
de seuil VT d’un transistor NMOS. Attention il faut utiliser le transistor MN2 pour lequel Source
et Substrat ne sont pas court-circuités.
17.3. CARACTÉRISATION D’UN TRANSISTOR NMOS
197
• VSS = [−5V, 0V ] :
tension continue négative
• VG = [0V, +5V ] :
tension continue positive
• V e : signal triangulaire
• Vmax = +10V
• T = 10ms
• MN 2 = N M OS
• R = 1kΩ
Tab. 17.3: Schéma du montage 3
Question 17.3.7 En utilisant le montage du tableau 17.3, effectuer la mesure de l’intensité du
courant Ids dans les conditions spécifiées dans le tableau 17.4.
VG
VSS
@Vds
+4V
0V
+4V
+5V
−1, 3V
+4V
+6V
−3, 0V
+4V
Ids
Tab. 17.4: Conditions de mesures
Question 17.3.8 À l’aide des conditions de mesures, mais aussi de l’allure de la courbe Ids =
f (Vds ) aux points de mesure, vérifier que le transistor est en régime saturé. Comparer les valeurs
de VT extraites de ces mesures à celles du modèle graphique présenté en annexe, figure 17.3 page 201.
17.3.4
Étude des régimes de fonctionnement des transistors NMOS et
PMOS
La fonction de transfert d’un inverseur CMOS : Vs = f (Ve )
Fig. 17.1: Schéma de l’inverseur CMOS
L’inverseur est un circuit actif, alimenté entre VSS = 0V et VDD par une tension continue
positive. Il réalise la fonction amplification-inversion qui est une fonction élémentaire de l’électronique analogique (0V ≤ Ve ≤ VDD ) comme de l’électronique numérique (Ve = 0V = ”0” ou
Ve = VDD = ”1”).
198
CHAPITRE 17. TP - CARACTÉRISATION DU TRANSISTOR MOS
CMOS caractérise la technologie utilisée pour réaliser le circuit. Cette technologie permet de
construire dans un même cristal semi-conducteur, des transistors MOS de type N et des transistors
MOS de type P.
La fonction de transfert est la caractéristique Vs = f (Ve ) (graphe du tableau 17.5). La tension
notée Vbasc correspond à la valeur de la tension d’entrée Ve au moment du basculement de l’inverseur
d’un état statique à l’autre.
• VDD = +10V :
tension continue
• VSS = 0V : courtcircuit entre masse
(gnd) et VSS
• V e : signal triangulaire
• Vmax = +10V
• T = 10ms
Tab. 17.5: Schéma du montage 4 et graphe de la fonction de transfert
Question 17.3.9 Réaliser le montage du tableau 17.5 pour relever à l’oscilloscope, la caractéristique de transfert de l’inverseur.
Question 17.3.10 Expliquer sa forme et retrouver les équations des droites définissant les différentes zones de fonctionnement des 2 transistors.
17.4
17.4.1
Annexes
Maquette experimentale
Câblage de la maquette
Le TP utilise une maquette expérimentale (schéma du tableau 17.6) permettant d’accéder à 3
transistors NMOS et à 3 transistors PMOS organisés en deux rangées.
•
•
•
•
S : Source
G : Grille
D : Drain
B : Bulk (suBstrat)
•
Rangée du haut : PMOS
•
Rangée du bas : NMOS
Tab. 17.6: Disposition des transistors sur la maquette
Pour que les transistors NMOS et PMOS fonctionnent correctement il convient de respecter les
règles suivantes durant tout le TP :
17.4. ANNEXES
199
• Le substrat des transistors PMOS (connexion nommée Vdd ) doit toujours être à la tension
maximum (la plus positive) du montage,
• Le substrat des transistors NMOS (connexion nommée Vss ) doit toujours être à la tension
minimum (la plus négative) du montage.
Câblage des alimentations
1 tension continue
2 tensions continues
2 tensions symétriques
Tab. 17.7: Connexion des générateurs de tension continue
Câblage des éléments
Les Source, Grille et Drain de chacun des transistors sont
accessibles par des plots à l’exception des transistors NMOS
et PMOS de la colonne de gauche (MN1 et MP1) dont
les sources sont déja connectées à leurs substrats respectifs
(voir schéma du tableau 17.6 page précédente).
Il est possible de placer des composants passifs de type résistance ou capacité entre deux plots de connexion marqués d’un
symbole rectangulaire.
Il est possible d’injecter ou de prélever un signal par les
deux prises coaxiales (appelées aussi "BNC") situées sur les
cotés de la maquette. Rappelons que dans de telles prises
sont connectés à la fois le signal (ame du coaxial, c’est à dire
le fil central) et la masse (blindage du coaxial, connecté à
l’équipotentielle "gnd").
Tab. 17.8: Câblage des différents éléments
200
17.4.2
CHAPITRE 17. TP - CARACTÉRISATION DU TRANSISTOR MOS
Utilisation sommaire de l’oscilloscope
Pour la visualisation des signaux électriques, nous utiliserons un oscilloscope à 2 voies. Ces 2
voies, A et B, peuvent être affichées de différentes manières :
• A ou B séparément : touche "A/B",
• A et B simultanément : touche "A/B",
• la voie B peut être inversée : touche "ADD INVERT",
• A et B additionnées : touche "ADD INVERT",
• A et B soustraites (A − B uniquement) : touche "ADD INVERT".
En mode "normal" chacune de ces voies est visualisée en fonction du temps. Nous pouvons
utiliser le mode «X/Y» en utilisant la touche "X DEFL" et en sélectionnant la tension de deviation
horizontale par la touche "TRIG or X SOURCE".
17.4.3
Modèles statique et grand signal
La table 17.9 page ci-contre résume d’une part les conditions normales d’utilisation des transistors NMOS et PMOS et d’autre part les équations simplifiées du courant Ids entre le Drain et
la Source, en fonction de leur conditions de fonctionnement. Les symboles utilisés sont :
• VDD : tension continue positive d’alimentation
(circuit supposé être alimenté entre 0V et VDD ),
• VT 0N : tension de seuil du transistor NMOS : à Vbs = 0V , VT 0N > 0V ,
• VT 0P : tension de seuil du transistor PMOS : à Vbs = 0V , VT 0P < 0V ,
• k : facteur de transconductance :
0
0
,
et kp = µ0p · Cox
kn = µ0n · Cox
• K : coefficient de conduction :
k W
n
Kn = k2n W
et Kp = 2p Lpp ,
Ln
• λ : coefficient de modulation de longueur de canal (effet Early) :
λn = VEn1·Ln
et λp = VEp1·Lp
• VEG : tension effective de grille (pour le NMOS et pour le PMOS) :
VEG = VGS − VT ,
• VDSsat : tension de pincement ou de saturation (pour le NMOS et pour le PMOS) :
VDSsat = VGS − VT .
Fig. 17.2: Schéma du modèle statique et grand signal du transistor MOS
17.4.4
Modèles de la tension de seuil des transistors MOS
La valeur absolue de la tension de seuil VT augmente lorsque la valeur absolue de la tension Vbs
augmente. Le modèle comportemental de cette variation est : | VT |=| VT 0 | + | f (Vbs |). La courbe
de cette fonction sera le plus souvent fournie comme dans la figure 17.3 page ci-contre.
La valeur de VT 0 et celles des paramètres de la fonction f (Vbs ), sont propres à une technologie
de fabrication. Pour une même technologie, ces valeurs différent pour le NMOS et pour le PMOS.
17.4. ANNEXES
201
Équations du transistor NMOS
régime
bloqué
conditions
courant Ids
V gs ≤ VT n
Ids = 0
V ds → 0
V ds < V dssat
Ids = 2 Kn (V gs − VT n ) V ds
Ids = 2 Kn V gs − VT n − V 2ds V ds
V ds = V dssat
Idssat = Kn (V gs − VT n )
saturation
V ds > V dssat
Ids = Idssat 1 + λn (V ds − V dssat )
effet de substrat
V bsn < 0
VT n = VT 0n + f (V bsn ) (voir figure 17.3)
ohmique
quadratique
pincement
V gs > VT n
2
Équations du transistor PMOS
régime
bloqué
conditions
courant Ids
V gs ≥ VT p
Ids = 0
V ds → 0
V ds > V dssat
Ids = −2 Kp (V gs − VT p ) V ds
Ids = −2 Kp V gs − VT p − V 2ds V ds
V ds = V dssat
Idssat = −Kp (V gs − VT p )
saturation
V ds < V dssat
Ids = Idssat 1 − λp (V ds − V dssat )
effet de substrat
V bsp > 0
VT p = VT 0p − f (V bsp ) (voir figure 17.3)
ohmique
quadratique
pincement
V gs < VT p
2
Tab. 17.9: Équations des transistors MOS (voir schéma figure 17.2 page précédente)
Fig. 17.3: Variation de la tension de seuil
202
CHAPITRE 17. TP - CARACTÉRISATION DU TRANSISTOR MOS
Chapitre 18
TP - Caractérisation électrique de
portes
18.1
Sommaire
• Objectifs du TP
• Caractérisation de l’inverseur CMOS
– Fonction de transfert d’un inverseur : V s = f (V e),
– Extraction des capacités d’entrée et de sortie de l’inverseur,
– Détermination des temps de propagation de l’inverseur : tp0 et dtp.
• Annexes et rappels
– Description de la maquette expérimentale,
– Utilisation sommaire de l’oscilloscope,
– Modèles du courant des transistors MOS,
– Modèle du temps de propagation de l’inverseur CMOS.
18.2
Objectifs du TP
Les objectifs de ce TP sont d’une part d’acquérir une première familiarisation avec les modèles de
comportement des transistors MOS, et d’autre part de vérifier (ou de découvrir) expérimentalement
quelques résultats connus de la logique CMOS concernant ses caractéristiques en vitesse et en
consommation.
L’utilisation de la maquette (voir le schéma du tableau 18.3 page 206) et celle de l’oscilloscope
sont décrites en annexe.
18.3
18.3.1
Caractérisation d’un inverseur CMOS
Étude des régimes de fonctionnement des transistors NMOS et
PMOS : la fonction de transfert d’un inverseur CMOS
L’inverseur est un circuit actif, alimenté entre 0V et VDD par une tension continue positive. Il réalise la fonction amplification-inversion qui est une fonction élémentaire de l’électronique analogique (0V ≤ V e ≤ V DD) comme de l’électronique numérique (V e = 0V = ”0” ou
V e = V DD = ”1”).
“CMOS” caractérise la technologie utilisée pour réaliser le circuit. Cette technologie permet de
construire dans un même cristal semi-conducteur, des transistors MOS de type N et des transistors
MOS de type P.
La fonction de transfert est la caractéristique V s = f (V e). La tension notée Vbasc correspond
à la valeur de la tension d’entrée Ve au moment du basculement de l’inverseur d’un état statique
à l’autre.
203
204
CHAPITRE 18. TP - CARACTÉRISATION ÉLECTRIQUE DE PORTES
Fig. 18.1: l’inverseur CMOS
• VDD = +10V continu
• VSS = 0V : court-circuit
entre masse (GND) et VSS
• V e : signal triangulaire
• Vmax = +10V
• T = 10ms
Tab. 18.1: Schéma du montage 2
Question 18.3.1 Réaliser le montage 2 pour relever à l’oscilloscope, la caractéristique de transfert
de l’inverseur.
Question 18.3.2 Expliquer sa forme et retrouver les équations des droites définissant les différentes zones de fonctionnement des 2 transistors.
Question 18.3.3 Démontrer qu’au basculement (à V e = V basc) les deux transistors sont en
régime saturé.
Question 18.3.4 En tenant compte de la forme et de la fréquence du signal d’entrée, établir
l’équation littérale reliant V basc aux paramètres VDD , Kn, Kp, VT 0N et VT 0P .
Nous supposerons que la tension de seuil du transistor PMOS est VT 0P ≈ −1.1V , et nous
reprendrons les valeurs de Kn et de VT 0N caractérisées lors du TP sur le transistor MOS.
Question 18.3.5 En déduire la valeur de Kp.
Nous approximons le rapport des mobilités : µ0N /µ0P ≈ 3.
Question 18.3.6 Que penser de la géométrie (W/L) du PMOS par rapport à celle du NMOS ?
18.4
Extraction des capacités d’entrée et de sortie de l’inverseur
La détermination des capacités d’entrée et de sortie est effectuée de manière indirecte par la
mesure du courant dynamique. Compte tenu de la forme et de la fréquence du signal d’entrée, nous
18.5. DÉTERMINATION DES TEMPS DE PROPAGATION DE L’INVERSEUR
205
supposons que la consommation est uniquement due à l’énergie utilisée pour charger et décharger
la capacité totale (CT = CU + Cs ) présente sur le noeud de sortie. Nous rappellons que l’énergie
fournie par l’alimentation lors d’un cycle de charge et de décharge de cette capacité est égale à
2
CT · VDD
. Le relevé du courant dans l’inverseur sera réalisé par l’insertion d’une résistance de faible
valeur entre la source du transistor NMOS (MN2 ou MN3 sur la maquette) et la masse.
• VDD = +10V continu
• VSS = 0V : court-circuit entre
masse (GND) et VSS
• R = 51Ω
• Vmax = +10V
• Cu = 10nF avec T = 1ms
• Cu = 1nF avec T = 1ms
• Cu = 10nF avec T = 0.1ms
• Cu = 0nF avec T = 1µs
• Cu = 0nF avec T = 0.5µs
• Cu = Ceinv avec T =?
Tab. 18.2: Schéma du montage 3
Question 18.4.1 Calculer la valeur moyenne du courant dans la résitance R, en fonction de la fréquence f du signal d’entrée, de la capacité CT sur le noeud de sortie, et de la tension d’alimentation
VDD .
Effectuer le montage 3 : un seul inverseur chargé par une capacité CU .
Question 18.4.2 Dans les 3 premières configurations (CU et T ), relever à l’oscilloscope la forme
de la tension du point M, et justifier l’allure du signal observé. Mesurer la valeur moyenne de cette
tension (multimètre en position “V DC” ou “V=”).
L’inverseur est utilisé seul (aucune charge sur sa sortie : CU = 0F ).
Question 18.4.3 Mesurer à l’aide du multimètre la valeur moyenne de la tension au point M,
pour une fréquence du signal d’entrée de 1M Hz, puis de 2M Hz.
Question 18.4.4 Déduire de cette mesure la valeur du courant moyen. Comparer au modèle
théorique précédent et calculer la capacité de sortie de l’inverseur.
On connecte un deuxième inverseur en sortie du premier (CU = Ceinv ).
Question 18.4.5 Effectuer à nouveau la mesure du courant moyen et déduire de cette mesure la
valeur de la capacité d’entrée de l’inverseur.
18.5
Détermination des temps de propagation de l’inverseur
Pour déterminer le temps de propagation de l’inverseur, nous allons étudier un oscillateur en
anneau.
Un oscillateur en anneau est composé d’une chaîne d’inverseurs en nombre impair (supérieur à
un), fermée sur elle même. Nous nous limiterons à un anneau minimal constitué de trois inverseurs.
L’inverseur est supposé reproduire parfaitement l’état logique complémentaire après un temps
de propagation τ (supposé identique en montée et en descente). Nous proposons ci-dessous le
montage 4 et le début de chronograme des différents signaux.
Question 18.5.1 Donner la suite du chronogramme sur deux périodes de l’oscillateur.
Question 18.5.2 Déterminer la période de l’oscillateur en fonction du temps de propagation de
l’inverseur.
206
CHAPITRE 18. TP - CARACTÉRISATION ÉLECTRIQUE DE PORTES
Fig. 18.2: Montage 4 et chronogrammes
On désire vérifier pratiquement la fréquence d’oscillation.
Question 18.5.3 Est-il envisageable de réaliser simplement le montage, et de connecter directement l’oscilloscope sur une des sorties de l’anneau d’inverseurs ?
Question 18.5.4 Établir un circuit de mesure inspiré du montage 3, et permettant cette mesure
avec un minimum de perturbations.
Question 18.5.5 Effectuer la mesure et comparer à la valeur calculée. Justifier un éventuel écart
par rapport à la théorie.
18.6
18.6.1
Annexes
Maquette experimentale
Câblage de la maquette
Le TP utilise une maquette expérimentale (schéma du tableau 18.3) permettant d’accéder à 3
transistors NMOS et à 3 transistors PMOS organisés en deux rangées.
•
•
•
•
S : Source
G : Grille
D : Drain
B : Bulk (suBstrat)
•
Rangée du haut : PMOS
•
Rangée du bas : NMOS
Tab. 18.3: Disposition des transistors sur la maquette
Pour que les transistors NMOS et PMOS fonctionnent correctement il convient de respecter les
règles suivantes durant tout le TP :
18.6. ANNEXES
207
• Le substrat des transistors PMOS (connexion nommée Vdd ) doit toujours être à la tension
maximum (la plus positive) du montage,
• Le substrat des transistors NMOS (connexion nommée Vss ) doit toujours être à la tension
minimum (la plus négative) du montage.
Câblage des alimentations
1 tension continue
2 tensions continues
2 tensions symétriques
Tab. 18.4: Connexion des générateurs de tension continue
Câblage des éléments
Les Source, Grille et Drain de chacun des transistors sont
accessibles par des plots à l’exception des transistors NMOS
et PMOS de la colonne de gauche (MN1 et MP1) dont
les sources sont déja connectées à leurs substrats respectifs
(voir schéma du tableau 18.3 page précédente).
Il est possible de placer des composants passifs de type résistance ou capacité entre deux plots de connexion marqués d’un
symbole rectangulaire.
Il est possible d’injecter ou de prélever un signal par les
deux prises coaxiales (appelées aussi "BNC") situées sur les
cotés de la maquette. Rappelons que dans de telles prises
sont connectés à la fois le signal (ame du coaxial, c’est à dire
le fil central) et la masse (blindage du coaxial, connecté à
l’équipotentielle "gnd").
Tab. 18.5: Câblage des différents éléments
208
18.6.2
CHAPITRE 18. TP - CARACTÉRISATION ÉLECTRIQUE DE PORTES
Utilisation sommaire de l’oscilloscope
Pour la visualisation des signaux électriques, nous utiliserons un oscilloscope à 2 voies. Ces 2
voies, A et B, peuvent être affichées de différentes manières :
• A ou B séparément : touche "A/B",
• A et B simultanément : touche "A/B",
• la voie B peut être inversée : touche "ADD INVERT",
• A et B additionnées : touche "ADD INVERT",
• A et B soustraites (A − B uniquement) : touche "ADD INVERT".
En mode "normal" chacune de ces voies est visualisée en fonction du temps. Nous pouvons
utiliser le mode «X/Y» en utilisant la touche "X DEFL" et en sélectionnant la tension de deviation
horizontale par la touche "TRIG or X SOURCE".
18.6.3
Modèles statique et grand signal
La table 18.6 page ci-contre résume d’une part les conditions normales d’utilisation des transistors NMOS et PMOS et d’autre part les équations simplifiées du courant Ids entre le Drain et
la Source, en fonction de leur conditions de fonctionnement. Les symboles utilisés sont :
• VDD : tension continue positive d’alimentation
(circuit supposé être alimenté entre 0V et VDD ),
• VT 0N : tension de seuil du transistor NMOS : à Vbs = 0V , VT 0N > 0V ,
• VT 0P : tension de seuil du transistor PMOS : à Vbs = 0V , VT 0P < 0V ,
• k : facteur de transconductance :
0
0
kn = µ0n · Cox
et kp = µ0p · Cox
,
• K : coefficient de conduction :
k W
n
Kn = k2n W
et Kp = 2p Lpp ,
Ln
• λ : coefficient de modulation de longueur de canal (effet Early) :
et λp = VEp1·Lp
λn = VEn1·Ln
• VEG : tension effective de grille (pour le NMOS et pour le PMOS) :
VEG = VGS − VT ,
• VDSsat : tension de pincement ou de saturation (pour le NMOS et pour le PMOS) :
VDSsat = VGS − VT .
Fig. 18.3: Schéma du modèle statique et grand signal du transistor MOS
18.6.4
Rappels sur le modèle de temps de propagation de l’inverseur
CMOS
Le temps de propagation T p d’une porte logique est le temps écoulé entre un changement d’état
du signal d’entrée (Sm) et le changement d’état correspondant du signal de sortie (Sv).
Une définition du changement d’état d’un signal est son passage à mi-chemin entre la tension
v0 (tension de l’état statique "0") et la tension v1 (tension de l’état statique "1").
On peut être amené à distinguer le temps de propagation en montée T pm de celui en descente
T pd lorsque l’on s’intéresse aux transitions montantes ou descendentes de la sortie de la porte (voir
18.6. ANNEXES
209
Équations du transistor NMOS
régime
bloqué
conditions
courant Ids
V gs ≤ VT n
Ids = 0
ohmique
V ds → 0
quadratique
V ds < V dssat
Ids = 2 Kn (V gs − VT n ) V ds
Ids = 2 Kn V gs − VT n − V 2ds V ds
V ds = V dssat
Idssat = Kn (V gs − VT n )
saturation
V ds > V dssat
Ids = Idssat 1 + λn (V ds − V dssat )
effet de substrat
V bsn < 0
VT n = VT 0n + f (V bsn ) (voir figure ?? page ??)
pincement
V gs > VT n
2
Équations du transistor PMOS
régime
bloqué
conditions
courant Ids
V gs ≥ VT p
Ids = 0
V ds → 0
V ds > V dssat
Ids = −2 Kp (V gs − VT p ) V ds
Ids = −2 Kp V gs − VT p − V 2ds V ds
V ds = V dssat
Idssat = −Kp (V gs − VT p )
saturation
V ds < V dssat
Ids = Idssat 1 − λp (V ds − V dssat )
effet de substrat
V bsp > 0
VT p = VT 0p − f (V bsp ) (voir figure ?? page ??)
ohmique
quadratique
pincement
V gs < VT p
2
Tab. 18.6: Équations des transistors MOS (voir schéma figure 18.3 page précédente)
figure 18.4).
Fig. 18.4: Temps de propagation de l’inverseur MOS
Le temps de propagation de l’inverseur CMOS équilibré (dT pd = dT pm soit respectivement
RDS0N = RDS0P ) peut être modélisé par l’ équation linéaire suivante : T p = T p0 + dT p · Cu (voir
figure 18.5 page suivante).
• T p0 : temps de propagation intrinsèque de l’inverseur
• dT p : dépendance capacitive du temps de propagation (en s/F soit en Ohms)
• Cu : capacité de charge connectée en sortie de l’inverseur.
210
CHAPITRE 18. TP - CARACTÉRISATION ÉLECTRIQUE DE PORTES
Fig. 18.5: Modèle de l’inverseur MOS
Une valeur approximative du temps de propagation intrinsèque peut être obtenue en mesurant
la capacité de sortie de l’inverseur CS : T p0 = dT p · Cs
Enfin, une caractérisation complète de l’inverseur nécessite de mesurer la capacité d’entrée Ce.
Chapitre 19
TP - Modélisation et caractérisation
de transistors et d’opérateurs
logiques CMOS
19.1
Sommaire
• Objectifs du TP
• Caractérisation d’un transistor NMOS,
– Transconductance : Ids = f (Vgs ),
– Extraction de Kn et de VT 0N
• Caractérisation de l’inverseur CMOS
– Fonction de transfert d’un inverseur : V s = f (V e),
– Extraction des capacités d’entrée et de sortie de l’inverseur,
– Détermination des temps de propagation de l’inverseur : tp0 et dtp.
• Annexes et rappels
– Description de la maquette expérimentale,
– Utilisation sommaire de l’oscilloscope,
– Modèles du courant des transistors MOS,
– Modèle du temps de propagation de l’inverseur CMOS.
19.2
Objectifs du TP
Les objectifs de ce TP sont d’une part d’acquérir une première familiarisation avec les modèles de
comportement des transistors MOS, et d’autre part de vérifier (ou de découvrir) expérimentalement
quelques résultats connus de la logique CMOS concernant ses caractéristiques en vitesse et en
consommation.
L’utilisation de la maquette (voir le schéma du tableau 19.4 page 215) et celle de l’oscilloscope
sont décrites en annexe.
19.3
19.3.1
Caractérisation d’un transistor NMOS
Transconductance : Ids = f (Vgs )
Il s’agit de vérifier expérimentalement la variation du courant Ids d’un transistor NMOS en
fonction de la tension Vgs lorsque le transistor est en régime saturé grâce au montage du tableau 19.1 page suivante.
Question 19.3.1 Avant de réaliser le montage, montrer que le transistor passe alternativement
du régime bloqué au régime saturé. En déduire l’expression théorique de Ids fonction de Vgs , en
211
212CHAPITRE 19. TP - MODÉLISATION ET CARACTÉRISATION DE TRANSISTORS ET D’OPÉRATEURS LOGIQ
• VSS = 0V : court-circuit entre
masse (gnd) et VSS
• V e : signal triangulaire
• Vmax = +10V
• T = 10ms
• MN 1 = N M OS
• R = 1kΩ
Tab. 19.1: Schéma du montage 1
négligeant l’effet de modulation de longueur de canal (effet Early).
Question 19.3.2 Réaliser le montage du tableau 19.1 et faire apparaître sur l’oscilloscope en mode
XY, la courbe Ve − Vds = R · Ids = f (Vgs ), à l’aide des voies A et B connectées selon le schéma.
Question 19.3.3 Extraire la valeur des paramètres Kn et VT 0N du transistor, à partir de deux
mesures de IDS judicieusement choisies (par exemple Ids1 = 1mA pour Vgs1 et Ids2 = 4mA pour
Vgs2 ...). Nous
qobtenons :
• VT =
Ids2
Ids1
q
Vgs1 − Vgs2
Ids2
Ids1
p
Ids2
• Kn =
(Vgs2
19.4
19.4.1
−1
p
− Ids2 2
− Vgs1 )
soit : VT = 2Vgs1 − Vgs2
soit : Kn =
1mA
2
(Vgs2 −Vgs1 )
Caractérisation d’un inverseur CMOS
Étude des régimes de fonctionnement des transistors NMOS et
PMOS : la fonction de transfert d’un inverseur CMOS
L’inverseur est un circuit actif, alimenté entre 0V et VDD par une tension continue positive. Il réalise la fonction amplification-inversion qui est une fonction élémentaire de l’électronique analogique (0V ≤ V e ≤ V DD) comme de l’électronique numérique (V e = 0V = ”0” ou
V e = V DD = ”1”).
“CMOS” caractérise la technologie utilisée pour réaliser le circuit. Cette technologie permet de
construire dans un même cristal semi-conducteur, des transistors MOS de type N et des transistors
MOS de type P.
Fig. 19.1: l’inverseur CMOS
19.5. EXTRACTION DES CAPACITÉS D’ENTRÉE ET DE SORTIE DE L’INVERSEUR 213
La fonction de transfert est la caractéristique V s = f (V e). La tension notée Vbasc correspond
à la valeur de la tension d’entrée Ve au moment du basculement de l’inverseur d’un état statique
à l’autre.
• VDD = +10V continu
• VSS = 0V : court-circuit
entre masse (GND) et VSS
• V e : signal triangulaire
• Vmax = +10V
• T = 10ms
Tab. 19.2: Schéma du montage 2
Question 19.4.1 Réaliser le montage 2 pour relever à l’oscilloscope, la caractéristique de transfert
de l’inverseur.
Question 19.4.2 Expliquer sa forme et retrouver les équations des droites définissant les différentes zones de fonctionnement des 2 transistors.
Question 19.4.3 Démontrer qu’au basculement (à V e = V basc) les deux transistors sont en
régime saturé.
Question 19.4.4 En tenant compte de la forme et de la fréquence du signal d’entrée, établir
l’équation littérale reliant V basc aux paramètres VDD , Kn, Kp, VT 0N et VT 0P .
Question 19.4.5 Sachant que la tension de seuil du transistor PMOS est VT 0P ≈ −1.1V , en
déduire la valeur de Kp.
Nous approximons le rapport des mobilités : µ0N /µ0P ≈ 3.
Question 19.4.6 Que penser de la géométrie (W/L) du PMOS par rapport à celle du NMOS ?
19.5
Extraction des capacités d’entrée et de sortie de l’inverseur
La détermination des capacités d’entrée et de sortie est effectuée de manière indirecte par la
mesure du courant dynamique. Compte tenu de la forme et de la fréquence du signal d’entrée, nous
supposons que la consommation est uniquement due à l’énergie utilisée pour charger et décharger
la capacité totale (CT = CU + Cs ) présente sur le noeud de sortie. Nous rappellons que l’énergie
fournie par l’alimentation lors d’un cycle de charge et de décharge de cette capacité est égale à
2
CT · VDD
. Le relevé du courant dans l’inverseur sera réalisé par l’insertion d’une résistance de faible
valeur entre la source du transistor NMOS (MN2 ou MN3 sur la maquette) et la masse.
Question 19.5.1 Calculer la valeur moyenne du courant dans la résitance R, en fonction de la fréquence f du signal d’entrée, de la capacité CT sur le noeud de sortie, et de la tension d’alimentation
VDD .
Effectuer le montage 3 : un seul inverseur chargé par une capacité CU .
Question 19.5.2 Dans les 3 premières configurations (CU et T ), relever à l’oscilloscope la forme
de la tension du point M, et justifier l’allure du signal observé. Mesurer la valeur moyenne de cette
tension (multimètre en position “V DC” ou “V=”).
214CHAPITRE 19. TP - MODÉLISATION ET CARACTÉRISATION DE TRANSISTORS ET D’OPÉRATEURS LOGIQ
• VDD = +10V continu
• VSS = 0V : court-circuit entre
masse (GND) et VSS
• R = 51Ω
• Vmax = +10V
• Cu = 10nF avec T = 1ms
• Cu = 1nF avec T = 1ms
• Cu = 10nF avec T = 0.1ms
• Cu = 0nF avec T = 1µs
• Cu = 0nF avec T = 0.5µs
• Cu = Ceinv avec T =?
Tab. 19.3: Schéma du montage 3
L’inverseur est utilisé seul (aucune charge sur sa sortie : CU = 0F ).
Question 19.5.3 Mesurer à l’aide du multimètre la valeur moyenne de la tension au point M,
pour une fréquence du signal d’entrée de 1M Hz, puis de 2M Hz.
Question 19.5.4 Déduire de cette mesure la valeur du courant moyen. Comparer au modèle
théorique précédent et calculer la capacité de sortie de l’inverseur.
On connecte un deuxième inverseur en sortie du premier (CU = Ceinv ).
Question 19.5.5 Effectuer à nouveau la mesure du courant moyen et déduire de cette mesure la
valeur de la capacité d’entrée de l’inverseur.
19.6
Détermination des temps de propagation de l’inverseur
Pour déterminer le temps de propagation de l’inverseur, nous allons étudier un oscillateur en
anneau.
Un oscillateur en anneau est composé d’une chaîne d’inverseurs en nombre impair (supérieur à
un), fermée sur elle même. Nous nous limiterons à un anneau minimal constitué de trois inverseurs.
L’inverseur est supposé reproduire parfaitement l’état logique complémentaire après un temps
de propagation τ (supposé identique en montée et en descente). Nous proposons ci-dessous le
montage 4 et le début de chronograme des différents signaux.
Fig. 19.2: Montage 4 et chronogrammes
Question 19.6.1 Donner la suite du chronogramme sur deux périodes de l’oscillateur.
Question 19.6.2 Déterminer la période de l’oscillateur en fonction du temps de propagation de
l’inverseur.
19.7. ANNEXES
215
On désire vérifier en pratique la fréquence d’oscillation.
Question 19.6.3 Est-il envisageable de réaliser simplement le montage, et de connecter directement l’oscilloscope sur une des sorties de l’anneau d’inverseurs ?
Question 19.6.4 Établir un circuit de mesure inspiré du montage 3, et permettant cette mesure
avec un minimum de perturbations.
Question 19.6.5 Effectuer la mesure et comparer à la valeur calculée. Justifier un éventuel écart
par rapport à la théorie.
19.7
19.7.1
Annexes
Maquette experimentale
Câblage de la maquette
Le TP utilise une maquette expérimentale (schéma du tableau 19.4) permettant d’accéder à 3
transistors NMOS et à 3 transistors PMOS organisés en deux rangées.
•
•
•
•
S : Source
G : Grille
D : Drain
B : Bulk (suBstrat)
•
Rangée du haut : PMOS
•
Rangée du bas : NMOS
Tab. 19.4: Disposition des transistors sur la maquette
Pour que les transistors NMOS et PMOS fonctionnent correctement il convient de respecter les
règles suivantes durant tout le TP :
• Le substrat des transistors PMOS (connexion nommée Vdd ) doit toujours être à la tension
maximum (la plus positive) du montage,
• Le substrat des transistors NMOS (connexion nommée Vss ) doit toujours être à la tension
minimum (la plus négative) du montage.
Câblage des alimentations
Câblage des éléments
19.7.2
Utilisation sommaire de l’oscilloscope
Pour la visualisation des signaux électriques, nous utiliserons un oscilloscope à 2 voies. Ces 2
voies, A et B, peuvent être affichées de différentes manières :
• A ou B séparément : touche "A/B",
• A et B simultanément : touche "A/B",
• la voie B peut être inversée : touche "ADD INVERT",
• A et B additionnées : touche "ADD INVERT",
216CHAPITRE 19. TP - MODÉLISATION ET CARACTÉRISATION DE TRANSISTORS ET D’OPÉRATEURS LOGIQ
1 tension continue
2 tensions continues
2 tensions symétriques
Tab. 19.5: Connexion des générateurs de tension continue
Les Source, Grille et Drain de chacun des transistors sont
accessibles par des plots à l’exception des transistors NMOS
et PMOS de la colonne de gauche (MN1 et MP1) dont
les sources sont déja connectées à leurs substrats respectifs
(voir schéma du tableau 19.4 page précédente).
Il est possible de placer des composants passifs de type résistance ou capacité entre deux plots de connexion marqués d’un
symbole rectangulaire.
Il est possible d’injecter ou de prélever un signal par les
deux prises coaxiales (appelées aussi "BNC") situées sur les
cotés de la maquette. Rappelons que dans de telles prises
sont connectés à la fois le signal (ame du coaxial, c’est à dire
le fil central) et la masse (blindage du coaxial, connecté à
l’équipotentielle "gnd").
Tab. 19.6: Câblage des différents éléments
• A et B soustraites (A − B uniquement) : touche "ADD INVERT".
En mode "normal" chacune de ces voies est visualisée en fonction du temps. Nous pouvons
utiliser le mode «X/Y» en utilisant la touche "X DEFL" et en sélectionnant la tension de deviation
horizontale par la touche "TRIG or X SOURCE".
19.7.3
Modèles statique et grand signal
La table 19.7 page suivante résume d’une part les conditions normales d’utilisation des transistors NMOS et PMOS et d’autre part les équations simplifiées du courant Ids entre le Drain et la
Source, en fonction de leur conditions de fonctionnement. Les symboles utilisés sont :
• VDD : tension continue positive d’alimentation
(circuit supposé être alimenté entre 0V et VDD ),
19.7. ANNEXES
217
• VT 0N : tension de seuil du transistor NMOS : à Vbs = 0V , VT 0N > 0V ,
• VT 0P : tension de seuil du transistor PMOS : à Vbs = 0V , VT 0P < 0V ,
• k : facteur de transconductance :
0
0
kn = µ0n · Cox
et kp = µ0p · Cox
,
• K : coefficient de conduction :
k W
n
Kn = k2n W
et Kp = 2p Lpp ,
Ln
• λ : coefficient de modulation de longueur de canal (effet Early) :
et λp = VEp1·Lp
λn = VEn1·Ln
• VEG : tension effective de grille (pour le NMOS et pour le PMOS) :
VEG = VGS − VT ,
• VDSsat : tension de pincement ou de saturation (pour le NMOS et pour le PMOS) :
VDSsat = VGS − VT .
Équations du transistor NMOS
régime
conditions
courant Ids
V gs ≤ VT n
bloqué
Ids = 0
ohmique
V ds → 0
quadratique
V ds < V dssat
Ids = 2 Kn (V gs − VT n ) V ds
Ids = 2 Kn V gs − VT n − V 2ds V ds
V ds = V dssat
Idssat = Kn (V gs − VT n )
saturation
V ds > V dssat
Ids = Idssat 1 + λn (V ds − V dssat )
effet de substrat
V bsn < 0
VT n = VT 0n + f (V bsn ) (voir figure ?? page ??)
V gs > VT n
pincement
2
Équations du transistor PMOS
régime
conditions
courant Ids
V gs ≥ VT p
bloqué
Ids = 0
V ds → 0
V ds > V dssat
Ids = −2 Kp (V gs − VT p ) V ds
Ids = −2 Kp V gs − VT p − V 2ds V ds
V ds = V dssat
Idssat = −Kp (V gs − VT p )
saturation
V ds < V dssat
Ids = Idssat 1 − λp (V ds − V dssat )
effet de substrat
V bsp > 0
VT p = VT 0p − f (V bsp ) (voir figure ?? page ??)
ohmique
quadratique
V gs < VT p
pincement
2
Tab. 19.7: Équations des transistors MOS (voir schéma figure 19.3)
Fig. 19.3: Schéma du modèle statique et grand signal du transistor MOS
218CHAPITRE 19. TP - MODÉLISATION ET CARACTÉRISATION DE TRANSISTORS ET D’OPÉRATEURS LOGIQ
19.7.4
Rappels sur le modèle de temps de propagation de l’inverseur
CMOS
Le temps de propagation T p d’une porte logique est le temps écoulé entre un changement d’état
du signal d’entrée (Sm) et le changement d’état correspondant du signal de sortie (Sv).
Une définition du changement d’état d’un signal est son passage à mi-chemin entre la tension
v0 (tension de l’état statique "0") et la tension v1 (tension de l’état statique "1").
On peut être amené à distinguer le temps de propagation en montée T pm de celui en descente
T pd lorsque l’on s’intéresse aux transitions montantes ou descendentes de la sortie de la porte (voir
figure 19.4).
Fig. 19.4: Temps de propagation de l’inverseur MOS
Le temps de propagation de l’inverseur CMOS équilibré (dT pd = dT pm soit respectivement
RDS0N = RDS0P ) peut être modélisé par l’ équation linéaire suivante : T p = T p0 + dT p · Cu (voir
figure 19.5).
Fig. 19.5: Modèle de l’inverseur MOS
• T p0 : temps de propagation intrinsèque de l’inverseur
• dT p : dépendance capacitive du temps de propagation (en s/F soit en Ohms)
• Cu : capacité de charge connectée en sortie de l’inverseur.
Une valeur approximative du temps de propagation intrinsèque peut être obtenue en mesurant
la capacité de sortie de l’inverseur CS : T p0 = dT p · Cs
Enfin, une caractérisation complète de l’inverseur nécessite de mesurer la capacité d’entrée Ce.
Chapitre 20
TP - Machines à états dans un CLP
Le texte de ce TP n’est pour l’instant disponible qu’en ligne à l’adresse suivante :
http ://www.comelec.enst.fr/tpsp/tp/poly/clp_seq/
219
220
CHAPITRE 20. TP - MACHINES À ÉTATS DANS UN CLP
Chapitre 21
TP - Nanoprocesseur
Le texte de ce TP n’est pour l’instant disponible qu’en ligne à l’adresse suivante :
http ://www.comelec.enst.fr/tpsp/tp/poly/clp_nano_proc/
221
222
CHAPITRE 21. TP - NANOPROCESSEUR
Quatrième partie
Annexes
223
Chapitre 22
Rappels de physiques
22.1
22.1.1
Courant, conductivité, résistivité, résistance
Notion de courant
Un courant électrique dans un matériau est un déplacement de charges libres. Il nécessite
l’existence de :
• charges libres, c’est à dire non liées à la structure du matériau, donc libres de s’y déplacer,
• d’une force capable de les entraîner.
22.1.2
Définitions
La densité de courant (J, en A · m−2 ) est la quantité de charges traversant une section d’aire
unitaire dans un intervalle de temps unitaire.
L’intensité de courant (I, en A) est la quantité de charges traversant une section d’aire AS dans
un intervalle de temps unitaire : I = dQ
dt = AS J
La conductivité σ (en Ω−1 · m−1 , ou S · m−1 ) d’un matériau est égale à : σ = n · q · µ.
où :
• n est la densité (concentration par unité de volume, en m−3 ) des charges libres dans ce
matériau,
• µ, leur mobilité (en m−2 V −1 s−1 ) dans ce matériau,
• La charge de l’électron est qe− ≈ −0, 16aC, (a = 10−18 ),
• q est la charge unitaire (en C, Coulomb) : q = |qe− |.
La résistivité ρ (en Ω · m) est égale à : ρ = σ1
La résistance (en Ω) d’un tube de longueur L et dont l’aire de la section est AS , dans un
matériau de résistivité ρ est :
R = ρ ALS
22.2
Champ électrique et potentiel
Pour simplifier, il existe deux types de courant : le courant de diffusion et celui de conduction.
La force de diffusion est due à un gradient de concentration de charges. Elle entraîne les porteurs
libres vers les régions de moindre concentration, créant ainsi un courant de diffusion. C’est celle
qui est utilisée pour la modélisation du courant dans la jonction PN (voir plus loin) et dans celle
de l’effet bipolaire (voir la Leçon 4 page 59). Nous ne reviendrons par sur ce type de courant.
225
226
CHAPITRE 22. RAPPELS DE PHYSIQUES
−1
~ en N ) sur un
Le champ électrique (E = − dV
), engendre une force (F~ = q · E,
dx , en V · m
~ en m · s−1 ).
porteur libre de charge q, qui ainsi se déplace à la vitesse ~v (~v = µ · E,
Le courant de conduction ainsi créé, a une densité J, égale à : J = σ · E = n · q · µ · E.
Le travail fourni pour déplacer cette charge du point A au point B, contre l’effet de
R xce champ,
est égal au produit de la charge par la différence de potentiel (en V) : q · VBA = −q · xAB E dx.
Le champ électrique est orienté du plus fort potentiel vers le plus faible. De ce fait les électrons,
de charge négative, "remontent" ils le potentiel, mais le courant conventionnel est de même sens
que le champ électrique.
Ainsi nous pouvons modéliser un courant en connaissant :
• le matériau par :
– la mobilité de ses porteurs libres (µ),
– leur densité dans la région active (n),
• la charge unitaire de ces porteurs (q),
• l’action appliquée : ici le champ électrique (E).
22.3
Conducteur, isolant, semi-conducteur
Pour simplifier, seuls les électrons de la couche périphérique d’un atome, peuvent être soit :
• libres, c’est à dire non liés à un atome fixe. Ils sont appelés électrons de conduction car il
peuvent alors, participer à un courant de conduction tel que défini plus haut. Ces électrons ne
sont pas localisés, mais, macroscopiquement (à l’intérieur d’un volume suffisamment grand)
la neutralité électrique est conservée entre ions métalliques et électrons libres.
• liés à un atome fixe, et participer avec les électrons des atomes voisins, à la structure du
matériau. Ils sont appelés électrons de valence. Ils ne peuvent participer à aucun courant
dans les conditions normales.
Nous allons calculer la résistance d’un même tube de longueur L, et de section AS dans 4 types
de matériau :
• un conducteur, métallique,
• un semi-conducteur pur, le silicium,
• du silicium dopé N,
• du silicium dopé P.
22.3.1
Conducteur
Dans un matériau conducteur (métal), une grande partie des électrons périphériques est libre.
Mais, à la température normale (T = 300˚K, soit teta = 27˚C), l’agitation thermique et la
probabilité de collision des électrons mobiles avec des ions métalliques, sont telles que leur vitesse
sous l’action d’un champ électrique est faible. Pour cette raison et pour simplifier, nous considérons
que, à la température normale, chaque atome fournit 1 électron libre.
Supposons que le matériau utilisé soit un métal dont la densité atomique est Nm = 50 ·
10+27 m−3 , et dans lequel la mobilité des électrons et µ = 0, 15 · m−2 V −1 s−1 . La densité des
électrons libres est : nm = Nm .
Rappelons que la charge unitaire de l’électron est qe− = −0, 16 · aC = −0, 16 · 10−18 C. Pour
simplifier l’écriture nous notons qe = |qe− |.
Nous allons calculer la résistance d’un tube de longueur L = 10mm, de section AS = 1mm−2 .
La résistance du tube métallique est :
R=ρ
22.3.2
L
1 L
1
L
1
L
= ·
=
·
=
·
AS
σ AS
n · qµ AS
N · qe µ AS
Isolant
Dans un matériau isolant, l’oxyde de silicium (SiO2 ) par exemple, il faut une énergie importante
pour rendre un électron périphérique libre. Cette énergie Eg , est appelée le gap. Pour l’oxyde de
silicium Eg = 8, 8eV . Ainsi, à la température normale, aucun électron n’est libre. Aucun courant
22.3. CONDUCTEUR, ISOLANT, SEMI-CONDUCTEUR
Dimensions
L = 10mm
−2
AS = 1mm
Technologie
+27
Nm = 50 · 10
µ = 0, 15m
−2
V
227
Constante
Résistance
−3
·m
−1 −1
s
qe = 0, 16aC
R=
1
N ·qe µ
·
L
AS
≈ 8µΩ
Tab. 22.1: En résumé, pour un métal conducteur (T = 300˚K)
ne peut circuler au travers d’un isolant, si le potentiel appliqué n’est pas extrêmement fort, et ceci
au risque de le détruire. La résistance du tube d’isolant est infinie.
22.3.3
Semi-conducteur pur
Un matériau semi-conducteur, le silicium (Si) par exemple, appartient à la colonne IV de la
classification périodique des éléments. A l’état solide, il forme un cristal de structure tétraédrique :
chaque atome Si est relié à ses 4 plus proches voisins par l’intermédiaire des 4 électrons de sa
couche périphérique.
Le semi-conducteur est un isolant à la température du zéro absolu (0˚K).
Le gap du silicium est Eg = 1, 12eV , donc très faible par rapport à celui d’un isolant, mais
cependant non nul. À la température normale, l’énergie thermique fournie est telle qu’une partie
des électrons périphériques est libre. La densité d’électrons libres ainsi créés (à T = 300˚K) est :
ni = 15 · 10+15 m−3 . Cette densité est à comparer à la densité atomique du silicium cristallisé :
N = 50 · 10+27 m−3 . Chaque électron libre laisse un ion Si+.
La proportion ni /N est extrêmement faible. L’ion Si+ a de fortes chances de capter un des
électrons périphériques de ses 4 atomes voisins, pour redevenir un atome Si (Si+ + e− = Si,
c’est le phénomène de recombinaison). Ainsi un ion Si+ peut être considéré comme désolidarisé de
l’électron e− , qu’il a perdu.
L’ion Si+ est, comme l’ion e− , un porteur libre. L’ion Si+ est appelé trou (tr+ ). La densité
pi des trous et la même que celle, ni , des électrons. L’indice i, signifie que le silicium est pur
(intrinsèque).
Dans un semi-conducteur il existe donc deux types de courant : un courant d’électrons et un
courant de trous. Ce type de matériau est dit bipolaire. Du fait de leur processus de création
différents, électrons et trous ont des mobilités différentes, µn et µp . Notons enfin que la charge du
trou est égale à l’opposé de celle de l’électron : qtr+ = −qe− = qe .
En utilisant les mêmes dimensions qu’au paragrahe 22.3.1 page ci-contre, nous calculons la
résistance du tube de silicium pur :
R=
L
L
L
1
L
1
1
1
·
·
·
·
=
=
σSi AS
(σn + σp ) AS (ni · qe µn + pi · qtr µp ) AS
ni · qe (µn + µp ) AS
Les valeurs des paramètres de technologie, données dans le tableau 22.2 page suivante, sont
celles rencontrées typiquement pour une technologie CMOS Silicium 0, 5µm.
22.3.4
Semi-conducteur dopé N
Le dopage N consiste à substituer un certain nombre d’atomes de silicium par des d’atomes
donneurs, c’est à dire des atomes possédant 5 électrons sur leur couche périphérique. Ce type
d’atome (phosphore, arsenic et vieilles dentelles) appartient à la colonne V de la classification
périodique des éléments.
Quatre des cinq électrons périphériques des atomes donneurs participent aux liaisons covalentes
avec les 4 atomes de silicium voisins. Il suffit d’une énergie très faible (0,05 eV) pour que le 5me
électron se libère. Le dopant N est ainsi un donneur (D) d’électron libre. A température normale
tous les 5e électrons sont libérés, et la concentration en électrons libres nN du silicium dopé N est
pratiquement égale à la concentration du dopant ND .
La densité de dopage des substrats de technologie CMOS que nous allons utiliser dans la
suite du module, est ND = 70 · 10+21 m−3 , soit environ un atome donneur pour 700 000 atomes
de Si. Ceci est à comparer avec la concentration intrinsèque (dans le silicium pur) des porteurs
228
CHAPITRE 22. RAPPELS DE PHYSIQUES
Principe
Si + θ = Si+ + e− = tr+ + e−
Dimensions
Technologie
+27
L = 10mm
NSi = 50 · 10
Constante
m
+15
ni = pi = 15 · 10
AS = 1mm2
−3
µn = 0, 015 · m
µp = 0, 006 · m
−2
−2
m
qe = 0, 16aC
−3
V
−1 −1
V
−1 −1
Résistance
R=
1
L
·
ni · qe (µn + µp ) AS
s
s
Tab. 22.2: En résumé, pour le silicium intrinsèque (T = 300˚K, θ = 27˚C)
libres : ni = pi = 15 · 10+15 m−3 , et à la concentration d’atomes dans le mono-cristal de Silicium :
NSi = 50 · 10+27 m−3 .
La “Loi d’action de masse” dont la théorie ne sera pas développée ici, précise que dans un
semi-conducteur à l’équilibre, le produit des concentrations des porteurs libres positifs et négatifs
est constant quel que soit le dopage effectué : p · n = n2i . La concentration en trous pN du silicium
dopé N est donc très inférieure à la concentration intrinsèque ni :
nN ≈ ND = 70 · 10+21 ≫ pN ≈
n2i
= 3, 2 · 10+9
ND
Les électrons sont les porteurs majoritaires. Les trous sont les porteurs minoritaires.
Attention : les atomes dopant sont fixes (par leurs 4 liaisons de valence) dans la structure
cristalline. A température normale ils sont tous ionisés (ion D+ ) est sont des charges électrostatiques
fixes.
Calculons la résistance du tube de silicium dopé N :
R=
1
L
1
L
1
L
1
L
·
=
·
·
≈
·
σN AS
(σnN + σpN ) AS (nN · qe µn + pN · qtr µp ) AS
ND · qe µn AS
Les valeurs des paramètres de technologie, données dans le tableau 22.3 page ci-contre, sont
celles rencontrées typiquement pour une technologie CMOS Silicium 0, 5µm.
22.3.5
Semi-conducteur dopé P
Le dopage P consiste à substituer un certain nombre d’atomes de silicium par des atomes
accepteurs, c’est à dire des atomes possédant 3 électrons sur leur couche périphérique. Ce type
d’atome (bore, indium) appartient à la colonne III de la classification périodique des éléments.
Quatre places sont disponibles pour les liaisons covalentes de la maille élémentaire. Trois électrons périphériques des atomes accepteurs participent à ces liaisons. Il suffit d’une énergie très
faible pour que le 4e électron soit emprunté à un atome de silicium voisin, qui se trouve ainsi ionisé
Si+ , c’est à dire transformé en trou libre. Le dopant P est ainsi un accepteur (A) d’électron, un
fournisseur de trou libre. A température normale tous les atomes dopants accepteurs ont capté
22.4. INTRODUCTION AUX COMPOSANTS ACTIFS À SEMI-CONDUCTEUR
229
Principe
Équation
D + θ = D+ + e−
Concentration des majoritaires
et des minoritaires
θ = 300K ⇒ nN ≈ ND ≫ pN ≈
Dimensions
Technologie
L = 10mm
ND = 70 · 10+21 m−3
AS = 1mm2
µN = 0, 015 · m−2 V −1 s−1
Constante
qe = 0, 16aC
Résistance
1
L
R≈
·
≈ 60Ω
ND · qe µN AS
Tab. 22.3: En résumé, pour le silicium dopé N (T = 300˚K, θ = 27˚C)
leur 4e électron, et produit un trou. La concentration en trous libres pP du silicium dopé P est
pratiquement égale à la concentration du dopant NA .
Les ordres de grandeur des densités de dopage sont les mêmes que précédemment. La Loi
d’action de masse nous permet de calculer la concentration en électrons nP du silicium dopé P,
qui est donc très inférieure à la concentration intrinsèque ni :
pP ≈ NA = 70 · 10+21 ≫ nP ≈
n2i
= 3, 2 · 10+9
NA
Les électrons sont les porteurs minoritaires. Les trous sont les porteurs majoritaires.
Attention : les atomes dopant sont fixes (par leurs 4 liaisons de valence) dans la structure
cristalline. A température normale ils sont tous ionisés (ion A− ) est sont des charges électrostatiques
fixes.
Calculons la résistance du tube de silicium dopé P :
R=
1
L
1
L
1
L
1
L
·
=
·
·
≈
·
σP AS
(σnP + σpP ) AS (nP · qe µn + pP · qtr µp ) AS
NA · qe µn AS
Les valeurs des paramètres de technologie, données dans le tableau 22.4 page suivante, sont
celles rencontrées typiquement pour une technologie CMOS Silicium 0, 5µm.
22.4
Introduction aux composants actifs à semi-conducteur
Les matériaux que nous avons étudiés, nous permettent de créer des dipôles, de résistance fixe,
une fois choisie leur technologie et déterminées leurs dimensions. Si un potentiel est appliqué à leurs
bornes et qu’il ne produit pas un champ électrique trop élevé (environ 5M V · m−1 , soit 5V · µm−1 )
la loi d’Ohm, V = RI, peut s’appliquer et permettre de calculer le courant traversant le dipôle.
22.4.1
La jonction PN
Pour créer un composant actif une solution a été de "coller" deux zones semi-conductrices
dopées de manière opposée. Un tel dispositif est appelé une jonction PN, ou diode. L’anode (A)
correspond à la zone dopée P, la cathode (K) à la zone dopée N.
n2i
ND
230
CHAPITRE 22. RAPPELS DE PHYSIQUES
Principe
Équation
A + Si + θ = A− + Si+ = A− + tr+
Concentration des majoritaires
et des minoritaires
θ = 300K ⇒ pP ≈ NA ≫ nP ≈
Dimensions
Technologie
L = 10mm
NA = 70 · 10+21 m−3
AS = 1mm2
µP = 0, 006 · m−2 V −1 s−1
Constante
qe = 0, 16aC
n2i
NA
Résistance
1
L
R≈
·
≈ 150Ω
NA · qe µP AS
Tab. 22.4: En résumé, pour le silicium dopé P (T = 300˚K, θ = 27˚C)
Modèle de courant
Le modèle qui décrit le courant IJ dans la diode est le modèle de Shockley, fondé sur le calcul
de la somme des courants de diffusion des minoritaires de chaque zone dopée (voir ci dessous).
Les valeurs des paramètres de technologie, données dans le tableau 22.5, sont celles rencontrées
typiquement pour une technologie CMOS Silicium 0, 5µm.
Coupe technologique
Dimensions
Technologie
W,L
densité du courant de saturation inverse
AJ = W · L
JS = 5µA · m−2 = 5aA ·
µm−2
Symbole
Constante
Vth =
kT
qe
= 26mV
Modèle
IJ = AJ · JS (exp (VP N /Vth ) − 1)
à T=300˚K
Tab. 22.5: la jonction PN : modèle du courant (direct et inverse)
La jonction PN en direct
Lorsque la tension VP N , appliquée aux bornes de la diode, est positive, la diode est polarisée
en direct. Chacune des bornes du générateur VP N injecte des porteurs majoritaires dans une zone
dopée :
• la borne Positive de VP N injecte des trous dans la zone P de la jonction PN,
22.4. INTRODUCTION AUX COMPOSANTS ACTIFS À SEMI-CONDUCTEUR
231
• la borne Négative de VP N injecte des électrons dans la zone N de la jonction PN,
Le courant IJ qui la traverse croît de manière exponentielle avec VP N .
La jonction PN en inverse
Lorsque la tension VP N est négative la diode est polarisée en inverse. D’après le modèle de
Shockley, le courant IJ est extrêmement faible. En effet, pour VP N ≤ −4·Vth ≈ −100mV,
IJ ≈
−IS = −AJ · JS (pour les valeurs numériques : voir le tableau 22.5 page précédente).
En polarisation inverse, ce sont des porteurs minoritaires qui sont injectés par VP N dans chaque
zone dopée. Il se crée, autour de l’interface de ces deux zones (la jonction proprement dite) une
région dite déserte, où la densité de porteurs libres est pratiquement nulle. La zone déserte se
comporte quasiment comme un isolant. L’épaisseur de cette région est très faible et augmente
lorsque VP N devient plus négative.
De ce point de vue, la jonction se comporte comme un condensateur CJ , dont le diélectrique est
la zone de silicium désertée, et dont la capacité varie en fonction de sa polarisation. Cette propriété
est utilisée dans les diodes “Varicap” qui sont employées dans les Oscillateurs Commandés en
Tension (VCO).
Les valeurs des paramètres de technologie, données dans le tableau 22.6, sont celles rencontrées
typiquement pour une technologie CMOS Silicium 0, 5µm.
Coupe technologique
Schéma équivalent
Dimensions
Technologie
Modèle
AJ = W · L
JS = 5µAm−2 = 5aAµm−2
IJ ≈ −AJ · JS
capacité surfacique
W
de la jonction à VP N = 0V :
0 r
CJ = AJ · CJ0
1
1−
VP N
ψj
0
CJ0
= 0, 8 · mF · m−2 = 0, 8 · f F · µm−2
L
potentiel de jonction
ψj = 0, 6V
Tab. 22.6: la jonction PN en inverse (VP N ≤ 0V ) : modèle de courant et de capacité
232
CHAPITRE 22. RAPPELS DE PHYSIQUES
Dans le module ENI, nous ne rencontrerons pratiquement que des jonctions à polarisation
nulle ou inverse. Nous négligerons ainsi le courant inverse, et nous maximiserons la valeur du
condensateur équivalent en prenant la capacité surfacique à polarisation nulle (voir tableau 22.7).
Les valeurs des paramètres de technologie, données dans le tableau 22.7, sont celles rencontrées
typiquement pour une technologie CMOS Silicium 0, 5µm.
Coupe technologique
Schéma équivalent
Dimensions
Technologie
Modèle
AJ = W · L
0
= 0, 8f F · µm−2
CJ0
0
CJ = AJ · CJ0
Tab. 22.7: la jonction PN en inverse (VP N ≤ 0V )
22.5
Bibliographie
Pour en savoir plus...
• Physics of Semiconductors Devices, S. M. SZE (Wiley Interscience Publication, 1981).
• Principles of CMOS VLSI Design, Neil WESTE and Kanrar ESHRAGHIAN, (Addison Weslay Publishing, 1985).
• Dispositifs et Circuits Intégrés Semiconducteurs, André VAPAILLE and René CASTAGNÉ
(Éditions Dunod, 1987).
• Digital Integrated Circuits, a design perspective, Jan RABAEY (Prentice Hall International
Editions, 1996).
• MosFet modeling and Bsim3 user’s guide, Yuhua CHENG and Chenming HU (Kluwer Academic Publishers, 1999).
Index
Index
A
fonctionnement . . . . . . . . . . . . . . . . . . . . . . . . . 65
modèle capacitif . . . . . . . . . . . . . . . . . . . . . . . . 66
Additionneur. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .53
modèle du courant. . . . . . . . . . . . . . . . . . . . . .65
Dopage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62, 227
B
Drain . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66
Bascules . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114
D . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117
latch . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116
pipeline . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122
point mémoire . . . . . . . . . . . . . . . . . . . . . . . . . 114
registre à décalage . . . . . . . . . . . . . . . . . . . . . 119
RS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115
Setup, Hold . . . . . . . . . . . . . . . . . . . . . . . . . . . 118
Binaire
opérateur . . . . . . . . . . . . . . . . . . . . . . . . . . . 26, 29
E
effet
Early . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75
F
Flip flop . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117
Fonction logique . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
Fonctions arithmétiques . . . . . . . . . . . . . . . . . . . . . 53
Forme
C
algébrique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
canonique conjonctive . . . . . . . . . . . . . . . . . . 38
CA2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
canonique disjonctive . . . . . . . . . . . . . . . . . . . 37
Chemin critique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93
conjonctive . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
CMOS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69, 86
disjonctive. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .36
consommation . . . . . . . . . . . . . . . . . . . . . . . . . 106
Codage
G
BCD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
Gray . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52 Graphe d’état . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 126
p parmi n . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
parité . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53 I
simple de position . . . . . . . . . . . . . . . . . . . . . . 49
Codage binaire . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26 Interrupteur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83
Comparateur. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .44 Isolant . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 226
Complémentarité. . . . . . . . . . . . . . . . . . . . . . . . . . . .86
J
Composants MOS . . . . . . . . . . . . . . . . . . . . . . . . . . . 66
Compteur. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .120 Jonction PN . . . . . . . . . . . . . . . . . . . . . . . . . . . 65, 229
Conducteur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 226
Conduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62 K
Consommation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106
circuit CMOS . . . . . . . . . . . . . . . . . . . . . . . . . 107 Karnaugh . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
construction du tableau . . . . . . . . . . . . . . . . 40
porte CMOS . . . . . . . . . . . . . . . . . . . . . . . . . . 106
fonctions non complètement définies . . . . 42
Conversions entre bases . . . . . . . . . . . . . . . . . . . . . 50
simplification . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
Courant . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61, 225
D
L
Diffusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61 Latch . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116
Dimensionnement . . . . . . . . . . . . . . . . . . . . . . . . . . 105 Logique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86
Diode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65, 229
CMOS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86
233
234
INDEX
fonction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35 Schéma . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
fonctions, représentation . . . . . . . . . . . . . . . . 36 Semi
représentation schématique . . . . . . . . . . . . . 43
conducteur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
Logique séquentielle . . . . . . . . . . . . . . . . . . . . . . . . 111 Semi-conducteur . . . . . . . . . . . . . . . . . . . . . . . . . . . 227
construction . . . . . . . . . . . . . . . . . . . . . . . . . . . 112
dopé N . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 227
principe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111
dopé P . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 228
Signal
M
électrique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
binaire . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
Machines à états . . . . . . . . . . . . . . . . . . . . . . . . . . . 125
dynamique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
état futur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131
numérique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
codage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 133
Source . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66
adjacent . . . . . . . . . . . . . . . . . . . . . . . . . . . . 135
Soustracteur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
aléatoire . . . . . . . . . . . . . . . . . . . . . . . . . . . . 135
Système numérique . . . . . . . . . . . . . . . . . . . . . . . . . 21
one hot . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 135
graphe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 126 T
registre d’état . . . . . . . . . . . . . . . . . . . . . . . . . 131
sorties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132 Table de vérité . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
Multiplexeur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44 Temps de propagation . . . . . . . . . . . . . . . . . . . . . . 93
Transistor MOS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68
O
CMOS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69
dimensionnement . . . . . . . . . . . . . . . . . . . . . . 105
Opérateur binaire . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
fonctionnement . . . . . . . . . . . . . . . . . . . . . . . . . 68
P
modélisation des capacités . . . . . . . . . . . . . . 78
modèle électrique . . . . . . . . . . . . . . . . . . . . . . . 70
Pincement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75
modèle en interrupteur . . . . . . . . . . . . . . . . . 83
Pipeline . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122
NMOS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68
Polarisation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
PMOS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69
Portes logiques
résumé . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76
additionneur . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
source, drain . . . . . . . . . . . . . . . . . . . . . . . . . . . 66
comparateurs . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
complexes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88 V
ET . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
multiplexeur . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44 Vitesse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93
NON . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
NON-ET . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43 Z
NON-OU . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
OU . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43 Zone déserte . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 231
OUEX . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
soustracteur . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
Propagation, temps de
inverseur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100
modèle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102
R
Régime
quadratique . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73
Registre à décalage . . . . . . . . . . . . . . . . . . . . . . . . 119
Représentation
complément à 2 . . . . . . . . . . . . . . . . . . . . . . . . 51
des nombres . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
signe et valeur absolue . . . . . . . . . . . . . . . . . . 51
Représentation des nombres . . . . . . . . . . . . . . . . . 49
S
Saturation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75
Téléchargement