Yosys

Yosys est une suite logicielle de Synthèse logique (en anglais RTL synthesis), permettant donc de convertir un circuit logique de sa description dans un langage de description de matériel (HDL), tel que Verilog ou VHDL, vers un bitstream au format Register Transfer Level (RTL), utilisable par un circuit programmable de type FPGA. Il effectue également les tâches de vérification formelle[2]. Il a été créé par Clifford Wolf[3].

Yosys

Informations
Dernière version 0.17 ()[1]
Dépôt github.com/YosysHQ/yosys
Écrit en C++
Supporte les langages Verilog et SystemVerilog
Système d'exploitation GNU/Linux et FreeBSD
Licence Licence ISC
Documentation symbiyosys.readthedocs.io/en/latest
Site web yosyshq.net

Fonctionnalités

Il permet de[4],[2] :

  • Gérer la majeure partie de Verilog-2005
  • Convertir depuis BLIF / EDIF/ BTOR / SMT-LIB / simple RTL Verilog vers Verilog
  • Faire de la vérification formelle en vérifiant les propriétés et les équivalences.
  • Cartographier pour les ASIC (au format Liberty File Format)
  • Cartographier pour les FPGA des séries Xilinx 7 et Lattice iCE40
  • Servir de fondation ou de frontal pour des flux personnalisés.

Il peut également traiter le VHDL, grâce au plugin pour GHDL appelé ghdl-yosys-plugin[5].

D'autres FPGA peuvent également être cartographiés avec un support à des stades plus ou moins avancés tels que certains d'Achronix (Speedster22i), Altera (maintenant filiale d'Intel), Anlogic, GreenPAK4, la série LittleBee de Gowin, les ECP5 de Lattice, ainsi que les FPGA de MicroChip/Microsemi (SmartFusion2 et IGLOO2)[6],[7].

L'outil d'optimisation du routage est NextNPR, utilisant des méthodes indépendantes à l'architecture cible, les architectures décrites ci-dessus y sont considérées comme stable, à l'exception des séries Cyclone V, Lattice MachXO2 et d'un backend générique pour des architectures personnalisées[7].

Il permet également de créer des schémas du design en s'aidant de Graphviz. Le logiciel pour le web, DigitalJS, utilise cette possibilité de Verilog, pour la simulation en HTML, via le convertisseur yosys2digitaljs[8],[9].

Différents co-projets lui sont liés, tels que VlogHammer un tester de régression Verilog et YosysJS, un port de Yosys en Javascript à l'aide d'Emscripten, afin de produire des éducatifs sur le Web.

Formats RTL supportés

Il peut produire du bitstream au format Blif (Berkeley Logic Interchange Format). Il existe des outils pour convertir entre les différents formats de bitstream[10].

Au sein du projet, différents outils permettent d'ouvrir les spécifications de bitstream de différents FPGA, par ingénierie inverse. Le premier FPGA géré ainsi c'est le ICE40 de Lattice[3],[11]. Au sein de Yosys, concernant les FPGA de Lattice plus généralement, le project IceStorm est dédié à cette à l'ingénierie invers pour les ICE40, le projet Trellis pour les ECP5 et le projet Oxide pour les Nexus[12]. Le Projets Treillis qui travaille sur les MachXO2 de Lattice considère leur support comme expérimental[7].

Différents FPGA de Xilinx sont également pris en charge, tel que les Spartan 6, Virtex 7, et Series 7. Il y avait également un support partiel en décembre 2019 de Spartan 3, Virtex 2, 4, et 5[13].

En 2020, le fabricant allemand Cologne Chip AG annonce supporter Yosys comme outil pour la synthèse RTL de leurs FPGA[14]. Le fork servant à l'implémentation de ces FPGA dans celui-ci est disponible sur Github[15].

Le projet Apicula (ou Apycula), au sein du projet YosysHQ, vise à créer, par ingénierie inverse, des outils ouverts pour la génération du bitstream des FPGA de Gowin[16],[12]. Apicula supporte les séries gw1n1, gw1n9, gw1n4, gw1ns2 et gw1ns4. Le Gw1nSR-4C depuis le 15 décembre 2021[17].

Le support des FPGA Cyclone V, considéré comme expérimental est développé par le projet Mistral[7].

En novembre 2021, Renesas sort une famille de FPGA appelée ForgeFPGA, et propose d'utiliser Yosys comme outil officiel de synthèse RTL[18].

Autres outils libres de synthèse logique

  • Coriolis du laboratoire Lip6
  • GHDL un simulateur et compilateur VHDL
  • SymbiFlow, qui se veut un outil plus global pour gérer les différents outils de génération.
  • OpenLane, sous licence Apache 2.0, et plus globalement OpenROAD sont des piles permettent de transformer le RTL en GDS pour la gravure d'ASIC[19],[20]

Programmation du FPGA

  • OpenFPGALoader est un outil permettant de programmer le FPGA, c'est-à-dire d'envoyer le Bitstream à sa mémoire internet ou à sa mémoire flash pour qu'il le conserve.

Simulation

  • Verilator, logiciel de vérification et simulation, compilant en le code HDL (Verilog et SystemVerilog) pour la simulation en langage machine, sur le poste de travail. L'utilisation de SystemVerilog permet d'utiliser différentes bibliothèques système pour simuler certains composants attaché au FPGA.

Annexes

Notes et références

  1. « Release Yosys 0.17 », (consulté le )
  2. Martoni, « Sortie de Yosys Open Synthesis Suite 0.8 », sur Linuxfr, .
  3. (en) Clifford Wolf, « Verilog Synthesis and more with Yosys », sur Media.ccc.de,
  4. (en) « About », sur Yosys
  5. (en) « Open Source Formal Verification in VHDL », sur Wishful Coding,
  6. (en) « Documentation »
  7. (en) « nextpnr -- a portable FPGA place and route tool », sur compte YosysHQ sur Github
  8. Al Williams, « Visualizing Verilog Simulation », sur Hackaday,
  9. (en) « DigitalJS », sur DigitalJS.Tilk.eu
  10. « Placement & Routage de Cordic », sur Soc.lip6.fr
  11. (en) Elliot Williams, « 32C3: A Free And Open Source Verilog-to-Bitstream Flow For ICE40 FPGAs », sur Hackaday,
  12. (en) « Projet description - YoWASP nextpnr packages », sur Pypi.org
  13. (en) Al Williams, « Yosys Fronts For Xilinx ISE »,
  14. (de) Michael Eckstein, « Interview: Deutsches FPGA mit eingebauter Overdrive-Funktion », sur Elektronik Praxis,
  15. (en) Cologne Chip AG, « yosys – Yosys Open SYnthesis Suite », sur GitHub
  16. de Vos, Kirchhoff et Ziener 2020.
  17. (en) « Add support for GW1NSR-4C », sur Apicula sur Github,
  18. (en) « Renesas introduces sub 50 cents FPGA family with free Yosys-based development tools », sur CNX-Software,
  19. (en) Nick Flaherty, « RISC-V chip designed with open source tools », sur EE News Europe,
  20. https://openlane.readthedocs.io/

Bibliographie

  • (en) David Shah; Eddie Hung; Clifford Wolf; Serge Bazanski; Dan Gisselquist; Miodrag Milanovic, « Yosys+nextpnr: An Open Source Framework from Verilog to Bitstream for Commercial FPGAs », IEEE Annual International Symposium on Field-Programmable Custom Computing Machines (FCCM), IEEE, (DOI 10.1109/FCCM.2019.00010)
  • (en) Pepijn de Vos, Michael Kirchhoff et Daniel Ziener, « A Complete Open Source Design Flow for Gowin FPGAs », International Conference on Field-Programmable Technology (ICFPT), , p. 182-189 (DOI 10.1109/ICFPT51103.2020.00033)
  • (ru) А.Строгонов et П.Городков, « Реализация Verilog-проектов в базисе ПЛИС Intel FPGA с использованием инструмента синтеза YOSYS », Электроника, vol. 166, no 6, , p. 100-106 (ISSN 1992-4178, DOI 10.22184/1992-4178.2017.166.6.100.106, lire en ligne)
  • (ru) А.Строгонов et П.Городков, « Реализация VERILOG-проектов в базисе заказных БИС и ПЛИС с использованием инструмента синтеза Yosys », Электроника, vol. 165, no 5, , p. 98-109 (ISSN 1992-4178, DOI 10.22184/1992-4178.2017.165.5.98.109, lire en ligne)

Articles connexes

Liens externes

  • Portail de l’informatique
  • Portail de l’électricité et de l’électronique
  • Portail des logiciels libres
  • Portail de la programmation informatique
Cet article est issu de Wikipedia. Le texte est sous licence Creative Commons - Attribution - Partage dans les Mêmes. Des conditions supplémentaires peuvent s'appliquer aux fichiers multimédias.