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) : ![Une bascule D](http://fabienm.eu/partage/dlatch.png) 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 : ![Flot de dĂ©veloppement ASIC/FPGA](http://www.fabienm.eu/partage/eda_tools.png) 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 : ![SchĂ©ma de principe dĂ©veloppement ASIC](http://www.fabienm.eu/partage/asic_schema.png) 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.

AltStyle ă«ă‚ˆăŁăŠć€‰æ›ă•ă‚ŒăŸăƒšăƒŒă‚ž (->ă‚ȘăƒȘă‚žăƒŠăƒ«) /