Zapytaj salę studentów inżynierii, kto chce projektować chipy, i większość rąk się podniesie. Zapytaj, kto chce je weryfikować, a sala robi się szczera.
Część pracy, o którą nikt się nie ubiega
Publiczny obraz projektowania chipów to architektura: ktoś decyduje, co robi procesor, ile ma rdzeni, jak działa hierarchia pamięci. Ta praca istnieje, jest naprawdę interesująca i stanowi niewielki ułamek zatrudnienia.
W typowym cyfrowym projekcie chipa największym pojedynczym blokiem wysiłku inżynierskiego jest weryfikacja, a w złożonych projektach inżynierów weryfikacji jest zwykle więcej niż inżynierów projektujących. To też konsekwentnie najtrudniejsza grupa do zatrudnienia.
Powodem, dla którego ta nierównowaga się utrzymuje, jest nieporozumienie co do tego, czym jest weryfikacja. Powszechnie wyobraża się ją jako testowanie: uruchomienie projektu i sprawdzenie wyniku. Jest bliżej przeciwieństwa. Inżynier weryfikacji buduje niezależny model tego, co projekt ma robić, konstruuje środowisko generujące bodźce, których projektant nie przewidział, mierzy, które zachowania zostały faktycznie sprawdzone, i na podstawie pokrycia argumentuje, że pozostałe ryzyko jest akceptowalne.
Weryfikacja to nie sprawdzanie, czy projekt działa. To budowanie argumentu, że nie może zawieść w sposób, którego nie sprawdziłeś.
To działalność projektowa z własną metodologią, własnymi językami i własną trudnością intelektualną. Zespoły, które traktują ją jako pracę juniorską, tak też ją obsadzają, a konsekwencję odkrywają dopiero przy tape-out.
Co obejmuje ten kierunek
Zakres: projektowanie cyfrowe, języki opisu sprzętu, weryfikacja, projektowanie fizyczne, analiza czasowa i mocy oraz projektowanie pod kątem testowalności.
Cztery obszary.
Projektowanie na poziomie transferu rejestrów (RTL). Opisywanie zachowania sprzętu w języku opisu sprzętu, w stylu, który syntezuje się do bramek logicznych.
Weryfikacja. Bodźce ograniczone losowo, pokrycie funkcjonalne, metody oparte na asercjach i techniki formalne.
Projektowanie fizyczne. Planowanie układu, rozmieszczenie, dystrybucja zegara, trasowanie i domknięcie czasowe.
Analiza i test. Statyczna analiza czasowa, moc, integralność sygnału oraz struktury, które czynią wyprodukowany chip testowalnym.
Dlaczego chip to nie oprogramowanie
Ta jedna różnica ma największe konsekwencje i to ona kształtuje każdą decyzję procesową w tej branży.
Nie ma łatki. Błąd funkcjonalny wykryty po produkcji naprawia się, zmieniając projekt i wytwarzając nowy zestaw masek, co jest kosztowne przy dojrzałych węzłach procesowych, a niezwykle kosztowne przy najnowszych, i co kosztuje miesiące. Błąd znaleziony po wysyłce produktu da się czasem naprawić jedynie obejściem w oprogramowaniu, a czasem wcale.
Projekt jest z natury równoległy. Języki opisu sprzętu opisują struktury, które istnieją wszystkie jednocześnie. Inżynierowie software'u przechodzący do sprzętu zwykle piszą kod sekwencyjny, który poprawnie się symuluje, ale albo nie daje się zsyntezować, albo syntezuje się do czegoś ogromnego. Przesunięcie pojęciowe polega na przejściu od instrukcji wykonywanych po kolei do logiki istniejącej naraz.
Czas jest fizyczny. Projekt nie jest poprawny w abstrakcji. Jest poprawny przy danej częstotliwości zegara, napięciu, temperaturze i w danym zakresie zmienności produkcyjnej, i dla każdego z tych narożników trzeba wykazać domknięcie.
Wszystko kosztuje powierzchnię, a powierzchnia kosztuje pieniądze. Powierzchnia krzemu przekłada się wprost na wydajność produkcyjną i koszt jednego chipa. Funkcja, która w oprogramowaniu byłaby darmowa, w krzemie ma trwały koszt jednostkowy.
Te cztery fakty tłumaczą, dlaczego proces tej branży z zewnątrz wygląda na konserwatywny. To nie konserwatyzm. To właściwa reakcja na jednorazowy etap produkcyjny.
Projektowanie fizyczne, czyli gdzie naprawdę ucieka harmonogram
Między zweryfikowanym opisem na poziomie transferu rejestrów a układem nadającym się do produkcji leży ogrom pracy, który osoby z zewnątrz często uważają za zautomatyzowany.
Narzędzia wykonują ogromną jej część. Nie usuwają inżynierii.
Domknięcie czasowe. Projekt musi spełniać swoje ograniczenia czasowe na każdej ścieżce, przy każdym narożniku warunków. Ścieżki, które zawodzą, naprawia się, zmieniając rozmiar elementów, restrukturyzując logikę, przesuwając bloki, dostosowując plan układu lub zmieniając architekturę. Ta ostatnia opcja zdarza się na tyle często, że traktowanie projektowania fizycznego jako etapu podrzędnego daje harmonogramy, które się nie utrzymują.
Moc i termika. Trzeba zarządzać zarówno mocą statyczną, jak i przełączania, wraz ze spadkiem napięcia w sieci dostarczania zasilania oraz gorącymi punktami tworzonymi przez gęstą aktywność.
Trasowalność. Plan układu wygodny dla rozmieszczenia może okazać się niemożliwy do wytrasowania, a odkrycie tego późno kosztuje tygodnie.
Dystrybucja zegara. Doprowadzenie zegara przez duży układ scalony z kontrolowanym skosem to osobna specjalizacja, i pochłania znaczną część całkowitej mocy chipa.
Inżynierowie projektowania fizycznego są rzadkością, ta umiejętność buduje się latami, i jest w dużej mierze niewidoczna w tym, jak branżę opisuje się studentom.
Gdzie to się mieści w domenie
Projektowanie chipów i VLSI to trzeci z dziewięciu kierunków w domenie półprzewodników, elektroniki i kwantów Astra Trainer. Łączy się bezpośrednio z fizyką i przyrządami półprzewodnikowymi, bo każdy model czasowy i mocy opiera się na zachowaniu przyrządu, oraz z produkcją półprzewodników i zaawansowanym pakowaniem, gdzie projekt spotyka proces, który go wytworzy.
Łączy się też na zewnątrz z AI i obliczeniami, gdzie projektowanie akceleratorów stanowi dziś dużą część nowych startów projektów chipów. Partnerzy zwykle obejmują projektowanie chipów zakresem razem z systemami wbudowanymi, bo zespoły sprzętowe i software'owe w programie systemu na chipie (SoC) potrzebują wspólnego słownictwa. Zobacz tu dziewięć kierunków.
Projektowanie pod kątem testowalności, które nie jest opcjonalne
Wyprodukowany chip trzeba przetestować, a struktury, które to umożliwiają, dodaje się do projektu celowo.
Łańcuchy skanujące łączą elementy pamięciowe projektu w rejestry przesuwne, dzięki czemu stan wewnętrzny można załadować i zaobserwować. Struktury wbudowanego autotestu pozwalają pamięciom i blokom analogowym testować się samodzielnie. Skanowanie brzegowe pozwala sprawdzić połączenia między zapakowanymi chipami na płytce. Kompresja testów zmniejsza ilość danych, jakie trzeba przepchnąć przez tester, bo czas testera jest kosztowny i rośnie z wolumenem.
Wszystko to zajmuje powierzchnię krzemu i pochłania wysiłek projektowy na funkcjonalność, której klient nigdy nie użyje. Mimo to jest uwzględniane, z powodu, który warto powiedzieć wprost.
Wydajność produkcyjna nigdy nie wynosi stu procent. Zdarzają się defekty. Chipa, którego nie da się przetestować, nie da się przesiać, co oznacza, że wadliwe egzemplarze trafiają do klientów, a w zastosowaniach motoryzacyjnych, medycznych i przemysłowych to problem bezpieczeństwa i odpowiedzialności prawnej, a nie tylko statystyka jakości.
Powtarzalnym błędem jest decydowanie o strukturach testowych późno, gdy plan układu jest już ustalony, a ich dodanie jest zakłócające. Wprowadzenie testu to decyzja projektowa, podejmowana wcześnie, razem z architekturą.
Role po imieniu
Inżynierowie projektowania na poziomie transferu rejestrów. Rola, którą wyobraża sobie większość ludzi.
Inżynierowie weryfikacji projektu. Najliczniejsza grupa w większości projektów i najtrudniejsza do obsadzenia.
Inżynierowie projektowania fizycznego. Od planu układu po domknięcie czasowe.
Inżynierowie statycznej analizy czasowej i odbioru końcowego (signoff).
Inżynierowie projektowania pod kątem testowalności. Skan, autotest i kompresja.
Inżynierowie projektowania analogowego i mieszanego. Chronicznie deficytowi, bo ta umiejętność opiera się automatyzacji.
Inżynierowie weryfikacji formalnej, dowodzący własności zamiast je symulować.
Architekci komputerowi. Najmniejsza grupa, i ta, którą wszyscy wyobrażają sobie jako całą dziedzinę.
Inżynierowie automatyzacji projektowania elektronicznego (EDA), budujący i utrzymujący przepływy narzędziowe, od których zależy reszta branży.
Kogo można w to przekwalifikować
Inżynierowie oprogramowania. Największa dostępna pula, a konwersja działa, gdy model równoległości uczy się wprost, a nie zakłada. Weryfikacja w szczególności nagradza umiejętności software'owe, bo współczesne środowiska weryfikacyjne to duże programy obiektowe. To najszybsza droga do największego niedoboru w tej branży.
Inżynierowie FPGA (programowalnych układów bramkowych). Bliskie sąsiedztwo. Biegłość w językach opisu sprzętu i intuicja czasowa już istnieją. Nowa jest dyscyplina wynikająca z tego, że nie da się przeprogramować gotowego układu.
Inżynierowie elektronicy. W projektowanie mieszane i w projektowanie fizyczne, wnosząc intuicję dotyczącą przyrządów i układu.
Inżynierowie testów z produkcji. W projektowanie pod kątem testowalności, bo wiedzą, co jest nietestowalne i dlaczego.
Inżynierowie oprogramowania wbudowanego. W weryfikację i integrację systemu na chipie, mając już granicę między sprzętem a oprogramowaniem.
Absolwenci fizyki i matematyki. W weryfikację formalną, gdzie rozumowanie jest bliższe dowodowi niż programowaniu.
Narzędzia, metodologia i poufne przepływy pracy. Projektowanie chipów zależy od komercyjnych narzędzi automatyzacji projektowania elektronicznego, zestawów projektowych procesu (PDK) i reguł odlewni dostarczanych na licencji i pod klauzulą poufności, które różnią się między organizacjami i węzłami procesowymi. Szkolenie buduje metodologię i pojęcia. Nie dostarcza licencji na narzędzia, zestawów PDK, reguł odlewni ani żadnego poufnego przepływu projektowego, i nie zastępuje wewnętrznej kwalifikacji wymaganej do ich używania.
Co z tego wynika
Weryfikacja to największa część wysiłku, największa część ryzyka harmonogramu i największa niedoobsadzona grupa, a to praca projektowa, a nie testowanie.
Chipa nie da się załatać, co tłumaczy cały kształt procesu tej branży.
Projektowanie fizyczne rutynowo zwraca pracę w górę do architektury, więc traktowanie go jako etapu podrzędnego daje harmonogramy, które zawodzą.
Projektowanie pod kątem testowalności kosztuje powierzchnię i wysiłek na funkcjonalność, której nikt nie kupuje, a bez niego wadliwe egzemplarze trafiają do klientów.
A inżynierowie oprogramowania to największe realistyczne źródło nowych kompetencji weryfikacyjnych, pod warunkiem że ktoś nauczy modelu równoległości, zamiast zakładać, że sam się przeniesie.
Dlaczego weryfikacja zajmuje tak dużą część projektu chipa?
Bo etap produkcyjny jest jednorazowy. Weryfikacja buduje niezależny model zamierzonego zachowania, generuje bodźce, których projektant nie przewidział, i mierzy pokrycie, by argumentować, że nieodkryte tryby awarii są mało prawdopodobne.
Czy inżynierowie oprogramowania mogą przejść do projektowania chipów?
Tak, a weryfikacja to najbardziej naturalny punkt wejścia, bo współczesne środowiska weryfikacyjne to duże programy obiektowe. Luką do nauczenia jest przejście od wykonania sekwencyjnego do struktur istniejących naraz.
Dlaczego projektowanie fizyczne to nie tylko automatyzacja?
Narzędzia wykonują większość pracy mechanicznej, ale domknięcie czasowe, dostarczanie zasilania, trasowalność i dystrybucja zegara regularnie wymagają restrukturyzacji logiki lub zmiany architektury, co oznacza, że projektowanie fizyczne wraca do projektu, zamiast po nim następować.
Po co dodawać struktury testowe, których klienci nigdy nie używają?
Bo wydajność produkcyjna nigdy nie jest idealna, a chipa, którego nie da się przetestować, nie da się przesiać pod kątem defektów. W zastosowaniach motoryzacyjnych, medycznych i przemysłowych wysyłka nieprzesianych egzemplarzy to kwestia bezpieczeństwa i odpowiedzialności prawnej.
Które pokrewne role dobrze przechodzą do pracy w VLSI?
Inżynierowie oprogramowania w weryfikację, inżynierowie FPGA w projektowanie, inżynierowie elektronicy w projektowanie mieszane i fizyczne, inżynierowie testów z produkcji w projektowanie pod kątem testowalności.
