Sådan designer du en ny chip på et lavt budget

Af David Schneider

Postet 2018-02-05 18:00 GMT

Hardware-guru bunnie Huang fortæller om de open source-værktøjer, han bruger til at designe kredsløb, og hvorfor han ønsker at bygge sin egen ASIC

Foto: Vi havde for nylig en interessant udveksling med bunnie Huang, hardwareguru og skaberen af bl.a. Chumby, NeTV og den bærbare Novena-bærbar computer. Han er også forfatter til Hacking the Xbox, The Essential Guide to Electronics in Shenzhen og ikke bare én, men to artikler i IEEE Spectrum.

Vi var interesserede i Huangs synspunkter om, hvorvidt et lille, beskedent finansieret hold – f.eks. en nystartet virksomhed fra et kollegium – kunne fremstille en specialfremstillet chip, på samme måde som sådanne grupper nu let skaber produkter og software på boardniveau.

Softwarevirksomheder nyder især godt af den store mængde kode med åben kildekode, der er tilgængelig til brug for opbygning af kommercielle produkter. (En undersøgelse viste, at den gennemsnitlige kommercielle applikation indeholder 35 procent open source-kode). Vi ønskede at få en fornemmelse af, om chipdesignere også nød godt af et rigt økosystem af open source-byggeblokke. Eller er chipdesign stadig så lukket og så udfordrende, at det egentlig kun er for store, etablerede virksomheder?

IEEE Spectrum: Hvorfor skulle en lille nystartet virksomhed i første omgang ønske at producere sit eget applikationsspecifikke integrerede kredsløb (ASIC)? Kunne den ikke bare bruge en FPGA (field-programmable gate array) til det produkt, den udklækkede?

Huang: FPGA’er kommer generelt i store klodsede pakker og bruger alt for meget strøm.

ASIC’er er absolut nødvendige for at fremstille ting som høreapparater, implantabelt eller spiseligt medicinsk udstyr, GPS-trackere, der skal bæres af dyr, mobilradioer, RFID-enheder, elektroniske lykønskningskort eller andre engangskredsløb til et enkelt formål, der kan bruges til engangsbrug.

Et andet eksempel er driver-IC’en i WS2812-chippen – den har revolutioneret belysningen ved at kunne skabe en RGB-LED i en enkelt pakke med indbygget seriel protokol ved at integrere en lille ASIC med LED’erne. (Jeg kom faktisk til at møde den fyr, der designede den første kommercielt levedygtige variant af dette.)

Så der er helt sikkert en bred vifte af virkelig nyttige, industriforandrende produkter, som FPGA’er bare ikke kan røre – primært det, man kunne kalde “billige, strømbesparende ting.”

Hvordan ville du beslutte, hvornår du skal bruge en FPGA, og hvornår du skal lave en ASIC? Det afhænger af det. FPGA’er spilder en stor mængde silicium sammenlignet med en ASIC, så omkostningsgulvet, som i høj grad afhænger af det overfladeareal af silicium, der kræves til chippen, er ofte en størrelsesorden højere, end du ønsker det. Men det er heller ikke billigt at fremstille en ASIC.

Jeg er faktisk midt i denne fælde lige nu: Jeg forsøger at bygge den næste generation af NeTV, som er en FPGA-baseret videobearbejdningsmotor. De ASIC’er, der kan udføre en sådan videobearbejdning, koster mindre end halvt så meget som en FPGA og kan gøre et bedre stykke arbejde (idet de kan behandle 4K-video, hvorimod min FPGA-løsning maks. kan klare 1080p). Men de eksisterende ASIC’er har ikke alle de funktioner, jeg har brug for. Men på grund af nogle andre begrænsninger har jeg simpelthen ikke råd til at skabe min egen ASIC til dette produkt.

En anden kategori af ting, som ASIC’er er værdifulde til, ligger i den modsatte ende af spektret: de virkelig avancerede ting. Lad mig forklare det med en kort anekdote.

For et stykke tid siden læste jeg en artikel om Googles Tensor Processing Unit (TPU), og jeg tænkte: “Fandens, den vil jeg gerne have.” Så jeg begyndte at kigge på FPGA’er for at se, hvad der skulle til for at bygge noget med tilsvarende kapacitet.

Jeg opdagede, at FPGA’er, der bare tilnærmelsesvis kan måle sig med Googles TPU, koster mange tusinde dollars stykket – plus at de kræver uber-dyre softwarelicenser. Nogle store virksomheder (som Microsoft) var i stand til at slå sig sammen med FPGA-producenter, og formentlig fik Microsoft en temmelig stor rabat. Så det kunne skabe noget interessant hardware ved hjælp af FPGA’er til at konkurrere med Googles TPU’er. Men med så dygtige FPGA’er taler man om noget i retning af 17.000 amerikanske dollars for en enkelt chip, i hvert fald for de fleste mennesker eller virksomheder.

Spektrum: Hvad er det mindste, en person kan bruge på at skabe en ASIC fra bunden? Antag, at chippen er meget enkel. Jeg forestiller mig, at en god brøkdel af omkostningerne kan være bare for softwaren til at designe den, ikke? Og man er nødt til at vide, hvilke designregler der skal opfyldes. Er sådanne oplysninger offentligt tilgængelige?

Huang: Jeg har lavet lidt research om dette engang. Der findes nogle open source-værktøjer, som måske kan hjælpe dig på vej. “SCMOS”-designreglerne er de mest anvendelige. Jeg tror, at det er de designregler, som Open-V forsøgte at bruge.
Med hensyn til designsoftware kan du bruge en open source-værktøjskæde baseret på Magic (Xcircuit, IRSIM, NetGen, Qrouter og Qflow). Eller, hvis du har råd til det, kan du bruge kommercielle close source-produkter, som dem fra Cadence.
Jeg har brugt både Magic og Cadence design flows. Jeg nød personligt at bruge Magic’s chip-layout editor mere, men Cadence software er mere jernhård, da det er blevet brugt til at designe så mange chips. Og Cadence’s værktøj til simulering af virkningerne af parasitær modstand og kapacitet er blevet godt gennemtestet.

Det er ikke ensbetydende med, at du skal bruge Cadence eller lignende. Jeg tror, at du kunne bruge Magic til at bygge nogle IC’er, der har virkelig brede tolerancer – den slags IC’er, som du kan finde i LED-drivere og måske endda ting som høreapparater. Det kan være lidt af en udfordring at lave RF-design, fordi open source-værktøjerne til simulering af parasitære effekter måske ikke er i stand til at løse opgaven. Men der findes en metode til at forfine modellerne, som burde gøre det muligt at udvikle et vellykket design på to eller tre chipkørsler.

Alt at sige, ned til måske omkring 180-nanometer-teknologienoden (eller deromkring), kan man slippe af sted med at bruge open source-værktøjer. Mindre end det kræver dog, at man gør virkelig sjove ting med maskeafbildningen og bruger former, der ikke længere bare er simple polygoner. Og designkits fra forskellige leverandører til at opnå dette bliver mere og mere lukkede.

180 nm er temmelig “stort” efter dagens standarder. Men hvis man virkelig ønskede at placere en særlig kombination af kredsløb på en enkelt siliciumdie, kunne man gøre det på denne måde. Og det kunne føre til nogle nye produkter, som ellers ville være umulige med diskrete designs. Vær dog opmærksom på, at wafer-level chip-scale packaging (WL-CSP) gør det muligt for integratorer af printkort at komme ret tæt på det, du kan opnå med din specialfremstillede ASIC.

Hvor meget ville det koste at fremstille den specialfremstillede ASIC? Det er vanskeligt at anslå omkostningerne ved maske- og chipfremstilling, fordi prislisterne er fortrolige. Men de historier, jeg har hørt, tyder på, at en simpel ASIC (lad os sige en, der er et par kvadratmillimeter stor og fremstillet ved hjælp af 250-nm-teknologienoden) kan koste et par tusinde dollars for et par dusin prøver.

Den pris er overbevisende nok til, at jeg engang legede med tanken om at fremstille en 8- eller 16-bit CPU, der ville være fuldstændig inspicerbar. Det kunne måske appellere til de virkelig sikkerhedsbevidste folk, som vil være sikre på, at der ikke er noget mærkeligt i den mikroprocessor, de bruger. Jeg regnede med, at det ville koste mig et par tusinde dollars at få sådan en ting fremstillet. Det kan sammenlignes med omkostningerne ved at udvikle et hvilket som helst produkt, egentlig. Og det er helt sikkert inden for bootstrapping.

Spektrum: Okay, lad os sige, at en lille startup bruger gratis designværktøjer og finder penge nok til at lave i det mindste et par chip-produktionsrunder. Ville designerne kunne trække på kredsløbsdesigns med fri kildekode som byggesten, sådan som softwareudviklere rutinemæssigt gør?

Huang: I øjeblikket er der et ret fornuftigt lager af frie og åbne kredsløbsblokke, der er specificeret på registeroverførselsniveau (RTL), hvilket er det, der normalt anvendes ved design af digitale chips. Dette omfatter RISC-V-mikroprocessoren, men også designs som lm32, mor1kx osv.

Der er også en rimelig mængde “wishbone-kompatible” designs, herunder ting som Ethernet-broer og UART’er. OpenCores-projektet har en ret fornuftig liste over sådanne blokke, hvoraf nogle endda er blevet inkorporeret i ASIC’er (det meste er dog rettet mod FPGA’er).

Med hensyn til blandede signaler og analogt design er åbne designs ret sparsomme. Det spændende ved Open-V var deres villighed til at åbne og dele analoge og mixed-signal-blokke. Disse designs kan ikke anvendes til mere avancerede teknologiske fabrikationsnoder, men i det mindste i “SCMOS”-området er der en rimelig chance for, at designene kan omsættes til fungerende chips.

Det kan dog tage lang tid, før der er et godt sæt af analoge og mixed-signal-designblokke derude, som er blevet testet i ASIC’er, desværre. Andre ting, som måske aldrig bliver rigtig tilgængelige gennem åbne designs, er bl.a. hukommelsesblokke som SRAM, DRAM, flash og elektrisk programmerbare sikringer. Det skyldes, at disse ting kræver indgående procesviden for at kunne udføres – en viden, som de støberier, der fremstiller chips, måske aldrig vil frigive.

Alt at sige: En lille aktør kunne helt sikkert designe sin egen ASIC og få den fremstillet med intet andet end lidt opfindsomhed og et par tusinde dollars. Men den ville ikke være i stand til at skabe et sofistikeret design eller bruge et avanceret teknologisk knudepunkt.