{"id":945,"date":"2019-06-14T08:15:45","date_gmt":"2019-06-14T07:15:45","guid":{"rendered":"http:\/\/www.fabienm.eu\/flf\/?p=945"},"modified":"2019-06-14T09:08:35","modified_gmt":"2019-06-14T08:08:35","slug":"un-asic-concu-integralement-avec-des-logiciels-libres","status":"publish","type":"post","link":"https:\/\/www.fabienm.eu\/flf\/un-asic-concu-integralement-avec-des-logiciels-libres\/","title":{"rendered":"Un ASIC con\u00e7u int\u00e9gralement avec des logiciels libres"},"content":{"rendered":"\n<p>Les FPGA sont tr\u00e8s li\u00e9s aux ASIC. En effet, la plupart des outils utilis\u00e9s en FPGA pour la synth\u00e8se HDL, la preuve formel, le placement routage ou l&rsquo;analyse des timings sont les m\u00eame que ceux \u00e0 destination des ASIC. Seuls les librairies et les configurations changent. La grosse diff\u00e9rence (de taille) avec les FPGA c&rsquo;est que l&rsquo;ASIC n&rsquo;est pas reconfigurable, et les \u00abfrais d&rsquo;initialisations\u00bb sont tr\u00e8s \u00e9lev\u00e9s. Les d\u00e9lais de productions sont tr\u00e8s long \u00e9galement (on parle en trimestre voir en semestre de d\u00e9lais).<\/p>\n\n\n\n<p>Avec de telles contraintes, on comprend pourquoi les d\u00e9veloppeurs ne se mouillent pas trop avec des logiciels exotiques et restent sur ceux qu&rsquo;ils connaissent. Vu les tarif de production, le co\u00fbt des licences des logiciels est assez n\u00e9gligeable. Pourquoi \u00abgrenouiller\u00bb avec des outils open-source dans ce cas ?<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img loading=\"lazy\" decoding=\"async\" width=\"955\" height=\"837\" src=\"http:\/\/www.fabienm.eu\/flf\/wp-content\/uploads\/2019\/06\/raven_silicium.png\" alt=\"\" class=\"wp-image-947\" srcset=\"https:\/\/www.fabienm.eu\/flf\/wp-content\/uploads\/2019\/06\/raven_silicium.png 955w, https:\/\/www.fabienm.eu\/flf\/wp-content\/uploads\/2019\/06\/raven_silicium-300x263.png 300w, https:\/\/www.fabienm.eu\/flf\/wp-content\/uploads\/2019\/06\/raven_silicium-768x673.png 768w\" sizes=\"auto, (max-width: 955px) 100vw, 955px\" \/><figcaption>Vue \u00absilicium\u00bb du Raven, un microcontr\u00f4leur Risc-V con\u00e7u avec des outils open-sources<\/figcaption><\/figure>\n\n\n\n<p>Toutes ces contraintes n&rsquo;ont pas d\u00e9courag\u00e9 <a href=\"https:\/\/www.hackster.io\/ef\/risc-v-based-microcontroller-f2f53d\">Tim Edwards <\/a>de se lancer dans la conception et la fabrication d&rsquo;un microcontr\u00f4leurs int\u00e9gralement avec des outils open-sources.  <\/p>\n\n\n\n<figure class=\"wp-block-image\"><img loading=\"lazy\" decoding=\"async\" width=\"896\" height=\"676\" src=\"http:\/\/www.fabienm.eu\/flf\/wp-content\/uploads\/2019\/06\/raven_schema_bloc.png\" alt=\"\" class=\"wp-image-950\" srcset=\"https:\/\/www.fabienm.eu\/flf\/wp-content\/uploads\/2019\/06\/raven_schema_bloc.png 896w, https:\/\/www.fabienm.eu\/flf\/wp-content\/uploads\/2019\/06\/raven_schema_bloc-300x226.png 300w, https:\/\/www.fabienm.eu\/flf\/wp-content\/uploads\/2019\/06\/raven_schema_bloc-768x579.png 768w\" sizes=\"auto, (max-width: 896px) 100vw, 896px\" \/><figcaption>Synoptique du Raven avec ses diff\u00e9rents p\u00e9riph\u00e9riques<\/figcaption><\/figure>\n\n\n\n<p>C&rsquo;est comme cela qu&rsquo;est n\u00e9 le <a href=\"https:\/\/www.hackster.io\/ef\/risc-v-based-microcontroller-f2f53d\">Raven<\/a>, un microcontr\u00f4leur bas\u00e9 sur un c\u0153ur picoRV32 (con\u00e7u par Clifford Wolf) et r\u00e9alis\u00e9 principalement avec les outils <a href=\"http:\/\/opencircuitdesign.com\/qflow\/index.html\">qflow<\/a> d&rsquo;<a href=\"http:\/\/opencircuitdesign.com\/\">opencircuitdesign.com<\/a> :<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>Synth\u00e8se Verilog : <a href=\"http:\/\/www.clifford.at\/yosys\/\">yosys<\/a> \/ <a href=\"https:\/\/people.eecs.berkeley.edu\/~alanmi\/abc\/\">ABC<\/a><\/li><li>Analyse statique des timings : vesta<\/li><li>Placement : <a href=\"https:\/\/github.com\/rubund\/graywolf\">graywolf<\/a><\/li><li>Routage : <a href=\"http:\/\/opencircuitdesign.com\/qrouter\/index.html\">qrouter<\/a><\/li><li>Layout &amp; DRC: <a href=\"http:\/\/opencircuitdesign.com\/magic\/index.html\">magic<\/a><\/li><li>LVS: <a href=\"http:\/\/opencircuitdesign.com\/netgen\/index.html\">netgen<\/a><\/li><li>Simulation verilog : <a href=\"http:\/\/iverilog.icarus.com\/\">Icarus Verilog<\/a><\/li><li>Cosimulation (pour les parties analogique): <a href=\"http:\/\/ngspice.sourceforge.net\/\">ngspice<\/a> et Icarus<\/li><li>G\u00e9n\u00e9ration des masques : magic <\/li><\/ul>\n\n\n\n<p>Grande surprise quand on se plonge dans ces outils open-source : Beaucoup sont tr\u00e8s vieux. Les pages web de ses outils sont encore cod\u00e9 en web95 avec des frames et autre fonds hideux datant de l&rsquo;\u00e9poque <a href=\"https:\/\/en.wikipedia.org\/wiki\/Microsoft_FrontPage\">frontpage<\/a>.<\/p>\n\n\n\n<p>Pourtant \u00e0 y regarder de plus pr\u00eat, ces outils semblent toujours activement maintenus.<\/p>\n\n\n\n<p>Mais alors pourquoi aucun fondeur FPGA ne les proposent dans leurs IDE ?<\/p>\n\n\n\n<p>Une premi\u00e8re s\u00e9rie du microcontr\u00f4leur grav\u00e9 en 180nm a \u00e9t\u00e9 produite en mai 2018. Le composant est d\u00e9sormais fonctionnel avec les caract\u00e9ristiques suivantes:<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>Cadenc\u00e9 \u00e0 100 MHz<\/li><li>16  GPIO<\/li><li>2 ADCs<\/li><li>1 DAC<\/li><li>1 Comparateur<\/li><li>Alarme de temp\u00e9rature<\/li><li>Oscillateur RC de 100 kHz<\/li><li>Fonction configurables pour les sorties GPIO<\/li><li>Interruptions configurable sur les entr\u00e9es GPIO<\/li><\/ul>\n\n\n\n<p>Il n&rsquo;est pas possible d&rsquo;acheter le composant pour se faire un montage chez soit pour le moment. Par contre l&rsquo;\u00abIP\u00bb est disponible dans la biblioth\u00e8que du fondeur <a href=\"https:\/\/efabless.com\/design_catalog\/ip_block\/AWHe2dFnipGzgR2o9H0q\/\">efabless<\/a> et peut \u00eatre utilis\u00e9 comme base pour r\u00e9aliser son propre composant selon les besoins.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Les FPGA sont tr\u00e8s li\u00e9s aux ASIC. En effet, la plupart des outils utilis\u00e9s en FPGA pour la synth\u00e8se HDL, la preuve formel, le placement routage ou l&rsquo;analyse des timings sont les m\u00eame que ceux \u00e0 destination des ASIC. Seuls les librairies et les configurations changent. La grosse diff\u00e9rence (de taille) avec les FPGA c&rsquo;est &hellip; <a href=\"https:\/\/www.fabienm.eu\/flf\/un-asic-concu-integralement-avec-des-logiciels-libres\/\" class=\"more-link\">Continuer la lecture de <span class=\"screen-reader-text\">Un ASIC con\u00e7u int\u00e9gralement avec des logiciels libres<\/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":[22],"tags":[130,123,128,129,132,31,134,135,136,126,124,133,125,107,127,30,131,45],"class_list":["post-945","post","type-post","status-publish","format-standard","hentry","category-blog","tag-abc","tag-asic","tag-clifford","tag-efabless","tag-graywolf","tag-icarus","tag-magic","tag-netgen","tag-ngspice","tag-picorv32","tag-qflow","tag-qrouter","tag-raven","tag-riscv","tag-tim_edward","tag-verilog","tag-vesta","tag-yosys"],"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":"Les FPGA sont tr\u00e8s li\u00e9s aux ASIC. En effet, la plupart des outils utilis\u00e9s en FPGA pour la synth\u00e8se HDL, la preuve formel, le placement routage ou l&rsquo;analyse des timings sont les m\u00eame que ceux \u00e0 destination des ASIC. Seuls les librairies et les configurations changent. La grosse diff\u00e9rence (de taille) avec les FPGA c&rsquo;est\u2026","_links":{"self":[{"href":"https:\/\/www.fabienm.eu\/flf\/wp-json\/wp\/v2\/posts\/945","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.fabienm.eu\/flf\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.fabienm.eu\/flf\/wp-json\/wp\/v2\/types\/post"}],"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=945"}],"version-history":[{"count":5,"href":"https:\/\/www.fabienm.eu\/flf\/wp-json\/wp\/v2\/posts\/945\/revisions"}],"predecessor-version":[{"id":953,"href":"https:\/\/www.fabienm.eu\/flf\/wp-json\/wp\/v2\/posts\/945\/revisions\/953"}],"wp:attachment":[{"href":"https:\/\/www.fabienm.eu\/flf\/wp-json\/wp\/v2\/media?parent=945"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.fabienm.eu\/flf\/wp-json\/wp\/v2\/categories?post=945"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.fabienm.eu\/flf\/wp-json\/wp\/v2\/tags?post=945"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}