Title: Factorisation des fonctions logiques
1Factorisation des fonctions logiques
Factorisation des fonctions logiques
Polytech' Montpellier Université Montpellier
II Place Eugène Bataillon, 34095 Montpellier
cedex 05, FRANCE
Laboratoire d'Informatique, de Robotique et de
Microélectronique de Montpellier UMR 9928
Université Montpellier II / CNRS 161 rue Ada,
34392 Montpellier cedex 05, FRANCE
2Effet de la factorisation
F a.c a.d b.c b.d Factorisation gt
F (a b) . (c d)
3Produit algébrique
Soit F et G deux expressions algébriques de deux
fonctions booléennes F S mi pour i1,...,n
G S mj pour j1,...,m Le produit
algébrique F.G est défini par F.G S mi.mj
pour i1,...,n et j1,...,m
F a b G c d.e F.G a.c a.d.e b.c
b.d.e
4Division algébrique
Soit F et G deux expressions algébriques de deux
fonctions booléennes G est un diviseur
algébrique de F si F G.Q R où G.Q est le
produit algébrique Q est la plus grande
expression possible non nulle, cà d quil nexiste
pas Q tel que Q lt Q et F G.Q R R
est une expression algébrique
Le quotient Q (noté aussi F/G) et le reste R de
cette division sont uniques
F a.b a.d c.b d.c e G a c G
est un diviseur de F. Q b d R e
Si F G.Q (cà d R 0) avec les mêmes conditions,
G est un facteur algébrique de F
5Division algébrique vs division booléenne
- F a' b b.c a.c et Q a b
- Division algébrique F c (a b) a' b
- Division booléenne F (a b) (a' c)
- Plus efficace mais difficile à automatiser
6Expression libre
Une expression algébrique F est une expression
libre sil nexiste pas de monôme m (avec m
différent de 1) qui soit un facteur algébrique de
F.
F a.b a.c nest pas libre F a.b.c
nest pas libre F a.b c est libre
7Noyau
K est un noyau dune expression algébrique F si K
F/m (quotient) où m est un monôme et K une
expression libre m est appelé le co-noyau de K
Un noyau est de degré 0 sil nadmet pas dautre
noyau que lui même. (Le degré dun noyau est
défini de manière récursive)
F a.b.c.d a.b.d a.c.d a.b.c.d K
(b.c.d b.d c.d) est un noyau de F, a
est son co-noyau K nest pas de degré 0 (degré
1) K admet un noyau K1 (b c), d étant son
co-noyau
Les noyaux dune expression algébrique
représentent toutes les factorisations maximales
possibles (en nombre de variables)
8Gain associé à un noyau
G Gain en nombre de littéraux associé à un
noyau G (Nombre de littéraux du co-noyau)
(Nombre de monômes du noyau -1)
F a.b.c.d a.b.d a.c.d a.b.c.d gt
14 littéraux K (b.c.d b.d c.d) est un
noyau de gain G 2 (1(3-1)) F
a.(b.c.d b.d c.d) a.b.c.d gt 12
littéraux
9Factorisation dune fonction simple - Algorithme 1
Algorithme 1 - Calculer tous les noyaux de
degré 0 de F 2 - Classer les noyaux par gain
croissant 3 - Opérer les divisions successives
de la fonction par les noyaux.
F a.b.c.d a.b.d a.c.d a.b.c.d
Les noyaux et co-noyaux de degré 0 de F sont
K1 a.d a.d (Co-noyau b.c) gt Gain
2 K2 b c (Co-noyau a.d) gt
Gain 2 F/K1 b.c.(a.d a.d) a.b.d
a.c.d (F/K1)/K2 b.c.(a.d a.d) a.d.(b
c)
10Factorisation dune fonction simple - Algorithme 1
Attention une fois une factorisation effectuée,
il est possible que certaines des factorisations
suivantes soient impossibles
F a.b a.c.d c.e Les noyaux et co-noyaux
de degré 0 de F sont K1 b c.d
(Co-noyau a) gt Gain 1 K2 a.d e
(Co-noyau c) gt Gain 1 F/K1 a.(b c.d)
c.e (F/K1)/K2 gt Impossible
11Factorisation dune fonction simple - Algorithme 2
Algorithme 1 - Calculer tous les noyaux de
degré 0 de F 2 - Diviser par le noyau de gain
maximal et renommer ce noyau par une sous-
fonction 3 - Recommencer en 1 jusquà ce
quil ny ait plus de noyau 4 - Réinjecter
toutes les sous-fonctions pour obtenir la forme
factorisée de F.
F a.b.c.d a.b.d a.c.d a.b.c.d
noyaux et co-noyaux de degré 0 de F K1
a.d a.d (Co-noyau b.c) gt Gain 2
K2 b c (Co-noyau
a.d) gt Gain 2 Gain identique gt division par
K1 F b.c.(K1) a.b.d a.c.d noyaux
et co-noyaux de degré 0 de F K3 b c
(Co-noyau a.d) gt Gain 2 Division par K3 F
b.c.(K1) a.d.(K3) Plus de noyau de degré
0. En réinjectant K1 et K3 on obtient F
b.c.(a.d a.d) a.d.(b c)
12Factorisation des fonctions multiples
- Sous-expressions communes à plusieurs fonctions.
- Les noyaux ou parties de noyaux communs
- f1 acd ade i Noyau de f1 cd de gt
f1 a (cdde) i - f2 bcd bde h Noyau de f2 cd de gt
f2 b (cdde) h - Les monômes ou parties de monômes communs
- f1 abcd e gt f1 S d e
- f2 abce d gt f2 S e d
- S abc
13Recherche de noyaux ou parties de noyaux communs
Algorithme 1 - On calcule tous les noyaux de
chaque fonction Fi 2 - On associe à chaque monôme
de tous les noyaux une variable Tj 3 - Pour
chaque noyau on associe le monôme ? Tk qui
compose ce noyau 4 - On calcule tous les noyaux
de la fonction Z ? (? Tk) 5 - Chaque co-noyau
d'un noyau de degré 0 de la fonction Z correspond
à une partie de noyau commune.
F1 a.c.d a.d.e a.i F2 b.c.d b.d.e
b.h F3 e.c.d e.i Noyau de F1 (c.d d.e
i) (Co-noyau a) Gain 1(3-1) 2 (c
e) (Co-noyau a.d) Gain 2(2-1) 2Noyau
de F2 (c.d d.e h) (Co-noyau b) Gain
1(3-1) 2 (c e) (Co-noyau b.d) Gain
2(2-1) 2Noyau de F3 (c.d i) (Co-noyau
e) Gain 1(2-1) 1
14Recherche de noyaux ou parties de noyaux communs
On associe une variable Ti à chaque monôme des
noyaux T1 c.dT2 d.eT3 iT4 cT5 eT6
h On forme la fonction Z T1.T2.T3 T4.T5
T1.T2.T6 T4.T5 T1.T3 Les noyaux et co-noyaux
des noyaux de degré 0 de Z sont T1.T2 , T1.T3 et
T4.T5 Les parties de noyaux communs sont donc
(c.d d.e) , (c.d i) et (c e)
15Gain associé à un noyau commun ou partie commune
Pour chaque fonction i où la partie commune est
renommée, gain local Gi Gi (Nombre de lit. du
co-noyau i) (Nombre de monômes de la partie
commune -1) Gain global G (en nombre de
littéraux) G ? Gi (Nombre de lit. de
la sous-fonction -1) (Nombre d'occurrences de
la sous-fonction) - Nombre de lit. de la
sous-fonction
Gain associé à H c.d d.e G 1(2 - 1)
1(2 - 1) (4 - 1) 2 - 4G 4
H c.d d.e F1 a.H a.i F2 b.H b.h F3
e.c.d e.i 17 littéraux
F1 a.c.d a.d.e a.i F2 b.c.d b.d.e
b.h F3 e.c.d e.i 21 littéraux
16Recherche de monômes ou parties de monômes
communes
Algorithme 1 - On rajoute à chaque monôme de
chaque fonction Fi une variable vi 2 - On calcule
tous les noyaux de degré 0 et co-noyaux associés
de la fonction Z composée de tous les monômes
précédemment construits 3 - Les co-noyaux de
noyaux de degré 0 dans lesquels aucune variable
vi n'apparaît correspondent à des parties de
monômes communs. Si plusieurs co-noyaux sont
associés au même noyau, ils forment une somme de
monômes communs
Exemple F1 a.b.c.d d.e h F2 a.b.c.e
d.e h Z a.b.c.d.v1 d.e.v1 h.v1
a.b.c.e.v2 d.e.v2 h.v2
Noyau Co-noyau d.v1 e.v2 a.b.cv1
v2 d.ev1 v2 h
1) a.b.c partie de monômes commune à F1 et
F2 2) (d.e h) somme de monômes commune à F1
et F2
17Gain associé
G (Nombre de lit. de la sous-fonction -1)
(Nombre d'occurrences de la sous-fonction) -
Nombre de lit. de la sous-fonction
F1 F3.d d.e hF2 F3.e d.e h F3 abc
F1 a.b.c.d d.e hF2 a.b.c.e d.e h
14 Littéraux
13 Littéraux
Sous-fonction commune F3 a.b.c G (3 - 1)
2 - 3 1
18Algorithme général de factorisation des fonctions
multiples
- 1- Calculer tous les noyaux de chaque fonction et
déterminer leur gain - 2 - Calculer toutes les parties de noyaux
communes à plusieurs fonctions et calculer le
gain - 3 - Calculer toutes les parties de monômes et
sommes de monômes communs à plusieurs fonctions
et calculer le gain - 4 - Renommer la sous-fonction de gain maximal et
lajouter à la liste des fonctions. - 5 - Retourner en 1 tant quil existe un noyau,
une partie de monôme commune ou une somme de
monômes communs dont le gain est positif. - 6 - Réinjecter toutes les sous-fonctions
19Exemple
F1 a'.b'.c'.d' a'.b.d a'.c.d
a.b'.c'.d 24 littéraux F2 a'.b'.c'.d a.b.d'
a.c.d 1 - Noyaux de chaque fonction Noyau de
F1 K11 (a'.d' a.d) gt Gain 2(2-1)
2 K12 (b'.c'.d' b.d c.d) gt Gain
1(3-1) 2 K13 (a'.b a'.c a.b'.c') gt
Gain 1(3-1) 2 K14 (b c) gt Gain
2(2-1) 2 Noyau de F2 K21 (b c) gt
Gain 2(2-1) 2 2 - Parties de noyaux
communes (b c) gt Gain 22 (2-1)2
- 2 4 3 - Parties de monômes
communs a'.b'.c' gt Gain (3-1)2 -3
1 4 - Choix de la sous-fonction de gain
maximal F1 a'.b'.c'.d' a'.d.G1 a.b'.c'.dF2
a'.b'.c'.d a.d'.G1G1 b c 20
littéraux
20Exemple
F1 a'.b'.c'.d' a'.d.G1 a.b'.c'.dF2
a'.b'.c'.d a.d'.G1G1 b c
1 - Noyaux de chaque fonction Noyau de F1 K11
(b'.c'.d' d.G1) gt Gain 1 K12 (a'.G1
a.b'.c') gt Gain 1 K13 (a'.d' a.d) gt
Gain 2 Noyau de F2 Aucun Noyau de G1 Aucun 2
- Parties de noyaux communs gt Aucun 3 -
Parties de monômes communs a'.b'.c' gt Gain
1 4 - Choix de la sous-fonction de gain maximal
F1 b'.c'.G2 a'.d.G1 F2 a'.b'.c'.d
a.d'.G1 G1 b c G2 a'.d' a.d 19
littéraux
21Exemple
1 - Noyaux de chaque fonction Noyau de F1
Aucun Noyau de F2 Aucun Noyau de G1
Aucun Noyau de G2 Aucun 2 - Parties de noyaux
communes gt Aucun 3 - Parties de monômes
communs gt b'.c' Gain 0 gt a'.d Gain 0 Il
nexiste plus de sous-fonction possible de gain
positif (b'.c' et a'.d ont un gain nul) 6 -
Réinjecter toutes les sous-fonctions F1
b'.c'.G2 a'.d.G1 F1 b'.c'.(a'.d' a.d)
a'.d.(b c) F2 a'.b'.c'.d a.d'.G1 F2
a'.b'.c'.d a.d'.(b c) G1 b c G2 a'.d'
a.d
22Décomposition technologique - niveau portes
Décomposition sur une bibliothèque déléments
précaractérisés Technology mapping ou
"assignation technologique"
Bibliothèque déléments prédéfinis
Réseau de cellules (chemin critique et surface
optimisés)
Ensemble déquations booléennes minimisées
Etape suivant la factorisation (minimisation du
nombre de littéraux)
23Décomposition technologique (Technology Mapping)
- Exemple
- t1 a bc
- t2 d e
- t3 ab c
- t4 t1t2 fg
- t5 t4h t2t3
- F t5
- Ensemble d'équations logiques non optimisées de
16 littéraux
24Equations Optimisées
- En utilisant la factorisation (indépendante de la
technologie) ces équations sont optimisées en
utilisant seulement 14 littéraux - t1 d e
- t2 b h
- t3 at2 c
- t4 t1t3 fgh
- F t4
F
t4
F
t3
t5
t1t3 fgh
at2 c
t4h t2t3
t2
t1
t1t2 fg
bh
de
de
abd
abc
25Bibliothèque
- Implanter ce réseau en utilisant un ensemble de
portes appartenant à une bibliothèque. Chaque
porte a un coût (surface, délai, puissance, )
26Technology Mapping
- Deux approches
- A base de règles LSS
- Méthode simple
- Non optimale
- Condition sur la bibliothèque
- Algorithmique DAGON, MISII
- Résultat optimal
- Bibliothèque quelconque
- Problème NP-difficile (satisfiabilité)
- Par décomposition gt méthode efficace
27Approche à base de règles Représentation des
fonctions logiques
Représentation arborescente Nud Opération
booléenne (somme et produit) Arc Argument
F
F (a . b) (c d)
d
b
c
a
28Bibliothèque
Cellules précaractérisés (surface et vitesse
connues) Cellules les plus courantes Inverseur,
And, Or, Nand, Nor, AOI / OAI
OAI21
OAI22
AOI22
Cellules de la bibliothèque arbres définissant
les motifs de décomposition
Nand2
Motif à 1 ou 2 niveaux
OAI22
a
b
a
b
c
d
29Placement parfait
Isomorphisme entre un sous-graphe et un motif de
la bibliothèque
Graphe
Elément de bibliothèque
F
e
a
b
c
d
30Placement semi-parfait
Expansion dun nud au premier niveau sans
modifier le second
31Expansion dun nud
Exemple de règle Expansion en largeur pour
minimiser le nombre de niveaux
Nmax 2
32Décomposition technologique
Exemple de règle Choix prioritaire des motifs
à 2 niveaux (Réduction de la profondeur et du
chemin critique)
Algorithme
1 - Identification des placements parfaits à 2
niveaux 2 - Identification des placements
semi-parfaits à 2 niveaux (peut générer de
nouveaux placements parfaits) 3 - Expansion des
nuds et placements parfaits à un niveau 4 -
Génération finale de la netlist
La recherche peut commencer par la racine ou par
les feuilles, mais lidentification des
placements parfaits est facilitée en commençant
par les feuilles
33Décomposition technologique Exemple
Bibliothèque AOI22, OAI22, AOI21,OAI21,NAND et
NOR 2 et 3
34Exemple Placements parfaits à 2 niveaux
Bibliothèque AOI22, OAI22, AOI21,OAI21,NAND et
NOR 2 et 3
35Exemple Placements semi-parfaits à 2 niveaux
Bibliothèque AOI22, OAI22, AOI21,OAI21,NAND et
NOR 2 et 3
36Exemple Nouveaux placements parfaits à 2 niveaux
Bibliothèque AOI22, OAI22, AOI21,OAI21,NAND et
NOR 2 et 3
37Exemple Expansion des nuds et placements
parfaits à 1 niveau
Bibliothèque AOI22, OAI22, AOI21,OAI21,NAND et
NOR 2 et 3
38Transformations en portes inverseuses
Changement des opérations sur les nuds par
utilisation des règles de De Morgan
(Complémentation des entrées et des sorties)
Algorithme Partir de la racine
a b (a . b) gt Nand2(a',b')
Nand2
(a b) . (c d) (a.b c.d)
OAI
AO ltgt IOAI OA ltgt IAOI
39Exemple Netlist résultat
Bibliothèque AOI22, OAI22, AOI21,OAI21,NAND et
NOR 2 et 3
Inversion
Nand2
Nor3
Nor3
OAI22
Nor3
Nor3
Nor3
AOI21
AOI21
Nand3
Nand3
OAI22
OAI22
AOI21
OAI22
OAI21
OAI21
OAI22
40Approche algorithmique
- Approche algorithmique DAGON, MISII
- Représenter chaque fonction du réseau en
utilisant un ensemble d' opérateurs de base.
Cette représentation est appelée le graphe sujet. - Typiquement, la base est le NAND 2 entrées et
l'inversion MISII. - Cet ensemble doit être fonctionnellement complet.
- De même, chaque porte de la bibliothèque est
représentée en utilisant les opérateurs de base
gt graphes formes - Représenter chaque porte de toutes les façons
possibles - 3. Chercher une couverture optimale du graphe
sujet par des graphes formes
41Graphe sujet
Graphe sujet représenté en opérateurs NAND2 et NOT
t1 d e t2 b h t3 at2 c t4 t1t3
fgh F t4
F
F
t4
f
t1t3 fgh
t3
c
at2 c
d
e
t2
h
g
t1
a
bh
de
b
h
42Exemple de bibliothèque graphes formes
inv(1)
nand2(2)
and2(3)
nor(2)
or2(3)
nor3 (3)
aoi21 (3)
oai22 (4)
xor (5)
xnor (5)
43Approche algorithmique
- Une couverture est une collection de graphes
formes telle que - chaque noeud du graphe sujet est contenu dans un
(ou plusieurs) graphes formes - chaque entrée d'un graphe forme est la sortie
d'un autre graphe forme (i.e. les entrées d'une
porte sont la sortie d'autres portes) - Si l'on vise la surface minimale, le coût de la
couverture est la somme des surfaces des portes
de la couverture. - Problème du mapping technologique trouver une
couverture de coût minimum du graphe sujet en
choisissant les portes dans la bibliothèque.
44Graphe Sujet
f
g
- t1 d e
- t2 b h
- t3 at2 c
- t4 t1t3 fgh
- F t4
d
F
e
h
b
a
c
45Couverture du graphe sujet
f
g
- t1 d e
- t2 b h
- t3 at2 c
- t4 t1t3 fgh
- F t4
d
F
e
h
b
a
Coût total 23
c
46Une autre couverture (meilleure)
and2(3)
f
g
aoi22(4)
- t1 d e
- t2 b h
- t3 at2 c
- t4 t1t3 fgh
- F t4
or2(3)
d
F
e
h
or2(3)
nand2(2)
b
a
nand2(2)
c
Coût total 19
inv(1)
47Une autre couverture (encore meilleure)
f
nand3(3)
g
and2(3)
- t1 d e
- t2 b h
- t3 at2 c
- t4 t1t3 fgh
- F t4
oai21(3)
d
F
e
h
b
oai21 (3)
a
nand2(2)
c
Coût total 15
inv(1)
48Technology mapping par couverture
- Entrée
- Réseau logique optimisé, indépendamment de la
technologie - La description des portes dans une bibliothèque
avec leur coût. - Sortie
- Réseau de portes (netlist) de la bibliothèque qui
minimise le coût total - Approche Générale
- Construire le graphe sujet du réseau.
- Représenter chaque porte de la bibliothèque par
un graphe forme (ou plusieurs) - Trouver une couverture optimale du graphe sujet
par les graphes formes des portes de la
bibliothèque
49Résolution
- Dans le cas général, le problème de la recherche
d'une couverture optimale est un problème dit
NP-dur i.e. qu'il faut d'abord générer toutes les
solutions, et ensuite choisir la meilleure - Si le graphe sujet et les graphes formes sont des
arbres (pas de reconvergence) il existe un
algorithme efficace.
50Cas général gt problème de satisfiabilité
- Chercher tous les "matches" possibles mk
(ellipses dans fig.) pour chaque noeud du graphe
sujet - En utilisant une variable mi booléenne pour
chaque "match" d'un graphe forme dans le graphe
sujet, (mi 1 si le match est choisi, 0 sinon) - Ecrire une clause pour chaque nud du graphe
sujet indiquant les possibilités de recouvrement
de ce nud. Chaque nud doit être couvert. - si un noeud du graphe sujet est couvert par les
matches m2, m5, m10 , la clause est (m2 m5
m10), cà d le nud de la fonction peut être
couvert par m2 ou m5 ou m10 - Ex
- Le nud 3 peut être couvert par m1 ou m2 gt
clause (m1m2)
1
o1
3
m1 porte NAND2
5
2
m2 porte OR2
a
4
6
b
7
8
c
o2
9
d
51Cas général gt problème de satisfiabilité
- Répéter pour chaque noeud
- Prendre le produit de toutes les clauses cà d tous
les nuds doivent être couvert gt (CNF ou forme
pS) - Déterminer une valeur des mi pour laquelle la
forme pS 1
52problème de satisfiabilité
1
o1
3
5
2
a
4
6
b
7
8
c
o2
9
d
m11
m10
Pour n7 (m10 m11 ..)
53problème de satisfiabilité
- Toute assignation des mi pour laquelle la CNF
est satisfaite (i.e. 1) garantit que toutes les
noeuds du graphe sujet sont couverts, mais ne
garantit pas que les entrées d'une porte choisie
corresponde à des sorties d'autres portes - Ex
- On rectifie en ajoutant des clauses
supplémentaires à la CNF
1
o1
3
5
2
a
4
6
b
7
8
c
o2
9
d
54couverture de DAG gt problème de satisfiabilité
- Soit le match mi qui a les noeuds ei1,,ein comme
entrées. Si mi est choisi, un des matches qui
implante eij doit aussi être choisi pour chaque
entrée (j n'est pas une entrée primaire). - Soit Sij une expression disjonctive (le "ou") des
variables mk donnant les matches qui implantent
eij et pour lesquels eij est une sortie. - Sélectionner le match mi implique de satisfaire
chacune des expressions Sij pour j 1 n. - On peut l'écrire
(mi ? (Si1 Sin ) )? (m'i (Si1 Sin ) ) ?
((m'i Si1) (m'i Sin ) )
1
3
2
55couverture de DAG gt problème de statisfiabilité
- Un match pour chaque sortie primaire doit être
sélectionné - Une assignation des variables mi pour laquelle la
CNF vaut 1 est une couverture possible. - Minimisation surface chaque match mi a un coût
ci i.e. la surface de la porte que le matche
représente. - Le but est de trouver une assignation qui
satisfasse la CNF dont le coût total soit
minimum. - Trouver un monôme premier de coût minimum
- si la variable mi 0, (mi n'est pas choisi),
son coût est 0 - si la variable mi 1, (mi est choisi), son coût
est ci
56Exemple
1
o1
3
5
2
a
4
6
b
7
8
c
o2
9
d
57Exemple
- Générer les contraintes de couverture de chaque
noeud - (m1 m12 m14) (m2 m12 m14) (m3 m12
m14)(m4 m11 m12 m13) (m5 m12 m14)(m6
m11 m13) (m7 m10 m11 m13)(m8 m10
m13) (m9 m10 m13) - Pour assurer qu'une couverture conduit à un
circuit valide, des clauses supplémentaires sont
générées. - Par exemple, sélectionner m3 nécessite de
- choisir un match qui a n2 comme sortie, et
- choisir un match qui a n1 comme sortie.
- Le seul match dont la sortie est n1 est m1, et le
seul match dont la sortie est n2 est m2
m1
m3
1
On rajoute la clause (m3 ? m1,m2) i.e. (m'3
m1) (m'3 m2)
o1
3
5
2
m2
a
4
6
b
7
8
c
o2
9
d
58Exemple
- Les noeuds sortie primaires o5 et o9 doivent être
réalisés comme la sortie d'un match. - Les matches qui ont o5 comme sortie sont
m5, m12, m14 - Les matches qui ont o9 comme sortie sont m9,
m10, m13 - Remarque
- Pas de pb sur les matches sur les entrées
primaires . - Les matches m1,m2,m4,m11,m12,m13 sont pilotés
par des entrées primaires et ne nécessitent pas
de clauses supplémentaires.
59Exemple
- On avait
- (m1 m12 m14) (m2 m12 m14) (m3 m12
m14) (m4 m11 m12 m13) (m5 m12 m14) (m6
m11 m13) (m7 m10 m11 m13)(m8 m10
m13) (m9 m10 m13) - On rajoute (m'3 m1) (m'3 m2) (m3 m'5) (m'5
m4) (m'6 m4)(m'7 m6) (m'8 m7) (m8 m'9)
(m'10 m6)(m'14 m4) (m5 m12 m14) (m9
m10 m13) - L'expression de la couverture a 58 monômes
premiers - Le monôme premier de coût minimal estm'3 m'5 m'6
m'7 m'8 m'9 m'10 m12 m13 m'14 - c-à -d deux portes de coût total 9. Cela
correspond à une couverture qui sélectionne les
matchs m12 (xnor2) et m13 (nand4).
60Exemple
m'3 m'5 m'6 m'7 m'8 m'9 m'10 m12 m13 m'14
1
o1
Notez que le noeud n4 est couvert par les 2
matchs
3
5
2
a
4
6
b
7
8
c
o2
9
d
61Complexité de la couverture de DAG
- Methodes de résolution
- Branch and bound Thelen
- BDD-s Lin and Somenzi
-
- Même pour des circuits de taille modérée,
résolution longue. - gt Se ramener à des arbres
62Couverture optimale par des arbres
F (f1,f2) f1 cd abe ce abde
cbde f2 a abd cd eÂ
Factorisation gt g1 a.bc g2 b.d.e g3
g1.e (ac).g2 f1 c d g3 f2 a d.g1e
Partitionnement Fonctions mono-sortie (arbres)
g2
g3
f1
g1
f2
63Mapping optimisé
Algorithme programmation dynamique (des
feuilles vers la racine)
Fonction
Bibliothèque inv 2 nand2 3 and2 4 aoi21
6 nor2 2,5
u
t
y
z
x
Coût 9
d
a
c
b
64Exercice optimisation vitesse
Exemple délais inv 2, nand2 3 , and2 4 ,
aoi21 6 , or2 3
v
w
u
t
e
z
y
x
d
a
b
c
65Discussion
Résultat dépendant de la décomposition en NAND2
et INV. Ex FA.B C
nand (not(not(nand (A,B))),C)
nand (nand (A,B),C)
2NAND
1NAND1ANDINV
2NAND2(2INV)
66Inversion
Possibilité d'inverser les entrées et/ou la
fonction
Possibilité d insérer des paires d'inverseur (de
coût nul)
13
F ad abc
12
u
10
11
t
9
8
z
y
7
x
6
5
d
a
4
b
c
3
1
2
Insertion systématique - un inverseur sur les
entrées - une paire d inverseur sur les arcs
internes
67Inversion
exemple inv 2, nand2 3 , and2 4 , aoi12 6
, nor2 2,5
13
12
u
11
10
t
9
z
8
y
7
x
d
6
a
5
b
c
d
a
4
b
c
3
Coût 9
1
2
68Partitionnement
- Partitionnement direct coupure à chaque
divergence gt fonctions mono-sortie (arbres) - gt pas de recouvrement des graphes formes , pas
de duplication - Inconvénient gt beaucoup de "petits" arbres
69Partitionnement
- Autre partitionnement
- A partir d'une sortie, former un cône jusqu'aux
entrées primaires - Mapper successivement chaque sortie jusqu'à ce
qu'elle corresponde à des sorties formées par les
mappings précédents - Duplication de logique
- Plus grands arbres gt optimisation plus efficace
Sortie
Sortie
70Décomposition technologique - niveau transistors
Décomposition sur portes complexes CMOS But
saffranchir des limitations dues aux
bibliothèques
Nb MOS max en série (k) Nb MOS max en // (k)
Contraintes liées à la technologie
Liste des portes et réseau de cellules (chemin
critique et surface optimisés)
Ensemble déquations booléennes factorisées
Etape suivant la factorisation (minimisation du
nombre de littéraux) 2 étapes - Génération des
portes complexes nécessaires (layout
synthesis) - Placement / routage comme pour
des cellules standards
71Portes élémentaires CMOS
Vdd
Vdd
Vdd
Vdd
E1
E2
E1
S
E
S
E2
E1
S
E2
E1
E2
Vss
Vss
Vss
Vss
Nor2
Nand2
Inverseur
Portes inverseuses
72Portes logiques statiques CMOS
Vdd
F(Ei)
Réseau PMOS
SF(Ei)
Ei
Réseau NMOS
F(Ei)
Vss
73Porte complexe CMOS
F a.b c.(d e)
Vdd
F (a b) . (c d.e) F a.b c.(d
e)
Vdd
c
a
b
d
e
S
a
b
d
c
e
Vss
Vss
74Décomposition
Préparation de la décomposition Calcul des
degrés série S et parallèle P pour chaque nud N
de larbre
N est une feuille gt S P 1 N . gt S
somme des S des nuds fils P
maximum des P des nuds fils N gt S
maximum des S des nuds fils P
somme de P des nuds fils
Réseaux N et P duaux gt Rôle dual des limites k
et k gt
Rôle dual de S et P (S valable soit pour le
plan N soit pour le plan P selon inversion)
75Exemple de calcul des couples (S,P)
S
P
(4,8)
(2,1)
(2,2)
(3,1)
(4,2)
(2,2)
(1,2)
(1,2)
(2,2)
(1,1)
(1,1)
(1,2)
(1,1)
(1,1)
(1,1)
(1,1)
(1,1)
(1,1)
(2,1)
(1,1)
(1,1)
(1,1)
(1,1)
(1,1)
(1,1)
(1,1)
F abc df (ab).(cf ) dc(i j.k)
g.(ik)
(1,1)
(1,1)
76Algorithme de décomposition
Point de départ feuille associée au plus long
chemin dans larbre
Définition de groupes de nuds associés à une
porte complexe - Un nud est absorbé dans
un groupe tant que S ? k et P ? k - Le
premier nud rencontré tel que Sgtk ou Pgtk est un
nud de coupure
Expansion des nuds de coupure (si nécessaire)
pour définir une sous-fonction associée à une
porte complexe maximale (Sk et/ou Pk)
Itération sur larbre restant après définition de
la sous-fonction
77Expansion dun nud de coupure
kk3
(4,2)
(2,1)
SF
(1,1)
Noeud de coupure
(4,2)
(3,2)
(3,2)
(1,1)
(1,1)
(2,2)
(1,1)
(1,1)
(2,2)
(2,2)
(1,1)
(1,1)
(2,1)
(1,1)
(2,1)
(2,1)
(1,1)
(1,1)
(1,1)
(1,1)
(1,1)
(1,1)
(1,1)
(1,1)
78Représentation de la sous-fonction
SF a.(b c.d)
SF a b.(c d) SF a.(b c.d)
SF
(3,2)
(2,2)
a
(2,1)
b
c
d
79Décomposition - Exemple (1)
(4,8)
(2,1)
(2,2)
(3,1)
(4,2)
(2,2)
(1,2)
(1,2)
(2,2)
(1,2)
c
d
g
a
b
c
d
f
(2,1)
i
i
k
a
b
c
f
F abc df (ab).(cf ) dc(i j.k)
g.(ik)
j
k
80Décomposition - Exemple (2)
(4,8)
(2,1)
(2,2)
(3,1)
(4,2)
(2,2)
SF1
(3,2)
(1,2)
(1,2)
(1,2)
d
g
a
b
c
d
f
(2,2)
c
i
k
a
b
c
f
(2,1)
i
j
k
81Décomposition - Exemple (3)
(3,7)
(2,1)
(2,2)
(3,1)
(2,1)
(2,2)
(1,2)
(1,2)
(1,2)
SF1
d
g
a
b
c
d
f
i
k
a
b
c
f
82Décomposition - Exemple (4)
(3,7)
SF2
(3,3)
(2,1)
(2,1)
(2,2)
(2,2)
(3,1)
(1,2)
g
SF1
d
f
d
(1,2)
(1,2)
a
b
c
i
k
a
b
c
f
83Décomposition - Exemple (5)
(2,5)
SF2
(2,1)
(2,1)
(2,2)
(1,2)
g
SF1
d
f
d
i
k
84Décomposition - Exemple (6)
(2,5)
SF3
SF2
(2,3)
(2,1)
(2,1)
(2,2)
d
f
(1,2)
g
SF1
d
i
k
85Décomposition - Exemple (7)
F SF2 SF3 d .f F SF2.SF3.(d
f) F SF2 SF3 d .f
Vdd
Vdd
d
Vdd
SF3
SF2
f
F
d
f
SF2
SF3
Vss
86Exemple (8)
SF2 abc (a'b') (c'f) SF2' voulu
Vdd
SF2
a
c
(3,3)
b
f
(2,2)
(3,1)
c
a
b
SF2'
(1,2)
(1,2)
a
a
b
a
b
c
b
c
f
c
a
b
c
f
Vss