Langages HDL

Voici les projets libres d’outils permettant d’utiliser des langages haut niveau pour faire du FPGA. La plupart de ces outils permettent de générer du verilog/VHDL synthétisable avec les outils privateurs du constructeur.

SSHDL:

Pour savoir ce qu’est un SSHDL c’est par là.

  • Migen: Module python permet de développer des design synchrone. Génère du Verilog pour la synthèse et la simulation.
  • Litex: Basé sur Migen, environnement intégré avec le support de nombreux constructeurs FPGA.
  • Amaranth: Similaire à Migen, «framework» python pour construire du matériel.
  • Chisel: Module Scala, génère du Verilog pour la synthèse et du C++ pour accélérer la simulation. Voir la page «Chisel related projects» pour avoir quelques exemples de projets écrits en Chisel.
  • SpinalHDL: «clone» de Chisel permettant de générer du VHDL, avec une meilleur gestion des blackboxes et des domaines d’horloges.
  • Silice: Basé sur du C, description matériel «orienté algorithme».
  • CLaSH: Module Haskell, génère du VHDL et du Verilog pour la synthèse. La simulation se fait en Haskell.

Autres HDL

  • MyHDL:Module python avec une approche plus proche du VHDL/Verilog que Migen ou Chisel, génère du Verilog/VHDL pour la synthèse.
  • Bambu: Framework permettant de générer du Verilog à partir d’une description de l’architecture en langage C.
  • HardCaml: Pour faire du HDL en OCaml

Outils «d’assemblage»

  • PeripheralOnDemand (POD): POD permet d’assembler des composants virtuels (IP) à partir de composants se trouvant dans une bibliothèque. Il génère le décodage d’adresse pour le bus wishbone ainsi que les drivers Linux ( à partir de templates).
  • hdlmake: Permet de synthétiser et de simuler un projet HDL avec du code pouvant provenir de différent repositories (git, svn, …). hdlmake est capable de piloter les outils de synthèse/simulation.
  • fusesoc: le Buildroot du FPGA.

Outils spécifiques

  • libre-fdatool: Outils graphique permettant de réaliser des filtres de signaux, avec génération du filtre en VHDL et Verilog.

 «Accélérateur» hardware