{"id":1571,"date":"2020-07-05T19:37:09","date_gmt":"2020-07-05T18:37:09","guid":{"rendered":"http:\/\/www.fabienm.eu\/flf\/?p=1571"},"modified":"2020-07-05T19:38:00","modified_gmt":"2020-07-05T18:38:00","slug":"google-libere-les-asic-avec-un-pdk-open-source-en-130%e2%80%afnm","status":"publish","type":"post","link":"http:\/\/www.fabienm.eu\/flf\/google-libere-les-asic-avec-un-pdk-open-source-en-130%e2%80%afnm\/","title":{"rendered":"Google lib\u00e8re les ASIC avec un PDK open source en 130\u202fnm"},"content":{"rendered":"\n<p><a href=\"https:\/\/linuxfr.org\/news\/google-libere-les-asic-avec-un-pdk-open-source-en-130-nm\">[D\u00e9p\u00eache publi\u00e9e initialement sur LinuxFR]<\/a><\/p>\n\n\n\n<p>La lib\u00e9ration des <a href=\"https:\/\/fr.wikipedia.org\/wiki\/Circuit_logique_programmable\">FPGA<\/a> s\u2019acc\u00e9l\u00e8re \u00e0 grands pas, il devient presque difficile de suivre toutes les nouvelles sur le sujet. Mais les FPGA ne doivent pas nous faire oublier leurs grands fr\u00e8res que sont les <a href=\"https:\/\/fr.wikipedia.org\/wiki\/Application-specific_integrated_circuit\">ASIC<\/a>.<br>Un FPGA est un composant ayant un silicium d\u00e9j\u00e0 \u00ab&nbsp;grav\u00e9&nbsp;\u00bb mais o\u00f9 il est possible de reconfigurer les connexions entre les \u00e9l\u00e9ments logiques \u00e0 volont\u00e9. Dans le cas d\u2019un ASIC, on va cette fois graver directement les transistors sur un silicium vierge et les relier via des couches m\u00e9taliques une fois pour toutes. Il ne faut surtout pas se planter \u00e0 l\u2019\u00e9tape de conception car on ne pourra pas modifier les interconnexions une fois la production lanc\u00e9e.<\/p>\n\n\n\n<p>Pour r\u00e9aliser un ASIC, il faut fournir un plan des masques de chaque couche de dopage du silicium ainsi que des couches m\u00e9taliques. Voici par exemple la repr\u00e9sentation d\u2019une <a href=\"https:\/\/fr.wikipedia.org\/wiki\/Bascule_(circuit_logique)#Bascule_D\">bascule&nbsp;D<\/a>&nbsp;:<br><img decoding=\"async\" src=\"https:\/\/img.linuxfr.org\/img\/687474703a2f2f66616269656e6d2e65752f706172746167652f646c617463682e706e67\/dlatch.png\" alt=\"Une bascule D\"><\/p>\n\n\n\n<p>Pour ce faire, on va partir d\u2019une description RTL (<em><a href=\"https:\/\/fr.wikipedia.org\/wiki\/Register_Transfer_Level\">Register Transfert Level<\/a><\/em>) du composant, similaire aux descriptions utilis\u00e9es pour les FPGA \u2013&nbsp;la plupart du temps du Verilog ou du VHDL&nbsp;\u2014 que nous allons \u00ab&nbsp;synth\u00e9tiser&nbsp;\u00bb en une Netlist. La suite va ressembler (de&nbsp;loin) \u00e0 du placement\u2010routage et de la simulation analogique\u2010num\u00e9rique, comme on peut le voir avec la conception de carte \u00e9lectronique.<\/p>\n\n\n\n<p>Le flot de conception typique du monde du mat\u00e9riel est donn\u00e9 dans une des diapositives de la pr\u00e9sentation de <a href=\"https:\/\/www.youtube.com\/user\/mithro\">Tim&nbsp;Ansell<\/a> ci\u2011dessous&nbsp;:<br><img decoding=\"async\" src=\"https:\/\/img.linuxfr.org\/img\/687474703a2f2f7777772e66616269656e6d2e65752f706172746167652f6564615f746f6f6c732e706e67\/eda_tools.png\" alt=\"Flot de d\u00e9veloppement ASIC\/FPGA\"><\/p>\n\n\n\n<p>La partie langage de description du mat\u00e9riel et simulation est d\u00e9j\u00e0 largement lib\u00e9r\u00e9e. Il existe des tas de composants <em>open&nbsp;source<\/em> d\u00e9crits en VHDL et\/ou en Verilog \u00e0 pr\u00e9sent. Les outils de synth\u00e8se libres arrivent aujourd\u2019hui \u00e0 maturit\u00e9 avec <a href=\"http:\/\/www.clifford.at\/yosys\/\">Yosys<\/a>, bien s\u00fbr, pour le Verilog (et bient\u00f4t mature pour le VHDL gr\u00e2ce au greffon <a href=\"https:\/\/github.com\/ghdl\/ghdl-yosys-plugin\">GHDL-yosys<\/a>), mais aussi <a href=\"https:\/\/www-soc.lip6.fr\/equipe-cian\/logiciels\/alliance\/\">Alliance<\/a> pour le&nbsp;VHDL.<\/p>\n\n\n\n<p>Les trois piliers logiciels (EDA pour les outils, PDK les donn\u00e9es et RTL le design) permettant de r\u00e9aliser un ASIC sont donn\u00e9s dans une autre diapo de Tim ci\u2011dessous&nbsp;:<br><img decoding=\"async\" src=\"https:\/\/img.linuxfr.org\/img\/687474703a2f2f7777772e66616269656e6d2e65752f706172746167652f617369635f736368656d612e706e67\/asic_schema.png\" alt=\"Sch\u00e9ma de principe d\u00e9veloppement ASIC\"><\/p>\n\n\n\n<p>Une fois la description \u00ab&nbsp;RTL&nbsp;\u00bb du composant synth\u00e9tis\u00e9e, il nous reste beaucoup d\u2019\u00e9tapes \u00e0 franchir avant d\u2019obtenir une description des masques de gravure permettant la fabrication proprement dite. Toutes ces \u00e9tapes n\u00e9cessitent l\u2019utilisation de logiciels sp\u00e9cifiques pour r\u00e9aliser les masques, construire l\u2019arbre d\u2019horloge, simuler en analogique certaines parties, concevoir les alimentations\u2026 Beaucoup de logiciels libres existent pour cela, tous ne sont pas matures ou restent tr\u00e8s universitaire dans leur version <em>open&nbsp;source<\/em>. Mais il est possible de les utiliser tout de m\u00eame pour r\u00e9aliser un composant, comme l\u2019a d\u00e9montr\u00e9 <a href=\"https:\/\/www.hackster.io\/ef\/raven-risc-v-microcontroller-based-on-picorv32-core-f2f53d\">Tim&nbsp;Edwards<\/a> avec le <a href=\"https:\/\/linuxfr.org\/news\/un-asic-concu-integralement-avec-des-logiciels-libres\">Raven<\/a> (un microcontr\u00f4leur <a href=\"https:\/\/fr.wikipedia.org\/wiki\/RISC-V\">RISC\u2011V<\/a> \u00e0 base de <a href=\"https:\/\/github.com\/cliffordwolf\/picorv32\">PicoRV32<\/a>).<\/p>\n\n\n\n<p>Cependant, m\u00eame s\u2019il n\u2019a utilis\u00e9 que des logiciels libres pour r\u00e9aliser le Raven, Tim n\u2019a pas pu acc\u00e9der \u00e0 la description physique des composants num\u00e9riques qu\u2019il utilisait. Il a d\u00fb se contenter de \u00ab&nbsp;bo\u00eetes&nbsp;noires&nbsp;\u00bb repr\u00e9sentant chaque fonction logique \u00e0 assembler pour r\u00e9aliser le microcontr\u00f4leur. En effet, tous ces logiciels libres demeurent quasiment inutiles si l\u2019on n\u2019a pas acc\u00e8s \u00e0 la description physique de la technologie cible utilis\u00e9e. Les fondeurs de silicium fournissent un PDK (<em>process design kit<\/em>) contenant des biblioth\u00e8ques de composants avec la description physique de leurs technologies, ainsi que la g\u00e9om\u00e9trie de chaque transistor et les mod\u00e8les de simulations <em>spice<\/em> permettant de valider le comportement analogique. Et pour avoir acc\u00e8s \u00e0 ces PDK, la vente de vos deux reins ne suffira pas, m\u00eame si vous signez les triples NDA (accord de non\u2011divulgation) avec votre sang. Ce PDK reste le gros frein \u00e0 la lib\u00e9ration du mat\u00e9riel, un caillou dans la chaussure du mat\u00e9riel libre. C\u2019est ce que Google a bien compris en finan\u00e7ant le d\u00e9veloppement d\u2019un PDK libre via la soci\u00e9t\u00e9 SkyWater&nbsp;: le&nbsp;<a href=\"https:\/\/github.com\/google\/skywater-pdk\">SKY130<\/a>.<\/p>\n\n\n\n<p>La publication du SKY130 vient d\u2019\u00eatre annonc\u00e9e cette semaine par Tim&nbsp;Ansell <a href=\"https:\/\/www.youtube.com\/watch?time_continue=1&amp;v=EczW2IWdnOM\">lors d\u2019un \u00ab&nbsp;<em>dial\u2011up<\/em>&nbsp;\u00bb<\/a> de la <a href=\"https:\/\/fossi-foundation.org\/\">FOSSi Foundation<\/a>. Comme son nom l\u2019indique, ce PDK cible la technologie 130\u202fnm. Cette taille de gravure peut sembler obsol\u00e8te quand on sait qu\u2019Intel fabrique de plus en plus en 7\u202fnm, et commence m\u00eame \u00e0 tester le 4\u202fnm. Mais les cha\u00eenes de fabrication de silicium avec cette finesse de gravure permettent un co\u00fbt de production tr\u00e8s raisonnable pour des performances qui ne sont pas non plus ridicules. SiFive, par&nbsp;exemple, a sorti un microcontr\u00f4leur 32&nbsp;bits RISC\u2011V (<a href=\"https:\/\/www.sifive.com\/chip-designer#fe310\">E310<\/a>) grav\u00e9 en 180\u202fnm et tout de m\u00eame cadenc\u00e9 \u00e0 320\u202fMHz. Il est donc possible de r\u00e9aliser beaucoup de chose avec du&nbsp;130\u202fnm.<\/p>\n\n\n\n<p>Et pour promouvoir son PDK et f\u00e9d\u00e9rer une communaut\u00e9 de passionn\u00e9s, hobbyistes, universitaires, \u00ab&nbsp;startupeuses&nbsp;\u00bb, etc., Google a d\u00e9cid\u00e9 de produire quarante projets \u00e0 base de ce PDK tous les six mois et gratuitement. Le premier \u00ab&nbsp;shuttle&nbsp;\u00bb est pr\u00e9vu pour novembre. Pour \u00eatre dans le wagon, il faut que son projet soit <em>open&nbsp;source<\/em> et le soumettre au site en ligne <em><a href=\"https:\/\/efabless.com\/\">efabless.com<\/a><\/em>. Visiblement, la m\u00e9thode de choix des projets retenus n\u2019est pas encore bien d\u00e9finie\u202f; mais si vous \u00eates retenu, vous aurez une r\u00e9ponse par courriel.<\/p>\n\n\n\n<p>Il est temps pour <em>LinuxFr.org<\/em> de faire passer TapTempo dans une autre sph\u00e8re que le simple programme en <a href=\"https:\/\/fr.wikipedia.org\/wiki\/Brainfuck\">Brainfuck<\/a> et de proposer un composant \u00e9lectronique <a href=\"https:\/\/github.com\/Martoni\/TapTempoASIC\">TapTempoASIC<\/a>\u202f!<\/p>\n\n\n\n<p>Et pourquoi ne pas proposer un FPGA en 130\u202fnm\u202f? M\u00eame si aujourd\u2019hui les FPGA sont plus proches du&nbsp;40\u202fnm, un FPGA <em>open&nbsp;source<\/em> comme le <a href=\"https:\/\/linuxfr.org\/news\/k1g1-le-premier-fpga-libre\">kFPGA<\/a> de <em><a href=\"https:\/\/linuxfr.org\/users\/killruana\">killruana<\/a><\/em>, \u00e7a aurait la classe.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Aller plus loin<\/h2>\n\n\n\n<ul class=\"wp-block-list\"><li><a href=\"https:\/\/linuxfr.org\/redirect\/106543\">Le d\u00e9p\u00f4t GitHub du\u00a0PDK<\/a><\/li><li><a href=\"https:\/\/linuxfr.org\/redirect\/106544\">La vid\u00e9o de Tim\u00a0Ansell pr\u00e9sentant le\u00a0projet<\/a><\/li><\/ul>\n","protected":false},"excerpt":{"rendered":"<p>[D\u00e9p\u00eache publi\u00e9e initialement sur LinuxFR] La lib\u00e9ration des FPGA s\u2019acc\u00e9l\u00e8re \u00e0 grands pas, il devient presque difficile de suivre toutes les nouvelles sur le sujet. Mais les FPGA ne doivent pas nous faire oublier leurs grands fr\u00e8res que sont les ASIC.Un FPGA est un composant ayant un silicium d\u00e9j\u00e0 \u00ab&nbsp;grav\u00e9&nbsp;\u00bb mais o\u00f9 il est possible &hellip; <a href=\"http:\/\/www.fabienm.eu\/flf\/google-libere-les-asic-avec-un-pdk-open-source-en-130%e2%80%afnm\/\" class=\"more-link\">Continuer la lecture de <span class=\"screen-reader-text\">Google lib\u00e8re les ASIC avec un PDK open source en 130\u202fnm<\/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":[1],"tags":[],"class_list":["post-1571","post","type-post","status-publish","format-standard","hentry","category-non-classe"],"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":0,"uagb_excerpt":"[D\u00e9p\u00eache publi\u00e9e initialement sur LinuxFR] La lib\u00e9ration des FPGA s\u2019acc\u00e9l\u00e8re \u00e0 grands pas, il devient presque difficile de suivre toutes les nouvelles sur le sujet. Mais les FPGA ne doivent pas nous faire oublier leurs grands fr\u00e8res que sont les ASIC.Un FPGA est un composant ayant un silicium d\u00e9j\u00e0 \u00ab&nbsp;grav\u00e9&nbsp;\u00bb mais o\u00f9 il est possible\u2026","_links":{"self":[{"href":"http:\/\/www.fabienm.eu\/flf\/wp-json\/wp\/v2\/posts\/1571","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=1571"}],"version-history":[{"count":2,"href":"http:\/\/www.fabienm.eu\/flf\/wp-json\/wp\/v2\/posts\/1571\/revisions"}],"predecessor-version":[{"id":1573,"href":"http:\/\/www.fabienm.eu\/flf\/wp-json\/wp\/v2\/posts\/1571\/revisions\/1573"}],"wp:attachment":[{"href":"http:\/\/www.fabienm.eu\/flf\/wp-json\/wp\/v2\/media?parent=1571"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/www.fabienm.eu\/flf\/wp-json\/wp\/v2\/categories?post=1571"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/www.fabienm.eu\/flf\/wp-json\/wp\/v2\/tags?post=1571"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}