MENU

Successeur d’OpenLane pour les design de puces open source

Successeur d’OpenLane pour les design de puces open source

Technologies |
Par Nick Flaherty, A Delapalisse



La fondation FOSSi a lancé le successeur d’OpenLane EDA toolflow pour la conception de puces à code open source.

LibreLane est une refonte complète d’OpenLane avec des flux compatibles qui peuvent être librement créés, personnalisés et distribués. Il utilise une infrastructure basée sur Python pour la mise en œuvre de flux ASIC hautement personnalisables et reproductibles.

Le flux classique par défaut reproduit OpenLane presque parfaitement, en prenant même en charge les mêmes fichiers de configuration, mais il offre également une flexibilité inégalée en permettant aux utilisateurs d’écrire des flux de données avancés entièrement personnalisés.

OpenLane, publié par eFabless, aujourd’hui disparu, combinait des projets existants tels que Yosys, OpenROAD, Magic et KLayout pour créer un flux RTL-to-GDSII configurable à l’aide d’un seul fichier. Il a été utilisé avec le processus de silicium SkyWater 130nm et le processus plastique de Pragmatic Semi.

« Chez Efabless, dès 2022, mes collègues Kareem Farid, Mohamed Shalan et moi-même avons lancé un projet de réécriture d’OpenLane que nous avons simplement intitulé OpenLane 2, a déclaré le développeur Mohamed Donn Gaber.

« OpenLane 2 était une réécriture complète d’OpenLane, avec l’objectif de continuer à prendre en charge les fichiers de configuration OpenLane, mais en fournissant beaucoup plus de flexibilité et de cohérence qu’OpenLane ne l’a jamais fait. OpenLane 2 a été lancé en douceur chez Efabless en février 2024, mais nous avons attendu patiemment de récupérer du silicium avec des exigences strictes en matière de délais pour vérifier la qualité des résultats de STA avant de pouvoir recommander officiellement le nouveau flux à nos clients de l’époque. Environ un an plus tard, nous avons effectué les tests en question, mais en raison de problèmes de financement, Efabless a fermé ses portes quelques jours plus tard.

Il a depuis rejoint la Free Open Source Silicon (FOSSi) Foundation pour assurer la maintenance de l’outil.

« Nous avons conçu LibreLane avec trois objectifs en tête », a-t-il déclaré. « Le premier et le plus important principe est de conserver la facilité d’utilisation d’OpenLane : Comme OpenLane, LibreLane permet de configurer les flux entièrement avec un fichier TCL, JSON ou YAML qui vous permet de passer de RTL à GDSII. [Cependant, pour différencier LibreLane d’OpenLane, nous voulions une API bien documentée avec laquelle les utilisateurs peuvent créer leurs propres flux.

L’idée centrale autour de laquelle LibreLane a été construit était une représentation explicite de l’état actuel d’une conception. Il définit l’état d’une conception comme un simple objet qui stocke les chemins vers les différents fichiers représentant la conception : netlists, fichiers DEF (Design Exchange Format), netlists JSON, etc, en plus d’une collection de métriques. La métrique design__die__area, par exemple, renvoie la surface de la conception en microns carrés. Ces objets sont immuables, c’est-à-dire qu’ils ne peuvent pas être modifiés, mais seulement copiés, et sont entièrement sérialisables en JSON pour la traçabilité, de sorte qu’ils peuvent être sauvegardés à plusieurs endroits du flux pour montrer comment un flux a progressé.

Pour effectuer les tâches EDA, les étapes sont essentiellement des fonctions qui prennent un état et en produisent un autre. Par exemple, l’étape Floorplan prend un état avec une Netlist et crée un nouvel état avec un fichier DEF. L’étape Routage prend un état avec un fichier DEF et crée un nouvel état avec un nouveau fichier DEF.

« En modélisant les tâches EDA de cette manière, nous avons pu rendre les étapes hautement reproductibles, car aucune base de données globale n’est modifiée, mais cela permet également aux flux d’essayer d’explorer plusieurs configurations en parallèle en exécutant plusieurs étapes sur plusieurs threads », a déclaré Donn Gaber.

Les flux sont des agrégations d’étapes. Il peut s’agir de simples SequentialFlows en série, exécutant une étape après l’autre, ou de fonctions entièrement personnalisées qui effectuent des opérations telles que l’exploration parallèle mentionnée plus haut. Les flux offrent une configuration plus simple et la possibilité de contrôler plus facilement l’exécution à partir de la ligne de commande, ce qui est plus difficile lors de l’exécution étape par étape.

Enfin, le module Config est responsable de l’exposition de toutes les variables de configuration des étapes à l’utilisateur, lui permettant de configurer le flux à l’aide de fichiers Tcl, JSON ou YAML, ainsi qu’à l’aide d’un dictionnaire Python. Le module Configuration gère également la validation et la vérification de type, ce qui était un point douloureux avec OpenLane où le flux se plantait simplement à un point indéterminé si une variable d’entrée s’avérait être invalide. Comme pour les États, les Configs sont également immuables et ne peuvent pas être modifiées après coup, bien que les flux puissent créer des configurations dérivées pour alimenter différentes étapes avec des configurations légèrement différentes.

L’un des aspects de l’outil est qu’il permet d’intégrer d’autres outils. Les concepteurs d’eFabless ont utilisé le flux avec les outils Synopsys Design Compiler et PrimeTime en utilisant des étapes personnalisées pour obtenir un peu plus de performance dans les conceptions de puces.

Tiny Tapeout a également utilisé des flux personnalisés basés sur LibreLane pour mettre en œuvre le multiplexeur de premier niveau pour Tiny Tapeout 3.5 et comme support d’implémentation ASIC pour chaque projet numérique ultérieur de Tiny Tapeout. LibreLane a déjà trouvé sa place dans des projets universitaires tels que Greyhound et Piel. Il est important de noter que ChipFoundry a accepté d’adopter LibreLane comme flux principal à partir de leur navette ChipCreate CC2509, poursuivant ainsi l’héritage d’OpenLane en permettant la commercialisation de la technologie EDA open-source.

LibreLane 2.4.0, la première version après le fork et le renommage, est disponible pour macOS et Linux (et Windows avec WSL2). Le guide de démarrage vous montre comment installer toutes les dépendances nécessaires.

github.com/librelane/librelane

 

Si vous avez apprécié cet article, vous aimerez les suivants : ne les manquez pas en vous abonnant à :    ECI sur Google News

Partager:

Articles liés
10s