Comment concevoir une nouvelle puce avec un budget

Par David Schneider

Posé le 2018-02-05 18:00 GMT

Le gourou du matériel informatique bunnie Huang parle des outils open-source qu’il utilise pour concevoir des circuits, et de la raison pour laquelle il veut construire son propre ASIC

Photo : bunnie Huang

Nous avons récemment eu un échange intéressant avec bunnie Huang, gourou du matériel et créateur de Chumby, NeTV et de l’ordinateur portable Novena, entre autres. Il est également l’auteur de Hacking the Xbox, The Essential Guide to Electronics in Shenzhen, et non pas un mais deux articles de fond dans IEEE Spectrum.

Nous étions intéressés par le point de vue de Huang sur la question de savoir si une petite équipe modestement financée – disons une startup de dortoir de collège – pourrait produire une puce personnalisée, tout comme de tels groupes créent maintenant des produits et des logiciels de niveau carte avec facilité.

Les entreprises de logiciels bénéficient en particulier de la grande quantité de code open-source qui est disponible pour être utilisé dans la construction de produits commerciaux. (Une étude a révélé que l’application commerciale moyenne contient 35 % de code open-source). Nous voulions savoir si les concepteurs de puces bénéficiaient également d’un riche écosystème de blocs de construction à code source ouvert. Ou bien la conception de puces est-elle encore si fermée et si difficile qu’elle est vraiment réservée aux grandes entreprises établies ?

IEEE Spectrum : Pourquoi une petite startup voudrait-elle produire son propre circuit intégré spécifique à une application (ASIC) en premier lieu ? Ne pourrait-elle pas simplement utiliser un réseau de portes programmables (FPGA) pour le produit qu’elle souhaite faire éclore ?

Huang : Les FPGA se présentent généralement sous la forme de gros paquets encombrants et consomment beaucoup trop d’énergie.

Les ASIC sont absolument nécessaires pour fabriquer des choses comme des prothèses auditives, des dispositifs médicaux implantables ou comestibles, des traceurs GPS à porter par les animaux, des radios mobiles, des dispositifs RFID, des cartes de vœux électroniques ou d’autres circuits jetables à usage unique.

Un autre exemple est le circuit intégré de pilotage à l’intérieur de la puce WS2812 – il a révolutionné l’éclairage pour être en mesure de créer une LED RVB à emballage unique avec un protocole série intégré en intégrant un minuscule ASIC avec les LED. (En fait, j’ai pu rencontrer le gars qui a conçu la première variante commercialement viable de ceci.)

Il y a donc définitivement une large gamme de produits vraiment utiles, qui changent l’industrie, que les FPGA ne peuvent tout simplement pas toucher – principalement ce que vous pourriez appeler  » des trucs bon marché, à faible puissance « .

Comment décideriez-vous quand utiliser un FPGA et quand créer un ASIC ? Cela dépend. Les FPGA gaspillent une grande quantité de silicium par rapport à un ASIC, donc le coût plancher, qui dépend en grande partie de la surface de silicium nécessaire pour la puce, est souvent un ordre de grandeur plus élevé que ce que vous voudriez. Mais la fabrication d’un ASIC n’est pas non plus bon marché.

Je suis en fait au milieu de ce piège en ce moment : J’essaie de construire la prochaine génération de NeTV, qui est un moteur de traitement vidéo basé sur FPGA. Les ASICs qui peuvent accomplir un tel traitement vidéo coûtent moins de la moitié du prix d’un FPGA et peuvent faire un meilleur travail (en ce sens qu’ils peuvent traiter des vidéos 4K, alors que ma solution FPGA est limitée à 1080p). Mais les ASIC existants ne disposent pas de toutes les fonctionnalités dont j’ai besoin. En raison de certaines autres contraintes, cependant, je ne peux tout simplement pas me permettre de créer un ASIC de mon propre chef pour ce produit.

Une autre catégorie de choses pour lesquelles les ASIC sont précieux se situe à l’autre extrémité du spectre : les trucs vraiment haut de gamme. Laissez-moi vous expliquer avec une petite anecdote.

Il y a quelque temps, j’ai lu l’article sur l’unité de traitement Tensor (TPU) de Google, et je me suis dit :  » Bon sang, je veux ça.  » J’ai donc commencé à regarder les FPGA pour voir ce qu’il faudrait pour construire quelque chose de capacité équivalente.

J’ai découvert que les FPGA qui pourraient même commencer à tenir une bougie au TPU de Google coûtent plusieurs milliers de dollars chacun – plus ils nécessitent des licences logicielles uberisées. Certaines grandes entreprises (comme Microsoft) ont pu s’associer à des fabricants de FPGA et, vraisemblablement, Microsoft a bénéficié d’une remise assez importante. Elle pourrait donc créer du matériel intéressant en utilisant des FPGA pour concurrencer les TPU de Google. Mais avec des FPGA aussi performants, on parle de quelque chose comme 17 000 dollars américains pour une seule puce, du moins pour la plupart des gens ou des entreprises.

Spectrum : Quel est le minimum que quelqu’un pourrait dépenser pour créer un ASIC à partir de zéro ? Supposons que la puce soit très simple. J’imagine qu’une bonne fraction du coût pourrait être juste pour le logiciel pour le concevoir, non ? Et il faudrait savoir quelles sont les règles de conception à satisfaire. Est-ce que ces informations sont ouvertement disponibles ?

Huang : J’ai fait une petite recherche sur ce sujet il y a un moment. Il y a quelques outils open-source qui pourraient être en mesure de vous y amener. Les règles de conception « SCMOS » sont les plus exploitables. Je pense que ce sont les règles de conception qu’Open-V essayait d’utiliser.
En ce qui concerne les logiciels de conception, vous pouvez utiliser une chaîne d’outils open-source basée sur Magic (Xcircuit, IRSIM, NetGen, Qrouter et Qflow). Ou, si vous en avez les moyens, vous pouvez utiliser des produits commerciaux à source proche, comme ceux de Cadence.
J’ai utilisé les flux de conception de Magic et de Cadence. Personnellement, j’ai plus apprécié l’utilisation de l’éditeur de routage de puces de Magic, mais le logiciel de Cadence est plus solidement ancré, ayant été utilisé pour concevoir tant de puces. Et l’outil de Cadence pour simuler les effets de la résistance et de la capacité parasites a été bien vérifié.

Cela ne veut pas dire que vous auriez besoin d’utiliser Cadence ou autre. Je pense que vous pourriez utiliser Magic pour construire certains circuits intégrés qui ont des tolérances vraiment larges – le genre de circuits intégrés que vous pourriez trouver à l’intérieur des pilotes de LED et peut-être même des trucs comme des prothèses auditives. La conception RF peut être un peu difficile, car les outils open source de simulation des effets parasites ne sont pas toujours à la hauteur. Mais il existe une méthodologie pour affiner les modèles qui devrait vous permettre de développer une conception réussie en deux ou trois passages de puce.

Tout cela pour dire, jusqu’à environ peut-être le nœud technologique de 180 nanomètres (ou plus), vous pourriez vous en sortir en utilisant des outils open-source. Plus petit que cela, cependant, nécessite de faire des choses vraiment amusantes avec l’imagerie du masque et d’utiliser des formes qui ne sont plus de simples polygones. Et les kits de conception de divers fournisseurs pour accomplir cela deviennent de plus en plus fermés.

180 nm est assez « grand » selon les normes actuelles. Mais si vous vouliez vraiment placer une combinaison spéciale de circuits sur une seule puce de silicium, vous pourriez le faire de cette façon. Et cela pourrait conduire à de nouveaux produits qui seraient autrement impossibles avec des conceptions discrètes. Sachez toutefois que le conditionnement à l’échelle de la puce au niveau de la tranche (WL-CSP) permet aux intégrateurs de circuits imprimés de se rapprocher de ce que vous pourriez réaliser avec votre ASIC personnalisé.

Combien coûterait la fabrication de cet ASIC personnalisé ? Il est difficile d’estimer le coût de fabrication des masques et des puces car les listes de prix sont confidentielles. Mais les histoires que j’ai entendues suggèrent qu’un ASIC simple (disons un ASIC de quelques millimètres carrés, fabriqué en utilisant le nœud technologique de 250 nm) pourrait coûter quelques milliers de dollars pour quelques douzaines d’échantillons.

Ce prix est suffisamment convaincant pour que j’aie un jour caressé l’idée de fabriquer un CPU de 8 ou 16 bits qui serait totalement inspectable. Cela pourrait plaire à ces gens vraiment conscients de la sécurité qui veulent être sûrs qu’il n’y a rien de drôle dans le microprocesseur qu’ils utilisent. Je me suis dit que la fabrication d’un tel objet me coûterait quelques milliers de dollars. C’est comparable au coût de développement de n’importe quel produit, vraiment. Et c’est certainement dans la gamme du bootstrapping.

Spectrum : Ok, disons qu’une petite startup utilise des outils de conception gratuits et trouve assez d’argent pour faire au moins quelques séries de production de puces. Les concepteurs seraient-ils en mesure de s’appuyer sur des conceptions de circuits libres comme blocs de construction, comme le font couramment les développeurs de logiciels ?

Huang : Pour l’instant, il existe un référentiel assez raisonnable de blocs de circuits libres spécifiés au niveau du transfert de registre (RTL), qui est ce qui est normalement utilisé dans la conception de puces numériques. Cela inclut le microprocesseur RISC-V mais aussi des conceptions comme le lm32, le mor1kx, et ainsi de suite.

Il y a aussi une bonne quantité de conceptions « wishbone-compatibles », incluant des choses comme des ponts Ethernet et des UARTs. Le projet OpenCores a une liste assez raisonnable de ces blocs, dont certains ont même été incorporés dans des ASIC (la plupart d’entre eux visent les FPGA, cependant).

Comme pour le signal mixte et l’analogique, les conceptions ouvertes sont assez rares. La partie excitante d’Open-V était leur volonté d’ouvrir et de partager des blocs analogiques et de signaux mixtes. Ces conceptions ne peuvent pas être appliquées à des nœuds technologiques de fabrication plus avancés, mais au moins dans la gamme « SCMOS », il y a une chance raisonnable que les conceptions puissent être transformées en puces fonctionnelles.

Cela peut être long, cependant, jusqu’à ce qu’il y ait un bon ensemble de blocs de conception analogiques et de signaux mixtes qui ont été testés dans des ASICs, malheureusement. D’autres choses qui ne seront peut-être jamais vraiment disponibles par le biais de conceptions ouvertes comprennent des blocs de mémoire comme la SRAM, la DRAM, la flash et les fusibles électriquement programmables. C’est parce que ces choses nécessitent une connaissance intime des processus pour être exécutées – une connaissance que les fonderies qui fabriquent les puces pourraient ne jamais libérer.

Tout cela pour dire : Un petit joueur pourrait certainement concevoir son propre ASIC et le faire fabriquer avec rien de plus qu’un peu d’ingéniosité et quelques milliers de dollars. Mais il ne serait pas en mesure de créer un design sophistiqué ou d’utiliser un nœud technologique de pointe.