1 polytech' montpellier université montpellier ii place eugène bataillon, 34095 montpellier...

83
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 Factorisation des fonctions logiques

Upload: vivien-blanchard

Post on 03-Apr-2015

110 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: 1 Polytech' Montpellier Université Montpellier II Place Eugène Bataillon, 34095 Montpellier cedex 05, FRANCE Laboratoire d'Informatique, de Robotique et

1

Polytech' MontpellierUniversité Montpellier II

Place Eugène Bataillon, 34095 Montpellier cedex 05, FRANCE

Laboratoire d'Informatique, de Robotique et de Microélectronique de MontpellierUMR 9928 Université Montpellier II / CNRS

161 rue Ada, 34392 Montpellier cedex 05, FRANCE

Factorisation des fonctions logiques

Page 2: 1 Polytech' Montpellier Université Montpellier II Place Eugène Bataillon, 34095 Montpellier cedex 05, FRANCE Laboratoire d'Informatique, de Robotique et

2

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

1

1

1

1

11

1 1

1

ab

cd00 01 1011

00

01

11

10

24 Transistors

12 Transistors

Effet de la factorisation

Page 3: 1 Polytech' Montpellier Université Montpellier II Place Eugène Bataillon, 34095 Montpellier cedex 05, FRANCE Laboratoire d'Informatique, de Robotique et

3

Soit F et G deux expressions algébriques de deux fonctions booléennesF = mi pour i=1,...,n G = mj pour j=1,...,m

Le produit algébrique F.G est défini par:

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

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

Produit algébrique

Page 4: 1 Polytech' Montpellier Université Montpellier II Place Eugène Bataillon, 34095 Montpellier cedex 05, FRANCE Laboratoire d'Informatique, de Robotique et

4

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ébriqueQ 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

F = a.b + a.d + c.b + d.c + eG = a + c G est un diviseur de F.

Q = b + d R = e

Le quotient Q (noté aussi F/G) et le reste R de cette division sont uniques

Si F = G.Q (càd R = 0) avec les mêmes conditions, G est un facteur algébrique de F

Division algébrique

Page 5: 1 Polytech' Montpellier Université Montpellier II Place Eugène Bataillon, 34095 Montpellier cedex 05, FRANCE Laboratoire d'Informatique, de Robotique et

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

Page 6: 1 Polytech' Montpellier Université Montpellier II Place Eugène Bataillon, 34095 Montpellier cedex 05, FRANCE Laboratoire d'Informatique, de Robotique et

6

Une expression algébrique F est une expression libre s’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 libreF = a.b.c n’est pas libreF = a.b + c est libre

Expression libre

Page 7: 1 Polytech' Montpellier Université Montpellier II Place Eugène Bataillon, 34095 Montpellier cedex 05, FRANCE Laboratoire d'Informatique, de Robotique et

7

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

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

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)

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

Noyau

Page 8: 1 Polytech' Montpellier Université Montpellier II Place Eugène Bataillon, 34095 Montpellier cedex 05, FRANCE Laboratoire d'Informatique, de Robotique et

8

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

Gain associé à un noyau

Page 9: 1 Polytech' Montpellier Université Montpellier II Place Eugène Bataillon, 34095 Montpellier cedex 05, FRANCE Laboratoire d'Informatique, de Robotique et

9

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 2K2 = 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)

Algorithme:1 - Calculer tous les noyaux de degré 0 de F2 - Classer les noyaux par gain croissant3 - Opérer les divisions successives de la fonction par les noyaux.

Factorisation d’une fonction simple - Algorithme 1

Page 10: 1 Polytech' Montpellier Université Montpellier II Place Eugène Bataillon, 34095 Montpellier cedex 05, FRANCE Laboratoire d'Informatique, de Robotique et

10

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

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

Attention : une fois une factorisation effectuée, il est possible que certaines des factorisations suivantes soient impossibles

Factorisation d’une fonction simple - Algorithme 1

Page 11: 1 Polytech' Montpellier Université Montpellier II Place Eugène Bataillon, 34095 Montpellier cedex 05, FRANCE Laboratoire d'Informatique, de Robotique et

11

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 2Division par K3F = 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)

Algorithme:1 - Calculer tous les noyaux de degré 0 de F2 - Diviser par le noyau de gain maximal et renommer ce noyau par une sous-

fonction3 - Recommencer en 1 jusqu’à ce qu’il n’y ait plus de noyau4 - Réinjecter toutes les sous-fonctions pour obtenir la forme factorisée de F.

Factorisation d’une fonction simple - Algorithme 2

Page 12: 1 Polytech' Montpellier Université Montpellier II Place Eugène Bataillon, 34095 Montpellier cedex 05, FRANCE Laboratoire d'Informatique, de Robotique et

12

f2

f1f1

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

Page 13: 1 Polytech' Montpellier Université Montpellier II Place Eugène Bataillon, 34095 Montpellier cedex 05, FRANCE Laboratoire d'Informatique, de Robotique et

13

Recherche de noyaux ou parties de noyaux communs

Algorithme:1 - On calcule tous les noyaux de chaque fonction Fi2 - On associe à chaque monôme de tous les noyaux une variable Tj3 - Pour chaque noyau on associe le monôme Tk qui compose ce noyau4 - 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

Page 14: 1 Polytech' Montpellier Université Montpellier II Place Eugène Bataillon, 34095 Montpellier cedex 05, FRANCE Laboratoire d'Informatique, de Robotique et

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)

Page 15: 1 Polytech' Montpellier Université Montpellier II Place Eugène Bataillon, 34095 Montpellier cedex 05, FRANCE Laboratoire d'Informatique, de Robotique et

15

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é à un noyau commun ou partie 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

21 littéraux

H = c.d + d.e

F1 = a.H + a.i

F2 = b.H + b.h

F3 = e.c.d + e.i

17 littéraux

Gain associé à H = c.d + d.e:

G = [1*(2 - 1) + 1*(2 - 1)] + [(4 - 1) * 2] - [4]G = 4

Page 16: 1 Polytech' Montpellier Université Montpellier II Place Eugène Bataillon, 34095 Montpellier cedex 05, FRANCE Laboratoire d'Informatique, de Robotique et

16

Recherche de monômes ou parties de monômes communes

Algorithme1 - On rajoute à chaque monôme de chaque fonction Fi une variable v i

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 construits3 - Les co-noyaux de noyaux de degré 0 dans lesquels aucune variable v i 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 + hF2 = 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

Page 17: 1 Polytech' Montpellier Université Montpellier II Place Eugène Bataillon, 34095 Montpellier cedex 05, FRANCE Laboratoire d'Informatique, de Robotique et

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 = a.b.c.d + d.e + hF2 = a.b.c.e + d.e + h

F1 = F3.d + d.e + hF2 = F3.e + d.e + h

F3 = abc

14 Littéraux 13 Littéraux

Sous-fonction commune F3 = a.b.c

G = [(3 - 1) * 2] - [3] = 1

Page 18: 1 Polytech' Montpellier Université Montpellier II Place Eugène Bataillon, 34095 Montpellier cedex 05, FRANCE Laboratoire d'Informatique, de Robotique et

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

Page 19: 1 Polytech' Montpellier Université Montpellier II Place Eugène Bataillon, 34095 Montpellier cedex 05, FRANCE Laboratoire d'Informatique, de Robotique et

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 fonctionNoyau 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 communsa'.b'.c' => Gain = [(3-1)*2 ] -[3] = 1

4 - Choix de la sous-fonction de gain maximalF1 = a'.b'.c'.d' + a'.d.G1 + a.b'.c'.dF2 = a'.b'.c'.d + a.d'.G1G1 = b + c 20 littéraux

Page 20: 1 Polytech' Montpellier Université Montpellier II Place Eugène Bataillon, 34095 Montpellier cedex 05, FRANCE Laboratoire d'Informatique, de Robotique et

20

Exemple

1 - Noyaux de chaque fonctionNoyau 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: AucunNoyau de G1: Aucun2 - Parties de noyaux communs

=> Aucun3 - Parties de monômes communs

a'.b'.c' => Gain 14 - Choix de la sous-fonction de gain maximal

F1 = b'.c'.G2 + a'.d.G1 F2 = a'.b'.c'.d + a.d'.G1G1 = b + cG2 = a'.d' + a.d 19 littéraux

F1 = a'.b'.c'.d' + a'.d.G1 + a.b'.c'.dF2 = a'.b'.c'.d + a.d'.G1G1 = b + c

Page 21: 1 Polytech' Montpellier Université Montpellier II Place Eugène Bataillon, 34095 Montpellier cedex 05, FRANCE Laboratoire d'Informatique, de Robotique et

21

Exemple

1 - Noyaux de chaque fonctionNoyau de F1: AucunNoyau de F2: AucunNoyau de G1: AucunNoyau 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 + cG2 = a'.d' + a.d

Page 22: 1 Polytech' Montpellier Université Montpellier II Place Eugène Bataillon, 34095 Montpellier cedex 05, FRANCE Laboratoire d'Informatique, de Robotique et

22

Décomposition technologique - niveau portes

Décomposition sur une bibliothèque d’éléments précaractérisés “Technology mapping” ou "assignation technologique"

Ensemble d’équationsbooléennes minimisées

Bibliothèque d’élémentsprédéfinis

Réseau de cellules(chemin critique etsurface optimisés)

Etape suivant la factorisation (minimisation du nombre de littéraux)

Page 23: 1 Polytech' Montpellier Université Montpellier II Place Eugène Bataillon, 34095 Montpellier cedex 05, FRANCE Laboratoire d'Informatique, de Robotique et

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

d+ea+bc

t5’

t1t2 + fg

F

ab+c

t4h + t2t3

Page 24: 1 Polytech' Montpellier Université Montpellier II Place Eugène Bataillon, 34095 Montpellier cedex 05, FRANCE Laboratoire d'Informatique, de Robotique et

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’;

d+e b+h

t4’

at2 +c

t1t3 + fgh

F

d+ea+bc

t5’

t1t2 + fg

F

ab+d

t4h + t2t3 t1 t2

t3

Page 25: 1 Polytech' Montpellier Université Montpellier II Place Eugène Bataillon, 34095 Montpellier cedex 05, FRANCE Laboratoire d'Informatique, de Robotique et

25

Implanter ce réseau en utilisant un ensemble de portes appartenant à une bibliothèque. Chaque porte a un coût (surface, délai, puissance, …)

Bibliothèque

Page 26: 1 Polytech' Montpellier Université Montpellier II Place Eugène Bataillon, 34095 Montpellier cedex 05, FRANCE Laboratoire d'Informatique, de Robotique et

26

Approche algorithmique

Approche algorithmique [DAGON, MISII]

1. 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.

2. 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

Page 27: 1 Polytech' Montpellier Université Montpellier II Place Eugène Bataillon, 34095 Montpellier cedex 05, FRANCE Laboratoire d'Informatique, de Robotique et

27

Graphe sujet

d+e b+h

t4’

at2 +c

t1t3 + fgh

b’ h’

a

d’ e’

hg

f

c

Graphe sujet représenté en opérateurs NAND2 et NOT

FF

t1 t2

t3

t1 = d + e;t2 = b + h;t3 = at2 + c;t4 = t1t3 + fgh;F = t4’;

Page 28: 1 Polytech' Montpellier Université Montpellier II Place Eugène Bataillon, 34095 Montpellier cedex 05, FRANCE Laboratoire d'Informatique, de Robotique et

28

Exemple de bibliothèque : graphes formes

inv(1) nand3 (3)

oai22 (4)

nor(2)

nor3 (3)

xor (5)

aoi21 (3)

and2(3)

nand2(2)

or2(3)

xnor (5)

Graphes des portes représentés en opérateurs NAND2 et NOT

Page 29: 1 Polytech' Montpellier Université Montpellier II Place Eugène Bataillon, 34095 Montpellier cedex 05, FRANCE Laboratoire d'Informatique, de Robotique et

29

Approche algorithmique

Une couverture est une collection de graphes formes telle que

1. chaque noeud du graphe sujet est contenu dans un (ou plusieurs) graphes formes

2. 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.

Page 30: 1 Polytech' Montpellier Université Montpellier II Place Eugène Bataillon, 34095 Montpellier cedex 05, FRANCE Laboratoire d'Informatique, de Robotique et

30

Graphe Sujet

t1 = d + e;

t2 = b + h;

t3 = at2 + c;

t4 = t1t3 + fgh;

F = t4’;

F

f

g

d

e

h

b

a

c

Page 31: 1 Polytech' Montpellier Université Montpellier II Place Eugène Bataillon, 34095 Montpellier cedex 05, FRANCE Laboratoire d'Informatique, de Robotique et

31

Couverture du graphe sujet

t1 = d + e;

t2 = b + h;

t3 = at2 + c;

t4 = t1t3 + fgh;

F = t4’;

F

f

g

d

e

h

b

a

cCoût total = 23

nand2(2)inv(1)

Page 32: 1 Polytech' Montpellier Université Montpellier II Place Eugène Bataillon, 34095 Montpellier cedex 05, FRANCE Laboratoire d'Informatique, de Robotique et

32

Une autre couverture (meilleure)

t1 = d + e;

t2 = b + h;

t3 = at2 + c;

t4 = t1t3 + fgh;

F = t4’;

F

f

g

d

e

h

b

a

c

aoi22(4)

and2(3)

or2(3)

or2(3)

Coût total = 19 nand2(2)

nand2(2)

inv(1)

Page 33: 1 Polytech' Montpellier Université Montpellier II Place Eugène Bataillon, 34095 Montpellier cedex 05, FRANCE Laboratoire d'Informatique, de Robotique et

33

Une autre couverture (encore meilleure)

t1 = d + e;

t2 = b + h;

t3 = at2 + c;

t4 = t1t3 + fgh;

F = t4’;

F

f

g

d

e

h

b

a

c

nand3(3)nand3(3)

oai21(3)oai21(3)

oai21 (3)oai21 (3)

Coût total = 15

and2(3)

inv(1)

nand2(2)

Page 34: 1 Polytech' Montpellier Université Montpellier II Place Eugène Bataillon, 34095 Montpellier cedex 05, FRANCE Laboratoire d'Informatique, de Robotique et

34

Technology mapping par couverture

Entrée

1. Réseau logique optimisé, indépendamment de la technologie

2. 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

Page 35: 1 Polytech' Montpellier Université Montpellier II Place Eugène Bataillon, 34095 Montpellier cedex 05, FRANCE Laboratoire d'Informatique, de Robotique et

35

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.

Page 36: 1 Polytech' Montpellier Université Montpellier II Place Eugène Bataillon, 34095 Montpellier cedex 05, FRANCE Laboratoire d'Informatique, de Robotique et

36

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 :

Cas général => problème de satisfiabilité

1

2

3

4

5

6

7 8

9

ab

cd

o1

o2

m1 :porte NAND2

m2 :porte OR2

Page 37: 1 Polytech' Montpellier Université Montpellier II Place Eugène Bataillon, 34095 Montpellier cedex 05, FRANCE Laboratoire d'Informatique, de Robotique et

37

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

Cas général => problème de satisfiabilité

Page 38: 1 Polytech' Montpellier Université Montpellier II Place Eugène Bataillon, 34095 Montpellier cedex 05, FRANCE Laboratoire d'Informatique, de Robotique et

38

problème de satisfiabilité

Sortie Couvre

m11 n7 n4,n6,n7

m10 n9 n7,n8,n9

….. …. ….

1

2

3

4

5

6

7 8

9

ab

cd

o1

o2Porte nand3 (3)

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

m11m10

Page 39: 1 Polytech' Montpellier Université Montpellier II Place Eugène Bataillon, 34095 Montpellier cedex 05, FRANCE Laboratoire d'Informatique, de Robotique et

39

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

2

3

4

5

6

7 8

9

ab

cd

o1

o2

Page 40: 1 Polytech' Montpellier Université Montpellier II Place Eugène Bataillon, 34095 Montpellier cedex 05, FRANCE Laboratoire d'Informatique, de Robotique et

40

Problème de satisfiabilité : entrées/sorties

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

2

3

Page 41: 1 Polytech' Montpellier Université Montpellier II Place Eugène Bataillon, 34095 Montpellier cedex 05, FRANCE Laboratoire d'Informatique, de Robotique et

41

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

Page 42: 1 Polytech' Montpellier Université Montpellier II Place Eugène Bataillon, 34095 Montpellier cedex 05, FRANCE Laboratoire d'Informatique, de Robotique et

42

1

2

3

4

5

6

7 8

9

ab

cd

o1

o2

Exemple

Page 43: 1 Polytech' Montpellier Université Montpellier II Place Eugène Bataillon, 34095 Montpellier cedex 05, FRANCE Laboratoire d'Informatique, de Robotique et

43

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)

Page 44: 1 Polytech' Montpellier Université Montpellier II Place Eugène Bataillon, 34095 Montpellier cedex 05, FRANCE Laboratoire d'Informatique, de Robotique et

44

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 1

2

3

4

5

6

7 8

9

ab

cd

o1

o2

m3

m2

On rajoute la clause : (m3 {m1,m2})i.e. (m'3 + m1) (m'3 + m2)

Page 45: 1 Polytech' Montpellier Université Montpellier II Place Eugène Bataillon, 34095 Montpellier cedex 05, FRANCE Laboratoire d'Informatique, de Robotique et

45

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 est

m'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).

Page 46: 1 Polytech' Montpellier Université Montpellier II Place Eugène Bataillon, 34095 Montpellier cedex 05, FRANCE Laboratoire d'Informatique, de Robotique et

46

1

2

3

4

5

6

7 8

9

ab

cd

o1

o2

m'm'33 m'm'55 m'm'66 m'm'77 m'm'88 m'm'99 m'm'1010 m m1212 m m1313 m'm'1414

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

Exemple

Page 47: 1 Polytech' Montpellier Université Montpellier II Place Eugène Bataillon, 34095 Montpellier cedex 05, FRANCE Laboratoire d'Informatique, de Robotique et

47

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

Complexité de la couverture de DAG

Page 48: 1 Polytech' Montpellier Université Montpellier II Place Eugène Bataillon, 34095 Montpellier cedex 05, FRANCE Laboratoire d'Informatique, de Robotique et

48

Couverture optimale par des arbres

F = (f1,f2)f1 = cd’+ abe + ce + a’b’de + cb’def2 = a ’ + abd + cd + e ’

Factorisation => g1 = a.b+cg2= b’.d.eg3= g1.e+ (a’+c).g2f1 = c d’ +g3f2 = a’+ d.g1+e’

g2

g1

g3

f2

f1

Partitionnement : Fonctions mono-sortie (arbres)

Page 49: 1 Polytech' Montpellier Université Montpellier II Place Eugène Bataillon, 34095 Montpellier cedex 05, FRANCE Laboratoire d'Informatique, de Robotique et

49

Mapping optimisé

Algorithme : programmation dynamique (des feuilles vers la racine)

Bibliothèque

inv = 2

nand2 =3

and2 =4

aoi21 = 6

nor2 = 2,5

a

b c

d

x

y z

t

u

Fonction

Page 50: 1 Polytech' Montpellier Université Montpellier II Place Eugène Bataillon, 34095 Montpellier cedex 05, FRANCE Laboratoire d'Informatique, de Robotique et

50

Mapping optimisé

Bibliothèque

a

b c

d

x

y z

t

u

Fonction

Sommet Porte Coût Coût total

x Nand2(b,c) 1 Nand2 3

y Inv(a) 1 Inv 2

z Nand2 (x,d) 2 Nand2 6

t Nand2 (y,z) 3 Nand2+1 Inv 11

u Inv(t) 3 Nand2+2 Inv 13

And2 (y,z) 2 Nand2+1And2+1Inv 12

AOI21(x,d,a) 1 Nand2+AOI21 9

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

Page 51: 1 Polytech' Montpellier Université Montpellier II Place Eugène Bataillon, 34095 Montpellier cedex 05, FRANCE Laboratoire d'Informatique, de Robotique et

51

Mapping optimisé

b c d a

Coût = 9

Page 52: 1 Polytech' Montpellier Université Montpellier II Place Eugène Bataillon, 34095 Montpellier cedex 05, FRANCE Laboratoire d'Informatique, de Robotique et

52

Exercice : optimisation vitesse

a

b c

d

x

y z

t

u

v

w

e

Exemple délais : inv = 2, nand2 =3 , and2 =4 , aoi21 = 6 , or2 = 3

Page 53: 1 Polytech' Montpellier Université Montpellier II Place Eugène Bataillon, 34095 Montpellier cedex 05, FRANCE Laboratoire d'Informatique, de Robotique et

53

Discussion

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

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

2NAND 1NAND+1AND+INV 2NAND2+(2INV)

Page 54: 1 Polytech' Montpellier Université Montpellier II Place Eugène Bataillon, 34095 Montpellier cedex 05, FRANCE Laboratoire d'Informatique, de Robotique et

54

Insertion systématique - un inverseur sur les entrées- une paire d ’inverseur sur les arcs internes

Inversion

Possibilité d'inverser les entrées et/ou la fonction

Possibilité d ’insérer des paires d'inverseur (de coût nul)

1 2

3

4

5 6

7

98

10 11

12

13

F = a’d ’+ a’bc

a

b c

d

x

y z

t

u

Page 55: 1 Polytech' Montpellier Université Montpellier II Place Eugène Bataillon, 34095 Montpellier cedex 05, FRANCE Laboratoire d'Informatique, de Robotique et

55

Inversion

o

a

d'

b' c'

Coût = 7,5

exemple : inv = 2, nand2 =3 , and2 =4 , aoi12 = 6 , nor2 = 2,5

Coût = 91 2

3

4

5 6

7

98

10 11

12

13

a

b c

d

x

y z

t

u

b c d a

Page 56: 1 Polytech' Montpellier Université Montpellier II Place Eugène Bataillon, 34095 Montpellier cedex 05, FRANCE Laboratoire d'Informatique, de Robotique et

56

Partitionnement direct : coupure à chaque divergence =>

fonctions mono-sortie (arbres)

=> pas de recouvrement des graphes formes , pas de

duplication

Inconvénient => beaucoup de "petits" arbres

Partitionnement

Page 57: 1 Polytech' Montpellier Université Montpellier II Place Eugène Bataillon, 34095 Montpellier cedex 05, FRANCE Laboratoire d'Informatique, de Robotique et

57

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

Partitionnement

SortieSortie

SortieSortie

Page 58: 1 Polytech' Montpellier Université Montpellier II Place Eugène Bataillon, 34095 Montpellier cedex 05, FRANCE Laboratoire d'Informatique, de Robotique et

58

Décomposition sur portes complexes CMOSBut: s’affranchir des limitations dues aux bibliothèques

Ensemble d’équationsbooléennes factorisées

Contraintes liéesà la technologie

Liste des portes etréseau de cellules(chemin critique etsurface optimisés)

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

Nb MOS max en série (k)Nb MOS max en // (k’)

Décomposition technologique - niveau transistors

Page 59: 1 Polytech' Montpellier Université Montpellier II Place Eugène Bataillon, 34095 Montpellier cedex 05, FRANCE Laboratoire d'Informatique, de Robotique et

59

Vdd

Vss

E S

Vdd Vdd

Vss

E1 E2

E1

E2

S

S

Vss Vss

Vdd

E1

E2

E1 E2

Portes inverseuses

Inverseur Nand2 Nor2

Portes élémentaires CMOS

Page 60: 1 Polytech' Montpellier Université Montpellier II Place Eugène Bataillon, 34095 Montpellier cedex 05, FRANCE Laboratoire d'Informatique, de Robotique et

60

Vss

Vdd

RéseauPMOS

RéseauNMOS

Ei S=F(Ei)

F(Ei)

F(Ei)*

Portes logiques statiques CMOS

Page 61: 1 Polytech' Montpellier Université Montpellier II Place Eugène Bataillon, 34095 Montpellier cedex 05, FRANCE Laboratoire d'Informatique, de Robotique et

61

Vss

Vss

F = a.b’ + c.(d’ + e’)

F’ = (a’ + b) . (c’ + d.e)F’* = a’.b + c’.(d + e)

S

Vdd

a’

b

Vdd

c’

d e

a’ b

c’d

e

Porte complexe CMOS

Page 62: 1 Polytech' Montpellier Université Montpellier II Place Eugène Bataillon, 34095 Montpellier cedex 05, FRANCE Laboratoire d'Informatique, de Robotique et

62

Décomposition

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)

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

Page 63: 1 Polytech' Montpellier Université Montpellier II Place Eugène Bataillon, 34095 Montpellier cedex 05, FRANCE Laboratoire d'Informatique, de Robotique et

63

Exemple de calcul des couples (S,P)

+

+ + + +(1,1) (1,1) (1,1) (1,1) (1,1)

(1,1) (1,1) (1,1) (1,1)

(1,1) (1,1)

(1,1) (1,1)(1,1)

(1,1)(1,1) (1,1)

(3,1) (2,1) (2,2) (4,2) (2,2)

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

(2,1)

(4,8)

(1,2)

F = abc + df + (a’+b’).(c’+f ’) + d’c’(i + j.k) + g’.(i’+k’)

SP

Page 64: 1 Polytech' Montpellier Université Montpellier II Place Eugène Bataillon, 34095 Montpellier cedex 05, FRANCE Laboratoire d'Informatique, de Robotique et

64

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

Page 65: 1 Polytech' Montpellier Université Montpellier II Place Eugène Bataillon, 34095 Montpellier cedex 05, FRANCE Laboratoire d'Informatique, de Robotique et

65

Expansion d’un nœud de coupure

+

(1,1) (1,1)

(1,1)

(1,1) (1,1)

(4,2)

(2,2)

(2,1)

k=k’=3

+

(1,1) (1,1)

(1,1)

(1,1)

(1,1)

(2,1)

(2,2)

(2,1)

(3,2)

Noeud de coupure

+

(1,1) (1,1)

(1,1)

(1,1)

(1,1)

(4,2)

(2,2)

(2,1)

(3,2)

(1,1) SF

Page 66: 1 Polytech' Montpellier Université Montpellier II Place Eugène Bataillon, 34095 Montpellier cedex 05, FRANCE Laboratoire d'Informatique, de Robotique et

66

Représentation de la sous-fonction

+ (2,2)

(2,1)

(3,2)

a

b

c d

SF

SF = a.(b + c.d)

SF’ = a’ + b’.(c’ + d’)SF’* = a’.(b’ + c’.d’)

Vss

Vss

SF

Vdd

b’

a’

Vdd

d

a’ b’

c’d’

Vss

c’

d’

Page 67: 1 Polytech' Montpellier Université Montpellier II Place Eugène Bataillon, 34095 Montpellier cedex 05, FRANCE Laboratoire d'Informatique, de Robotique et

67

Décomposition - Exemple (1)

+

+ + + +

(3,1) (2,1) (2,2) (4,2) (2,2)

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

(2,1)

(4,8)

a b c d f

a’ b’ c’ f’

d’ c’

i

j k

g’

i’ k’

F = abc + df + (a’+b’).(c’+f ’) + d’c’(i + j.k) + g’.(i’+k’)

(1,2)

Page 68: 1 Polytech' Montpellier Université Montpellier II Place Eugène Bataillon, 34095 Montpellier cedex 05, FRANCE Laboratoire d'Informatique, de Robotique et

68

Décomposition - Exemple (2)

+

+ + +

(3,1) (2,1) (2,2) (4,2) (2,2)

(1,2) (1,2)

(4,8)

a b c d f

a’ b’ c’ f’

d’

c’+ (2,2)

(2,1)i

j k

g’

i’ k’

(3,2)

SF1

(1,2)

Page 69: 1 Polytech' Montpellier Université Montpellier II Place Eugène Bataillon, 34095 Montpellier cedex 05, FRANCE Laboratoire d'Informatique, de Robotique et

69

Décomposition - Exemple (3)

+

+ + +

(3,1) (2,1) (2,2) (2,1) (2,2)

(1,2) (1,2)

(3,7)

SF1a b c d f

a’ b’ c’ f’

d’ g’

i’ k’

(1,2)

Page 70: 1 Polytech' Montpellier Université Montpellier II Place Eugène Bataillon, 34095 Montpellier cedex 05, FRANCE Laboratoire d'Informatique, de Robotique et

70

Décomposition - Exemple (4)

+

+ +

+(3,1)

(2,1)

(2,2)

(2,1) (2,2)

(1,2) (1,2)

(3,7)

SF1

a b c

d f

a’ b’ c’ f’

d’ g’

i’ k’

+

(3,3)

SF2

(1,2)

Page 71: 1 Polytech' Montpellier Université Montpellier II Place Eugène Bataillon, 34095 Montpellier cedex 05, FRANCE Laboratoire d'Informatique, de Robotique et

71

Décomposition - Exemple (5)

+

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

(2,5)

SF1d f d’ g’

i’ k’

+

SF2

(1,2)

Page 72: 1 Polytech' Montpellier Université Montpellier II Place Eugène Bataillon, 34095 Montpellier cedex 05, FRANCE Laboratoire d'Informatique, de Robotique et

72

Décomposition - Exemple (6)

+

(2,1)

(2,1) (2,2)

(2,5)

SF1

d f

d’ g’

i’ k’

+

SF2+ (2,3)

SF3

(1,2)

Page 73: 1 Polytech' Montpellier Université Montpellier II Place Eugène Bataillon, 34095 Montpellier cedex 05, FRANCE Laboratoire d'Informatique, de Robotique et

73

Décomposition - Exemple (7)

(2,1)

(2,3)

d f

+

SF2 SF3

Vss

F

Vdd

Vdd

d’ f’

Vdd

SF2’ SF3’

SF2’

SF3’

d’

f’

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

Page 74: 1 Polytech' Montpellier Université Montpellier II Place Eugène Bataillon, 34095 Montpellier cedex 05, FRANCE Laboratoire d'Informatique, de Robotique et

74

Exemple (8)

+

+ +

(3,1)(2,2)

(1,2) (1,2)

a b c

a’ b’ c’ f’

(3,3)

SF2

SF2 = abc + (a'+b') (c'+f)SF2' voulu

Vss

SF2'

a a’

b

c

a c

b’

b

b’

c’ f

a’

f

c’

Vdd

Page 75: 1 Polytech' Montpellier Université Montpellier II Place Eugène Bataillon, 34095 Montpellier cedex 05, FRANCE Laboratoire d'Informatique, de Robotique et

75

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

Page 76: 1 Polytech' Montpellier Université Montpellier II Place Eugène Bataillon, 34095 Montpellier cedex 05, FRANCE Laboratoire d'Informatique, de Robotique et

76

Circuits Logiques Programmables : PLD

PAL : Programmable Array LogicGAL : Generic Array LogicEPLD : Erasable Programmable Logic DeviceFPGA : Forecasting programmable Logic Array

PLD : Programmable Logic Device

PLD

PAL GAL EPLD FPGA

Page 77: 1 Polytech' Montpellier Université Montpellier II Place Eugène Bataillon, 34095 Montpellier cedex 05, FRANCE Laboratoire d'Informatique, de Robotique et

77

Circuits Logiques Programmables : PLD

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.

CPLD (Complex Programmable Logic Device) : Désigne des PLD ayant un haut niveau d'intégration.

Page 78: 1 Polytech' Montpellier Université Montpellier II Place Eugène Bataillon, 34095 Montpellier cedex 05, FRANCE Laboratoire d'Informatique, de Robotique et

78

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.

Page 79: 1 Polytech' Montpellier Université Montpellier II Place Eugène Bataillon, 34095 Montpellier cedex 05, FRANCE Laboratoire d'Informatique, de Robotique et

79

PAL : Programmable Array Logic

PAL 4 entrées 4 sorties

Page 80: 1 Polytech' Montpellier Université Montpellier II Place Eugène Bataillon, 34095 Montpellier cedex 05, FRANCE Laboratoire d'Informatique, de Robotique et

80

Implantation sur FPGA

Blocklogique

Blocklogique

Blocklogique

Blocklogique

Blocklogique

Blocklogique

Blocklogique

Blocklogique

Blocklogique

Switch Matrix:Interrupteurs

programmables

Page 81: 1 Polytech' Montpellier Université Montpellier II Place Eugène Bataillon, 34095 Montpellier cedex 05, FRANCE Laboratoire d'Informatique, de Robotique et

81

Architecture des blocks logiques : Actel

1

1

a

b

1

c d

1

f

f = a + b + c + d

Pas de programmation du block logique

1

0

1

0

0

1

Page 82: 1 Polytech' Montpellier Université Montpellier II Place Eugène Bataillon, 34095 Montpellier cedex 05, FRANCE Laboratoire d'Informatique, de Robotique et

82

Architecture des blocks logiques : Quicklogic

Pas de programmation du block logique

C

D

R

S

Q

Page 83: 1 Polytech' Montpellier Université Montpellier II Place Eugène Bataillon, 34095 Montpellier cedex 05, FRANCE Laboratoire d'Informatique, de Robotique et

83

Architecture des blocks logiques : Xilinx 3000

C

D

R

S

Q

C

D

R

S

Q

Look-upTable(LUT)

A

B

C

D

E

X

Y

Data in

Enable Clock

Clock

Reset

Global Reset Gnd

Vcc

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