• Aucun résultat trouvé

3.3 Isomorphisme de portes complexes

3.3.2 Solution proposee

+ + + + * points de coupe

Figure 3.6: Extraction de sous-graphes par insertion de points de coupe. Or le nombre d'extractions cro^it exponentiellement en fonction du nombre de points de coupe, plus fortement que pour les isomorphismes sructurels, notamment d^u a l'insertion de paires d'inverseurs, dont le but est d'accro^itre l'espace des solu-tions en permettant les isomorphismes de cellules a entrees ou sorties complementees. Cette procedure d'insertions multiplie par 2m le nombre d'extractions a e ectuer. Un algorithme d'insertions de points de coupe est fourni dans [26] pour les criteres sur-face (ou puissance) et vitesse. L'option sursur-face e ectue une extraction exhaustive des sous-graphes de m entrees au plus, tandis que l'option vitesse e ectue un parcours en profondeur de l'arbre puisque le chemin critique passe par le reseau de cellules le plus profond. Il est donc preferable de limiter la profondeur du recouvrement.

3.3.2 Solution proposee

La decomposition des cellules ou l'extraction des sous-graphes est une operation struc-turelle preliminaire a la procedure d'isomorphisme. Le probleme est qu'il n'y a pas de contr^ole possible entre cette phase structurelle et la phase d'isomorphisme, donc toutes les decompositions ou toutes les extractions doivent ^etre obtenues pour que la procedure d'isomorphisme accepte ou rejette le candidat. L'idee est de reunir la phase d'isomorphisme et la phase stucturelle dans une m^eme operation. Le but est

Isomorphisme de portes complexes

45 de pouvoir contr^oler la phase structurelle en fonction des indications fournies par la procedure d'isomorphisme. La procedure d'isomorphisme ne peut-^etre donc que structurelle. Elle est moins performante que son equivalente booleenne mais son util-isation dans un ot complet de decomposition est beaucoup plus ecace. L'approche ci-dessous ne cherche que les decompositions qui conduisent a un isomorphisme. Du nombre maximal de decompositions, on ne genere maintenant que le nombre minimal d'entre elles.

Une fonction booleenne est une expression booleenne parenthesee representee par un graphe oriente acyclique. Les nuds du graphe sont les operateurs Et, Ou ou Inv et les feuilles sont les litteraux representants soit des entrees primaires, soit des sous-fonctions. Deux graphes sont equivalents si leurs fonctions booleennes associees sont identiques. Un sous-graphe est la restriction du graphe a un sous-ensemble de ses nuds.

De nition 3.3.1 (Expansion de nud)

Soit un nud n Et (respectivement Ou) d'un graphe. Une expansion de n est une decomposition de n en nuds Et (respec-tivement Ou) binaires.

De nition 3.3.2 (Reduction de nud)

Soit un ensemble de nuds Et (respec-tivement Ou) consecutifs (i.e., relies par une relation pere- ls). La reduction de cet ensemble consiste a le remplacer par un nud n-aire Et (respectivement Ou) equivalent. + + + + + une expansion réduction

Figure 3.7: Expansions et reduction.

La reduction est l'operation inverse de l'expansion, presentees en gure 3.7: l'expansion de droite n'utilise que des nuds binaires tandis que la reduction de gauche rassemble tous les nuds du m^eme type pour former un nud de taille maximale. La presence d'inverseurs entre les nuds Et et Ou conduit a de nombreuses representations gr^ace aux lois de DeMorgan. Deux d'entre elles sont importantes pour lesquelles les nuds internes sont depourvus d'operateurs Inv.

De nition 3.3.3 (Representation naturelle d'un graphe)

La representation na-turelle consiste a repousser les inverseurs aux feuilles du graphe, gr^ace aux lois de DeMorgan.

Isomorphisme de portes complexes

46

De nition 3.3.4 (Representation inversee d'un graphe)

la representation inversee consiste a introduire dans la representation naturelle du graphe une paire d'inverseurs et a en propager un jusqu'aux feuilles.

* + + * + + représentation naturelle représentation inversée

Figure 3.8: Representations naturelle et inversee.

La gure 3.8 montre ces deux representations qui consistent a enlever les inverseurs des nuds internes: au centre, les inverseurs sont repousses aux feuilles de l'arbre, tandis qu'a droite, un des inverseurs est laisse a la racine de l'arbre et les autres aux feuilles. Le graphe resultant est soit complemente (representation inversee), soit direct (representation naturelle). Le recouvrement consiste a choisir une representation commune pour le graphe de la fonction et des cellules de bibliotheque a n de detecter les isomorphismes. On choisit pour le graphe l'expansion de la representation naturelle qui minimise la profondeur des nuds binaires. Ce choix a pour but de diminuer le chemin critique. On choisit pour les cellules la forme reduite des representations naturelles et inversees. En e et, l'utilisation des operateurs Nand2/Inv permet de representer les nuds Et et Ou. A present, la representation distincte des nuds Et et Ou nous oblige a gerer les deux formes equivalentes de DeMorgan. Le contr^ole que nous e ectuons sur le choix des decompositions vient de la decoration que nous apportons aux cellules et au graphe de la fonction a decomposer:

De nition 3.3.5 (Decoration des cellules)

La decoration d'un nud Et ou Ou est le nombre de nuds binaires contenus dans une expansion de ce nud. Il s'agit du nombre de ses ls moins un.

De nition 3.3.6 (Decoration du graphe)

La decoration d'un nud binaire est le nombre maximal de nuds binaires consecutifs de m^eme type contenus dans le sous-graphe de racine ce nud. Elle se calcule par la recursion deco (n) = 1+P

videco(vi), ou vi sont les ls de m^eme type que n.

Nous cherchons a present a recouvrir un sous-graphe du reseau booleen par un nud d'une cellule de bibliotheque (pas encore par une cellule entiere). Pour detecter un isomorphisme potentiel, nous acceptons provisoirement les cellules pour lesquelles le nud est decomposable dans le graphe et nous eliminons les autres. La condition pour qu'un tel recouvrement soit possible, mais pas encore certain, est la suivante:

Isomorphisme de portes complexes

47

Propriete 3.3.1 (Condition d'isomorphisme)

Soit un nud g du graphe a re-couvrir par un nud c d'une cellule de bibliotheque. Un isomorphisme est possible entre ces deux nuds si et seulement si:

(

type(g) =type(c)

deco(c) deco (g): (3.5)

En e et, si la decoration de la cellule est inferieure a celle du graphe, alors il existe une expansion de la cellule isomorphe au sous-graphe de racine g. Dans le cas contraire, au moins un des nuds de la cellule ne trouvera pas un nud du graphe du m^eme type. La topologie du graphe dirige la decomposition des cellules: les seules decompositions generees sont celles qui conduisent a un isomorphisme.

Une cellule est constituee de plusieurs niveaux de nuds. (Par exemple, un AO21 est constitue d'un nud Ou suivi d'un nud Et.) L'algorithme cherche toutes les expansions du nud racine. Pour celles-ci, il associe les nuds ls de la cellule avec les sous-graphes de l'expansion. Pour chaque association, les deux phases successives (expansion et association) sont repetees jusqu'aux feuilles de la cellule. Toutes les combinaisons d'expansions et d'associations sont les solutions de l'algorithme. Une cellule realisant un isomorphisme possede forcement une telle decomposition et une de ces decompositions conduit a un isomorphisme puisque les deux graphes sont isomorphes.