Jak navrhnout nový čip s omezeným rozpočtem
Hardwarový guru Bunnie Huang hovoří o open-source nástrojích, které používá k návrhu obvodů, a o tom, proč chce vytvořit vlastní ASIC
Nedávno jsme vedli zajímavý rozhovor s bunnie Huangem, hardwarovým guru a mimo jiné tvůrcem Chumby, NeTV a notebooku Novena. Je také autorem knih Hacking the Xbox, The Essential Guide to Electronics in Shenzhen a ne jednoho, ale hned dvou tematických článků v časopise IEEE Spectrum.
Zajímal nás Huangův názor na to, zda by malý, skromně financovaný tým – řekněme startup na vysokoškolské koleji – mohl vyrobit vlastní čip, stejně jako dnes takové skupiny snadno vytvářejí produkty na úrovni desek a software.
Zejména softwarové podniky těží z obrovského množství otevřeného zdrojového kódu, který je k dispozici pro použití při vytváření komerčních produktů. (Jedna studie zjistila, že průměrná komerční aplikace obsahuje 35 % kódu open-source). Chtěli jsme zjistit, zda i konstruktéři čipů využívají bohatý ekosystém open-source stavebních bloků. Nebo je návrh čipů stále tak uzavřený a náročný, že je skutečně jen pro velké, zavedené společnosti?“
IEEE Spectrum: Proč by měl malý začínající podnik vůbec chtít vyrábět vlastní aplikačně specifický integrovaný obvod (ASIC)? Nemohl by prostě použít pole programovatelných hradel (FPGA) pro jakýkoli produkt, který se mu vylíhne?
Huang: FPGA se obvykle dodávají ve velkých neohrabaných baleních a spotřebovávají příliš mnoho energie.
ASIC jsou naprosto nezbytné pro výrobu věcí, jako jsou naslouchadla, implantovatelné nebo jedlé lékařské přístroje, GPS sledovače, které mají nosit zvířata, mobilní rádia, RFID zařízení, elektronické blahopřání nebo jiné jednoúčelové obvody na jedno použití.
Dalším příkladem je integrovaný obvod s ovladačem uvnitř čipu WS2812 – ten způsobil revoluci v osvětlování, když dokázal vytvořit jednopásmovou RGB LED diodu s vestavěným sériovým protokolem tím, že do LED diody zabudoval malý ASIC. (Vlastně jsem se setkal s člověkem, který navrhl první komerčně životaschopnou variantu tohoto řešení.)
Takže rozhodně existuje široká škála skutečně užitečných produktů, které mění průmysl a na které FPGA prostě nemůže sahat – především to, co by se dalo nazvat „levné věci s nízkou spotřebou energie“.
Jak byste se rozhodl, kdy použít FPGA a kdy vytvořit ASIC? To záleží na tom. FPGA ve srovnání s ASIC plýtvají velkým množstvím křemíku, takže spodní hranice nákladů, která z velké části závisí na ploše křemíku potřebné pro čip, je často řádově vyšší, než byste chtěli. Ale výroba ASICu také není levná.
Vlastně jsem právě uprostřed této pasti: Snažím se vytvořit novou generaci NeTV, což je engine pro zpracování videa založený na FPGA. ASICy, které mohou takové zpracování videa provádět, stojí méně než polovinu toho, co FPGA, a dokáží odvést lepší práci (v tom smyslu, že mohou zpracovávat video v rozlišení 4K, zatímco moje řešení FPGA maximálně 1080p). Ale stávající ASIC nemají všechny funkce, které potřebuji. Kvůli některým dalším omezením si však pro tento produkt prostě nemohu dovolit vytvořit vlastní ASIC.
Další kategorie věcí, pro které jsou ASIC cenné, leží na opačném konci spektra: opravdu špičkové věci. Vysvětlím to krátkou anekdotou.
Před časem jsem si přečetl článek o Tensor Processing Unit (TPU) od Googlu a řekl jsem si: „Sakra, to bych chtěl.“ A pak jsem si řekl: „Tohle by se mi líbilo. Začal jsem se tedy dívat na FPGA, abych zjistil, co by bylo potřeba k vytvoření něčeho s ekvivalentními schopnostmi.
Zjistil jsem, že FPGA, které by se TPU od Googlu mohly byť jen přiblížit, stojí každý mnoho tisíc dolarů – navíc vyžadují uberdrahé softwarové licence. Některé velké společnosti (například Microsoft) se dokázaly spojit s výrobci FPGA a pravděpodobně Microsoft získal docela velkou slevu. Mohl by tedy vytvořit zajímavý hardware využívající FPGA, který by konkuroval TPU od Googlu. Ale u takto schopných FPGA se bavíme o něčem jako 17 000 amerických dolarů za jeden čip, alespoň pro většinu lidí nebo společností.
Spektrum: Jaké jsou nejmenší náklady, které by někdo mohl vynaložit na vytvoření ASIC od nuly? Předpokládejme, že čip je velmi jednoduchý. Dovedu si představit, že dobrá část nákladů by mohla být jen na software pro jeho návrh, ne? A musel bys vědět, jaká pravidla návrhu máš splnit. Jsou takové informace veřejně dostupné?“
Huang: Kdysi dávno jsem se tím trochu zabýval. Existují nějaké open-source nástroje, které by ti to mohly umožnit. Pravidla návrhu „SCMOS“ jsou nejpoužitelnější. Myslím, že právě tato návrhová pravidla se snažil použít Open-V.
Co se týče návrhového softwaru, můžete použít řetězec open-source nástrojů založený na Magicu (Xcircuit, IRSIM, NetGen, Qrouter a Qflow). Nebo, pokud si to můžete dovolit, můžete použít komerční produkty s blízkým zdrojovým kódem, například od společnosti Cadence.
Používal jsem návrhové toky Magic i Cadence. Osobně se mi více líbilo používat editor rozvržení čipu od Magicu, ale software Cadence je železnější, protože byl použit k návrhu tolika čipů. A nástroj Cadence pro simulaci vlivu parazitního odporu a kapacity byl dobře prověřen.
To neznamená, že byste museli používat Cadence nebo podobný software. Myslím, že bys mohl použít Magic k sestavení některých integrovaných obvodů, které mají opravdu široké tolerance – takové, které můžeš najít uvnitř ovladačů LED a možná i věcí, jako jsou naslouchátka. Trochu problémem by mohlo být navrhování RF, protože open-source nástroje pro simulaci parazitních jevů by na to nemusely stačit. Existuje však metodika pro zdokonalování modelů, která by vám měla umožnit vyvinout úspěšný návrh ve dvou nebo třech sériích čipů.
Všechno říká, že zhruba do 180nanometrového technologického uzlu (nebo tak nějak) byste si mohli vystačit s použitím open-source nástrojů. Při menších rozměrech je však třeba dělat opravdu zábavné věci se zobrazováním masek a používat tvary, které už nejsou jen jednoduchými polygony. A návrhové sady od různých dodavatelů, které toho umožňují dosáhnout, jsou stále uzavřenější.
180 nm je na dnešní poměry dost „velké“. Ale pokud byste opravdu chtěli umístit nějakou speciální kombinaci obvodů na jedinou křemíkovou destičku, mohli byste to udělat tímto způsobem. A mohlo by to vést k některým novým produktům, které by jinak s diskrétními návrhy nebyly možné. Uvědomte si však, že balení na úrovni čipu (WL-CSP) umožňuje integrátorům desek s plošnými spoji přiblížit se tomu, čeho byste mohli dosáhnout s vlastním ASIC.
Kolik by výroba takového vlastního ASIC stála? Odhadnout náklady na výrobu masky a čipu je obtížné, protože ceníky jsou důvěrné. Ale podle historek, které jsem slyšel, by jednoduchý ASIC (řekněme o velikosti několika milimetrů čtverečních, vyrobený pomocí 250nm technologického uzlu) mohl stát několik tisíc dolarů za pár desítek vzorků.
Tato cena je natolik přesvědčivá, že jsem si kdysi pohrával s myšlenkou vyrobit 8 nebo 16bitový procesor, který by byl zcela kontrolovatelný. Mohlo by se to líbit těm lidem, kteří opravdu dbají na bezpečnost a chtějí mít jistotu, že v mikroprocesoru, který používají, není nic divného. Napadlo mě, že nechat si něco takového vyrobit by mě vyšlo na pár tisíc dolarů. To je srovnatelné s náklady na vývoj jakéhokoli produktu, opravdu. A určitě je to v rámci zaváděcích nákladů.
Spektrum: Dobře, řekněme, že malý startup používá bezplatné návrhové nástroje a najde dost peněz na to, aby vyrobil alespoň několik sérií čipů. Mohli by návrháři čerpat z návrhů obvodů s otevřeným zdrojovým kódem jako ze stavebních bloků, jako to běžně dělají vývojáři softwaru?
Huang: V současné době existuje docela rozumné úložiště volně dostupných a otevřených bloků obvodů specifikovaných na úrovni přenosu registrů (RTL), což je to, co se běžně používá při návrhu digitálních čipů. Patří sem mikroprocesor RISC-V, ale také návrhy jako lm32, mor1kx a tak dále.
Existuje také slušné množství „wishbone-kompatibilních“ návrhů, včetně věcí jako ethernetové můstky a UARTy. Projekt OpenCores má docela rozumný seznam takových bloků, z nichž některé byly dokonce začleněny do ASIC (většina z nich se však zaměřuje na FPGA).
Co se týče mixed-signal a analogu, otevřených návrhů je poměrně málo. Vzrušující na Open-V byla jejich ochota otevřít a sdílet analogové a mixed-signal bloky. Tyto návrhy nelze použít na pokročilejších technologických výrobních uzlech, ale přinejmenším v rozsahu „SCMOS“ existuje rozumná šance, že se z těchto návrhů stanou funkční čipy.
Může však trvat dlouho, než bude k dispozici dobrá sada analogových a smíšených signálových bloků, které byly otestovány v ASIC, bohužel. Mezi další věci, které možná nikdy nebudou skutečně dostupné prostřednictvím otevřených návrhů, patří paměťové bloky jako SRAM, DRAM, flash a elektricky programovatelné pojistky. Je to proto, že tyto věci vyžadují k provedení důvěrné znalosti procesů – znalosti, které slévárny vyrábějící čipy možná nikdy neuvolní.
Všechno řečeno: Malý hráč by jistě mohl navrhnout vlastní ASIC a nechat si ho vyrobit jen s trochou vynalézavosti a několika tisíci dolary. Nebyl by však schopen vytvořit sofistikovaný návrh nebo použít nejmodernější technologický uzel.