{"id":468,"date":"2016-03-16T20:53:53","date_gmt":"2016-03-16T19:53:53","guid":{"rendered":"http:\/\/www.fabienm.eu\/flf\/?page_id=468"},"modified":"2022-01-25T14:29:23","modified_gmt":"2022-01-25T13:29:23","slug":"hdl","status":"publish","type":"page","link":"https:\/\/www.fabienm.eu\/flf\/hdl\/","title":{"rendered":"Langages HDL"},"content":{"rendered":"<p>Voici les projets libres d&rsquo;outils permettant d&rsquo;utiliser des langages haut niveau pour faire du FPGA. La plupart de ces outils permettent de g\u00e9n\u00e9rer du verilog\/VHDL synth\u00e9tisable avec les outils privateurs du constructeur.<\/p>\n<p><strong>SSHDL:<\/strong><\/p>\n<p>Pour savoir ce qu&rsquo;est un SSHDL <a href=\"http:\/\/www.fabienm.eu\/flf\/synchronous-synthesizable-hardware-description-language-sshdl\/\">c&rsquo;est par l\u00e0<\/a>.<\/p>\n<ul>\n<li><a href=\"http:\/\/www.fabienm.eu\/flf\/hdl\/migen\/\">Migen<\/a>: Module <a href=\"https:\/\/www.python.org\/\">python<\/a> permet de d\u00e9velopper des design synchrone. G\u00e9n\u00e8re du Verilog pour la synth\u00e8se et la simulation.<\/li>\n<li><a href=\"http:\/\/www.fabienm.eu\/flf\/hdl\/migen\/\">Litex: <\/a>Bas\u00e9 sur Migen, environnement int\u00e9gr\u00e9 avec le support de nombreux constructeurs FPGA.<\/li>\n<li><a href=\"http:\/\/www.fabienm.eu\/flf\/hdl\/amaranth\/\">Amaranth: <\/a>Similaire \u00e0 Migen, \u00abframework\u00bb python pour construire du mat\u00e9riel.<\/li>\n<li><a href=\"http:\/\/www.fabienm.eu\/flf\/hdl\/chisel\/\">Chisel<\/a>: Module <a href=\"http:\/\/www.scala-lang.org\/\">Scala<\/a>, g\u00e9n\u00e8re du Verilog pour la synth\u00e8se et du C++ pour acc\u00e9l\u00e9rer la simulation. Voir la page <a href=\"http:\/\/www.fabienm.eu\/flf\/chisel-related-projects\/\">\u00abChisel related projects\u00bb<\/a> pour avoir quelques exemples de projets \u00e9crits en Chisel.<\/li>\n<li><a href=\"http:\/\/www.fabienm.eu\/flf\/hdl\/spinalhdl\/\">SpinalHDL<\/a>: \u00abclone\u00bb de Chisel permettant de g\u00e9n\u00e9rer du VHDL, avec une meilleur gestion des blackboxes et des domaines d&rsquo;horloges.<\/li>\n<li><a href=\"http:\/\/www.fabienm.eu\/flf\/hdl\/silice\/\">Silice:<\/a> Bas\u00e9 sur du C, description mat\u00e9riel \u00aborient\u00e9 algorithme\u00bb.<\/li>\n<li><a href=\"http:\/\/www.fabienm.eu\/flf\/hdl\/c%ce%bbash\/\">CLaSH<\/a>: Module <a href=\"http:\/\/fr.wikipedia.org\/wiki\/Haskell\">Haskell<\/a>, g\u00e9n\u00e8re du VHDL et du Verilog pour la synth\u00e8se. La simulation se fait en Haskell.<\/li>\n<\/ul>\n<p><strong>Autres HDL<\/strong><\/p>\n<ul>\n<li><a href=\"http:\/\/www.fabienm.eu\/flf\/hdl\/myhdl\/\">MyHDL<\/a>:Module python avec une approche plus proche du VHDL\/Verilog que Migen ou Chisel, g\u00e9n\u00e8re du Verilog\/VHDL pour la synth\u00e8se.<\/li>\n<li><a href=\"http:\/\/panda.dei.polimi.it\/?page_id=31\">Bambu<\/a>: Framework permettant de g\u00e9n\u00e9rer du Verilog \u00e0 partir d&rsquo;une description de l&rsquo;architecture en langage C.<\/li>\n<li><a href=\"https:\/\/github.com\/ujamjar\/hardcaml\">HardCaml<\/a>: Pour faire du HDL en OCaml<\/li>\n<\/ul>\n<p><strong>Outils \u00abd&rsquo;assemblage\u00bb<\/strong><\/p>\n<ul>\n<li><a href=\"http:\/\/periphondemand.sourceforge.net\/\">PeripheralOnDemand<\/a> (POD): POD permet d&rsquo;assembler des composants virtuels (IP) \u00e0 partir de composants se trouvant dans une biblioth\u00e8que. Il g\u00e9n\u00e8re le d\u00e9codage d&rsquo;adresse pour le bus wishbone ainsi que les drivers Linux ( \u00e0 partir de templates).<\/li>\n<li><a href=\"http:\/\/www.ohwr.org\/projects\/hdl-make\">hdlmake<\/a>: Permet de synth\u00e9tiser et de simuler un projet HDL avec du code pouvant provenir de diff\u00e9rent repositories (git, svn, &#8230;). hdlmake est capable de piloter les outils de synth\u00e8se\/simulation.<\/li>\n<li><a href=\"https:\/\/github.com\/olofk\/fusesoc\">fusesoc<\/a>: le <a href=\"https:\/\/www.buildroot.org\/\">Buildroot<\/a> du FPGA.<\/li>\n<\/ul>\n<p><strong>Outils sp\u00e9cifiques<\/strong><\/p>\n<ul>\n<li><a href=\"http:\/\/www.ohwr.org\/projects\/libre-fdatool\">libre-fdatool<\/a>: Outils graphique permettant de r\u00e9aliser des filtres de signaux, avec g\u00e9n\u00e9ration du filtre en VHDL et Verilog.<\/li>\n<\/ul>\n<p><strong>\u00a0\u00abAcc\u00e9l\u00e9rateur\u00bb hardware<\/strong><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Voici les projets libres d&rsquo;outils permettant d&rsquo;utiliser des langages haut niveau pour faire du FPGA. La plupart de ces outils permettent de g\u00e9n\u00e9rer du verilog\/VHDL synth\u00e9tisable avec les outils privateurs du constructeur. SSHDL: Pour savoir ce qu&rsquo;est un SSHDL c&rsquo;est par l\u00e0. Migen: Module python permet de d\u00e9velopper des design synchrone. G\u00e9n\u00e8re du Verilog pour &hellip; <a href=\"https:\/\/www.fabienm.eu\/flf\/hdl\/\" class=\"more-link\">Continuer la lecture de <span class=\"screen-reader-text\">Langages HDL<\/span> <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":3,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_uag_custom_page_level_css":"","footnotes":""},"class_list":["post-468","page","type-page","status-publish","hentry"],"uagb_featured_image_src":{"full":false,"thumbnail":false,"medium":false,"medium_large":false,"large":false,"1536x1536":false,"2048x2048":false,"post-thumbnail":false},"uagb_author_info":{"display_name":"Fabien Marteau","author_link":"https:\/\/www.fabienm.eu\/flf\/author\/admin\/"},"uagb_comment_info":0,"uagb_excerpt":"Voici les projets libres d&rsquo;outils permettant d&rsquo;utiliser des langages haut niveau pour faire du FPGA. La plupart de ces outils permettent de g\u00e9n\u00e9rer du verilog\/VHDL synth\u00e9tisable avec les outils privateurs du constructeur. SSHDL: Pour savoir ce qu&rsquo;est un SSHDL c&rsquo;est par l\u00e0. Migen: Module python permet de d\u00e9velopper des design synchrone. G\u00e9n\u00e8re du Verilog pour\u2026","_links":{"self":[{"href":"https:\/\/www.fabienm.eu\/flf\/wp-json\/wp\/v2\/pages\/468","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.fabienm.eu\/flf\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/www.fabienm.eu\/flf\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/www.fabienm.eu\/flf\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.fabienm.eu\/flf\/wp-json\/wp\/v2\/comments?post=468"}],"version-history":[{"count":15,"href":"https:\/\/www.fabienm.eu\/flf\/wp-json\/wp\/v2\/pages\/468\/revisions"}],"predecessor-version":[{"id":1927,"href":"https:\/\/www.fabienm.eu\/flf\/wp-json\/wp\/v2\/pages\/468\/revisions\/1927"}],"wp:attachment":[{"href":"https:\/\/www.fabienm.eu\/flf\/wp-json\/wp\/v2\/media?parent=468"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}