How to Design a New Chip on a Budget
Hardware goeroe bunnie Huang praat over de open-source tools die hij gebruikt om circuits te ontwerpen, en waarom hij zijn eigen ASIC wil bouwen
We hadden onlangs een interessant gesprek met bunnie Huang, hardwaregoeroe en bedenker van onder andere Chumby, NeTV en de Novena-laptop. Hij is ook de auteur van Hacking the Xbox, The Essential Guide to Electronics in Shenzhen, en niet één maar twee hoofdartikelen in IEEE Spectrum.
We waren geïnteresseerd in Huang’s opvattingen over de vraag of een klein, bescheiden gefinancierd team – laten we zeggen een startup op een studentenflat – een chip op maat zou kunnen produceren, net zoals dergelijke groepen nu met gemak producten op bordniveau en software maken.
Met name softwareondernemingen profiteren van de enorme hoeveelheid open-source code die beschikbaar is voor gebruik bij het bouwen van commerciële producten. (Uit één onderzoek bleek dat de gemiddelde commerciële toepassing 35 procent open-sourcecode bevat). We wilden een idee krijgen of chipontwerpers ook profiteren van een rijk ecosysteem van open-source bouwstenen. Of is chipontwerp nog steeds zo gesloten en zo uitdagend dat het eigenlijk alleen is weggelegd voor grote, gevestigde bedrijven?
IEEE Spectrum: Waarom zou een kleine startup eigenlijk zijn eigen toepassingsspecifieke geïntegreerde schakeling (ASIC) willen maken? Kan het niet gewoon een field-programmable gate array (FPGA) gebruiken voor welk product dan ook?
Huang: FPGA’s komen over het algemeen in grote lompe pakketten en verbruiken veel te veel stroom.
ASIC’s zijn absoluut noodzakelijk voor het maken van dingen zoals gehoorapparaten, implanteerbare of eetbare medische apparaten, GPS-trackers die door dieren worden gedragen, mobiele radio’s, RFID-apparaten, elektronische wenskaarten, of andere wegwerpcircuits voor eenmalig gebruik.
Een ander voorbeeld is het stuur-IC in de WS2812-chip – het heeft een revolutie teweeggebracht in de verlichting door een RGB-LED in één pakket te maken met een ingebouwd serieel protocol door een piepkleine ASIC in te bouwen in de LED’s. (Ik heb de man ontmoet die de eerste commercieel levensvatbare variant hiervan heeft ontworpen.)
Dus er is zeker een breed scala van echt nuttige, industrie-veranderende producten die FPGA’s gewoon niet kunnen aanraken – voornamelijk wat je zou kunnen noemen “goedkoop, low-power spul.”
Hoe zou je beslissen wanneer je een FPGA gebruikt en wanneer je een ASIC maakt? Dat hangt ervan af. FPGA’s verspillen een grote hoeveelheid silicium in vergelijking met een ASIC, dus de kostenvloer, die voor een groot deel afhangt van de oppervlakte silicium die nodig is voor de chip, is vaak een orde van grootte hoger dan je zou willen dat hij is. Maar het fabriceren van een ASIC is ook niet goedkoop.
Ik zit eigenlijk midden in deze val op dit moment: Ik probeer de volgende generatie van NeTV te bouwen, dat is een FPGA-gebaseerde video-processing engine. De ASIC’s die dergelijke videoverwerking kunnen uitvoeren, kosten minder dan de helft van wat een FPGA kost en kunnen het beter (in die zin dat ze 4K-video kunnen verwerken, terwijl mijn FPGA-oplossing maximaal 1080p kan verwerken). Maar bestaande ASIC’s hebben niet alle functionaliteit die ik nodig heb. Vanwege een aantal andere beperkingen kan ik het me echter gewoon niet veroorloven om zelf een ASIC voor dit product te maken.
Een andere categorie dingen waarvoor ASIC’s waardevol zijn, ligt aan de andere kant van het spectrum: het echt high-end spul. Laat het me uitleggen met een korte anekdote.
Een tijdje terug las ik de paper over Google’s Tensor Processing Unit (TPU), en ik dacht: “Verdomme, dat wil ik.” Dus begon ik naar FPGA’s te kijken om te zien wat er nodig zou zijn om iets met gelijkwaardige mogelijkheden te bouwen.
Ik ontdekte dat FPGA’s die zelfs maar een kaarsje zouden kunnen ophouden voor Google’s TPU vele duizenden dollars per stuk kosten – plus ze vereisen peperdure softwarelicenties. Sommige grote bedrijven (zoals Microsoft) waren in staat om samen te werken met FPGA-fabrikanten, en vermoedelijk kreeg Microsoft een flinke korting. Het zou dus interessante hardware kunnen maken met behulp van FPGA’s om te concurreren met Google’s TPU’s. Maar met zulke capabele FPGA’s praat je over iets van US $ 17.000 voor een enkele chip, althans voor de meeste mensen of bedrijven.
Spectrum: Wat is het minste dat iemand kan uitgeven om een ASIC vanaf nul te maken? Stel dat de chip heel eenvoudig is. Ik stel me voor dat een groot deel van de kosten alleen voor de software is om hem te ontwerpen, niet? En je zou moeten weten aan welke ontwerpregels je moet voldoen. Is die informatie openlijk beschikbaar?
Huang: Ik heb hier ooit eens wat onderzoek naar gedaan. Er zijn een aantal open-source tools die je misschien op weg kunnen helpen. De “SCMOS” ontwerpregels zijn het meest werkbaar. Ik denk dat dit de ontwerpregels zijn die Open-V probeerde te gebruiken.
Wat betreft ontwerpsoftware, je kunt een open-source tool keten gebruiken die gebaseerd is op Magic (Xcircuit, IRSIM, NetGen, Qrouter, en Qflow). Of, als je het je kunt veroorloven, zou je close-source commerciële producten kunnen gebruiken, zoals die van Cadence.
Ik heb zowel Magic als Cadence design flows gebruikt. Persoonlijk vond ik Magic’s chip-layout editor prettiger in gebruik, maar de software van Cadence is meer ijzersterk, omdat er al zoveel chips mee zijn ontworpen. En Cadence’s tool voor het simuleren van de effecten van parasitaire weerstand en capaciteit is goed doorgelicht.
Dat wil niet zeggen dat je Cadence of iets dergelijks zou moeten gebruiken. Ik denk dat je Magic zou kunnen gebruiken om IC’s te bouwen met zeer grote toleranties – het soort IC’s dat je in LED-drivers zou kunnen vinden en misschien zelfs in dingen als gehoorapparaten. Het is misschien een beetje een uitdaging om RF ontwerpen te maken, omdat de open-source tools om parasitaire effecten te simuleren misschien niet tegen deze taak opgewassen zijn. Maar er is een methode om modellen te verfijnen die je in staat zou moeten stellen om een succesvol ontwerp te ontwikkelen in twee of drie chipruns.
Alles te zeggen, tot ongeveer misschien de 180-nanometer technologie node (of zo), zou je weg kunnen komen met het gebruik van open-source tools. Kleiner dan dat, echter, vereist het doen van echt grappige dingen met het masker imaging en het gebruik van vormen die niet alleen maar eenvoudige polygonen meer zijn. En de ontwerpkits van verschillende leveranciers om dat te bereiken worden steeds meer gesloten.
180 nm is behoorlijk “groot” naar de normen van vandaag. Maar als je echt een speciale combinatie van schakelingen op een enkele siliciummatrijs wilt plaatsen, zou je het op deze manier kunnen doen. En het zou kunnen leiden tot een aantal nieuwe producten die anders onmogelijk zouden zijn met discrete ontwerpen. Wees u er echter van bewust dat wafer-level chip-scale packaging (WL-CSP) printed-circuit-board integrators in staat stelt om vrij dicht in de buurt te komen van wat u zou kunnen bereiken met uw ASIC op maat.
Hoeveel zou die ASIC op maat kosten om te maken? Het schatten van de kosten van maskers en chip fabricage is moeilijk omdat prijslijsten vertrouwelijk zijn. Maar verhalen die ik heb gehoord suggereren dat een eenvoudige ASIC (zeg een die is een paar vierkante millimeter groot, vervaardigd met behulp van de 250-nm technologie node) zou kunnen kosten een paar duizend dollar voor een paar dozijn monsters.
Die prijs is dwingend genoeg dat ik ooit speelde met het idee van de fabricage van een 8 of 16-bits CPU die zou volledig inspecteerbaar zijn. Het zou aantrekkelijk kunnen zijn voor die echt veiligheidsbewuste mensen die er zeker van willen zijn dat er niets vreemds zit in de microprocessor die ze gebruiken. Ik dacht dat het laten maken van zo’n ding me een paar duizend dollar zou kosten. Dat is vergelijkbaar met de kosten van het ontwikkelen van een product. En het is zeker binnen het bereik van bootstrapping.
Spectrum: Oké, laten we zeggen dat een kleine startup gratis ontwerptools gebruikt en genoeg geld vindt om ten minste een paar chip-productieruns te maken. Zouden de ontwerpers in staat zijn om te putten uit open-source circuitontwerpen als bouwstenen, zoals softwareontwikkelaars routinematig doen?
Huang: Op dit moment is er een vrij redelijke repository van vrije-en-open circuitblokken die zijn gespecificeerd op het register-transfer-niveau (RTL), dat is wat normaal wordt gebruikt bij het ontwerpen van digitale chips. Dit omvat de RISC-V microprocessor, maar ook ontwerpen als de lm32, mor1kx, enzovoort.
Er is ook een behoorlijke hoeveelheid “wishbone-compatibele” ontwerpen, inclusief dingen als Ethernet bridges en UARTs. Het OpenCores-project heeft een redelijke lijst van dergelijke blokken, waarvan sommige zelfs zijn opgenomen in ASIC’s (het meeste is echter gericht op FPGA’s).
Wat betreft mixed-signal en analoog, open ontwerpen zijn vrij schaars. Het spannende aan Open-V was hun bereidheid om analoge en mixed-signal blokken te openen en te delen. Deze ontwerpen kunnen niet worden toegepast op meer geavanceerde technologie-nodes van fabricage, maar ten minste in het “SCMOS” bereik, is er een redelijke kans dat de ontwerpen kunnen worden omgezet in werkende chips.
Het kan echter nog een lange tijd duren voordat er een goede set van analoge en mixed-signal ontwerpblokken beschikbaar is die zijn getest in ASICs, helaas. Andere dingen die misschien nooit echt beschikbaar zullen zijn via open ontwerpen zijn geheugenblokken zoals SRAM, DRAM, flash, en elektrisch programmeerbare zekeringen. Dit komt omdat deze dingen intieme proceskennis vereisen om uit te voeren – kennis die de gieterijen die chips maken misschien nooit zullen vrijgeven.
Alles te zeggen: Een kleine speler zou zeker zijn eigen ASIC kunnen ontwerpen en laten fabriceren met niet meer dan wat vindingrijkheid en een paar duizend dollar. Maar het zou niet in staat zijn om een geavanceerd ontwerp te maken of een state-of-the-art technologisch knooppunt te gebruiken.