Come progettare un nuovo chip con un budget
Il guru dell’hardware bunnie Huang parla degli strumenti open-source che usa per progettare circuiti e del perché vuole costruire il suo ASIC
Di recente abbiamo avuto un interessante scambio con bunnie Huang, guru dell’hardware e creatore di Chumby, NeTV e del laptop Novena, tra le altre cose. È anche l’autore di Hacking the Xbox, The Essential Guide to Electronics in Shenzhen, e non uno ma due articoli su IEEE Spectrum.
Eravamo interessati al punto di vista di Huang sulla possibilità che un piccolo team, modestamente finanziato, ad esempio una startup del college, possa produrre un chip personalizzato, proprio come tali gruppi ora creano prodotti e software a livello di scheda con facilità.
Le imprese di software in particolare beneficiano della grande quantità di codice open-source che è disponibile per l’uso nella costruzione di prodotti commerciali. (Uno studio ha scoperto che l’applicazione commerciale media contiene il 35% di codice open-source). Volevamo capire se i progettisti di chip godono anche di un ricco ecosistema di blocchi di costruzione open-source. O la progettazione di chip è ancora così chiusa e così impegnativa che è davvero solo per le grandi aziende affermate?
IEEE Spectrum: Perché una piccola startup dovrebbe voler produrre il proprio circuito integrato specifico per l’applicazione (ASIC)? Non potrebbe semplicemente usare un field-programmable gate array (FPGA) per qualsiasi prodotto stia covando?
Huang: Gli FPGA generalmente sono in grossi pacchetti ingombranti e consumano troppa energia.
Gli ASIC sono assolutamente necessari per fare cose come apparecchi acustici, dispositivi medici impiantabili o commestibili, localizzatori GPS per essere trasportati da animali, radio mobili, dispositivi RFID, biglietti d’auguri elettronici, o altri circuiti monouso a uso singolo.
Un altro esempio è il driver IC all’interno del chip WS2812 – ha rivoluzionato l’illuminazione per essere in grado di creare un singolo pacchetto di LED RGB con protocollo seriale incorporato incorporando un piccolo ASIC con i LED. (In realtà ho incontrato il ragazzo che ha progettato la prima variante commercialmente fattibile di questo.)
Così c’è sicuramente una vasta gamma di prodotti davvero utili, che cambiano l’industria e che gli FPGA non possono toccare-principalmente quello che si potrebbe chiamare “roba economica e a bassa potenza.”
Come si può decidere quando usare un FPGA e quando creare un ASIC? Questo dipende. Gli FPGA sprecano una grande quantità di silicio rispetto a un ASIC, quindi il costo di base, che dipende in gran parte dalla superficie di silicio richiesta per il chip, è spesso un ordine di grandezza più alto di quanto si vorrebbe che fosse. Ma anche fabbricare un ASIC non è economico.
Sono in realtà nel mezzo di questa trappola proprio ora: Sto cercando di costruire la prossima generazione di NeTV, che è un motore di elaborazione video basato su FPGA. Gli ASIC che possono realizzare tale elaborazione video costano meno della metà di un FPGA e possono fare un lavoro migliore (in quanto possono elaborare video 4K, mentre la mia soluzione FPGA arriva al massimo a 1080p). Ma gli ASIC esistenti non hanno tutte le funzionalità di cui ho bisogno. A causa di altri vincoli, però, semplicemente non posso permettermi di creare un ASIC tutto mio per questo prodotto.
Un’altra categoria di cose per cui gli ASIC sono preziosi si trova all’estremità opposta dello spettro: le cose davvero di fascia alta. Lasciatemi spiegare con un breve aneddoto.
Un po’ di tempo fa, ho letto il documento sulla Tensor Processing Unit (TPU) di Google, e ho pensato: “Dannazione, la voglio”. Così ho iniziato a guardare gli FPGA per vedere cosa ci sarebbe voluto per costruire qualcosa di capacità equivalente.
Ho scoperto che gli FPGA che potrebbero anche solo iniziare a reggere il confronto con la TPU di Google costano molte migliaia di dollari ciascuno, oltre a richiedere licenze software super costose. Alcune grandi aziende (come Microsoft) sono state in grado di collaborare con i produttori di FPGA, e presumibilmente, Microsoft ha ricevuto uno sconto piuttosto pesante. Quindi potrebbe creare qualche hardware interessante usando gli FPGA per competere con le TPU di Google. Ma con FPGA così capaci, si parla di qualcosa come 17.000 dollari per un singolo chip, almeno per la maggior parte delle persone o delle aziende.
Spectrum: Qual è il minimo che qualcuno potrebbe spendere per creare un ASIC da zero? Supponiamo che il chip sia molto semplice. Immagino che una buona frazione del costo potrebbe essere solo per il software per progettarlo, no? E si dovrebbe sapere quali regole di progettazione soddisfare. Queste informazioni sono disponibili apertamente?
Huang: Ho fatto una piccola ricerca su questo una volta. Ci sono alcuni strumenti open-source che potrebbero essere in grado di portarvi lì. Le regole di progettazione “SCMOS” sono le più praticabili. Penso che queste siano le regole di progettazione che Open-V stava cercando di usare.
Per quanto riguarda il software di progettazione, potete usare una catena di strumenti open-source basata su Magic (Xcircuit, IRSIM, NetGen, Qrouter e Qflow). Oppure, se te lo puoi permettere, puoi usare prodotti commerciali close-source, come quelli della Cadence.
Ho usato entrambi i flussi di progettazione Magic e Cadence. Personalmente mi è piaciuto di più usare l’editor di chip-layout di Magic, ma il software Cadence è più solido, essendo stato usato per progettare così tanti chip. E lo strumento di Cadence per simulare gli effetti della resistenza e della capacità parassita è stato ben controllato.
Questo non vuol dire che tu abbia bisogno di usare Cadence o simili. Penso che si potrebbe usare Magic per costruire alcuni circuiti integrati che hanno tolleranze molto ampie – il tipo di circuiti integrati che si potrebbero trovare all’interno di driver LED e forse anche roba come gli apparecchi acustici. Potrebbe essere un po’ una sfida fare design RF, perché gli strumenti open-source per simulare gli effetti parassiti potrebbero non essere all’altezza del compito. Ma c’è una metodologia per raffinare i modelli che dovrebbe permetterti di sviluppare un progetto di successo in due o tre cicli di chip.
Tutto sommato, fino a circa il nodo tecnologico dei 180 nanometri (o giù di lì), potresti cavartela usando strumenti open-source. Più piccolo di quello, però, richiede di fare cose davvero divertenti con l’immagine della maschera e di usare forme che non sono più solo semplici poligoni. E i kit di progettazione dei vari fornitori per realizzare ciò diventano sempre più chiusi.
180 nm è abbastanza “grande” per gli standard odierni. Ma se si volesse davvero mettere qualche combinazione speciale di circuiti su un singolo die di silicio, si potrebbe fare in questo modo. E potrebbe portare ad alcuni prodotti innovativi che altrimenti sarebbero impossibili con progetti discreti. Siate consapevoli, però, che l’imballaggio su scala di chip a livello di wafer (WL-CSP) permette agli integratori di schede a circuito stampato di avvicinarsi abbastanza a quello che potreste ottenere con il vostro ASIC personalizzato.
Quanto costerebbe fare quell’ASIC personalizzato? Stimare il costo della fabbricazione di maschere e chip è difficile perché i listini sono riservati. Ma le storie che ho sentito suggeriscono che un semplice ASIC (diciamo uno di pochi millimetri quadrati, fabbricato usando il nodo tecnologico a 250-nm) potrebbe costare poche migliaia di dollari per un paio di dozzine di campioni.
Questo prezzo è abbastanza convincente che una volta ho giocato con l’idea di fabbricare una CPU a 8 o 16 bit che sarebbe totalmente ispezionabile. Potrebbe piacere a quelle persone molto attente alla sicurezza che vogliono essere sicure che non ci sia nulla di strano nel microprocessore che stanno usando. Ho pensato che far fabbricare una cosa del genere mi costerebbe qualche migliaio di dollari. Questo è paragonabile al costo di sviluppo di qualsiasi prodotto, davvero. Ed è certamente nella gamma di bootstrapping.
Spectrum: Ok, diciamo che una piccola startup usa strumenti di progettazione gratuiti e trova abbastanza soldi per fare almeno qualche produzione di chip. I progettisti sarebbero in grado di attingere a progetti di circuiti open-source come blocchi di costruzione, come fanno abitualmente gli sviluppatori di software?
Huang: Al momento, c’è un archivio abbastanza ragionevole di blocchi di circuiti liberi e aperti specificati a livello di trasferimento di registro (RTL), che è quello che viene normalmente usato nella progettazione di chip digitali. Questo include il microprocessore RISC-V ma anche progetti come l’lm32, mor1kx, e così via.
C’è anche una discreta quantità di progetti “wishbone-compatibili”, inclusi oggetti come bridge Ethernet e UART. Il progetto OpenCores ha una lista abbastanza ragionevole di tali blocchi, alcuni dei quali sono stati anche incorporati in ASIC (la maggior parte si rivolge a FPGA, però).
Per quanto riguarda il segnale misto e l’analogico, i progetti aperti sono piuttosto scarsi. La parte eccitante di Open-V è stata la loro volontà di aprire e condividere blocchi analogici e a segnale misto. Questi progetti non possono essere applicati a nodi tecnologici di fabbricazione più avanzati, ma almeno nella gamma “SCMOS”, c’è una ragionevole possibilità che i progetti possano essere trasformati in chip funzionanti.
Potrebbe passare molto tempo, però, prima che ci sia una buona serie di blocchi di progettazione analogici e a segnale misto là fuori che siano stati testati in ASIC, purtroppo. Altre cose che potrebbero non essere mai veramente disponibili attraverso progetti aperti includono blocchi di memoria come SRAM, DRAM, flash e fusibili programmabili elettricamente. Questo perché queste cose richiedono un’intima conoscenza del processo per essere eseguite, conoscenza che le fonderie che producono i chip potrebbero non rilasciare mai.
Tutto da dire: Un piccolo giocatore potrebbe certamente progettare il proprio ASIC e farlo fabbricare con nient’altro che un po’ d’ingegno e qualche migliaio di dollari. Ma non sarebbe in grado di creare un design sofisticato o utilizzare un nodo tecnologico all’avanguardia.