URL: https://linuxfr.org/news/google-libere-les-asic-avec-un-pdk-open-source-en-130-nm Title: Google libĂšre les ASIC avec un PDK open source en 130 nm Authors: martoni BAud, Ysabeau đ§¶, Xavier Teyssier et Davy Defaud Date: 2020ćčŽ07æ02æ„T10:05:20+02:00 License: CC By-SA Tags: matĂ©riel, fpga, kfpga, taptempo et open_hardware Score: 45 La libĂ©ration des [FPGA](https://fr.wikipedia.org/wiki/Circuit_logique_programmable "Circuit logique programmable") sâaccĂ©lĂšre Ă 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Ăšres que sont les [ASIC](https://fr.wikipedia.org/wiki/Application-specific_integrated_circuit "Applicationâspecific integrated circuit â circuit intĂ©grĂ© spĂ©cialisĂ©"). Un FPGA est un composant ayant un silicium dĂ©jà « gravĂ© » mais oĂč il est possible de reconfigurer les connexions entre les Ă©lĂ©ments logiques Ă volontĂ©. Dans le cas dâun ASIC, on va cette fois graver directement les transistors sur un silicium vierge et les relier via des couches mĂ©taliques une fois pour toutes. Il ne faut surtout pas se planter Ă lâĂ©tape de conception car on ne pourra pas modifier les interconnexions une fois la production lancĂ©e. ---- [Le dĂ©pĂŽt GitHub du PDK](https://github.com/google/skywater-pdk) [La vidĂ©o de Tim Ansell prĂ©sentant le projet](https://www.youtube.com/watch?time_continue=1&v=EczW2IWdnOM) [Les diapositives de la prĂ©sentation de Tim Ansell](https://docs.google.com/presentation/d/e/2PACX-1vRtwZPc8ykkkgtUkHkoJZrP9jKOo3FYdKqbg-So0ic6_kx7ha1vHnxrWmuxWkTc9GfC8xl0TfEpMLwK/pub?start=false&loop=false&delayms=3000#slide=id.g4ac72a3b20_0_45) ---- Pour rĂ©aliser un ASIC, il faut fournir un plan des masques de chaque couche de dopage du silicium ainsi que des couches mĂ©taliques. Voici par exemple la reprĂ©sentation dâune [bascule D](https://fr.wikipedia.org/wiki/Bascule_(circuit_logique)#Bascule_D) :  Pour ce faire, on va partir dâune description RTL (_[Register Transfert Level](https://fr.wikipedia.org/wiki/Register_Transfer_Level)_) du composant, similaire aux descriptions utilisĂ©es pour les FPGA â la plupart du temps du Verilog ou du VHDL â que nous allons « synthĂ©tiser » en une Netlist. La suite va ressembler (de loin) Ă du placementâroutage et de la simulation analogiqueânumĂ©rique, comme on peut le voir avec la conception de carte Ă©lectronique. Le flot de conception typique du monde du matĂ©riel est donnĂ© dans une des diapositives de la prĂ©sentation de [Tim Ansell](https://www.youtube.com/user/mithro) ciâdessous :  La partie langage de description du matĂ©riel et simulation est dĂ©jĂ largement libĂ©rĂ©e. Il existe des tas de composants _open source_ dĂ©crits en VHDL et/ou en Verilog Ă prĂ©sent. Les outils de synthĂšse libres arrivent aujourdâhui Ă maturitĂ© avec [Yosys](http://www.clifford.at/yosys/), bien sĂ»r, pour le Verilog (et bientĂŽt mature pour le VHDL grĂące au greffon [GHDL-yosys](https://github.com/ghdl/ghdl-yosys-plugin)), mais aussi [Alliance](https://www-soc.lip6.fr/equipe-cian/logiciels/alliance/) pour le VHDL. Les trois piliers logiciels (EDA pour les outils, PDK les donnĂ©es et RTL le design) permettant de rĂ©aliser un ASIC sont donnĂ©s dans une autre diapo de Tim ciâdessous :  Une fois la description « RTL » du composant synthĂ©tisĂ©e, il nous reste beaucoup dâĂ©tapes Ă franchir avant dâobtenir une description des masques de gravure permettant la fabrication proprement dite. Toutes ces Ă©tapes nĂ©cessitent lâutilisation de logiciels spĂ©cifiques pour rĂ©aliser les masques, construire lâarbre dâhorloge, simuler en analogique certaines parties, concevoir les alimentations... Beaucoup de logiciels libres existent pour cela, tous ne sont pas matures ou restent trĂšs universitaire dans leur version _open source_. Mais il est possible de les utiliser tout de mĂȘme pour rĂ©aliser un composant, comme lâa dĂ©montrĂ© [Tim Edwards](https://www.hackster.io/ef/raven-risc-v-microcontroller-based-on-picorv32-core-f2f53d) avec le [Raven](https://linuxfr.org/news/un-asic-concu-integralement-avec-des-logiciels-libres) (un microcontrĂŽleur [RISCâV](https://fr.wikipedia.org/wiki/RISC-V) Ă base de [PicoRV32](https://github.com/cliffordwolf/picorv32)). Cependant, mĂȘme sâil nâa utilisĂ© que des logiciels libres pour rĂ©aliser le Raven, Tim nâa pas pu accĂ©der Ă la description physique des composants numĂ©riques quâil utilisait. Il a dĂ» se contenter de « boĂźtes noires » reprĂ©sentant chaque fonction logique Ă assembler pour rĂ©aliser le microcontrĂŽleur. En effet, tous ces logiciels libres demeurent quasiment inutiles si lâon nâa pas accĂšs Ă la description physique de la technologie cible utilisĂ©e. Les fondeurs de silicium fournissent un PDK (_process design kit_) contenant des bibliothĂšques de composants avec la description physique de leurs technologies, ainsi que la gĂ©omĂ©trie de chaque transistor et les modĂšles de simulations _spice_ permettant de valider le comportement analogique. Et pour avoir accĂšs Ă ces PDK, la vente de vos deux reins ne suffira pas, mĂȘme si vous signez les triples NDA (accord de nonâdivulgation) avec votre sang. Ce PDK reste le gros frein Ă la libĂ©ration du matĂ©riel, un caillou dans la chaussure du matĂ©riel libre. Câest ce que Google a bien compris en finançant le dĂ©veloppement dâun PDK libre via la sociĂ©tĂ© SkyWater : le [SKY130](https://github.com/google/skywater-pdk). La publication du SKY130 vient dâĂȘtre annoncĂ©e cette semaine par Tim Ansell [lors dâun « _dialâup_ »](https://www.youtube.com/watch?time_continue=1&v=EczW2IWdnOM) de la [FOSSi Foundation](https://fossi-foundation.org/). Comme son nom lâindique, ce PDK cible la technologie 130 nm. Cette taille de gravure peut sembler obsolĂšte quand on sait quâAMD fabrique de plus en plus en 7 nm, et commence mĂȘme Ă tester le 4 nm. Mais les chaĂźnes de fabrication de silicium avec cette finesse de gravure permettent un coĂ»t de production trĂšs raisonnable pour des performances qui ne sont pas non plus ridicules. SiFive, par exemple, a sorti un microcontrĂŽleur 32 bits RISCâV ([E310](https://www.sifive.com/chip-designer#fe310)) gravĂ© en 180 nm et tout de mĂȘme cadencĂ© Ă 320 MHz. Il est donc possible de rĂ©aliser beaucoup de chose avec du 130 nm. Et pour promouvoir son PDK et fĂ©dĂ©rer une communautĂ© de passionnĂ©s, hobbyistes, universitaires, « startupeuses », etc., Google a dĂ©cidĂ© de produire quarante projets Ă base de ce PDK tous les six mois et gratuitement. Le premier « shuttle » est prĂ©vu pour novembre. Pour ĂȘtre dans le wagon, il faut que son projet soit _open source_ et le soumettre au site en ligne _[efabless.com](https://efabless.com/)_. Visiblement, la mĂ©thode de choix des projets retenus nâest pas encore bien dĂ©finie ; mais si vous ĂȘtes retenu, vous aurez une rĂ©ponse par courriel. Il est temps pour _LinuxFr.org_ de faire passer TapTempo dans une autre sphĂšre que le simple programme en [Brainfuck](https://fr.wikipedia.org/wiki/Brainfuck) et de proposer un composant Ă©lectronique [TapTempoASIC](https://github.com/Martoni/TapTempoASIC) ! Et pourquoi ne pas proposer un FPGA en 130 nm ? MĂȘme si aujourdâhui les FPGA sont plus proches du 40 nm, un FPGA _open source_ comme le [kFPGA](https://linuxfr.org/news/k1g1-le-premier-fpga-libre) de _[killruana](https://linuxfr.org/users/killruana)_, ça aurait la classe.