logique cmos complémentaire exemples
Transcription
logique cmos complémentaire exemples
ES102 1 ! Couches logicielles Combinatoire Architecture LOGIQUE CMOS COMPLÉMENTAIRE Micro-architecture Logique/Arithmétique Circuit logique Circuit analogique Dispositif ES102 / CM4a Physique ES102/CM4 10 EXEMPLES transistors porte complexe NOR2AND2 bloc p a c a b NOR2 b (a+b)' a MUX(s, bloc p a a, b) 6 s b Logique complémentaire : s a b c b s c a b transistors bloc n 2 (c+a·b)' a c b • entrées (complémentées ou pas) sur grilles de transistor uniquement • sortie mise à 0 par connexion à la masse via un bloc (de transistors) n • sortie mise à 1 par connexion à l’alimentation via un bloc (de transistors) p bloc n ES102/CM4 3 MOTIVATIONS • Pourquoi chercher à implanter des fonctions booléennes directement en transistors, plutôt qu’avec quelques portes de base ? • Pour gagner : – en compacité : • moins de transistors et de connexions au total – en rapidité (sur les constantes RC, avec R non-linéaire) : • capacités et résistances globalement amoindries – par le gain en compacité • en faisant attention aux résistances : – qui se cumulent dans les séries de transistors séparant sortie et masse/alimentation … – qui sont nativement plus fortes côté p car inversement proportionnelles à la mobilité µp (rappel : µp " 1/3 µn) ES102/CM4 4 PORTE NAND2 : COMPORTEMENT RC • • NAND2 : porte NAND à 2 entrées La porte NAND2 commute en sortie si une entrée commute, l’autre valant 1 Rp a b ! 1 pMOS contre 2 nMOS en série • (ab)’ La résistance : – entre sortie et alimentation est Rp – entre sortie et masse est 2Rn ~ • Mais R " 1/µ ! Rp " 3Rn ! NAND2 naturellement assez équilibrée : impose un 1 presque aussi vite qu’un 0 sur sa sortie avec des transistors n et p de mêmes dimensions • NOR2 en revanche déséquilibrée d’un facteur " 6 # pour l’équilibrer, il faut fortement élargir les 2 pMOS (canaux p plus larges) ! encombrement et capacité d’entrée accrus :-( Plus de précisions en PC9 «#analogique#» a Rn b Rn C dont capacité d’entrée des portes suivantes a b (ab)’ (a+b)’ NAND NOR chronogramme t ES102/CM4 5 PROBLÉMATIQUE Analyse : quelle fonction réalise une porte donnée ? x’ bloc p : réalise les 1 de la fonction z … y f(x, y, z, ···) f(x, y, z, …) Synthèse : comment implanter une fonction f donnée ? En optimisant vitesse et compacité … x y … z’ bloc n : réalise les 0 de la fonction ES102/CM4 6 FORMULES STRUCTURELLES $ … • • • Blocs (n ou p) # graphes à arêtes valuées par des littéraux But : les décrire par des formules (ignorant le type de transistor) : · % mise en série + % mise en // ( ) % groupement Exemples de formules structurelles, $n pour bloc n, $p pour bloc p : 1 transistor ! 1 arête ! 1 littéral a b’ c a a b’ c $n=(a+b’)·c Même structure et mêmes commandes ! même formule (le type de transistor n’importe pas) b’ c $p=(a+b’)·c ! code $ littéral : variable, complémentée ou pas a b’ c c $p= ac+b’c Formules différentes, mais fonction identique ! structures différentes, mais fonctionnellement équivalentes (si même type de transistor) ES102/CM4 7 … ET ÉTATS PASSANTS • L’état passant d’un bloc n, resp. p, est la condition logique sous laquelle ce bloc connecte la sortie à la masse, resp. l’alimentation – il s’agit d’une fonction booléenne • Formules structurelles $ et états passants (EP) sont liés. Interprétant les $ comme des fonctions booléennes, on a : – EPn = $n – EPp = $p/ où / désigne la complémentation de ce qui est à sa droite, ici celle de chaque variable de $p songer à / comme à une barre de complémentation inclinée a b’ $ = (a+b’)·c p c EPp = (a’+b)·c’ Lois de De Morgan exprimées avec cette notation : /· = +/ et /+ = ·/ EPp = $p/ ES102/CM4 8 ANALYSE : $ # f bloc p #1 x $p ··· y état passant : $p / variables complémentées ! un bloc p de formule struct. $p est passant ssi $p/ = 1 car un pMOS est passant si sa grille est à 0 sortie x bloc n #0 ··· y valeur complémentée état passant : $n $n f = $p / ! /f = $n ! Un bloc n de formule struct. $n est passant ssi $n=1 f = /$n Le bloc n fournit les 0 de f, c’est-à-dire /f ES102/CM4 9 SYNTHÈSE : f # $ • Réciproquement à l’analyse : $p = f/ et $n = /f (=f ) – mais égalités purement fonctionnelles – quelles formules choisir pour $p et $n ? • Souhaits : littéral : variable, complémentée ou pas, apparaissant dans une formule a’b+ab’ contient 4 littéraux – compacité : nombre minimal de transistors % nombre minimal de littéraux # forme minimale – vitesse : nombre minimal de transistors en série ! formule avec petits produits # forme disjonctive minimale (FDM) – ainsi, les formules $n et $p sont idéalement des FDM de leur fonction : $p = FDM(f/) = FDM(f)/ «#/ sur les variables#» commute avec la FDM car simple symétrie centrale dans table de vérité $n = FDM(/f) décrire les 1 de f … décrire les 0 de f … … sous la forme $% la plus compacte ES102/CM4 10 EXEMPLE DE SYNTHÈSE 4 littéraux % 4 transistors $p = a’c+bc 4 FDM(f) = ac’+b’c’ 3 f 1 0 1 $p = FDM(f)/ 2 a 5 1 1 a’ b c c f = ac’+ a’b’c’ c 0 0 0 f 0 a’ 6 b c $n = FDM(/f) 7 8 FDM(/f) = a’b+c 9 $n = a’b+c b 10 3 littéraux % 3 transistors ES102/CM4 11 Factoriser 2 termes d’une $% fournit en général une $%$%, qui dégénère ici en %$ bi-niveau (la FCM en fait). AU-DELÀ DE LA FDM… $p = FDM(f)/ = a’c+bc a’ b c c f a’ c b multi-niveau a’ factorisation b c $p = (a’+b)c f a’ dualité… ? c b $n = FDM(/f) = a’b+c Dualité : $p et $n échangent · et + % blocs p et n échangent structures série et parallèle. Une telle propriété de dualité n’est en fait observée que pour des portes assez simples # PC4. ES102/CM4 12 NON DÉCROISSANCE ET JEU DE BULLES MOS nativement inverseur ! toute porte en logique complémentaire réalise une fonction décroissante par rapport à ses entrées (celles appliquées sur les grilles de ses transistors) q d q d’ u ? sdb u sdb q d u sdb Pour implantation, une fonction booléenne non décroissante doit préalablement être décomposée en sous-fonctions décroissantes Solution systématique un peu luxueuse : disposer à la fois de chaque entrée et de son complément # coût : un inverseur par entrée ES102/CM4 13 LOGIQUE CMOS : LIMITE EN NOMBRE D’ENTRÉES Longues séries de transistors ! délais excessifs, en O(n2) x1 · · · X x1 · · · xn xn Excessif typiquement pour n & 5 Mieux vaut alors fragmenter la porte par une approche dichotomique, tel que montré ci-dessous pour une ANDn NANDn X n si n est trop grand Xmsb n/2 Xlsb n/2 ES102 14 Couches logicielles Combinatoire Architecture Micro-architecture Logique/Arithmétique Circuit logique FDM : FORMALISATION & ALGORITHMIE Circuit analogique Dispositif Physique ES102 / CM4b ES102/CM4 15 z y f DE LA FND À LA FDM x FND : somme de mintermes (forme normale disjonctive) f = xy’z’ + x’y’z + xy’z + x’yz + xyz point (x’+x)y’z f = xy’z’ + y’z + yz (y’+y)z f = xy’z’ + z face (arrière) f = xy’ + z (x’+x)yz Dans les formes $% ci-contre, chaque terme est un produit de littéraux, dit «#impliquant de f#» et son support est un sous-cube du 3-cube (point, arête, face) FDM (forme disjonctive minimale) : forme $% à nombre minimal de littéraux ex. : yz ! z arête ES102/CM4 16 SOUS-CUBES DE Bn • Généralisation en dimension n des sous-ensembles du type sommets, arêtes et faces arête sommet face du 3-cube B3 0-sous-cube 2-sous-cube 1-sous-cube y z x variables fixes/libres fonction indicatrice ––– 1 –0– y’ 0–1 x’z 110 xyz’ • Un sous-cube de Bn a pour indicatrice un produit de m littéraux – mettant en jeu m variables distinctes (parmi les n décrivant Bn) aux valeurs fixées sur le sous-cube considéré complément à la dimension – les n-m autres variables sont libres : • (n-m) constitue la dimension du sous-cube et m sa codimension • on dit que c’est un (n-m)-sous-cube " sous-espace affine de dimension (n-m) – & 3n sous-cubes dans Bn : {0, 1, –}n chaque variable peut être fixée (à 0 ou 1) ou libre de l’espace ES102/CM4 17 MINIMISATION : ALGÈGRE ! GÉOMÉTRIE ' produit de littéraux ! ' sous-cube couvrir ! nombre de littéraux dans ' = codimension de ' partitionner : ' impliquant de f ! ' ( f support +2à2! ø expression $%, alias FD ! ) de sous-cubes f = $% ! f = ) de sous-cubes % { sous-cubes } «#couvre#» f • • • • • égale au • «#minimiser#» f ! couvrir f avec un ensemble nombre de transistors de sous-cubes à somme le nb de littéraux nécessaires dans la FD de des codimensions minimale • ' impliquant premier de f ! ' sous-cube maximal dans f ssi ssi il n’existe pas '"! ' il n’existe pas d’autre sous-cube * tel que ' !'"!f tel que ' ( * ( f • Th. : la FDM de f ne comporte ! Minimiser f ! couvrir f que des impliquants premiers de f avec des sous-cubes maximaux • se démontre par l’absurde • mais tous ne sont pas nécessaires… ES102/CM4 18 REPRÉSENTATION 2-D DU n-CUBE • Préserver la topologie du n-cube et y voir les sous-cubes facilement • pour pouvoir identifier les sous-cubes maximaux – dissection du 3-cube : a b c a c=1 c Maj(a, b, c) 0 0 1 0 0 1 1 1 a=1 b=1 trois 1-sous-cubes maximaux bien visibles # tables de Karnaugh fonctionnelles du CM1 ! • couple (a, b) suivant le code de Gray 2 • rebouclage par les bords (périodique 1D) b – dissection simple aussi pour n=4 # tableau 4,4 torique (périodique 2D) – mais topologie forcément rompue si n&3 variables sur une dimension : • car 12 (nb d’arêtes du 3-cube) > 8 (frontières entre cases de table 1-D) – moindre mal : Gray 3 (a, b, c) (0, 0, 0) (0, 0, 1) (0, 1, 1) c a b (0, 1, 0) (1, 1, 0) (1, 1, 1) (1, 0, 1) c (1, 0, 0) ES102/CM4 19 MÉTHODE GRAPHIQUE DE KARNAUGH • • • Sur table de Karnaugh, sous-cubes = zones rectangulaires dont largeur et hauteur sont des puissances de 2 La méthode de Karnaugh, graphique, consiste à couvrir à la main les 1 de la fonction, par un jeu minimal de sous-cubes maximaux Un sous-cube maximal est dit «#essentiel#» s’il est seul à couvrir certain(s) 1 de la fonction. Son impliquant premier associé est également dit essentiel et il est forcément dans la FDM. un 2-sous-cube maximal deux 1-sous-cubes non maximaux x’z’ w impliquants premiers tous essentiels ici sauf wz’, qui s’avère inutile w 1 0 0 1 0 0 0 0 y 0 0 0 0 1 0 0 1 z y x 1 1 1 1 0 1 0 0 0 0 1 1 0 0 1 1 z x y’z’ + wz’ + w’xy’ +wy = y’(z’+w’x) + wy Factorisation post-FDM possible si 2 sous-cubes maximaux sont dans un même sous-cube de Bn ES102/CM4 MÉTHODE ALGÉBRIQUE DE QUINE-McCLUSKEY • Comment déterminer les impliquants premiers de f sur ordinateur ? – par construction progressive • équivalente à celle des sous-cubes associés (arêtes, puis faces, puis hyperfaces…) – mécanisme : union d’impliquants qui sont jumeaux à une variable près, complémentée dans l’un et pas dans l’autre 'x’+'x = ' , où ' produit de k variables hors x % union de deux (n-k-1)-sous-cubes voisins en un (n-k)-sous-cube • Algorithme de Quine : – former une population initiale constituée de tous les termes de la FND (ce sont des mintermes) – réaliser toute union possible • chaque minterme peut participer à plusieurs unions – recommencer avec leurs descendants, et ainsi de suite • jusqu’à épuisement des possibilités – les individus, initiaux ou descendants, n’ayant pu participer à aucune union sont les impliquants premiers (IPs) de f 20 ES102/CM4 nombre de variables complémentées 4 3 0 1 w’x’y’z’ wx’y’z’ w’xy’z’ wx’yz’ 2 wxy’z’ w’xy’z 1 21 dimension des sous-cubes entrant successivement dans la population wx’yz wxyz’ 2 3 x’y’z’ w’y’z’ y’z’ — wx’z’ xy’z’ wy’z’ w’xy’ wz’ wx’y wyz’ wxz’ wy QUINE : EXEMPLE w — 1 1 1 1 0 1 0 0 0 0 1 1 z y 0 0 1 1 x IPs = { y’z’ , wz’, w’xy’, wy } non essentiel wyz wxy Un minterme (0-sous-cube) qui engendre un seul impliquant premier (sous-cube maximal) le rend essentiel 0 wxyz Méthode de Quine facile à programmer, mais jusqu’à 3n impliquants à manipuler : explosion combinatoire ! ES102/CM4 y QUELS IMPLIQUANTS PREMIERS RETENIR POUR LA FDM ? z x Impliquants premiers (parfois >3n/n) xz+x’y+y’z’ x’y xyz 01- x’z’+xy’+yz 1 de la fonction (jusqu’à y 1 1 0 1 0 1 1 1 x situation catastrophique : aucun sous-cube maximal n’est essentiel ! 2n) x’z’ xy’ 0-0 10- 010 , 011 , y’z’ yz -00 -11 , , , 100 , 101 , 111 xz 1-1 , 000 La FDM n’est pas unique ! z 22 , , , , Quel jeu minimal de colonnes sélectionner pour couvrir toutes les lignes ? Problème algorithmique classique (Sudoku) difficile, dit de «#couverture exacte#» Hors programme ES102 ES102/CM4 23 ASPECTS ANNEXES DE LA MINIMISATION • abordés en PC4 dans le cadre de la commande d’un afficheur de chiffres décimaux à 7 segments h • fonction booléenne incomplètement spécifiée : – on profite des cas indifférents pour compacter la FDM – exemple : sgb = q’u’+du’ (sgb : segment gauche bas) u d • fonctions booléennes multiples : q – opportunité de mise en commun de sous-cubes – structure PLA : Programmable Logic Array ES102/CM4 24 SYNTHÈSE LOGIQUE : HISTORIQUE • années 50 : Karnaugh, Quine, McCluskey – fournit une/la FDM, mais ne passera pas à l’échelle – connaissances fondamentales néanmoins grands noms de la CAO industrielle : • années 70 : théorie de la NP-complétude catégorisation de problèmes algorithmiques difficiles • années 80 : renoncement à la minimalité – Espresso de IBM & Berkeley University – FD quasi-M par approche heuristique en temps très réduit • années 90 : accélération par utilisation des BDD # O. Coudert, Doing two-level minimization 100 times faster, 01/1995 • parallèlement (>80), minimisation multiniveau (~ hors ES102) – factorisation et décomposition de fonctions booléennes • plus récemment, préoccupations système : – face à la complexité des réalisations actuelles (design gap) # synthèse comportementale, synthèse architecturale, system level design (SLD)