C'est un peu compliqué à expliquer mais je vais essayer. La conception d'un ASIC requiert l'emploi de plusieurs outils dont les principaux sont :
- Un simulateur pour s'assurer que le code Verilog ou VHDL représente le comportement attendu du circuit
- un outil de synthèse qui convertit le code Verilog ou VHDL en une représentation à base d'élément logique de bases (dont une grande partie vient du PDK)
- Un outil de "placement" - pour décider de la position physique de chaque élément sur la puce final
- Un outil de routage, pour calculer comment réaliser les interconnections entre les différents élements en utilisant les ressources disponibles du process de fabrication (typiquement un certain nombe de couche de metaux)
- un outils de construction d'"arbre d'horloge", pour s'assure de la bonne propagation des signaus d'horloge
- un outil d'"extraction" - pour extraire (après placement et routage) les caractéristiques électriques des interconnections entre les éléments
- Un outil d'analyse de temps de propagation, qui utilise les résultat de l'outil d'extraction pour analyser les caractéristiques temporelles du circuit (fréquence maximum, etc..)
Des outils open-source pour chacune de ces taches étaient disponible depuis pas mal de temps mais c'est seulement depuis l'apparition de Yosys et de la suite d'outils OpenRoad que l'on commence à avoir une famille d'outils qui tient la route et surtout qui s'interfacent entre eux relativement bien en utilisant les formats de fichiers standard de l'industrie (.lib/.lef/.spef/.def etc). Auparavant, c'était un peu le bazar
Néanmoins, les outils comme Yosys et la suite OpenRoad sont loin de supporter toutes les possibilités des outils commerciaux (par exemple la possibilité d'avoir des tensions différentes dans différentes portions du circuit). Il y a aussi des manquent concernant le "design for Test", c'est à dire le support de méthode qui permettent de vérifier que chaque puce en sortie de production fonctionne (c'est essentiel pour une production commerciale). Et à ma connaissance, on manque d'un simulateur de netlist supportant la rétro-annotation des informations temporelles pour vérifier la fonctionnalité du circuit après placement/routage
Mais je pense que l'on assiste à un tournant et si OpenRoad arrive à fédérer les développements des différents équipes de recherches travaillant dans le domaine partout dans le monde, on aura un outil vraiment viable d'ici quelque temps.
[^] # Re: Plus aucune raison de ne pas pouvoir faire un processeur 100% Open-Hardware?
Posté par Ronan BARZIC . En réponse à la dépêche Google libère les ASIC avec un PDK open source en 130 nm. Évalué à 10.
C'est un peu compliqué à expliquer mais je vais essayer. La conception d'un ASIC requiert l'emploi de plusieurs outils dont les principaux sont :
- Un simulateur pour s'assurer que le code Verilog ou VHDL représente le comportement attendu du circuit
- un outil de synthèse qui convertit le code Verilog ou VHDL en une représentation à base d'élément logique de bases (dont une grande partie vient du PDK)
- Un outil de "placement" - pour décider de la position physique de chaque élément sur la puce final
- Un outil de routage, pour calculer comment réaliser les interconnections entre les différents élements en utilisant les ressources disponibles du process de fabrication (typiquement un certain nombe de couche de metaux)
- un outils de construction d'"arbre d'horloge", pour s'assure de la bonne propagation des signaus d'horloge
- un outil d'"extraction" - pour extraire (après placement et routage) les caractéristiques électriques des interconnections entre les éléments
- Un outil d'analyse de temps de propagation, qui utilise les résultat de l'outil d'extraction pour analyser les caractéristiques temporelles du circuit (fréquence maximum, etc..)
Des outils open-source pour chacune de ces taches étaient disponible depuis pas mal de temps mais c'est seulement depuis l'apparition de Yosys et de la suite d'outils OpenRoad que l'on commence à avoir une famille d'outils qui tient la route et surtout qui s'interfacent entre eux relativement bien en utilisant les formats de fichiers standard de l'industrie (.lib/.lef/.spef/.def etc). Auparavant, c'était un peu le bazar
Néanmoins, les outils comme Yosys et la suite OpenRoad sont loin de supporter toutes les possibilités des outils commerciaux (par exemple la possibilité d'avoir des tensions différentes dans différentes portions du circuit). Il y a aussi des manquent concernant le "design for Test", c'est à dire le support de méthode qui permettent de vérifier que chaque puce en sortie de production fonctionne (c'est essentiel pour une production commerciale). Et à ma connaissance, on manque d'un simulateur de netlist supportant la rétro-annotation des informations temporelles pour vérifier la fonctionnalité du circuit après placement/routage
Mais je pense que l'on assiste à un tournant et si OpenRoad arrive à fédérer les développements des différents équipes de recherches travaillant dans le domaine partout dans le monde, on aura un outil vraiment viable d'ici quelque temps.