{"id":492,"date":"2016-05-01T10:25:12","date_gmt":"2016-05-01T09:25:12","guid":{"rendered":"http:\/\/www.fabienm.eu\/flf\/?p=492"},"modified":"2016-09-08T08:10:01","modified_gmt":"2016-09-08T07:10:01","slug":"spinalhdl-va-t-il-remplacer-chisel","status":"publish","type":"post","link":"http:\/\/www.fabienm.eu\/flf\/spinalhdl-va-t-il-remplacer-chisel\/","title":{"rendered":"SpinalHDL va-t-il remplacer Chisel ?"},"content":{"rendered":"<p><a href=\"https:\/\/github.com\/SpinalHDL\">SpinalHDL<\/a> est un langage HDL ressemblant \u00e0 s&rsquo;y m\u00e9prendre \u00e0 Chisel. Et pour cause, son <a href=\"https:\/\/github.com\/Dolu1990\">cr\u00e9ateur<\/a> est un ancien utilisateur intensif de Chisel.<\/p>\n<ul>\n<li>Tout comme Chisel, SpinalHDL est bas\u00e9 sur le langage <a href=\"http:\/\/www.scala-lang.org\/\">Scala<\/a>.<\/li>\n<li>Tout comme Chisel, les entr\u00e9es\/sorties sont d\u00e9crites au moyen de Bundles.<\/li>\n<li>Tout comme Chisel, Spinal g\u00e9n\u00e8re un langage HDL pour la synth\u00e8se.<\/li>\n<\/ul>\n<p><a href=\"https:\/\/github.com\/SpinalHDL\/SpinalDoc\/blob\/master\/manual\/userGuide.md#what-are-the-differences-between-chisel-vs-spinal-\">Alors pourquoi ne pas utiliser Chisel ?<\/a><\/p>\n<ul>\n<li>Car SpinalHDL g\u00e9n\u00e8re du VHDL pour la synth\u00e8se, et non du Verilog<\/li>\n<li>Car SpinalHDL g\u00e8re les domaines d&rsquo;horloges de mani\u00e8re \u00e9l\u00e9gante<\/li>\n<li>Car la d\u00e9claration des entr\u00e9es sortie est plus \u00abnaturelle\u00bb pour un habitu\u00e9 de VHDL\/Verilog. En effet, pour d\u00e9clarer les des signaux comme entr\u00e9e ou sortie d&rsquo;un module sur Chisel il faut faire :\n<pre><code>\r\n   val io = new Bundle {\r\n     val a = Bool(INPUT)\r\n     val b = Bool(INPUT)\r\n     val c = Bool(OUTPUT)\r\n   }\r\n<\/code><\/pre>\n<p>Alors que sur SpinalHDL on fera:<\/p>\n<pre><code>\r\n   val io = new Bundle {\r\n     val a = in Bool\r\n     val b = in Bool\r\n     val c = out Bool\r\n   }\r\n<\/code><\/pre>\n<p>Ce qui est plus naturel.<\/li>\n<li>La gestion des blackbox est mieux int\u00e9gr\u00e9e.<\/li>\n<\/ul>\n<p>De plus, Charles (dolu1990) m&rsquo;informe qu&rsquo;il y a maintenant une <a href=\"https:\/\/github.com\/SpinalHDL\/SpinalHDL\/tree\/master\/lib\/src\/main\/scala\/spinal\/lib\/cpu\/riscv\/impl\">impl\u00e9mentation de RISCV <\/a>avec 5 \u00e9tages de mul\/div\/interruptions fonctionnel en SpinalHDL:<\/p>\n<pre>Bonjour,\r\n\r\nFlash info Spinal XD\r\nIl y a maintenant une impl\u00e9mentation de RISCV, 5 stages mul\/div\/interrupt\r\nfonctionnel cod\u00e9e en Spinal.\r\nLe cpu \u00e9gualement d\u00e9buggable via JTAG, fork openOCD, GDB et eclipse. (c'est\r\na ma connaissance la seul impl\u00e9mentation RISCV qui cible les FPGA avec\r\ncette fonctionnalit\u00e9)\r\n\r\nAu plaisir de lib\u00e9rer les FPGA de leur asservissement.\r\nCharles<\/pre>\n<p>Bref pas mal de choses int\u00e9ressantes qui j&rsquo;esp\u00e8re dynamiserons le d\u00e9veloppement de Chisel \u00e9galement et peut-\u00eatre fusionnerons \u00e0 terme ?<\/p>\n<p>Pour la documentation officielle <a href=\"http:\/\/spinalhdl.github.io\/SpinalDoc\/\">c&rsquo;est par l\u00e0<\/a>.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>SpinalHDL est un langage HDL ressemblant \u00e0 s&rsquo;y m\u00e9prendre \u00e0 Chisel. Et pour cause, son cr\u00e9ateur est un ancien utilisateur intensif de Chisel. Tout comme Chisel, SpinalHDL est bas\u00e9 sur le langage Scala. Tout comme Chisel, les entr\u00e9es\/sorties sont d\u00e9crites au moyen de Bundles. Tout comme Chisel, Spinal g\u00e9n\u00e8re un langage HDL pour la synth\u00e8se. &hellip; <a href=\"http:\/\/www.fabienm.eu\/flf\/spinalhdl-va-t-il-remplacer-chisel\/\" class=\"more-link\">Continuer la lecture de <span class=\"screen-reader-text\">SpinalHDL va-t-il remplacer Chisel ?<\/span> <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_uag_custom_page_level_css":"","footnotes":""},"categories":[4,3,84],"tags":[57,8,83,30,60],"class_list":["post-492","post","type-post","status-publish","format-standard","hentry","category-chisel-langages","category-langages","category-spinalhdl","tag-chisel","tag-scala","tag-spinalhdl","tag-verilog","tag-vhdl"],"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":"http:\/\/www.fabienm.eu\/flf\/author\/admin\/"},"uagb_comment_info":1,"uagb_excerpt":"SpinalHDL est un langage HDL ressemblant \u00e0 s&rsquo;y m\u00e9prendre \u00e0 Chisel. Et pour cause, son cr\u00e9ateur est un ancien utilisateur intensif de Chisel. Tout comme Chisel, SpinalHDL est bas\u00e9 sur le langage Scala. Tout comme Chisel, les entr\u00e9es\/sorties sont d\u00e9crites au moyen de Bundles. Tout comme Chisel, Spinal g\u00e9n\u00e8re un langage HDL pour la synth\u00e8se.\u2026","_links":{"self":[{"href":"http:\/\/www.fabienm.eu\/flf\/wp-json\/wp\/v2\/posts\/492","targetHints":{"allow":["GET"]}}],"collection":[{"href":"http:\/\/www.fabienm.eu\/flf\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/www.fabienm.eu\/flf\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/www.fabienm.eu\/flf\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/www.fabienm.eu\/flf\/wp-json\/wp\/v2\/comments?post=492"}],"version-history":[{"count":6,"href":"http:\/\/www.fabienm.eu\/flf\/wp-json\/wp\/v2\/posts\/492\/revisions"}],"predecessor-version":[{"id":534,"href":"http:\/\/www.fabienm.eu\/flf\/wp-json\/wp\/v2\/posts\/492\/revisions\/534"}],"wp:attachment":[{"href":"http:\/\/www.fabienm.eu\/flf\/wp-json\/wp\/v2\/media?parent=492"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/www.fabienm.eu\/flf\/wp-json\/wp\/v2\/categories?post=492"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/www.fabienm.eu\/flf\/wp-json\/wp\/v2\/tags?post=492"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}