Photos - Pexels - CC BYSelon PWC, le marché de la technologie des semi-conducteurs est en croissance - l'année dernière, il a atteint la barre des 481 milliards de dollars. Mais son taux de croissance a récemment
baissé . Parmi les raisons de la récession figurent la complexité des processus de conception des appareils et le manque d'automatisation.
Il y a quelques années, les ingénieurs d'Intel ont
écrit que lors de la création d'un microprocesseur hautes performances, vous devez utiliser 100 à 150 outils logiciels distincts (
EDA ). La situation peut être aggravée dans le cas de dispositifs hétérogènes, dont l'architecture comprend plusieurs types de puces différents - ASIC, FPGA, CPU ou GPU. En conséquence, des erreurs de conception se produisent qui retardent la sortie des produits.
Malgré le grand nombre d'outils auxiliaires, les ingénieurs sont toujours contraints d'effectuer une partie du travail manuellement. Les auteurs du livre Advanced Logic Synthesis disent que parfois les concepteurs doivent écrire des scripts en Skill ou en Python à partir de deux millions de lignes pour former des bibliothèques avec des cellules .
Des scripts sont également écrits pour analyser les rapports générés par les systèmes EDA. Lors du développement d'une puce à l'aide d'une technologie de traitement à 22 nm, ces rapports peuvent prendre jusqu'à 30 téraoctets.
Ils ont décidé de corriger la situation et d'essayer de standardiser les processus de conception dans DARPA. L'agence
estime également que les méthodes existantes pour créer des puces sont obsolètes. L'organisation a
lancé le programme quinquennal
OpenROAD , dont le but est de développer de nouveaux outils pour automatiser les processus de conception de puces.
Quel genre de programme
Le programme comprend plusieurs projets qui utilisent l'apprentissage automatique et la technologie cloud pour automatiser les différentes étapes de la création de puces. Dans le cadre de l'initiative
, plus de dix outils sont en
cours de développement (schéma 1). Ensuite, nous parlerons davantage de certains d'entre eux: Flow Runner, RePlAce, TritonCTS, OpenSTA.
Flow Runner est un outil de gestion des bibliothèques RTL et GDSII. Ces derniers sont des fichiers de base de données qui sont la norme de l'industrie pour l'échange d'informations sur les circuits intégrés et leurs topologies. La solution est basée sur la technologie des conteneurs Docker. Vous pouvez exécuter Flow Runner à la fois dans le cloud et sur site. Le guide d'installation est dans le référentiel officiel
sur GitHub .
RePlAce est une solution d'apprentissage automatique basée sur le cloud qui est chargée de placer les composants sur une puce et d'automatiser le traçage. Selon
certains rapports , les algorithmes intelligents augmentent l'efficacité de l'outil de 2 à 10% par rapport aux systèmes classiques. De plus, l'implémentation dans le cloud simplifie la mise à l'échelle. Le guide d'installation et de configuration se trouve également
dans le référentiel .
TritonCTS est un utilitaire pour optimiser les impulsions d'horloge fournies à la puce. Aide à acheminer les horloges vers toutes les parties de l'appareil avec la même latence. Le principe de fonctionnement est basé sur les
arbres H. Cette approche
augmente l' efficacité de la distribution du signal de 30% par rapport aux méthodes traditionnelles. Les développeurs disent qu'à l'avenir, ce chiffre peut être porté à 56%. Le code source et les scripts TritonCTS sont disponibles
sur GitHub .
OpenSTA est un moteur d'analyse de temps statique. Il donne au développeur la possibilité de vérifier les performances de la puce avant même son assemblage réel. L'exemple de code dans OpenSTA
ressemble à ceci.
@@ -6,7 +6,7 @@ read_liberty -corner ff example1_fast.lib read_verilog example1.v link_design top set_timing_derate -early 0.9 set_timing_derate -early 1.1 set_timing_derate -late 1.1 create_clock -name clk -period 10 {clk1 clk2 clk3} set_input_delay -clock clk 0 {in1 in2} # report all corners
L'utilitaire prend en charge les descriptions de netlist du code Verilog, des bibliothèques au format Liberty, des fichiers SDC, etc.
Avantages et inconvénients
Les experts d'IBM et de l'IEEE
notent que le cloud computing et l'apprentissage automatique sont depuis longtemps utilisés dans la fabrication de puces. À leur avis, le projet DARPA peut être un exemple réussi de mise en œuvre de cette idée et
entraînera des changements dans l'industrie.
Il est également prévu que la nature ouverte d'OpenROAD permettra la formation d'une communauté puissante autour des outils et attirera de nouvelles startups.
Photos - Pexels - CC BYIl y a déjà des participants - le laboratoire impliqué dans le développement de puces basé sur l'Université du Michigan
sera le premier à tester les outils ouverts OpenROAD. Mais on ignore encore si de nouvelles solutions pourront avoir un effet notable sur le coût des produits finaux.
En général, les outils développés sous la direction de DARPA devraient avoir un impact positif sur l'industrie des processeurs et de plus en plus de nouveaux projets commenceront à apparaître dans ce domaine. Un exemple serait l'outil
gEDA - il vous permet de concevoir des puces avec un nombre illimité de composants. gEDA comprend des utilitaires pour éditer et modéliser des puces et des tableaux de suivi. La solution a été développée pour les plates-formes UNIX, mais un certain nombre de ses composants fonctionnent également sous Windows. Des conseils pour travailler avec eux peuvent être trouvés
dans la documentation sur le site Web du projet .
Des outils librement distribués offrent aux organisations indépendantes et aux startups davantage d'opportunités. Il est probable qu'avec le temps, de nouvelles approches OpenROAD pour développer des outils EDA et créer des puces puissent devenir un standard de l'industrie.
Ce que nous écrivons sur notre blog d'entreprise: