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