Hogyan tervezzünk új chipet kis költségvetésből
A hardver guru, Bunnie Huang beszél az áramkörök tervezéséhez használt nyílt forráskódú eszközökről, és arról, hogy miért akar saját ASIC-et építeni
A közelmúltban érdekes eszmecserét folytattunk bunnie Huanggal, a hardverguruval, aki többek között a Chumby, a NeTV és a Novena laptop megalkotója. Ő a szerzője a Hacking the Xbox, a The Essential Guide to Electronics in Shenzhen és nem egy, hanem két cikk szerzője az IEEE Spectrumban.
Minket Huang nézetei érdekeltek arról, hogy egy kis, szerényen finanszírozott csapat – mondjuk egy főiskolás startup – képes-e egyedi chipet gyártani, ahogyan az ilyen csoportok ma már könnyedén készítenek lapkaszintű termékeket és szoftvereket.
A szoftveres vállalkozások különösen profitálnak abból a hatalmas mennyiségű nyílt forráskódból, amely a kereskedelmi termékek előállításához rendelkezésre áll. (Egy tanulmány szerint egy átlagos kereskedelmi alkalmazás 35 százalékban tartalmaz nyílt forráskódot). Szerettük volna felmérni, hogy a chiptervezők is élvezik-e a nyílt forráskódú építőelemek gazdag ökoszisztémáját. Vagy a chiptervezés még mindig annyira zárt és kihívásokkal teli, hogy valójában csak a nagy, befutott vállalatoknak való?
IEEE Spectrum: Egyáltalán miért akar egy kis startup cég saját alkalmazásspecifikus integrált áramkört (ASIC) gyártani? Nem használhatna egyszerűen egy FPGA-t (field-programmable gate array) ahhoz a termékhez, amit kitalált?
Huang: Az FPGA-k általában nagy, nehézkes csomagokban vannak, és túl sok energiát fogyasztanak.
Az ASIC-kre feltétlenül szükség van olyan dolgok előállításához, mint a hallókészülékek, beültethető vagy ehető orvosi eszközök, állatok által hordozható GPS-nyomkövetők, mobil rádiók, RFID-eszközök, elektronikus üdvözlőkártyák vagy más egycélú, eldobható áramkörök.
Egy másik példa a WS2812 chip belsejében lévő meghajtó IC – forradalmasította a világítást azáltal, hogy egy apró ASIC-nek a LED-ek közé történő beágyazásával egyetlen csomagba épített soros protokollal rendelkező RGB LED-et lehetett létrehozni. (Tulajdonképpen találkoztam azzal a fickóval, aki ennek első kereskedelmi szempontból életképes változatát tervezte.)
Az igazán hasznos, az iparágat megváltoztató termékek széles skálája létezik, amelyekhez az FPGA-k egyszerűen nem érhetnek hozzá – elsősorban az “olcsó, alacsony fogyasztású dolgokhoz”.
Hogyan döntené el, mikor használjon FPGA-t, és mikor készítsen ASIC-et? Ez attól függ. Az FPGA-k nagy mennyiségű szilíciumot pazarolnak el egy ASIC-hez képest, így a költségszint, amely nagyban függ a chiphez szükséges szilíciumfelülettől, gyakran egy nagyságrenddel magasabb, mint amennyit szeretnénk. De egy ASIC gyártása sem olcsó.
Éppenséggel most vagyok ennek a csapdának a közepén: A NeTV következő generációját próbálom megépíteni, ami egy FPGA-alapú videófeldolgozó motor. Az ASIC-ek, amelyek képesek ilyen videófeldolgozást végezni, kevesebb mint fele annyiba kerülnek, mint egy FPGA, és jobb munkát tudnak végezni (abban a tekintetben, hogy 4K videót tudnak feldolgozni, míg az én FPGA-megoldásom maximum 1080p-nél). A meglévő ASIC-k azonban nem rendelkeznek az összes szükséges funkcióval. Más korlátok miatt azonban egyszerűen nem engedhetem meg magamnak, hogy saját ASIC-t készítsek ehhez a termékhez.
Az ASIC-ek egy másik kategóriája a spektrum másik végén helyezkedik el: az igazán csúcskategóriás dolgok. Hadd magyarázzam el egy rövid anekdotával.
Nemrég olvastam a Google Tensor Processing Unit (TPU) című cikkét, és azt gondoltam: “A fenébe, ezt akarom”. Ezért elkezdtem FPGA-kat nézegetni, hogy lássam, mibe kerülne egy ezzel egyenértékű képességű eszköz megépítése.
Rájöttem, hogy az FPGA-k, amelyek akár csak megközelíthetnék a Google TPU-ját, sok ezer dollárba kerülnek egyenként – ráadásul nagyon drága szoftverlicenceket igényelnek. Néhány nagyvállalat (mint a Microsoft) képes volt összefogni az FPGA gyártókkal, és vélhetően a Microsoft elég komoly kedvezményt kapott. Így az FPGA-k felhasználásával érdekes hardvereket hozhat létre, amelyek felvehetik a versenyt a Google TPU-jaival. De az ilyen képességű FPGA-k esetében egy chipért körülbelül 17 000 dollárról beszélünk, legalábbis a legtöbb ember vagy cég számára.
Spectrum: Mi a legkevesebb, amit valaki elkölthet egy ASIC létrehozására a semmiből? Tegyük fel, hogy a chip nagyon egyszerű. Gondolom, a költségek jó része csak a tervezéshez szükséges szoftver lehet, nem? És tudnod kell, hogy milyen tervezési szabályoknak kell megfelelned. Nyilvánosan elérhetőek ilyen információk?
Huang: Egyszer régen végeztem egy kis kutatást ezzel kapcsolatban. Van néhány nyílt forráskódú eszköz, amivel talán el lehet jutni odáig. Az “SCMOS” tervezési szabályok a leginkább működőképesek. Azt hiszem, ezeket a tervezési szabályokat próbálta használni az Open-V.
A tervezőszoftverek tekintetében használhatsz egy nyílt forráskódú, Magic alapú eszközláncot (Xcircuit, IRSIM, NetGen, Qrouter és Qflow). Vagy, ha megengedheti magának, használhat közeli forráskódú kereskedelmi termékeket, például a Cadence termékeit.
A Magic és a Cadence tervezési folyamatait egyaránt használtam. Én személy szerint jobban élveztem a Magic chip-layout szerkesztőjét, de a Cadence szoftverei vasszilárdabbak, mivel rengeteg chip tervezéséhez használták őket. És a Cadence eszköze a parazita ellenállás és kapacitás hatásainak szimulálására jól bevált.
Ez nem azt jelenti, hogy a Cadence-t vagy hasonlót kellene használnod. Szerintem a Magic-et használhatnád olyan IC-k építéséhez, amiknek nagyon nagy a tűréshatára – olyan IC-k, amiket a LED-meghajtókban találsz, vagy akár olyan dolgokban, mint a hallókészülékek. Egy kis kihívást jelenthet az RF tervezés, mert a parazita hatások szimulálására szolgáló nyílt forráskódú eszközök nem biztos, hogy megfelelnek a feladatnak. De van egy módszertan a modellek finomítására, amely lehetővé teszi, hogy két vagy három chipfutás alatt sikeres tervezést fejlesszünk ki.
Mindenesetre, körülbelül a 180 nanométeres technológiai csomópontig (vagy úgy) megúszhatjuk a nyílt forráskódú eszközök használatával. Ennél kisebb méretnél azonban nagyon vicces dolgokat kell csinálni a maszk leképezésével, és olyan alakzatokat kell használni, amelyek már nem csak egyszerű sokszögek. És a különböző gyártók tervezési készletei ennek eléréséhez egyre zártabbá válnak.
180 nm a mai szabványok szerint elég “nagy”. De ha tényleg áramkörök valamilyen különleges kombinációját akarnád elhelyezni egyetlen szilíciumcsipkén, akkor ezt így is megtehetnéd. És ez néhány olyan újszerű termékhez vezethet, ami egyébként diszkrét kialakítással lehetetlen lenne. Ne feledje azonban, hogy a wafer-level chip-scale packaging (WL-CSP) lehetővé teszi a nyomtatott áramköri integrátorok számára, hogy elég közel kerüljenek ahhoz, amit az egyedi ASIC-vel elérhet.
Mennyibe kerülne ennek az egyedi ASIC-nek az előállítása? A maszk és a chipgyártás költségeit nehéz megbecsülni, mivel az árlisták bizalmasak. De az általam hallott történetek szerint egy egyszerű ASIC (mondjuk egy néhány négyzetmilliméteres, a 250 nm-es technológiai csomópontban gyártott) néhány ezer dollárba kerülhet néhány tucat minta.
Ez az ár elég meggyőző ahhoz, hogy egyszer eljátszottam a gondolattal, hogy gyártok egy 8 vagy 16 bites CPU-t, amely teljesen ellenőrizhető lenne. Ez vonzó lehet azoknak az igazán biztonságtudatos embereknek, akik biztosak akarnak lenni abban, hogy nincs semmi furcsa az általuk használt mikroprocesszorban. Úgy gondoltam, hogy egy ilyen dolog legyártása néhány ezer dollárba kerülne. Ez összevethető bármelyik termék kifejlesztésének költségeivel, tényleg. És minden bizonnyal a bootstrapping határain belül van.
Spektrum: Oké, tegyük fel, hogy egy kis startup ingyenes tervezőeszközöket használ, és talál elég pénzt ahhoz, hogy legalább néhány chipet legyártasson. A tervezők képesek lennének nyílt forráskódú áramköri terveket építőelemként felhasználni, ahogy a szoftverfejlesztők szokták?
Huang: Jelenleg van egy elég ésszerű tárháza a regiszter-átviteli szinten (RTL) specifikált szabad és nyílt áramköri blokkoknak, amit általában a digitális chipek tervezésénél használnak. Ez magában foglalja a RISC-V mikroprocesszort, de olyan terveket is, mint az lm32, mor1kx, és így tovább.
Megfelelő mennyiségű “wishbone-kompatibilis” terv is van, beleértve olyan dolgokat, mint az Ethernet hidak és UART-ok. Az OpenCores projektnek van egy elég ésszerű listája ilyen blokkokból, amelyek közül néhányat még ASIC-ekbe is beépítettek (a legtöbbjük azonban FPGA-kat céloz).
A vegyes jelek és analógok tekintetében a nyílt tervek meglehetősen ritkák. Az Open-V izgalmas része az volt, hogy hajlandóak voltak megnyitni és megosztani az analóg és vegyes jelű blokkokat. Ezeket a terveket nem lehet alkalmazni a gyártás fejlettebb technológiai csomópontjain, de legalább az “SCMOS” tartományban van egy elfogadható esély arra, hogy a tervekből működő chipeket lehet készíteni.
Ez azonban sajnos még sokáig eltarthat, amíg egy jó analóg és vegyes jelű tervezési blokkok készlete lesz, amelyeket ASIC-ekben teszteltek. Más dolgok, amelyek talán soha nem lesznek igazán elérhetőek nyílt terveken keresztül, közé tartoznak az olyan memóriablokkok, mint az SRAM, DRAM, flash és az elektromosan programozható biztosítékok. Ez azért van így, mert ezek a dolgok végrehajtásához bensőséges folyamatismeretre van szükség – olyan tudásra, amelyet a chipeket gyártó öntödék talán soha nem fognak kiadni.
Mindenesetre: Egy kis szereplő minden bizonnyal megtervezhetné a saját ASIC-jét, és legyártathatná azt némi találékonyságon és néhány ezer dolláron kívül semmi mással. De nem lenne képes kifinomult dizájnt létrehozni, vagy a legmodernebb technológiai csomópontot használni.