Une brève histoire des ASIC libres

Magazine
Marque
Hackable
Numéro
36
Mois de parution
janvier 2021
Spécialités


Résumé

Derrière les annonces sur l’initiative Google/Skywater, à l'heure où NVIDIA rachète ARM et donc booste mécaniquement RISC-V, c'est toute une industrie qui va lentement, et inexorablement, basculer vers... un peu plus d'ouverture. Pour faire le point et envisager tout ce qu’il reste à faire, voici une rapide rétrospective, une petite revue des pratiques et de l’histoire de l'industrie impitoyable des galettes de silicium.


Il y a 20 ans, j’écrivais « La fabrication d'un circuit intégré entièrement à partir d'outils libres, portables, interchangeables, standard, n'est [...] pas encore possible. » dans GLMF no36 [1]. Que de chemin parcouru depuis ! Pour contempler cette évolution incroyable, nous allons survoler quelques faits marquants, des projets révélateurs et des initiatives aux succès variés. Ne vous inquiétez pas trop des détails techniques : bien qu’il soit question des méthodes de conception et de fabrication d’un circuit intégré, c’est surtout la dynamique de l’industrie qui est au cœur de cet article. La découverte des outils viendra naturellement ensuite !

1. Une longue quête...

La magie de la microélectronique fait rêver d’innombrables bricoleurs : pour beaucoup, le Saint Graal est de créer ses propres puces, et nous allons discuter des contraintes énormes qui confinent cela au domaine du rêve. Il existe pourtant d’autres façons de réaliser...

Cet article est réservé aux abonnés. Il vous reste 98% à découvrir.
à partir de 21,65€ HT/mois/lecteur pour un accès 5 lecteurs à toute la plateforme
J'en profite
Références

[1] Yann Guidon : « Développer en VHDL sous Linux » GLMF no36, 2001 : http://f-cpu.seul.org/new/lm02.tgz (état de l’art en 2001 de la programmation avec Vanilla VHDL et Simili).

[2] Histoire et description des différentes familles de circuits à fonction logique configurables : https://fr.wikipedia.org/wiki/Circuit_logique_programmablehttps://en.wikipedia.org/wiki/Programmable_logic_device (plus précis).

[3] « 1967 : Application Specific Integrated Circuits employ Computer-Aided Design » : https://www.computerhistory.org/siliconengine/application-specific-integrated-circuits-employ-computer-aided-design/.

[4] Ken Shirriff examine une puce 8086 contrefaite et découvre un Gate Array à la place : http://www.righto.com/2020/08/inside-counterfeit-8086-processor.html.

[5] Bibliothèque des schémas électroniques des ordinateurs personnels 8 bits Thomson : http://dcmoto.free.fr/documentation/schemas.html.

[6] L’indispensable « Manuel technique du MO5 » par Michel Oury, ed. TOTEK/CEDIC, 1985,scan disponible à : http://dcmoto.free.fr/documentation/manueltechniquemo5/index.html.

[7] Les ASIC structurés sont un intermédiaire entre ASIC et FPGA : https://en.wikipedia.org/wiki/Structured_ASIC_platform.

[8] Annonce du programme Hard Copy de conversion de FPGA vers circuits prédiffusés à haute densité« Altera joins FPGA-to-ASIC drive as gate arrays come back in vogue » par Anthony Cataldo, 7 septembre 2001 : https://www.eetimes.com/altera-joins-fpga-to-asic-drive-as-gate-arrays-come-back-in-vogue/« [Lightspeed Semiconductor claims] the volume price is about 80 percent lower than for equivalent Xilinx devices ».

[9] « Transfer from FPGAs for prototype to ASICs for production » Terry Danzer and Cale Entzel, EE Times, novembre 2011 : https://www.eetimes.com/transfer-from-fpgas-for-prototype-to-asics-for-production/« [...] a migration from an FPGA to an ASIC can cut the production unit cost by up to 50%. »Décrit les contraintes, avantages et inconvénients de traduire un projet FPGA vers un circuit prédiffusé.

[10] https://en.wikipedia.org/wiki/Electron-beam_lithography ou https://fr.wikipedia.org/wiki/Lithographie_à_faisceau_d'électrons.

[11] Les cellules standard des ASIC :https://en.wikipedia.org/wiki/Standard_cell (l'article n'existe pas en français).

[12] L’annonce de l’initiative Google/Skywater : https://www.eenewsanalog.com/news/free-chips-courtesy-google-skywater-efabless,
https://hardware.developpez.com/actu/306990/Google-propose-en-open-source-PDK-SkyWater-un-kit-de-conception-de-processus-pour-concevoir-gratuitement-des-puces-en-130-nm/.

[13] Europractice est l'organisme européen de coordination des circuits multiprojets : https://europractice-ic.com/.

[14] L'organisateur américain du partage des circuits intégrés Metal Oxide Semiconductor Implementation Service : https://mosis.com/https://en.wikipedia.org/wiki/MOSIS.

[15] Le site du CMP à Grenoble propose un agenda pour les prochains lots de circuits, allant de 28 nm à 350 nm de finesse : https://mycmp.fr/technologies/runs-schedule-69.html?annee=2020.

[16] Blog de Sam Zeloof décrivant ses efforts pour réaliser des circuits intégrés dans son garage : http://sam.zeloof.xyz/category/semiconductor/http://sam.zeloof.xyz/first-ic/.

[17] La page personnelle de Lynn Conway réunissant ses travaux : http://ai.eecs.umich.edu/people/conway/conway.html.

[18] Archive de documents et ressources éducatives sur l'enseignement de la conception des circuits intégrés durant les années 70-80 : http://ai.eecs.umich.edu/people/conway/VLSI/VLSIarchive.html.

[19] Le « Lions’ book », ou plus précisément « Lions' Commentary on UNIX 6th Edition, with Source Code », est un livre de 1976 contenant le code source commenté et expliqué de la 6e édition de l’UNIX de Bell Labs. Il fut à l’origine conçu comme support de cours pour enseigner la structure des systèmes d'exploitation, puis largement reproduit sous le manteau. Cela a rendu UNIX très accessible et attractif, contribuant à la dominance d'UNIX dans les années 80 et 90 : https://en.wikipedia.org/wiki/Lions’_Commentary_on_UNIX_6th_Edition,_with_Source_Code.

[20] La « Révolution Mead-Conway » a inspiré l'émergence de l'industrie du semi-conducteur telle que nous la connaissons aujourd'hui, où les bureaux d'étude ne sont plus totalement dépendants des fondeurs : https://en.wikipedia.org/wiki/Mead_&_Conway_revolution.

[21] Liste d'usines de lithographie de circuits intégrés (plus de 1000 actuellement actives) : https://en.wikipedia.org/wiki/List_of_semiconductor_fabrication_plants.

[22] https://en.wikipedia.org/wiki/Magic_(software), http://www.opencircuitdesign.com/magic/.

[23] L'histoire du projet F-CPU est conservée au chapitre 3 du manuel, disponible à : http://f-cpu.seul.org/cedric/unstable/F-CPU_manual-0.2.7c-en-color.pdf.

[24] Première annonce du projet F-CPU : https://news.slashdot.org/story/98/09/08/1646240/the-f-cpu-project-the-freedom-cpu-project.

[25] Calendrier des conférences du 16C3 à Berlin : https://events.ccc.de/congress/1999/fahrplan.html#44.

[26] Tour d'horizon et tutoriel des différents outils VHDL disponibles en 2000-2002 : http://f-cpu.seul.org/new/VHDL-HOWTO.f-cpu.

[27] La suite logicielle Alliance, créée au début des années 90, est maintenant remplacée par Coriolis : http://coriolis.lip6.fr/

[28] Le site de GHDL, le simulateur VHDL puissant, soucieux des standards et surtout totalement libre : http://ghdl.free.fr/

[29] Yann Guidon, « Rencontre avec Tristan Gingold, l’auteur de GHDL », GLMF no127, mai 2010, pp60-63 : https://connect.ed-diamond.com/GNU-Linux-Magazine/GLMF-127/Rencontre-avec-Tristan-Gingold-l-auteur-de-GHDL.

[30] Il reste quelques traces du site OpenCollector sur la Wayback Machine : https://web.archive.org/web/20140209071318/http://www.opencollector.org/.

[31] Archive du Utopia Computing Webring : https://web.archive.org/web/20040803113251/http://opencollector.org/cgi-bin/utopia/index.

[32] Page d'accueil du « Homebrew CPU webring » : https://www.homebrewcpuring.org/. C'est une des premières listes de projets d'ordinateurs exotiques et originaux, conçus par des amateurs. Pour y être admis, les règles sont de ne pas utiliser d'architecture ou de microprocesseurs existant déjà, de réussir à faire fonctionner (au moins en partie) le système, et d'explorer des technologies parfois surprenantes : NMOS, TTL, DTL, relais électromagnétiques, FPGA ou même EEPROM ! Ce webring fait la part belle aux BMOW (Big Mess of Wires) sur breadboards et a inspiré de nombreux bricoleurs à jouer avec les technologies d'antan. 20 ans après sa création, on peut en partie attribuer à ce site (ainsi qu'à eBay) la mode des processeurs néo-vintage à base de composants discrets et/ou anciens, qui a indirectement motivé de nombreux projets tels que le Gigatron ou le Megaprocessor. Aujourd'hui, l'activité de créer son propre processeur avec des circuits discrets est passée du rang d’obscur hobby de nerds à celui d'art, mêlant histoire et technologie.

[33] Liste des licences acceptées sur le Open Hardware Repository du CERN : https://ohwr.org/licences.

[34] Aperçu de la multiplication des initiatives de matériel open source : https://en.wikipedia.org/wiki/Open-source_hardware.

[35] Richard Stallman, « Matériel libre et plans libres pour le matériel », mars 2015.Première partie : « Pourquoi nous avons besoin de designs libres » : https://www.wired.com/2015/03/need-free-digital-hardware-designs/ Deuxième partie : « Voilà comment concevoir du matériel libre » : https://www.wired.com/2015/03/richard-stallman-how-to-make-hardware-designs-free/ Version française combinée : https://www.gnu.org/philosophy/free-hardware-designs.fr.html.

[36] https://en.wikipedia.org/wiki/OpenCores

[37] le processeur OpenRISC 1000 : https://opencores.org/projects/or1k, https://openrisc.io/, https://en.wikipedia.org/wiki/OpenRISC, https://en.wikipedia.org/wiki/OpenRISC_1200.

[38] https://chips4makers.io/blog/the-buzzword-article-part-2-crowdfunding.html.

[39] Open Hardware Repository est un hébergement gratuit de projets Open Hardware compatibles avec les licences et projets du CERN : https://ohwr.org/.

[40] Le processeur LEON, compatible SPARC V-8 : https://fr.wikipedia.org/wiki/LEON, https://en.wikipedia.org/wiki/LEON, https://www.gaisler.com/.

[41] The CPU Shack Museum « ESA Solar Orbiter: When SPARCs Fly » 9 février 2020 : http://www.cpushack.com/2020/02/09/esa-solar-orbiter-when-sparcs-fly/.

[42] Denis Bodor découvre que le NetGear ReadyNAS Duo embarque un cœur LEON dans Open Silicium no1 de janvier 2011, « Exploration du NetGear ReadyNAS Duo » : https://connect.ed-diamond.com/Open-Silicium/OS-001/Exploration-du-NetGear-ReadyNAS-Duo.

[43] L’adresse opensparc.net redirige aujourd'hui vers https://www.oracle.com/servers/technologies/opensparc-overview.html.

[44] https://en.wikipedia.org/wiki/OpenSPARC

[45] https://en.wikipedia.org/wiki/OpenPOWER_Foundation

[46] https://openpowerfoundation.org/

[47] https://en.wikipedia.org/wiki/Cell_(microprocessor)

[48] https://openpowerfoundation.org/cores-and-more/

[49] https://en.wikipedia.org/wiki/IBM_A2

[50] https://github.com/openpower-cores/a2ihttps://github.com/openpower-cores/a2o

[51] https://en.wikipedia.org/wiki/IBM_Blue_Gene

[52] Pages décrivant les processeurs RISC-V intégrés dans les FPGA de Microsemi : https://www.microsemi.com/product-directory/mi-v-embedded-ecosystem/4406-risc-v-cpus, https://www.microsemi.com/product-directory/fpga-soc/5210-mi-v-embedded-ecosystem.

[53] https://en.wikipedia.org/wiki/LatticeMico32

[54] Michael Larabel, « ARM Launches "Facts" Campaign Against RISC-V » 9 juillet 2018 : https://www.phoronix.com/scan.php?page=news_item&px=ARM-RISC-V-Facts.

[55] https://www.arm.com/resources/designstart

[56] La fondation NLnet : https://en.wikipedia.org/wiki/NLnet, https://nlnet.nl/.

[57] Formulaire pour déposer une demande de financement pour des projets libres : https://nlnet.nl/propose/.

[58] La page principale du projet Libre-SOC : https://libre-soc.org/.

[59] La page de financement participatif initiale : https://www.crowdsupply.com/libre-risc-v/m-class.

[60] Annonce du projet Libre-RISCV sur Phoronix : https://www.phoronix.com/scan.php?page=news_item&px=Libre-GPU-RISC-V-Vulkanhttps://www.phoronix.com/scan.php?page=news_item&px=Libre-RISC-V-Performance-Target.

[61] Le projet EOMA68 : http://rhombus-tech.net/, https://www.crowdsupply.com/eoma68/micro-desktop.

[62] Commentaires sur les buts du projet Libre-SOC : https://www.phoronix.com/forums/forum/hardware/graphics-cards/1207878-libre-soc-still-persevering-to-be-a-hybrid-cpu-gpu-that-s-100-open-source/page2.

[63] Détails de la logique d’exécution dans le désordre inspirée par le CDC6600 : https://libre-soc.org/3d_gpu/architecture/6600scoreboard/.

[64] Inscrivez-vous à la mailing list du projet ! http://lists.libre-riscv.org/mailman/listinfo/libre-riscv-dev.

[65] Requête d’aide financière pour la collaboration entre les projets Libre-SOC, nMigen et Coriolis : https://libre-soc.org/nlnet_2019_coriolis2/.

[66] Le bugtracker du projet Libre-SOC : https://bugs.libre-soc.org/buglist.cgi?component=Milestones&list_id=508&resolution=---.

[67] Chips4Makers est une initiative d’assistance au prototypage de circuits intégrés libres : https://chips4makers.io/.

[68] Table comparant les caractéristiques des architectures envisagées : https://libre-soc.org/3d_gpu/arch_comparison/.

[69] Annonce de la décision et explication des raisons du choix d’utiliser l’ISA de POWER : http://lists.libre-riscv.org/pipermail/libre-riscv-dev/2019-October/003035.html.

[70] Premiers programmes POWER exécutés par Libre-SOC le 3 septembre 2020 sur un FPGA : https://www.youtube.com/watch?v=72QmWro9BSE.

[71] Shan Tang : « A list of Chip/IP for Deep Learning » (2017) : https://medium.com/@shan.tang.g/a-list-of-chip-ip-for-deep-learning-48d05f1759ae.

[72] Présentation de Timothy Ansell, « Open Source manufacturable PDK for SkyWater 130nm process node », 30 juin 2020 : https://www.youtube.com/watch?v=EczW2IWdnOM Slides : https://j.mp/du20-sky130.

[73] La société eFabless se charge du Multi-Project Wafer financé par Google : https://efabless.com/open_shuttle_program.

[74] Google accepte seulement certaines licences dans son offre de prototypage gratuit : https://efabless.com/open_mpw_faq.



Articles qui pourraient vous intéresser...

Transformez la Nintendo Game & Watch en plateforme de développement

Magazine
Marque
Hackable
Numéro
38
Mois de parution
juillet 2021
Spécialités
Résumé

Fin 2020 et pour le 35e anniversaire de la franchise Mario, Nintendo se laissa aller à un brin de nostalgie en lançant la Game & Watch Super Mario Bros. Cette console de poche vendue pour quelque 40 € et inspirée des jeux électroniques des années 80 et 90 renferme bien plus de choses intéressantes que les simples pérégrinations d'un plombier italien. Il s'agit en réalité d'un système ARM Cortex-M7 émulant une NES et donc d'un séduisant ensemble permettant de développer ses propres codes...

Raspberry Pi Pico : personnaliser les informations binaires des firmwares

Magazine
Marque
Hackable
Numéro
38
Mois de parution
juillet 2021
Spécialités
Résumé

La carte Pico et son microcontrôleur RP2040 apportent des innovations très intéressantes en termes de fonctionnalités, comme par exemple les instances PIO permettant l'ajout de nouveaux périphériques au cœur même de la puce. Mais ces idées et concepts s'étendent également à l'aspect purement logiciel et au système de construction de binaires et de firmwares. Savez-vous, par exemple, qu'il vous est possible d'embarquer des méta-informations au sein même de vos exécutables placés en flash ? Faisons donc ensemble un petit tour de ces fonctionnalités...

Un capteur de couleurs maison

Magazine
Marque
Hackable
Numéro
38
Mois de parution
juillet 2021
Spécialités
Résumé

L’article précédent nous a permis d’apprivoiser à la fois la Maple Mini et la LDR, aboutissant à un croquis destiné à les utiliser comme un petit luxmètre. Partons de ces bonnes bases pour concevoir un capteur de couleurs !

Développez pour la Nintendo Game & Watch

Magazine
Marque
Hackable
Numéro
38
Mois de parution
juillet 2021
Spécialités
Résumé

Dans un précédent article, nous avons fait connaissance avec la console Game & Watch, produite par Nintendo à l'occasion des 35 ans de Mario. Grâce au travail de brillants développeurs, nous avons pu procéder à une sauvegarde complète du firmware de la console afin de basculer, en toute sécurité, le microcontrôleur STM32H7B0 dans un mode nous permettant de développer sereinement. Il est temps maintenant de faire connaissance avec l'environnement de développement et les spécificités du matériel pour produire un code « maison », plus évolué que la simple démonstration de base.

Pico : Accéder aux informations binaires depuis votre code

Magazine
Marque
Hackable
Numéro
38
Mois de parution
juillet 2021
Spécialités
Résumé

Le SDK de la Raspberry Pi Pico embarque par défaut des informations dans les firmwares comme la date de construction, la version du SDK utilisée, le nom du projet, etc. Il est également possible de personnaliser certaines d'entre elles afin d'ajouter une description sommaire, une version ou une URL de référence, tout ceci étant consultable facilement dans le fichier binaire issue de la compilation, mais également directement depuis la carte avec l'utilitaire Picotool. Voyons comment accéder à ces mêmes informations depuis le code s'exécutant sur le microcontrôleur RP2010...