How to Design a New Chip on a Budget
Hardware guru bunnie Huang mówi o narzędziach open-source, których używa do projektowania układów i dlaczego chce zbudować własny ASIC
Mieliśmy ostatnio ciekawą wymianę zdań z bunnie Huangiem, guru sprzętowym i twórcą między innymi Chumby, NeTV oraz laptopa Novena. Jest on również autorem książek Hacking the Xbox, The Essential Guide to Electronics in Shenzhen oraz nie jednego, ale dwóch artykułów w IEEE Spectrum.
Zainteresowały nas poglądy Huanga na temat tego, czy mały, skromnie finansowany zespół – powiedzmy startup z akademika – mógłby wyprodukować niestandardowy układ scalony, tak jak teraz takie grupy z łatwością tworzą produkty i oprogramowanie na poziomie płyty głównej.
Przedsięwzięcia softwarowe w szczególności korzystają z ogromnej ilości kodu open-source, który jest dostępny do użytku w budowaniu produktów komercyjnych. (Jedno z badań wykazało, że przeciętna aplikacja komercyjna zawiera 35% kodu open-source). Chcieliśmy dowiedzieć się, czy projektanci układów scalonych również korzystają z bogatego ekosystemu bloków konstrukcyjnych z otwartym kodem źródłowym. Czy też projektowanie układów scalonych jest wciąż tak zamknięte i tak wymagające, że jest to zajęcie tylko dla dużych, uznanych firm?
IEEE Spectrum: Dlaczego mały startup miałby w ogóle chcieć produkować własny układ scalony specyficzny dla aplikacji (ASIC)? Czy nie mógłby po prostu użyć FPGA (field-programmable gate array) do jakiegokolwiek produktu, który się wykluwa?
Huang: FPGA generalnie są w dużych, nieporęcznych pakietach i zużywają o wiele za dużo energii.
ASIC są absolutnie niezbędne do produkcji takich rzeczy jak aparaty słuchowe, wszczepialne lub jadalne urządzenia medyczne, lokalizatory GPS noszone przez zwierzęta, przenośne radia, urządzenia RFID, elektroniczne kartki okolicznościowe lub inne jednorazowe obwody.
Innym przykładem jest sterownik IC wewnątrz chipu WS2812 – zrewolucjonizował on oświetlenie, aby móc stworzyć pojedynczy pakiet LED RGB z wbudowanym protokołem szeregowym poprzez osadzenie maleńkiego ASIC z diodami LED. (Miałem okazję poznać faceta, który zaprojektował pierwszy komercyjnie opłacalny wariant tego rozwiązania.)
Jest więc zdecydowanie szeroki zakres naprawdę użytecznych, zmieniających przemysł produktów, których FPGA po prostu nie mogą dotknąć – przede wszystkim to, co można nazwać „tanimi rzeczami o niskim poborze mocy.”
Jak zdecydowalibyście, kiedy użyć FPGA, a kiedy stworzyć ASIC? To zależy. FPGA marnują dużą ilość krzemu w porównaniu z ASIC, więc koszty, które zależą w dużej mierze od powierzchni krzemu wymaganej dla układu, są często o rząd wielkości wyższe niż byśmy chcieli. Ale produkcja ASIC też nie jest tania.
Jestem teraz w środku tej pułapki: Próbuję zbudować następną generację NeTV, który jest silnikiem przetwarzania wideo opartym na FPGA. Układy ASIC, które mogą wykonać takie przetwarzanie wideo, kosztują mniej niż połowę tego co FPGA i mogą wykonać lepszą robotę (mogą przetwarzać wideo 4K, podczas gdy moje rozwiązanie FPGA osiąga maksimum przy 1080p). Ale istniejące układy ASIC nie mają wszystkich funkcji, których potrzebuję. Z powodu innych ograniczeń, po prostu nie mogę sobie pozwolić na stworzenie własnego ASIC dla tego produktu.
Inna kategoria rzeczy, dla których ASIC są wartościowe, leży na przeciwległym końcu spektrum: rzeczy naprawdę high-endowe. Pozwólcie, że wyjaśnię to krótką anegdotą.
Jakiś czas temu przeczytałem artykuł o Tensor Processing Unit (TPU) firmy Google i pomyślałem: „Cholera, chcę tego”. Zacząłem więc przyglądać się układom FPGA, aby zobaczyć, co trzeba zrobić, aby zbudować coś o równoważnych możliwościach.
Odkryłem, że układy FPGA, które mogłyby nawet zacząć trzymać świeczkę z TPU Google, kosztują wiele tysięcy dolarów za sztukę – plus wymagają one bardzo drogich licencji na oprogramowanie. Niektóre duże firmy (jak Microsoft) były w stanie współpracować z producentami FPGA i przypuszczalnie Microsoft otrzymał całkiem pokaźny rabat. Więc może stworzyć jakiś ciekawy sprzęt przy użyciu FPGA, aby konkurować z Google TPUs. Ale z tak zdolnymi FPGA, mówisz coś w rodzaju 17,000 dolarów za pojedynczy chip, przynajmniej dla większości ludzi lub firm.
Spectrum: Ile najmniej ktoś mógłby wydać, aby stworzyć ASIC od podstaw? Załóżmy, że chip jest bardzo prosty. Wyobrażam sobie, że spory ułamek kosztów może stanowić samo oprogramowanie do jego zaprojektowania, nie? I musiałbyś wiedzieć, jakie zasady projektowania spełnić. Czy takie informacje są ogólnie dostępne?
Huang: Kiedyś przeprowadziłem małe badania na ten temat. Istnieją pewne narzędzia open-source, które mogą być w stanie Cię tam zaprowadzić. Zasady projektowania „SCMOS” są najbardziej wykonalne. Myślę, że są to zasady projektowania, które Open-V próbował wykorzystać.
Jeśli chodzi o oprogramowanie projektowe, możesz użyć łańcucha narzędzi open-source opartego na Magic (Xcircuit, IRSIM, NetGen, Qrouter, i Qflow). Lub, jeśli możesz sobie na to pozwolić, możesz użyć komercyjnych produktów close-source, jak te od Cadence.
Użyłem zarówno Magic jak i Cadence design flows. Osobiście bardziej podobało mi się używanie edytora układów scalonych Magic, ale oprogramowanie Cadence jest bardziej żelazne, ponieważ było używane do projektowania tak wielu układów. A narzędzie Cadence do symulacji efektów pasożytniczej rezystancji i pojemności zostało dobrze sprawdzone.
To nie znaczy, że musisz używać Cadence lub podobnych. Myślę, że mógłbyś użyć Magic do zbudowania układów scalonych o naprawdę szerokich tolerancjach – takich, które można znaleźć w sterownikach LED, a może nawet w aparatach słuchowych. Projektowanie RF może być pewnym wyzwaniem, ponieważ narzędzia open-source do symulacji efektów pasożytniczych mogą nie sprostać temu zadaniu. Ale istnieje metodologia udoskonalania modeli, która powinna pozwolić na opracowanie udanego projektu w dwóch lub trzech seriach chipów.
Wszystko, co można powiedzieć, do około 180-nanometrowego węzła technologicznego (lub tak), można uciec z wykorzystaniem narzędzi open-source. Mniejsze niż to wymaga jednak robienia naprawdę zabawnych rzeczy z obrazowaniem maski i używania kształtów, które nie są już tylko prostymi wielokątami. A zestawy projektowe od różnych dostawców, aby to osiągnąć, stają się coraz bardziej zamknięte.
180 nm jest dość „duże” jak na dzisiejsze standardy. Ale jeśli naprawdę chciałbyś umieścić jakąś specjalną kombinację obwodów na pojedynczej matrycy krzemowej, mógłbyś to zrobić w ten sposób. I mogłoby to doprowadzić do powstania kilku nowatorskich produktów, które w przeciwnym razie byłyby niemożliwe do wykonania przy użyciu projektów dyskretnych. Należy jednak pamiętać, że pakowanie na poziomie wafla (WL-CSP) pozwala integratorom obwodów drukowanych zbliżyć się do tego, co można osiągnąć za pomocą niestandardowego ASIC.
Ile kosztowałoby wykonanie tego niestandardowego ASIC? Oszacowanie kosztów produkcji masek i chipów jest trudne, ponieważ cenniki są poufne. Ale historie, które słyszałem sugerują, że prosty ASIC (powiedzmy taki, który jest wielkości kilku milimetrów kwadratowych, wykonany przy użyciu węzła technologicznego 250-nm) może kosztować kilka tysięcy dolarów za kilkadziesiąt próbek.
Ta cena jest na tyle przekonująca, że kiedyś zastanawiałem się nad pomysłem wyprodukowania 8- lub 16-bitowego CPU, który byłby całkowicie sprawdzalny. Mogłoby to przemówić do tych naprawdę dbających o bezpieczeństwo ludzi, którzy chcą być pewni, że nie ma nic śmiesznego w mikroprocesorze, którego używają. Uznałem, że wykonanie takiej rzeczy kosztowałoby mnie kilka tysięcy dolarów. To jest porównywalne z kosztem rozwoju każdego produktu, naprawdę. I z pewnością mieści się w zakresie bootstrappingu.
Spectrum: Ok, powiedzmy, że mały startup używa darmowych narzędzi do projektowania i znajduje wystarczająco dużo pieniędzy, aby wykonać co najmniej kilka serii produkcyjnych chipów. Czy projektanci byliby w stanie czerpać z otwartych projektów obwodów jako bloków konstrukcyjnych, tak jak robią to programiści?
Huang: W tej chwili istnieje całkiem rozsądne repozytorium wolnych i otwartych bloków obwodów określonych na poziomie przeniesienia rejestru (RTL), który jest tym, co jest zwykle używane w projektowaniu cyfrowych układów scalonych. Obejmuje to mikroprocesor RISC-V, ale także projekty takie jak lm32, mor1kx, i tak dalej.
Jest także całkiem sporo projektów „kompatybilnych z wishbone”, włączając w to rzeczy takie jak mostki ethernetowe i UARTy. Projekt OpenCores ma całkiem rozsądną listę takich bloków, niektóre z nich zostały nawet włączone do ASIC (większość z nich jest jednak skierowana do FPGA).
Jeśli chodzi o mixed-signal i analog, otwarte projekty są dość rzadkie. Ekscytującą częścią Open-V była ich gotowość do otwarcia i udostępnienia bloków analogowych i mixed-signal. Te projekty nie mogą być zastosowane do bardziej zaawansowanych węzłów technologicznych produkcji, ale przynajmniej w zakresie „SCMOS”, istnieje rozsądna szansa, że projekty mogą być przekształcone w działające chipy.
Może to być jednak długi czas, dopóki nie będzie dobrego zestawu analogowych i mieszanych bloków projektowych, które zostały przetestowane w ASIC, niestety. Inne rzeczy, które mogą nigdy nie być prawdziwie dostępne poprzez otwarte projekty to bloki pamięci takie jak SRAM, DRAM, flash i elektrycznie programowalne bezpieczniki. Dzieje się tak dlatego, że te rzeczy wymagają intymnej wiedzy o procesach do wykonania – wiedzy, której odlewnie produkujące chipy mogą nigdy nie udostępnić.
Wszystko do powiedzenia: Mały gracz z pewnością mógłby zaprojektować swój własny ASIC i zlecić jego produkcję, nie mając nic więcej niż trochę pomysłowości i kilka tysięcy dolarów. Ale nie byłby w stanie stworzyć wyrafinowanego projektu lub użyć najnowocześniejszego węzła technologicznego.