factorisation des fonctions logiques n.
Download
Skip this Video
Loading SlideShow in 5 Seconds..
Factorisation des fonctions logiques PowerPoint Presentation
Download Presentation
Factorisation des fonctions logiques

Loading in 2 Seconds...

play fullscreen
1 / 83

Factorisation des fonctions logiques - PowerPoint PPT Presentation


  • 126 Views
  • Uploaded on

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

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about 'Factorisation des fonctions logiques' - thaddeus-powers


An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
factorisation des fonctions logiques
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

effet de la factorisation

cd

00

01

11

10

ab

00

01

1

1

1

1

1

11

1

10

1

1

1

12 Transistors

24 Transistors

Effet de la factorisation

F = a.c + a.d + b.c + b.d Factorisation => F = (a + b) . (c + d)

produit alg brique
Produit algébrique

Soit F et G deux expressions algébriques de deux fonctions booléennes

F = S mi pour i=1,...,n G = S mj pour j=1,...,m

Le produit algébriqueF.G est défini par:

F.G = S mi.mj pour i=1,...,n et j=1,...,m

F = a + b

G = c + d’.e

F.G = a.c + a.d’.e + b.c + b.d’.e

division alg brique
Division algébrique

Soit F et G deux expressions algébriques de deux fonctions booléennes

G est un diviseur algébrique deF si F = G.Q + R

où : G.Q est le produit algébrique

Q est la plus grande expression possible non nulle, càd qu’il n’existe pas Q’ tel que Q < 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

division alg brique vs division bool enne
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
expression libre
Expression libre

Une expression algébrique F est une expression libres’il n’existe pas de monôme m (avec m différent de 1) qui soit un facteur algébrique de F.

F = a.b + a.c n’est pas libre

F = a.b.c n’est pas libre

F = a.b + c est libre

noyau
Noyau

K est un noyau d’une 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 s’il n’admet pas d’autre noyau que lui même.

(Le degré d’un 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 n’est pas de degré 0 (degré 1)

K admet un noyau K1 = (b + c), d étant son co-noyau

Les noyaux d’une expression algébrique représentent toutes les factorisations maximales possibles (en nombre de variables)

gain associ un noyau
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 => 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 => 12 littéraux

factorisation d une fonction simple algorithme 1
Factorisation d’une 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’) => Gain 2

K2 = b + c (Co-noyau: a’.d) => 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)

factorisation d une fonction simple algorithme 11
Factorisation d’une 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) => Gain 1

K2 = a.d + e (Co-noyau: c) => Gain 1

F/K1 = a.(b + c.d) + c.e

(F/K1)/K2 => Impossible

factorisation d une fonction simple algorithme 2
Factorisation d’une 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 qu’il n’y 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’) => Gain 2

K2 = b + c (Co-noyau: a’.d) => Gain 2

Gain identique => 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) => 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)

factorisation des fonctions multiples

f1

f1

f2

f2

Factorisation des fonctions multiples
  • Sous-expressions communes à plusieurs fonctions.
    • Les noyaux ou parties de noyaux communs
      • f1 = acd+ade+abd+i Noyau de f1 : b+c+e => f1 = ad (c+e) +abd + i
      • f2 = bcd+bde+bdh Noyau de f2 : c+e+h => f2 = bd (c+e) + bdh
    • Les monômes ou parties de monômes communs
      • f1 = abcd + e => f1 = S d + e
      • f2 = abce + d => f2 = S e + d
      • S = abc
recherche de noyaux ou parties de noyaux communs
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

recherche de noyaux ou parties de noyaux communs1
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)
gain associ un noyau commun ou partie commune
Gain associé à un noyau commun ou partie commune

Pour chaque fonction i où la partie commune est renommée, gain localGi

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] - [4]G = 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

recherche de mon mes ou parties de mon mes communes
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

gain associ
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

algorithme g n ral de factorisation des fonctions multiples
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 l’ajouter à la liste des fonctions.
  • 5 - Retourner en 1 tant qu’il 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
exemple
Exemple

F1 = a'.b'.c'.d' + a'.b.d + a'.c.d + a.b'.c'.d 24 littérauxF2 = a'.b'.c'.d + a.b.d' + a.c.d’

1 - Noyaux de chaque fonction

Noyau de F1: K11 = (a'.d' + a.d) => Gain = 2*(2-1) = 2 K12 = (b'.c'.d' + b.d + c.d) => Gain = 1*(3-1) = 2 K13 = (a'.b + a'.c + a.b'.c') => Gain = 1*(3-1) = 2 K14 = (b + c) => Gain = 2*(2-1) = 2

Noyau de F2: K21 = (b + c) => Gain = 2*(2-1) = 2

2 - Parties de noyaux communes

(b + c) => Gain = [2+2] + [(2-1)*2] - [2] = 4

3 - Parties de monômes communs

a'.b'.c' => 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

exemple1
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) => Gain 1 K12 = (a'.G1 + a.b'.c') => Gain 1 K13 = (a'.d' + a.d) => Gain 2

Noyau de F2: Aucun

Noyau de G1: Aucun

2 - Parties de noyaux communs

=> Aucun

3 - Parties de monômes communs

a'.b'.c' => 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

exemple2
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

=> Aucun

3 - Parties de monômes communs

=> b'.c' Gain 0

=> a'.d Gain 0

Il n’existe 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

d composition technologique niveau portes
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)

d composition technologique technology mapping

F

t5’

t4h+ t2t3

t1t2 + fg

a+bc

d+e

ab+c

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

equations optimis es
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

b+h

d+e

d+e

ab+d

a+bc

biblioth que
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, …)

approche algorithmique
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 => graphes formes
    • Représenter chaque porte de toutes les façons possibles

3. Chercher une couverture optimale du graphe sujet par des graphes formes

graphe sujet
Graphe sujet

Graphe sujet représenté en opérateursNAND2 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

g

h

t1

a

b+h

d+e

b’

h’

exemple de biblioth que graphes formes

nand3 (3)

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)

Graphes des portes représentés en opérateursNAND2 et NOT

approche algorithmique1
Approche algorithmique

Une couvertureest une collection de graphes formes telle que

  • chaque noeud du graphe sujet est contenu dans un (ou plusieurs) graphes formes
  • chaque entréed'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.

graphe sujet1
Graphe Sujet

t1 = d + e;

t2 = b + h;

t3 = at2 + c;

t4 = t1t3 + fgh;

F = t4’;

f

g

d

F

e

h

b

a

c

couverture du graphe sujet
Couverture du graphe sujet

t1 = d + e;

t2 = b + h;

t3 = at2 + c;

t4 = t1t3 + fgh;

F = t4’;

nand2(2)

inv(1)

f

g

d

F

e

h

b

a

Coût total = 23

c

une autre couverture meilleure
Une autre couverture (meilleure)

t1 = d + e;

t2 = b + h;

t3 = at2 + c;

t4 = t1t3 + fgh;

F = t4’;

and2(3)

f

g

aoi22(4)

or2(3)

d

F

e

h

or2(3)

nand2(2)

b

a

nand2(2)

c

Coût total = 19

inv(1)

une autre couverture encore meilleure
Une autre couverture (encore meilleure)

t1 = d + e;

t2 = b + h;

t3 = at2 + c;

t4 = t1t3 + fgh;

F = t4’;

f

nand3(3)

g

and2(3)

oai21(3)

d

F

e

h

b

oai21 (3)

a

nand2(2)

c

Coût total= 15

inv(1)

technology mapping par couverture
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
r solution
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.
cas g n ral probl me de satisfiabilit
Cas général => 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 nœud du graphe sujet indiquant les possibilités de recouvrement de ce nœud. Chaque nœud doit être couvert.
    • si un noeud du graphe sujet est couvert par les matches {m1, m2, ...}, la clause est (m1 + m2 + ...), càd le nœud de la fonction peut être couvert par m1 ou m2 ou …
  • Ex :

1

o1

m1 :porte NAND2

3

5

2

m2 :porte OR2

a

4

6

b

7

8

c

o2

9

d

cas g n ral probl me de satisfiabilit1
Cas général => problème de satisfiabilité
  • Répéter pour chaque noeud :
    • (mi1+mi2+…+min)
  • Prendre le produit de toutes les clauses càd tous les nœuds doivent être couverts => (CNF ou forme πΣ)
    • (mi1+mi2+…+min) . (mj1+mj2+…+mjn)…….. (mk1+mk2+…+mkn)
  • Déterminer les jeux de valeurs des mi pour lesquels la forme πΣ =1
    • (mi1+mi2+…+min) . (mj1+mj2+…+mjn)…….. (mk1+mk2+…+mkn) = 1
  • Déterminer parmi tous les jeux de valeurs celui-ci qui a le cout minimal
probl me de satisfiabilit
problème de satisfiabilité

1

o1

3

5

2

a

4

6

b

7

8

c

o2

Porte nand3 (3)

9

d

m11

m10

Pour n7 : (m10 + m11 + …..)

probl me de satisfiabilit1
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

probl me de satisfiabilit entr es sorties
Problème de satisfiabilité : entrées/sorties
  • Soit le match miqui a les noeuds ei1,…,eincomme entrées. Si miest choisi, un des matches qui implante eijdoit aussi être choisi pour chaque entrée (j n'est pas une entrée primaire).
  • Soit Sijune expression disjonctive (le "ou") des variables mk donnant les matches qui implantent eij et pour lesquels eij est une sortie.
  • Sélectionner le match miimplique de satisfaire chacune des expressions Sijpour j = 1 … n.
  • On peut l'écrire :

(mi(Si1 … Sin ) ) (m'i + (Si1 … Sin ) ) ((m'i + Si1)… (m'i + Sin ) )

1

3

2

couverture de dag probl me de statisfiabilit
couverture de DAG => 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 mia 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
exemple3
Exemple

1

o1

3

5

2

a

4

6

b

7

8

c

o2

9

d

exemple4
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)

exemple5
Exemple

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

exemple6
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)
  • On développe …..
  • L'expression de la couverture a 58 monômes premiers
  • Le monôme premier de coût minimal estm'3m'5m'6m'7m'8m'9m'10 m12 m13m'14
  • c-à-d deux portes de coût total 9. Cela correspond à une couverture qui sélectionne les matchs m12(xnor2) et m13 (nand4).
exemple7
Exemple

m'3m'5m'6m'7m'8m'9m'10 m12 m13m'14

1

  • NB le noeud n4est couvert par les 2 matchs càd sa fonction est dédoublée.

o1

3

5

2

a

4

6

b

7

8

c

o2

9

d

complexit de la couverture de dag
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.

= > Se ramener à des arbres

couverture optimale par des arbres
Couverture optimale par des arbres
  • F = (f1,f2)
    • f1 = cd’+ abe + ce + a’b’de + cb’de
    • f2 = a ’ + abd + cd + e’

Factorisation => g1 = a.b+c

g2= b’.d.e

g3= g1.e+ (a’+c).g2

f1 = c d’ +g3

f2 = a’+ d.g1+e’

Partitionnement : Fonctions mono-sortie (arbres)

g2

g3

f1

g1

f2

mapping optimis
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

d

a

c

b

mapping optimis1
Mapping optimisé

Bibliothèque

Fonction

inv:2 nand2:3 and2:4 aoi21:6 nor2:2,5

u

t

y

z

x

d

a

c

b

mapping optimis2

b

c

d

a

Mapping optimisé

Coût = 9

exercice optimisation vitesse
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

discussion
Discussion

Résultat dépendant de la décomposition en NAND2 et INV. Ex : F=A.B + C’

nand (not(not(nand (A,B))),C)

nand (nand (A,B),C)

2NAND

1NAND+1AND+INV

2NAND2+(2INV)

inversion
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 = a’d ’+ a’bc

12

u

11

10

t

9

8

z

y

7

x

6

d

5

a

4

b

c

3

1

2

Insertion systématique

- un inverseur sur les entrées

- une paire d ’inverseur sur les arcs internes

inversion1

o

a

d'

b'

c'

Coût = 7,5

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

a

6

5

b

c

d

a

4

b

c

3

Coût = 9

1

2

partitionnement
Partitionnement
  • Partitionnementdirect : coupure à chaque divergence => fonctions mono-sortie (arbres)
  • => pas de recouvrement des graphes formes , pas de duplication
  • Inconvénient => beaucoup de "petits" arbres
partitionnement1
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 => optimisation plus efficace

Sortie

Sortie

d composition technologique niveau transistors
Décomposition technologique - niveau transistors

Décomposition sur portes complexes CMOS

But: s’affranchir 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

portes l mentaires cmos
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

portes logiques statiques cmos
Portes logiques statiques CMOS

Vdd

F(Ei)*

Réseau

PMOS

S=F(Ei)

Ei

Réseau

NMOS

F(Ei)

Vss

porte complexe cmos
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

d composition
Décomposition

Préparation de la décomposition:

Calcul des degrés série S et parallèle P pour chaque nœud N de l’arbre

N est une feuille => S = P = 1

N = “.” => S = somme des S des nœuds fils

P = maximum des P des nœuds fils

N = “+” => S = maximum des S des nœuds fils

P = somme de P des nœuds fils

Réseaux N et P duaux => Rôle dual des limites k et k’

=> Rôle dual de S et P

(S valable soit pour le plan N soit pour le plan P selon inversion)

exemple de calcul des couples s p
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 + (a’+b’).(c’+f ’) + d’c’(i + j.k) + g’.(i’+k’)

(1,1)

(1,1)

algorithme de d composition
Algorithme de décomposition

Point de départ: feuille associée au plus long chemin dans l’arbre

Définition de groupes de nœuds associés à une porte complexe:

- Un nœud est absorbé dans un groupe tant que S k et P  k’

- Le premier nœud rencontré tel que S>k ou P>k’ est un nœud de coupure

Expansion des nœuds de coupure (si nécessaire) pour définir une

sous-fonction associée à une porte complexe maximale (S=k et/ou P=k’)

Itération sur l’arbre restant après définition de la sous-fonction

expansion d un n ud de coupure
Expansion d’un nœud de coupure

k=k’=3

(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)

repr sentation de la sous fonction

Vdd

d’

Vdd

b’

c’

a’

d

SF

a’

b’

Vss

d’

c’

Vss

Vss

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

d composition exemple 1
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 + (a’+b’).(c’+f ’) + d’c’(i + j.k) + g’.(i’+k’)

j

k

d composition exemple 2
Décomposition - Exemple (2)

(4,8)

+

(2,1)

(2,2)

(3,1)

(4,2)

SF1

(2,2)

(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

d composition exemple 3
Décomposition - Exemple (3)

(3,7)

+

(2,1)

(2,2)

(3,1)

(2,1)

(2,2)

(1,2)

(1,2)

+

(1,2)

+

+

d’

SF1

g’

a

b

c

d

f

i’

k’

a’

b’

c’

f’

d composition exemple 4
Décomposition - Exemple (4)

(3,7)

+

SF2

+

(3,3)

(2,1)

(2,1)

(2,2)

(2,2)

(3,1)

+

(1,2)

g’

d

f

d’

SF1

(1,2)

(1,2)

+

+

a

b

c

i’

k’

a’

b’

c’

f’

d composition exemple 5
Décomposition - Exemple (5)

(2,5)

+

SF2

(2,1)

(2,1)

(2,2)

+

(1,2)

g’

d

f

d’

SF1

i’

k’

d composition exemple 6
Décomposition - Exemple (6)

(2,5)

+

SF3

SF2

+

(2,3)

(2,1)

(2,1)

(2,2)

d

f

(1,2)

+

g’

d’

SF1

i’

k’

d composition exemple 7

(2,3)

+

SF2

SF3

(2,1)

d

f

Décomposition - Exemple (7)

F = SF2 + SF3 + d .f

F’ = SF2’.SF3’.(d’ + f’)

F’* = SF2’ + SF3’ + d’ .f’

Vdd

d’

Vdd

Vdd

SF3’

SF2’

f’

F

d’

f’

SF2’

SF3’

Vss

exemple 8
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

slide75
Plan
  • Synthèse de contrôleurs (FSM)
    • Spécification de contrôleurs
    • Influence du codage
  • Optimisation des équations logiques
    • Minimisation des fonctions 2 niveaux
    • Minimisation des fonctions multi-niveau
  • Décomposition technologique (Mapping)
    • Niveau portes
    • Niveau transistors
    • Réseaux programmables
circuits logiques programmables pld
Circuits Logiques Programmables : PLD

PLD : Programmable Logic Device

PAL : Programmable Array Logic

GAL : Generic Array Logic

EPLD : Erasable Programmable Logic Device

FPGA : Forecasting programmable Logic Array

circuits logiques programmables pld1
Circuits Logiques Programmables : PLD

CPLD (Complex Programmable Logic Device) :

Désigne des PLD ayant un haut niveau d'intégration.

  • PAL (Programmable Array Logic) :
    • Circuits logiques programmables dans lesquels seules les fonctions ET sont programmables, les fonctions OU ne le sont pas. Programmation par destruction de fusibles.
  • GAL (Generic Array Logic) LATTICE SEMICONDUCTOR :
    • Circuits logiques PAL reprogrammables à technologie CMOS (Effaçables électriquement).
  • EPLD (Erasable Programmable Logic Device) :
    • Circuits logiques reprogrammables (Effaçables électriquement ou par UV).
  • FPGA (Forecasting Programmable Gate Array) :
    • Réseau de portes programmables à la demande. Technologie qui utilise des circuits encapsulés comportant des réseaux de portes logiques non reliées : l’utilisateur réalise les interconnexions nécessaires par programmation.
pal programmable array logic
PAL : Programmable Array Logic

Ce sont les circuits logiques programmables les plus anciens. Les PAL sont programmés par destruction de fusibles. Ils ne sont donc programmables qu’une fois, ce qui peut être gênant en phase de développement. Un PAL permet de remplacer jusqu’à 10 boîtiers SSI ou 2 à 3 boîtiers MSI.

Ce PAL simplifié comporte 2 entrées I1 et I2 et une sortie O.

Huit fusibles (F1 à F8) permettent de réaliser diverses fonctions logiques.

La programmation va consister à faire sauter les fusibles nécessaires afin de réaliser la fonction voulue.

pal programmable array logic1
PAL : Programmable Array Logic

PAL 4 entrées 4 sorties

implantation sur fpga

Block

logique

Block

logique

Block

logique

Block

logique

Block

logique

Block

logique

Block

logique

Block

logique

Block

logique

Implantation sur FPGA

Switch Matrix:

Interrupteurs

programmables

architecture des blocks logiques actel
Architecture des blocks logiques : Actel

1

1

0

1

1

f

1

0

1

1

0

a

c

d

b

f = a + b + c + d

Pas de programmation du block logique

architecture des blocks logiques quicklogic
Architecture des blocks logiques : Quicklogic

S

Q

D

C

R

Pas de programmation du block logique

architecture des blocks logiques xilinx 3000

Look-up

Table

(LUT)

Architecture des blocks logiques : Xilinx 3000

Data in

S

Q

D

C

R

X

A

B

C

D

E

Y

S

Enable Clock

D

Q

Vcc

C

R

Clock

Reset

Gnd

Global Reset

LUT : ROM = Utilisée pour implanter toute fonction de k variables