Gei 431 Architecture des ordinateurs II – Frédéric Mailhot La synthèse automatique de circuits Comment fait-on pour faire le design des processeurs et.

Slides:



Advertisements
Présentations similaires
Algorithmes et structures de données avancés
Advertisements

Classification et prédiction
Calculs de complexité d'algorithmes
Yann Chevaleyre et Jean-Daniel Zucker
INTRODUCTION.
Cours d’Automatique MASTER OIV
MRP, MRP II, ERP : Finalités et particularités de chacun.
Algorithmes Branch & Bound
Initiation à la conception de systèmes d'information
Heuristiques A. Introduction B. Recherche d ’une branche
Algorithmique et Programmation
Etude globale de système.
Les fichiers indexés (Les B-arbres)
Algorithme de Bellman-Ford
Rappel... Caractérisation des matrices inversibles: Matrices bloc.
Introduction Objectifs du cours Évaluation Références
Hiérarchie de la mémoire
Systèmes Superscalaires et VLIW
GPA750 Les ateliers multigammes Chapitre 5
Algorithmes d ’approximation
Recherche Opérationnelle
Mise en oeuvre des MMCs L'utilisation des MMCs en reconnaissance des formes s'effectue en trois étapes : définition de la topologie de la chaîne de Markov,
Programmation dynamique
UML Séquence 3 : (Diagramme d’activités)
Programmation linéaire en nombres entiers : les méthodes de troncature
L’adaptativité pour un solveur de l’équation de Vlasov

IFT Complexité et NP-complétude Chapitre 0 Rappels.
Analyse d’algorithmes
Structures alternative et répétitive
MAXIMISER les RESULTATS
IFT Complexité et NP-complétude
Programmation procédurale Transformations
Présentation de la méthode des Eléments Finis
Examen partiel #1 Mercredi le 4 octobre de 13h30 à 15h20
Conditions aux Frontières Ouvertes
LA LOGIQUE ALGORITHMIQUE
Institut de Formation aux Métiers de l’industrie Automobile.
Gei 431 Architecture des ordinateurs II – Frédéric Mailhot Synthèse logique: Quelques algorithmes et techniques La synthèse logique consiste en un très.
Le VHDL : SOMMAIRE I Introduction II Éléments généraux du langage
D.E ZEGOUR Ecole Supérieure d’Informatique
O-notation 1. Introduction 2. O-notation 3. Opérations 3.1 Somme 3.2 Produit 4. Règles générales 5. Exemple 6.Analyse des algorithmes récursifs 6.1 Dilatation.
Programmation dynamique
INF3500 : Conception et implémentation de systèmes numériques Pierre Langlois Implémentation d’un.
INTRODUCTION.
CHAPITRE 3: LES NOMBRES.
D.E ZEGOUR Ecole Supérieure d’Informatique
REGLAGE ECONOMIQUE DES PRODUCTIONS Le réglage tertiaire.
Les algorithmes de découplage vitesse-pression
Rencontre des écoles ciblées du secondaire 22 mars 2004
Le GRAFCET.
Etude des systèmes Notion de système.
DUPLAN Julian Génie-civil Etude de la distribution du renforcement des structures en maçonnerie par fibres de carbone, en utilisant l’optimisation topologique.
Université de Sherbrooke
Optimisation par les algorithmes génétiques
Institut Supérieur des Sciences Appliquées et de Technologie Sousse
Algorithmique et programmation (1)‏
Optimisation de requêtes
Programmation linéaire en nombres entiers
Calcul parallèle => partitionner les données en sous-groupes associés aux processeurs. P0 P2 P1.
2003 (revisé 2008)SEG Chapitre 11 Chapitre 1 “The Systems Engineering Context” Le contexte du génie de systèmes.
Algorithmes Branch & Bound
© Petko ValtchevUniversité de Montréal Février IFT 2251 Génie Logiciel Conception Hiver 2002 Petko Valtchev.
Le langage Racket (Lisp)
1 École des Mines de Saint-Etienne. 158, cours Fauriel Saint-Etienne Cedex 2. Tél Fax Jean-Jacques Girardot
Optimisation pour la Conception de Systèmes Embarqués
INF3500 : Conception et implémentation de systèmes numériques Pierre Langlois Flot de conception de.
1/16 Chapitre 3: Représentation des systèmes par la notion de variables d’état Contenu du chapitre 3.1. Introduction 3.2. Les variables d’état d’un système.
Post-optimisation, analyse de sensibilité et paramétrage
L'exécution d'un programme nécessite l'utilisation des ressources de l'ordinateur : temps de calcul pour exécuter les opérations, et l'occupation de la.
Transcription de la présentation:

Gei 431 Architecture des ordinateurs II – Frédéric Mailhot La synthèse automatique de circuits Comment fait-on pour faire le design des processeurs et des circuits numériques en général? Ce qui suit donne un aperçu des différentes techniques utilisées à cette fin.

© 2001 Frédéric MailhotUniversité de Sherbrooke La synthèse automatisée de circuits Qu’est-ce que la synthèse? Depuis maintenant près de 15 ans, le design de circuit numériques complexes passe presque toujours par la synthèse automatisée:  Les circuits sont trop complexes pour pouvoir en faire le design sans aide  Le temps requis pour parvenir à la mise en marché (« time to market ») est capital, d’où l’importance d’utiliser des méthodes rapides et qui garantissent l’atteinte des résultats escomptés de performance  La méthodologie actuelle de synthèse de circuit permet de produire plus rapidement des circuits plus performants

© 2001 Frédéric MailhotUniversité de Sherbrooke La synthèse automatisée de circuits Les étapes de la synthèse de circuits Synthèse de haut niveau Synthèse logique Synthèse physique Analyse syntaxique Scheduling Allocation des ressources Synthèse 2 niveaux Synthèse multi-niveaux Lien avec la technologie Placement Routage Restructuring Retiming Extraction de noyauxTechnology mapping Buffering Global: floorplan Local Global – Vdd, Vss, Bus Local

© 2001 Frédéric MailhotUniversité de Sherbrooke La synthèse automatisée de circuits Les étapes de la synthèse de circuits Synthèse de haut niveau Synthèse logique Synthèse physique Analyse syntaxiqueScheduling Allocation des ressources Synthèse 2 niveauxSynthèse multi-niveaux Lien avec la technologie Placement Routage Restructuring Retiming Extraction de noyauxTechnology mapping Buffering Global: floorplan Local Global – Vdd, Vss, Bus Local

© 2001 Frédéric MailhotUniversité de Sherbrooke La synthèse automatisée de circuits Synthèse de haut niveau À partir d’un langage de description de matériel (VHDL, Verilog), on extrait un graphe qui représente la fonctionalité:  Graphe de dépendance de données (data flow graph)  Graphe de séquencement (sequencing graph)

© 2001 Frédéric MailhotUniversité de Sherbrooke La synthèse automatisée de circuits Graphe de dépendance de données (data flow graph) Représente les liens entre les différents composants qui produisent un certain comportement. Ici, les nœuds représentent les opérations, et les arcs représentent les dépendances entre les opérations Exemple: Soit la portion de code suivante: xl = x + dx ul = u – ( 3 * x * u * dx) – ( 3 * y * dx) yl = y + u * dx c = xl < a

© 2001 Frédéric MailhotUniversité de Sherbrooke La synthèse automatisée de circuits Graphe de dépendance de données (2) - + **** < + ** - 3 x u dx 3yu x a xl u dxy ul yl c xl = x + dx ul = u – ( 3 * x * u * dx) – ( 3 * y * dx) yl = y + u * dx c = xl < a

© 2001 Frédéric MailhotUniversité de Sherbrooke La synthèse automatisée de circuits Graphe de dépendance de données (2) -+ ** * < + ** - 3 x u dx 3y x a xl u dxy ul yl c xl = x + dx ul = u – ( 3 * x * u * dx) – ( 3 * y * dx) yl = y + u * dx c = xl < a Optimisation possible

© 2001 Frédéric MailhotUniversité de Sherbrooke La synthèse automatisée de circuits Graphe de sequencement (sequencing graph) Extension du graphe de dépendance de données Utile pour représenter à la fois la partie opérative et la partie contrôle d’un circuit (data-path et control path) Ajouts au graphe de dépendance de données:  Hiérarchie  Commandes de contrôle de données (boucles et branchements)  Graphe polaire, avec une source et un puit (source et sink)

© 2001 Frédéric MailhotUniversité de Sherbrooke La synthèse automatisée de circuits Graphe de séquencement - + **** < + ** - NOP xl = x + dx ul = u – ( 3 * x * u * dx) – ( 3 * y * dx) yl = y + u * dx c = xl < a

© 2001 Frédéric MailhotUniversité de Sherbrooke La synthèse automatisée de circuits Utilisation du graphe de séquencement Chaque nœud est soit:  En attente d’exécution  En exécution  Après l’exécution On suppose qu’un nœud est exécuté lorsque tous ses fanins ont complété leur exécution On annote les nœuds avec des informations supplémentaires:  Délai  Surface

© 2001 Frédéric MailhotUniversité de Sherbrooke La synthèse automatisée de circuits Transformation du HDL On lit d’abord le HDL, et à l’aide d’un analyseur syntaxique (parser), on crée le graphe correspondant Le graphe initial est transformé:  Réduction de la hauteur des arbres  Propagation des constantes  Élimination de sous-expressions communes  Élimination de code mort  Réduction de la complexité des opérateurs  Déplacement de code  Expansion des boucles  Expansion des conditions

© 2001 Frédéric MailhotUniversité de Sherbrooke La synthèse automatisée de circuits Transformations: Réduction de la hauteur des arbres: x = a + b * c + d Devientx = (a + d) + (b * c) Propagation de constantes: a = 0; b = a + 1; c = 2 * b; devienta = 0; b = 1; c = 2;

© 2001 Frédéric MailhotUniversité de Sherbrooke La synthèse automatisée de circuits Transformations: (2) Élimination de sous-expressions communes: a = x + y; b = a + 1; c = x + y; Devienta = x + y; b = a + 1; c = a; Élimination de code mort: a = x; b = x + 1; c = 2 * x; devient b = x + 1; c = 2 * x;

© 2001 Frédéric MailhotUniversité de Sherbrooke La synthèse automatisée de circuits Transformations: (3) Réduction de la complexité d’un opérateur: a = x^2; b = 3 * x; Devienta = x * x; t = x << 1; b = x + t; Déplacement de code : for (i = 1; i < a * b) {} devient t = a * b; for ( i = 1; i < t) {}

© 2001 Frédéric MailhotUniversité de Sherbrooke La synthèse automatisée de circuits Transformations: (4) Expansion des boucles: x = 0; for (i = 1; i < 3; i++) {x = x + i;} Devientx = 0; x = x + 1; x = x + 2; x = x + 3; Expansion des conditions (variables logiques): y = a b; if (a) {x = b + d;} else {x = b d;} devient y = a b; x = y + d ( a + b);

© 2001 Frédéric MailhotUniversité de Sherbrooke La synthèse automatisée de circuits Les ressources On peut séparer les ressources d’un circuit en 3 classes:  Les ressources fonctionnelles, qui transforment les données (e.g. additionneur, multiplieur)  Les ressources de mémoires, qu’on utilise pour conserver les données (e.g. mémoire vive, registres)  Les ressources d’interface (e.g. bus et ports d’entrées/sorties)

© 2001 Frédéric MailhotUniversité de Sherbrooke La synthèse automatisée de circuits Les contraintes Pour un circuit donné, il y aura typiquement des contraintes de surface et de délai Les contraintes de surface (et de délai, les 2 sont souvent corrélées) ont un impact sur le choix des ressources Les contraintes de délai proviennent souvent de la période de l’horloge projetée, ainsi que des temps d’arrivée des entrées et des temps requis des sorties. Elles ont un impact sur le séquencement des opérations dans le temps (scheduling)

© 2001 Frédéric MailhotUniversité de Sherbrooke La synthèse automatisée de circuits Scheduling Étant donné un graphe de séquencement et un ensemble de contraintes, on doit: - décider quelle ressource utiliser pour chaque nœud - décider quand effectuer l’opération (scheduling) - + **** < + ** - NOP

© 2001 Frédéric MailhotUniversité de Sherbrooke La synthèse automatisée de circuits Scheduling (2) On peut procéder de 2 façons pour résoudre le problème de l’allocation de ressource et du scheduling:  Commencer par le scheduling, et enchaîner avec l’allocation de données  Procéder à l’inverse Puisque le facteur important est habituellement le délai, on commence souvent par le scheduling

© 2001 Frédéric MailhotUniversité de Sherbrooke La synthèse automatisée de circuits Scheduling (3) On va établir les deux solutions extrêmes:  Dès que possible  Aussi tard que possible - + * * ** < + * * - NOP - + **** < + ** - T = 1 T = 2 T = 3 T = 4

© 2001 Frédéric MailhotUniversité de Sherbrooke La synthèse automatisée de circuits Scheduling (4) À l’aide des 2 extrêmes de scheduling, on établit la « mobilité », i.e. l’ensemble des positions (dans le temps) possibles pour les nœuds Il s’agit ensuite de trouver une des ces positions qui satisfait les contraintes de délai du système  On utilise l’algorithme de Bellman-Ford pour établir la faisabilité du système (détecte les boucles dans le graphe)  On utilise l’algorithme de Liao-Wong pour trouver une solution valable.

© 2001 Frédéric MailhotUniversité de Sherbrooke La synthèse automatisée de circuits Allocation de ressources Soit à la suite du scheduling, ou de concert avec le scheduling, on doit décider des ressources (e.g. additionneurs, multiplieurs) qui sont requis  On peut toujours réutiliser la même ressource pour toutes les opérations, à condition d’introduire des délais dans l’exécution des opérations et d’utiliser des multiplexeurs… Lorsque scheduling et allocation de ressources sont terminés, on produit une description logique du système, qui prend la forme d’un ensemble d’équations booléennes interreliées

© 2001 Frédéric MailhotUniversité de Sherbrooke La synthèse automatisée de circuits Réseau Booléen On appelle « réseau Booléen » le système d’équation produit: x = a + b; t = a b’ + a’b; y = t c z = x + t; w = z’ + y;

© 2001 Frédéric MailhotUniversité de Sherbrooke La synthèse automatisée de circuits Les étapes de la synthèse de circuits Synthèse de haut niveau Synthèse logique Synthèse physique Analyse syntaxiqueScheduling Allocation des ressources Synthèse 2 niveauxSynthèse multi-niveaux Lien avec la technologie Placement Routage Restructuring Retiming Extraction de noyauxTechnology mapping Buffering Global: floorplan Local Global – Vdd, Vss, Bus Local

© 2001 Frédéric MailhotUniversité de Sherbrooke La synthèse automatisée de circuits Synthèse logique: 1ère étape: synthèse à 2 niveaux Les équations logiques produites par la synthèse de haut niveau sont souvent beaucoup plus complexes que nécessaires. La première étape est de simplifier chaque équation, qui apparaît à ce stade sous forme de somme de produits:  On tente de limiter le nombre de « litéraux », i.e. le nombre de fois que les variables ou leur complément apparaissent dans les équations

© 2001 Frédéric MailhotUniversité de Sherbrooke La synthèse automatisée de circuits Synthèse à 2 niveaux On représente le circuit par un ensemble de fonctions à n entrées et m sorties Par exemple:  f: B 3 -> {0, 1, *} 2  f 1 = a’ b’ c’ + a’ b’ c + a b’ c + a b c + a b c’  f 2 = a’ b’ c + a b’ c c b a f1f1 f2f2 a b c a b c’ a’ b’ c’a b’ c’ a b c’ a b’ c a’ b’ c a’ b c Diagramme de Hasse

© 2001 Frédéric MailhotUniversité de Sherbrooke La synthèse automatisée de circuits Synthèse à 2 niveaux: minterms Minterms de f 1 : a’ b’ c’, a’ b’ c, a b’ c, a b c, a b c’ Minterms de f 2 : a’ b’ c, a b’ c c b a f1f1 f2f2

© 2001 Frédéric MailhotUniversité de Sherbrooke La synthèse automatisée de circuits Cubes de f 1 : Tous les minterms de f1 + a’ b’, b’ c, a c, a b Cubes de f 2 : Tous les minterms de f2 + b’ c Synthèse à 2 niveaux: cubes c b a f1f1 f2f2

© 2001 Frédéric MailhotUniversité de Sherbrooke La synthèse automatisée de circuits En utilisant l’encodage suivant: {0,1,*} pour les entrées inversées (0), directes (1) ou qui n’aparaissent pas (*) {0,1} pour les sorties qui ont une valeur VRAI ou DON’T CARE (1) ou INDÉFINIES (0) On obtient les codes suivants pour l’exemple ci-haut:  : 00* 10  : 1*1 10  : *01 11  : 11* 10 Synthèse à 2 niveaux: implicants multi- sorties c b a f1f1 f2f2     

© 2001 Frédéric MailhotUniversité de Sherbrooke La synthèse automatisée de circuits Une couverture est un ensemble d’implicants qui couvrent tous les minterms d’une fonction, sans intersecter les zéros (off-set) de celle-ci La couverture minimum est celle qui a la plus petite cardinalité (plus petit nombre d’implicants) Exemple: 3 couvertures possibles pour f 1 et f 2 : C 1 = 00* 10C 2 = 00* 10C 3 = 00* 10 *01 11 *01 11 * * * 10 1* * 10 Synthèse à 2 niveaux: couverture c b a f1f1 f2f2     

© 2001 Frédéric MailhotUniversité de Sherbrooke La synthèse automatisée de circuits Couverture qui est non-redondante, et minimum Note: la couverture minimum n’est pas nécessairement celle qui a le coût le plus bas (tout dépend du coût associé à chacun des implicants). Toutefois, pour les besoins de l’optimisation à 2 niveaux, il est habituel de confondre les deux (dit autrement, on suppose que le coût de chaque implicant est le même) Synthèse à 2 niveaux: couverture non- redondante c b a f1f1 f2f2     

© 2001 Frédéric MailhotUniversité de Sherbrooke La synthèse automatisée de circuits Couverture qui n’est PAS non-redondante, et PAS minimum Synthèse à 2 niveaux: couverture non- redondante c b a f1f1 f2f2      c b a f1f1 f2f2      Couverture qui est non-redondante, mais PAS minimum

© 2001 Frédéric MailhotUniversité de Sherbrooke La synthèse automatisée de circuits Un implicant est premier s’il n’est pas strictement contenu dans aucun autre implicant de la fonction considérée Dans l’exemple plus haut, a’b’ est premier, mais a’b’c’ n’est pas premier (a’b’  a’b’c’) Synthèse à 2 niveaux: couverture première c b a f1f1 f2f2 

© 2001 Frédéric MailhotUniversité de Sherbrooke La synthèse automatisée de circuits Couverture première, mais PAS non-redondante (  n’est pas nécessaire) Synthèse à 2 niveaux: couverture première, non-redondante c b a f1f1 f2f2      c b a f1f1 f2f2 ’’  ’’ ’’  Couverture qui n’est PAS première, mais qui EST non-redondante (  ’,  ’ et  ’ ne sont pas premiers)

© 2001 Frédéric MailhotUniversité de Sherbrooke La synthèse automatisée de circuits Synthèse à 2 niveaux: définitions Couverture non-redondante: couverture dont on ne peut enlever aucun implicant sans modifier la fonction couverte Implicant premier: implicant qui n’est contenu en entier dans aucun autre implicant Couverture première: couverture dont tous les implicants sont premiers Couverture minimale: couverture dont le nombre d’implicants est minimal

© 2001 Frédéric MailhotUniversité de Sherbrooke La synthèse automatisée de circuits Synthèse à 2 niveaux: implicants essentiels Un implicant premier est essentiel s’il couvre un minterm qui n’est couvert par aucun autre implicant de la couverture de la fonction c b a f1f1 f2f2       : 00* 10est essentiel pour  : *01 11est essentiel pour *01 -1  : 1*1 10  : 11* 10est essentiel pour

© 2001 Frédéric MailhotUniversité de Sherbrooke La synthèse automatisée de circuits Synthèse à 2 niveaux: but Idéalement: obtenir une couverture minimum  Méthodes standard: Quine-McCluskey, Espresso exact: Génèrent tous les implicants premiers Établissent la couverture minimum  Problème: Exigences de calcul trop grandes (NP- complet) But plus réalisable: obtenir une couverture première et non-redondante (peut être fait en utilisant des méthodes heuristiques rapides)

© 2001 Frédéric MailhotUniversité de Sherbrooke La synthèse automatisée de circuits Synthèse à 2 niveaux: quelques méthodes courantes Expansion (expand): rend une couverture première et élimine chaque implicant directement contenu dans un autre implicant c b a

© 2001 Frédéric MailhotUniversité de Sherbrooke La synthèse automatisée de circuits Synthèse à 2 niveaux: quelques méthodes courantes (2) Réduction (reduce): rend une couverture non première, en réduisant la taille d’implicants individuels c b a

© 2001 Frédéric MailhotUniversité de Sherbrooke La synthèse automatisée de circuits Synthèse à 2 niveaux: quelques méthodes courantes (3) Déformation (reshape): modifie une couverture en opérant sur une paire d’implicants, l’un étant changé par expansion, l’autre par réduction c b a

© 2001 Frédéric MailhotUniversité de Sherbrooke La synthèse automatisée de circuits Synthèse à 2 niveaux: quelques méthodes courantes (4) Non-redondant (irredundant): rend une couverture non-redondante c b a

© 2001 Frédéric MailhotUniversité de Sherbrooke La synthèse automatisée de circuits Synthèse 2 niveaux: sommaire Pour la synthèse à 2 niveaux, on utilise un ensemble de méthodes heuristiques (par exemple expansion, réduction, déformation et non- rédondant) Les méthodes heuristiques sont utilisées de façon itérative sur une réprésentation compacte des équations logiques, jusqu’à ce la taille de celles-ci soit minimisée Espresso, mis au point chez IBM (Yorktown) et ensuite à Berkeley, est l’outil de choix pour la synthèse 2 niveaux depuis près de 20 ans.

© 2001 Frédéric MailhotUniversité de Sherbrooke La synthèse automatisée de circuits Les étapes de la synthèse de circuits Synthèse de haut niveau Synthèse logique Synthèse physique Analyse syntaxiqueScheduling Allocation des ressources Synthèse 2 niveauxSynthèse multi-niveaux Lien avec la technologie Placement Routage Restructuring Retiming Extraction de noyauxTechnology mapping Buffering Global: floorplan Local Global – Vdd, Vss, Bus Local

© 2001 Frédéric MailhotUniversité de Sherbrooke La synthèse automatisée de circuits Synthèse multi-niveaux - Introduction La synthèse à 2 niveaux permet d’optimiser l’expression de chaque expression logique individuelle, mais on doit aussi souvent restructurer le réseau Booléen, i.e. modifier les fonctions des équations logiques et leur interdépendance. Pour ce faire, on doit faire des opérations qui vont ajouter/modifier/enlever des nœuds du réseau Booléen

© 2001 Frédéric MailhotUniversité de Sherbrooke La synthèse automatisée de circuits Synthèse multi-niveaux – Introduction (2) Le problème de restructuration optimum d’un réseau de portes logiques est extrêmement complexe. Encore une fois, il n’est pas possible d’obtenir de solution exacte, et on doit recourir à des approches heuristiques Il existe 2 écoles de pensées pour faire la synthèse multi- niveaux:  Utilisation de règles (rule base)  Utilisation d’algorithmes De nos jours, la majorité des outils de synthèse utilisent des algorithmes, que nous allons maintenant étudier brièvement

© 2001 Frédéric MailhotUniversité de Sherbrooke La synthèse automatisée de circuits Synthèse multi-niveaux Le but de cette étape est de modifier les équations logiques et leurs relations, en vue d’obtenir un « meilleur » circuit À ce stade de la synthèse, on utilise des équations logiques comme base de représentation. Il est donc difficile de savoir précisément le délai et/ou la surface des portes logiques qu’on modifie Il apparaît qu’il y a une assez bonne corrélation entre le nombre total de litéraux dans les équations et le délai et la taille du circuit final. On utilise donc souvent le nombre de litéraux comme métrique pour mesurer si une opération donne de bons résultats ou non.

© 2001 Frédéric MailhotUniversité de Sherbrooke La synthèse automatisée de circuits Synthèse multi-niveaux – Les transformations De nombreuses techniques heuristiques existent pour changer la structure des équations logiques. Typiquement, on utilise des opérations locales qui font évoluer progressivement le réseau Booléen vers un circuit de meilleure qualité Techniques utilisées:  Élimination  Extraction  Décomposition  Simplification  Substitution  Factorisation

© 2001 Frédéric MailhotUniversité de Sherbrooke La synthèse automatisée de circuits r = p + a’s = r + b’ a b c d e v = a’d + b d + c’d + a e’ p = c e + d e t = a c + a d + b c + b d + e q = a + bu = q’ c + q c’ + q c w x y z Synthèse multi-niveaux – les transformations (2) Soit le réseau Booléen suivant. Les exemples qui suivent démontrent les différentes transformation du circuit

© 2001 Frédéric MailhotUniversité de Sherbrooke La synthèse automatisée de circuits r = p + a’s = r + b’ a b c d e v = a’d + b d + c’d + a e’ p = c e + d e t = a c + a d + b c + b d + e q = a + bu = q’ c + q c’ + q c w x y z Synthèse multi-niveaux – les transformations (3) Élimination (un nœud interne est enlevé, et la variable correspondante est remplacée par son équation) r = p + a’ + b’ a b c d e v = a’d + b d + c’d + a e’ p = c e + d e t = a c + a d + b c + b d + e q = a + bu = q’ c + q c’ + q c w x y z

© 2001 Frédéric MailhotUniversité de Sherbrooke La synthèse automatisée de circuits Synthèse multi-niveaux – les transformations (4) Extraction (une sous-expression commune à deux nœuds ou plus est extraite et devient un nouveau noeud r = p + a’s = r + b’ a b c d e v = a’d + b d + c’d + a e’ p = c e + d e t = a c + a d + b c + b d + e q = a + bu = q’ c + q c’ + q c w x y z r = p + a’s = r + b’ a b c d e v = a’d + b d + c’d + a e’ p = k e k = c + d q = a + bu = q’ c + q c’ + q c w x y z t = k a + k b + e

© 2001 Frédéric MailhotUniversité de Sherbrooke La synthèse automatisée de circuits r = p + a’s = r + b’ a b c d e v = a’d + b d + c’d + a e’ p = c e + d e t = a c + a d + b c + b d + e q = a + bu = q’ c + q c’ + q c w x y z Synthèse multi-niveaux – les transformations (5) Décomposition (Séparation d’un nœud complexe en un ensemble d nœuds plus simples r = p + a’s = r + b’ a b c d e j = a’ + b + c p = c e + d e t = a c + a d + b c + b d + e q = a + bu = q’ c + q c’ + q c w x y z v = j d + a e’

© 2001 Frédéric MailhotUniversité de Sherbrooke La synthèse automatisée de circuits r = p + a’s = r + b’ a b c d e v = a’d + b d + c’d + a e’ p = c e + d e t = a c + a d + b c + b d + e q = a + bu = q’ c + q c’ + q c w x y z Synthèse multi-niveaux – les transformations (6) Simplification: utilisation de techniques 2 niveaux Substitution (Ajout d’entrées pour simplifier un nœud) r = p + a’s = r + b’ a b c d e v = a’d + b d + c’d + a e’ p = c e + d e t = q c + q d + e q = a + bu = q’ c + q c’ + q c w x y z

© 2001 Frédéric MailhotUniversité de Sherbrooke La synthèse automatisée de circuits r = p + a’s = r + b’ a b c d e v = a’d + b d + c’d + a e’ p = c e + d e t = a c + a d + b c + b d + e q = a + bu = q’ c + q c’ + q c w x y z r = p + a’s = r + b’ a b c d e v = (a’ + b + c’) d + a e’ p = (c + d) e t = (a + b) (c + d) + e q = a + bu = q’ c + q c’ + q c w x y z Synthèse multi-niveaux – les transformations (7) Factorisation (Identification de facteurs dans les équations)

© 2001 Frédéric MailhotUniversité de Sherbrooke La synthèse automatisée de circuits Les étapes de la synthèse de circuits Synthèse de haut niveau Synthèse logique Synthèse physique Analyse syntaxiqueScheduling Allocation des ressources Synthèse 2 niveauxSynthèse multi-niveaux Lien avec la technologie Placement Routage Restructuring Retiming Extraction de noyauxTechnology mapping Buffering Global: floorplan Local Global – Vdd, Vss, Bus Local

© 2001 Frédéric MailhotUniversité de Sherbrooke La synthèse automatisée de circuits Le technology mapping De l’étape d’optimisation multi-niveaux on obtient un circuit qui est « meilleur » qu’auparavant, mais qui est toujours sous forme d’équations logiques inter-reliées. Pour la suite, il faut maintenant remplacer les équations logiques par des portes logiques provenant de la bibliothèque de cellules cible. Le but du technology mapping est de produire un circuit qui ne contiennent que des portes logiques « réelles », et qui évidemment soit un circuit avec la même fonctionnalité que le circuit initial

© 2001 Frédéric MailhotUniversité de Sherbrooke La synthèse automatisée de circuits Le technology mapping – les étapes On procède en 4 étapes pour faire cette opération: 1.Partitionnement 2.Décomposition 3.Matching 4.Couverture

© 2001 Frédéric MailhotUniversité de Sherbrooke La synthèse automatisée de circuits 1. Le partitionnement La première étape consiste à identifier les sous-circuits qui contiennent un ensemble de portes interconnectées qui convergent vers une porte unique. Cette dernière produit la seule sortie du sous-circuit dont elle fait partie. Cette porte est soit connectée à une sortie du circuit, soit connectée à plus d’une porte.

© 2001 Frédéric MailhotUniversité de Sherbrooke La synthèse automatisée de circuits 2. La décomposition Pour chaque partition du circuit, on doit s’assurer que les équations qui y sont incluses ont un maximum de 2 entrées. Lorsque les équations utilisent plus de 2 entrées, on effectue une décomposition simple en portes à 2 entrées (portes OU, ET et dans certains cas OU- EXCLUSIF)

© 2001 Frédéric MailhotUniversité de Sherbrooke La synthèse automatisée de circuits 3. Le matching Pour une certaine partition et sa décomposition en portes à 2 entrées, on énumère tous les « cutsets », et pour chacun de ces « cutsets », on détermine si la fonction sous-tendue est équivalente à une ou plusieurs portes logiques de la bibliothèque

© 2001 Frédéric MailhotUniversité de Sherbrooke La synthèse automatisée de circuits 3. Le matching: comment établir l’équivalence On utilise des BDDs (Binary Decision Diagram) pour comparer la fonction logique sous-tendue par un certain cutset et les portes logiques disponibles dans la bibliothèque Bibliothèque Portion de la partition …

© 2001 Frédéric MailhotUniversité de Sherbrooke La synthèse automatisée de circuits 4. Couverture Lorsque tous les éléments de bibliothèque qui correspondent à une partie d’une partition sont connus, on doit déterminer quels éléments choisir pour couvrir le sous-circuit On utilise la « programmation dynamique » (dynamic programming) pour déterminer l’assemblage optimal d’éléments de bibliothèque

© 2001 Frédéric MailhotUniversité de Sherbrooke La synthèse automatisée de circuits Les étapes de la synthèse de circuits Synthèse de haut niveau Synthèse logique Synthèse physique Analyse syntaxiqueScheduling Allocation des ressources Synthèse 2 niveauxSynthèse multi-niveaux Lien avec la technologie Placement Routage Restructuring Retiming Extraction de noyauxTechnology mapping Buffering Global: floorplan Local Global – Vdd, Vss, Bus Local