Télécharger la présentation
La présentation est en train de télécharger. S'il vous plaît, attendez
Publié parBerthe Lombard Modifié depuis plus de 9 années
1
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.
2
© 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
3
© 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
4
© 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
5
© 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)
6
© 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
7
© 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
8
© 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
9
© 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)
10
© 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
11
© 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
12
© 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
13
© 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;
14
© 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;
15
© 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) {}
16
© 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);
17
© 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)
18
© 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)
19
© 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
20
© 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
21
© 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
22
© 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.
23
© 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
24
© 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;
25
© 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
26
© 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
27
© 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
28
© 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
29
© 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
30
© 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
31
© 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 *01 01 1*1 10 11* 10 1*1 10 11* 10 Synthèse à 2 niveaux: couverture c b a f1f1 f2f2
32
© 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
33
© 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
34
© 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
35
© 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)
36
© 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
37
© 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 000 1- : *01 11est essentiel pour *01 -1 : 1*1 10 : 11* 10est essentiel pour 110 1-
38
© 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)
39
© 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
40
© 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
41
© 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
42
© 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
43
© 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.
44
© 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
45
© 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
46
© 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
47
© 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.
48
© 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
49
© 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
50
© 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
51
© 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
52
© 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’
53
© 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
54
© 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)
55
© 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
56
© 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
57
© 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
58
© 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.
59
© 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)
60
© 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
61
© 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 …
62
© 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
63
© 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
Présentations similaires
© 2024 SlidePlayer.fr Inc.
All rights reserved.