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)

Documents pareils