Cum să proiectezi un nou cip cu un buget redus
Hardware guru bunnie Huang vorbește despre instrumentele open-source pe care le folosește pentru a proiecta circuite și despre motivul pentru care vrea să își construiască propriul ASIC
Am avut recent un schimb de replici interesant cu bunnie Huang, guru al hardware-ului și creatorul, printre altele, al Chumby, NeTV și al laptopului Novena. El este, de asemenea, autorul cărții „Hacking the Xbox”, „The Essential Guide to Electronics in Shenzhen” și nu unul, ci două articole de fond în IEEE Spectrum.
Am fost interesați de opiniile lui Huang cu privire la posibilitatea ca o echipă mică, cu finanțare modestă – să zicem un startup din studenție – să poată produce un cip personalizat, la fel cum astfel de grupuri creează acum cu ușurință produse la nivel de placă și software.
Întreprinderile de software, în special, beneficiază de marea cantitate de cod open-source care este disponibil pentru a fi folosit la crearea de produse comerciale. (Un studiu a constatat că o aplicație comercială medie conține 35 la sută cod open-source). Am vrut să ne dăm seama dacă și proiectanții de cipuri se bucură de un ecosistem bogat de blocuri de construcție open-source. Sau proiectarea de cipuri este încă atât de închisă și atât de provocatoare încât este într-adevăr doar pentru companiile mari, stabilite?
IEEE Spectrum: De ce ar dori un mic start-up să producă propriul circuit integrat specific aplicației (ASIC) în primul rând? Nu ar putea pur și simplu să folosească o matrice de porți programabile pe teren (FPGA) pentru orice produs pe care îl clocește?
Huang: FPGA-urile vin, în general, în pachete mari și greoaie și consumă mult prea multă energie.
ASIC-urile sunt absolut necesare pentru a face lucruri precum aparate auditive, dispozitive medicale implantabile sau comestibile, dispozitive de urmărire GPS care să fie purtate de animale, radiouri mobile, dispozitive RFID, cărți de felicitare electronice sau alte circuite de unică folosință, de unică folosință.
Un alt exemplu este circuitul integrat de comandă din interiorul cipului WS2812 – a revoluționat iluminatul prin posibilitatea de a crea un LED RGB cu un singur pachet, cu protocol serial încorporat, prin încorporarea unui mic ASIC împreună cu LED-urile. (De fapt, am reușit să mă întâlnesc cu tipul care a proiectat prima variantă viabilă din punct de vedere comercial a acestui produs.)
Atunci există cu siguranță o gamă largă de produse cu adevărat utile, care schimbă industria, pe care FPGA-urile pur și simplu nu le pot atinge – în principal ceea ce ați putea numi „chestii ieftine, cu consum redus de energie.”
Cum ați decide când să folosiți un FPGA și când să creați un ASIC? Asta depinde. FPGA-urile irosesc o cantitate mare de siliciu în comparație cu un ASIC, astfel încât pragul de cost, care depinde în mare parte de suprafața de siliciu necesară pentru cip, este adesea cu un ordin de mărime mai mare decât v-ați dori să fie. Dar nici fabricarea unui ASIC nu este ieftină.
De fapt, mă aflu chiar acum în mijlocul acestei capcane: Încerc să construiesc următoarea generație a NeTV, care este un motor de procesare video bazat pe FPGA. ASIC-urile care pot realiza o astfel de procesare video costă mai puțin de jumătate din prețul unui FPGA și pot face o treabă mai bună (în sensul că pot procesa video 4K, în timp ce soluția mea FPGA se limitează la 1080p). Dar ASIC-urile existente nu au toate funcționalitățile de care am nevoie. Cu toate acestea, din cauza altor constrângeri, pur și simplu nu-mi pot permite să creez un ASIC propriu pentru acest produs.
O altă categorie de lucruri pentru care ASIC-urile sunt valoroase se află la capătul opus al spectrului: lucrurile cu adevărat high-end. Permiteți-mi să vă explic cu o scurtă anecdotă.
Cu ceva timp în urmă, am citit lucrarea despre Tensor Processing Unit (TPU) de la Google și m-am gândit: „La naiba, vreau asta”. Așa că am început să mă uit la FPGA-uri pentru a vedea de ce ar fi nevoie pentru a construi ceva cu o capacitate echivalentă.
Am descoperit că FPGA-urile care ar putea măcar începe să țină o lumânare cu TPU-ul lui Google costă multe mii de dolari fiecare – în plus, necesită licențe de software extrem de scumpe. Unele companii mari (cum ar fi Microsoft) au reușit să facă echipă cu producătorii de FPGA-uri și, probabil, Microsoft a primit o reducere destul de mare. Astfel, ar putea crea un hardware interesant folosind FPGA-uri pentru a concura cu TPU-urile Google. Dar cu FPGA-uri atât de capabile, este vorba de ceva de genul 17.000 de dolari americani pentru un singur cip, cel puțin pentru majoritatea oamenilor sau companiilor.
Spectrum: Care este cea mai mică cheltuială pe care o poate face cineva pentru a crea un ASIC de la zero? Să presupunem că cipul este foarte simplu. Îmi imaginez că o bună parte din costuri ar putea fi doar pentru softul de proiectare a acestuia, nu? Și ar trebui să știi ce reguli de proiectare să îndeplinești. Sunt astfel de informații disponibile în mod deschis?
Huang: Am făcut o mică cercetare în acest sens la un moment dat. Există câteva instrumente open-source care ar putea fi capabile să te ajute să ajungi acolo. Regulile de proiectare „SCMOS” sunt cele mai ușor de aplicat. Cred că acestea sunt regulile de proiectare pe care Open-V a încercat să le folosească.
În ceea ce privește software-ul de proiectare, puteți folosi un lanț de instrumente open-source bazat pe Magic (Xcircuit, IRSIM, NetGen, Qrouter și Qflow). Sau, dacă vă puteți permite, puteți folosi produse comerciale close-source, cum ar fi cele de la Cadence.
Am folosit atât fluxurile de proiectare Magic, cât și Cadence. Personal, mi-a plăcut mai mult să folosesc editorul de layout de cipuri de la Magic, dar software-ul Cadence este mai ferchezuit, deoarece a fost folosit pentru a proiecta atât de multe cipuri. Iar instrumentul Cadence pentru simularea efectelor rezistenței și capacității parazite a fost bine verificat.
Aceasta nu înseamnă că ar trebui să folosiți Cadence sau altele asemenea. Cred că ați putea folosi Magic pentru a construi niște circuite integrate care au toleranțe foarte largi – genul de circuite integrate pe care le-ați putea găsi în interiorul driverelor de LED-uri și poate chiar chestii precum aparate auditive. Ar putea fi o mică provocare pentru proiectarea RF, deoarece instrumentele open-source de simulare a efectelor parazite ar putea să nu fie la înălțimea sarcinii. Dar există o metodologie de rafinare a modelelor care ar trebui să vă permită să dezvoltați un proiect de succes în două sau trei execuții de cipuri.
Toate acestea pentru a spune că, până în jurul nodului tehnologic de 180 de nanometri (sau cam așa ceva), ați putea să vă descurcați folosind instrumente open-source. Mai mic de atât, însă, necesită să faci lucruri cu adevărat ciudate cu imaginea măștii și să folosești forme care nu mai sunt doar poligoane simple. Iar kiturile de proiectare de la diverși furnizori pentru a realiza acest lucru devin din ce în ce mai închise.
180 nm este destul de „mare” după standardele actuale. Dar dacă ați dori cu adevărat să plasați o combinație specială de circuite pe o singură matriță de siliciu, ați putea face acest lucru în acest fel. Și ar putea duce la unele produse noi, care altfel ar fi imposibil de realizat cu modele discrete. Totuși, trebuie să fiți conștienți de faptul că ambalarea la scară de cip la nivel de plachetă (WL-CSP) permite integratorilor de plăci de circuite imprimate să se apropie destul de mult de ceea ce ați putea realiza cu ASIC-ul dvs. personalizat.
Cât ar costa realizarea acelui ASIC personalizat? Estimarea costului de fabricare a măștilor și a cipurilor este dificilă deoarece listele de prețuri sunt confidențiale. Dar poveștile pe care le-am auzit sugerează că un ASIC simplu (să zicem unul cu o dimensiune de câțiva milimetri pătrați, fabricat folosind nodul tehnologic de 250 nm) ar putea costa câteva mii de dolari pentru câteva duzini de eșantioane.
Acest preț este suficient de convingător pentru ca odată să mă joc cu ideea de a fabrica o unitate centrală de procesare pe 8 sau 16 biți care ar fi total inspectabilă. Ar putea fi atrăgător pentru acei oameni cu adevărat preocupați de securitate care vor să fie siguri că nu există nimic ciudat în microprocesorul pe care îl folosesc. M-am gândit că o astfel de fabricație m-ar costa câteva mii de dolari. Asta este comparabil cu costul de dezvoltare a oricărui produs, de fapt. Și cu siguranță se încadrează în intervalul de bootstrap.
Spectrum: Bine, să spunem că un mic startup folosește instrumente de proiectare gratuite și găsește suficienți bani pentru a face cel puțin câteva serii de producție de cipuri. Ar putea proiectanții să se bazeze pe proiecte de circuite cu sursă deschisă ca blocuri de construcție, așa cum fac în mod obișnuit dezvoltatorii de software?
Huang: În acest moment, există un depozit destul de rezonabil de blocuri de circuite cu sursă liberă și deschisă specificate la nivel de transfer de registre (RTL), care este ceea ce se utilizează în mod normal în proiectarea cipurilor digitale. Aceasta include microprocesorul RISC-V, dar și proiecte precum lm32, mor1kx și așa mai departe.
Există, de asemenea, o cantitate destul de mare de proiecte „compatibile cu wishbone”, inclusiv lucruri precum punți Ethernet și UART-uri. Proiectul OpenCores are o listă destul de rezonabilă de astfel de blocuri, dintre care unele au fost chiar încorporate în ASIC-uri (majoritatea vizează totuși FPGA-urile).
În ceea ce privește semnalul mixt și analogic, proiectele deschise sunt destul de puține. Partea interesantă a Open-V a fost disponibilitatea lor de a deschide și de a partaja blocuri analogice și de semnal mixt. Aceste proiecte nu pot fi aplicate la noduri tehnologice mai avansate de fabricație, dar cel puțin în gama „SCMOS”, există o șansă rezonabilă ca proiectele să poată fi transformate în cipuri funcționale.
S-ar putea să treacă mult timp, totuși, până când va exista un set bun de blocuri de proiectare analogică și de semnal mixt care să fi fost testate în ASIC-uri, din păcate. Alte lucruri care s-ar putea să nu fie niciodată cu adevărat disponibile prin proiecte deschise includ blocuri de memorie precum SRAM, DRAM, flash și siguranțe programabile electric. Acest lucru se datorează faptului că aceste lucruri necesită o cunoaștere intimă a procesului pentru a fi executate – cunoaștere pe care turnătoriile care produc cipuri s-ar putea să nu o elibereze niciodată.
Tot ce trebuie spus: Un jucător mic ar putea cu siguranță să își proiecteze propriul ASIC și să îl fabrice cu nimic mai mult decât ceva ingeniozitate și câteva mii de dolari. Dar nu ar fi capabil să creeze un design sofisticat sau să folosească un nod tehnologic de ultimă generație.
.