Factorisation des fonctions logiques - PowerPoint PPT Presentation

1 / 86
About This Presentation
Title:

Factorisation des fonctions logiques

Description:

Laboratoire d'Informatique, de Robotique et de Micro lectronique de Montpellier ... K admet un noyau K1 = (b c), d tant son co-noyau. Un noyau est de ... – PowerPoint PPT presentation

Number of Views:417
Avg rating:3.0/5.0
Slides: 87
Provided by: pra48
Category:

less

Transcript and Presenter's Notes

Title: Factorisation des fonctions logiques


1
Factorisation 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
2
Effet de la factorisation
F a.c a.d b.c b.d Factorisation gt
F (a b) . (c d)
3
Produit 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
4
Division 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
5
Division 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

6
Expression 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
7
Noyau
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)
8
Gain 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
9
Factorisation 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)
10
Factorisation 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
11
Factorisation 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)
12
Factorisation 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

13
Recherche 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
14
Recherche 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)
15
Gain 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
16
Recherche 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
17
Gain 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
18
Algorithme 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

19
Exemple
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
20
Exemple
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
21
Exemple
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
22
Dé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)
23
Dé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

24
Equations 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
25
Bibliothè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, )

26
Technology 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

27
Approche à 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
28
Bibliothè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
29
Placement 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
30
Placement semi-parfait
Expansion dun nud au premier niveau sans
modifier le second


31
Expansion dun nud
Exemple de règle Expansion en largeur pour
minimiser le nombre de niveaux

Nmax 2


32
Dé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
33
Décomposition technologique Exemple
Bibliothèque AOI22, OAI22, AOI21,OAI21,NAND et
NOR 2 et 3












34
Exemple Placements parfaits à 2 niveaux
Bibliothèque AOI22, OAI22, AOI21,OAI21,NAND et
NOR 2 et 3












35
Exemple Placements semi-parfaits à 2 niveaux
Bibliothèque AOI22, OAI22, AOI21,OAI21,NAND et
NOR 2 et 3














36
Exemple Nouveaux placements parfaits à 2 niveaux
Bibliothèque AOI22, OAI22, AOI21,OAI21,NAND et
NOR 2 et 3














37
Exemple Expansion des nuds et placements
parfaits à 1 niveau
Bibliothèque AOI22, OAI22, AOI21,OAI21,NAND et
NOR 2 et 3
















38
Transformations 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


39
Exemple 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




40
Approche 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

41
Graphe 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
42
Exemple 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)
43
Approche 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.

44
Graphe Sujet
f
g
  • t1 d e
  • t2 b h
  • t3 at2 c
  • t4 t1t3 fgh
  • F t4

d
F
e
h
b
a
c
45
Couverture 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
46
Une 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)
47
Une 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)
48
Technology 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

49
Ré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.

50
Cas 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
51
Cas 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

52
problème de satisfiabilité
1
o1
3
5
2
a
4
6
b
7
8
c
o2
9
d
m11
m10
Pour n7 (m10 m11 ..)
53
problè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
54
couverture 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
55
couverture 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

56
Exemple
1
o1
3
5
2
a
4
6
b
7
8
c
o2
9
d
57
Exemple
  • 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
58
Exemple
  • 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.

59
Exemple
  • 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).

60
Exemple
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
61
Complexité 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

62
Couverture 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
63
Mapping 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
64
Exercice 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
65
Discussion
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)
66
Inversion
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
67
Inversion
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
68
Partitionnement
  • 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

69
Partitionnement
  • 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
70
Dé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
71
Portes é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
72
Portes logiques statiques CMOS
Vdd
F(Ei)
Réseau PMOS
SF(Ei)
Ei
Réseau NMOS
F(Ei)
Vss
73
Porte 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
74
Dé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)
75
Exemple 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)
76
Algorithme 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
77
Expansion 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)
78
Repré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
79
Dé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
80
Dé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
81
Dé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
82
Dé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
83
Décomposition - Exemple (5)
(2,5)

SF2
(2,1)
(2,1)
(2,2)

(1,2)
g
SF1
d
f
d
i
k
84
Décomposition - Exemple (6)
(2,5)

SF3
SF2

(2,3)
(2,1)
(2,1)
(2,2)
d
f
(1,2)

g
SF1
d
i
k
85
Dé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
86
Exemple (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
Write a Comment
User Comments (0)
About PowerShow.com