• Aucun résultat trouvé

une vraie analyse temporelle statique des circuits à données

3.5 Conclusion et perspectives

A l’instar de la construction d’un arbre d’horloge, cette étape ne dépend d’aucuneRTC. Son objectif est uniquement de construire des arbres locaux, équilibrés — pour ne pas impacter les performances -– et les plus courts possible – pour ne pas trop impacter la consommation.

L’étape d’insertion17 des délais matchés vient compléter ce flot. Pour celle-ci, nous avons préféré adopter une approche consistant à ajouter les délais le plus tardivement possible. En effet, lorsque les délais sont insérés plus précocement dans le flot, les diffé-rentes étapes d’optimisation ont tendance à modifier leur temps de propagation, rendant nécessaires des raffinements itératifs. Comme présenté précédemment, nous utilisons les algorithmes de construction d’arbre d’horloge pour insérer ces délais. Ils permettent, avec des options spécifiques, d’ajouter les éléments de retard en modifiant le moins possible le placement des cellules du chemin de données18. Ainsi, les performances du circuit ne sont pas altérées par l’adjonction des délais. Cette approche peut cependant présenter des limites. En particulier, si la densité de cellules standard est élevée, il est possible que les éléments de retard soient très espacés les uns des autres à cause du manque de place. Cela peut rendre difficile la convergence des algorithmes. Dans le pire des cas, ce phénomène peut également remettre en cause l’hypothèse de localité — la proximité des chemins de données avec leurs délais matchés respectifs — et il ne serait alors plus possible de se contenter d’utiliser des marges OCV modélisant uniquement les variations locales. Mais dans les différents essais que nous avons pu mener, c’est cette approche tardive qui a montré la plus grande précision.

3.5 Conclusion et perspectives

Les différents éléments présentés dans ce chapitre peuvent être assemblés pour construire le flot de conception global présenté dans la figure 3.24. Ce flot peut être décomposé en quatre parties. Les deux premières sont des étapes de construction et de caractérisation de primitives. Leurs résultats peuvent être livrés comme complément aux bibliothèques de cellules standards. A l’inverse, les étapes 3 et 4 sont spécifiques au circuit développé.

1) En partant du modèle formel — leSTG-– décrivant le comportement des différentes primitives d’un protocole à données groupées, nous synthétisons une netlist au ni-veau portes et la liste des RTC associées à chacune de ces implémentations. Nous complétons cette liste avec lesRTC provenant des modèles d’abstraction temporelle des éléments séquentiels.

2) Nous transformons ensuite cesRTC en une série de règles génériques permettant de décrire la manière de construire les LCS équivalentes.

3) À partir de ces règles et de la netlist du bloc de contrôle créée par assemblage des différentes primitives, nous générons automatiquement le fichier de contraintes temporelles traduisant ces LCSau formatSDC.

4) Enfin, nous utilisons ce fichier de contraintes SDC lors de l’implémentation phy-sique pour optimiser le circuit, insérer les délais matchés et vérifier les exigences temporelles.

Avec ces différentes étapes, nous proposons un flot compréhensif depuis le STG jus-qu’à la clôture temporelle, garantissant les performances et le fonctionnement d’un cir-cuit asynchrone. Contrairement aux autres approches de la littérature, notre flot décrit

17. L’insertion correspond à l’ajout, le placement et le routage des délais.

18. Par défaut, la priorité est donnée aux cellules de l’arbre d’horloge, et le placement optimal du chemin de données peut être altéré pour obtenir un arbre mieux équilibré.

Figure 3.24 – Flot de conception LCS d’un circuit à données groupées.

les spécificités des circuits à données groupées avec un formalisme synchrone et permet donc d’utiliser les outils commerciaux de manière optimale. En traduisant réellement les RTC, la méthode LCSs’affranchit aussi de la dépendance aux conditions d’opération des contraintes temporelles, simplifiant l’analyse et le flot d’implémentation. Il en résulte un impact contenu sur les performances des outils, et notre méthode peut ainsi être utilisée pour des circuits de grandes tailles. Nous avons également montré que cette méthode était utilisable pour toutes sortes de protocoles à données groupées. Finalement, nous avons démontré que l’analyse temporelle des circuits à données groupées est faisable à l’aide des outils synchrones existants. Elle n’est donc plus un véritable frein à l’adoption de ces circuits asynchrones. Nous espérons ainsi contribuer à l’abaissement des barrières entre les mondes synchrone et asynchrone et à l’intégration de ces techniques de conception dans un nombre croissant de circuits du commerce. Dans cette optique, les règlesLCS, développées dans le cadre de la comparaison présentée dans lasection 3.3.8, sont disponibles en libre accès en ligne [Gim19].

Ce travail ouvre aussi de nombreuses perspectives. En s’appuyant sur les principes de base exposés dans ce chapitre, il est possible de créer les règles LCS pour de nouveaux protocoles. Chacun des protocoles à données groupées ayant ses avantages et ses inconvé-nients, il semble intéressant de travailler sur leur mélange au sein d’un même circuit. Cela permettrait de sélectionner le protocole le plus approprié compte tenu des contraintes s’appliquant sur les différentes parties d’un circuit complexe : taille du chemin de don-nées, équilibre entre performance et consommation, etc. L’impact d’une telle approche sur les LCS serait alors à étudier. Un travail sur la standardisation des règles LCS apparaît nécessaire pour faciliter cette démarche. Nous avons montré dans le chapitre 2 qu’il est toujours possible de choisir entre une approche hiérarchique, qui cache la complexité des contrôleurs dans des modèles temporels et permet d’améliorer la productivité (étape en pointillés sur la figure 3.24), ou une approche « à plat » qui autorise des optimisations supplémentaires. Une analyse plus poussée de la frontière entre ces deux approches serait pertinente. Elle couvrirait la sélection des RTC significatives, leur caractérisation et leur modélisation dans le format Liberty.

Enfin, les capacités d’optimisation avancées des outils de placement-routage pourraient être utilisées dans la perspective d’automatiser encore plus l’insertion des délaismatchés

et ainsi de limiter les marges et les raffinements nécessaires. Depuis quelques années, ces outils proposent des options d’optimisation concurrente de l’arbre d’horloge et du chemin de données (Concurent Clock and Data Optimization) (CCDO). Celles-ci permettent de

3.5. Conclusion et perspectives compenser des violations temporelles dans le chemin de données par du skew volontaire sur l’arbre d’horloge. Ainsi, ces techniques insèrent automatiquement des éléments de retard sur certaines branches de l’arbre suivant les résultats de l’analyse temporelle. Ce principe correspond exactement au processus d’insertion des délaismatchés, et semble donc exploitable à cette fin. Cela est bien sûr envisageable grâce à l’utilisation des descriptions LCS qui donne aux outils la connaissance des violations résultant de l’absence de délais

matchés.

Les travaux présentés dans ce chapitre ont fait l’objet de deux publications dans des conférences internationales :

— G. Gimenez et al. « Static Timing Analysis of Asynchronous Bundled-Data Cir-cuits ». In : 2018 24th IEEE International Symposium on Asynchronous CirCir-cuits and Systems (ASYNC). 2018, p. 110-118. (Best Paper Award)

— G. Gimenez, J. Simatic et L. Fesquet. « From Signal Transition Graphs to Ti-ming Closure : Application to Bundled-Data Circuits ». In : 2019 25th IEEE In-ternational Symposium on Asynchronous Circuits and Systems (ASYNC). 2019, p. 86-95