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