Był inżynierem ds. Weryfikacji projektu ASIC w Qualcomm. W najprostszy sposób mogę to wyjaśnić:
Testowanie: upewnienie się, że produkt działa, po jego utworzeniu (pomyśl o kontroli jakości).
Weryfikacja: upewnienie się, że produkt działa, ZANIM go utworzysz.
Oba testują, tylko ta weryfikacja jest bardziej skomplikowana, ponieważ musisz wymyślić sposób przetestowania produktu, zanim będzie on istniał, i musisz mieć pewność, że działa on zgodnie z planem, i określić, kiedy faktycznie się pojawi.
Na przykład Intel projektuje swój następny procesor, mają specyfikacje, schematy i symulacje. Wydają 1 miliard USD, aby przejść przez produkcję i produkcję. Potem chip wraca i testują go i dowiadują się, że nie działa. Po prostu wyrzucili dużo pieniędzy przez okno.
Wrzuć weryfikację. Inżynierowie ds. Weryfikacji tworzą modele symulujące zachowanie mikroukładu, tworzą środowisko testowe, które będzie testować te konkretne modele. Otrzymują wyniki tych modeli, a następnie porównują je z wynikami RTL (model zapisu obwodu w języku projektowania sprzętu). Jeśli się zgadzają, wszystko jest (zwykle) OK.
Istnieje wiele różnych metodologii procesu weryfikacji, popularną jest Universal Verification Methodology (UVM) .
W tej dziedzinie jest dużo głębi i ludzie mogą spędzić w niej całą karierę.
Kolejna losowa ciekawostka: zazwyczaj potrzebujesz 3 inżynierów weryfikujących na 1 inżyniera projektanta. Tak przynajmniej mówią wszyscy w terenie.
EDYCJA: Wiele osób uważa weryfikację za rolę testową, ale tak nie jest; sama w sobie jest to rola projektowa, ponieważ musisz zrozumieć wszystkie zawiłości swojego układu scalonego tak, jak robi to projektant, a następnie musisz wiedzieć, jak projektować modele, stoły testowe i wszystkie przypadki testowe, które obejmą wszystkie funkcje funkcji twojego układu scalonego , a także próba trafienia w każdą linię kodu RTL dla wszystkich możliwych kombinacji bitów. Pamiętaj, że procesor ma obecnie miliardy tranzystorów ze względu na proces wytwarzania pozwalający na coraz mniejsze (obecnie 14 nm).
Ponadto w dużych korporacjach, takich jak Intel, AMD, Qualcomm itp., Projektanci tak naprawdę nie projektują układu. Zwykle architekt definiuje wszystkie specyfikacje, układa typy elementów, które muszą ze sobą łączyć, aby uzyskać określoną funkcję z określonym wymaganiem (tj. Szybkość, rozdzielczość itp.), A następnie projektant zakoduje to w RTL. Nie jest to wcale łatwa praca, po prostu nie tyle projektowania, ile wielu inżynierów wychodzących ze szkoły tak uważa. Każdy chce być architektem, ale do tego momentu potrzeba dużo edukacji i doświadczenia. Wielu architektów ma doktoraty i jak 15-20 lat doświadczenia w tej dziedzinie jako projektant. To błyskotliwi ludzie (i czasem szaleni), którzy zasługują na to, co robią i są w tym dobrzy. Architekt na pierwszym chipie, nad którym pracowałem, był trochę niezręczny i tak naprawdę nie przestrzegał pewnych norm społecznych, ale mógł rozwiązać wszystko, co utkwiło ci w chipie, a czasami rozwiązał to w swojej głowie i powiedział ci spojrzeć na jeden sygnał i zapytać: „jak on do diabła to zrobił?”. Potem poprosisz go o wyjaśnienie, a on to zrobi, a ten przejdzie ci przez głowę. Właściwie zainspirował mnie do czytania podręczników, mimo że już ukończyłem szkołę.