Був інженером з перевірки дизайну ASIC в Qualcomm. Найпростішим способом я можу це пояснити:
Тестування: Переконайтеся, що продукт працює після створення продукту (подумайте, питання якості).
Перевірка: Переконайтесь, що продукт працює перед тим, як ви його створили.
Вони обидва тестують, просто ця перевірка є складнішою, тому що ви повинні знайти спосіб тестування продукту до його існування, і ви зможете переконатися, що він працює як розроблений, так і проаналізувати, коли він дійсно з’явиться.
Наприклад, Intel проектує наступний процесор, у них є характеристики, у них є схеми та імітації. Вони витрачають 1 мільярд доларів на виробництво та виготовлення. Потім чіп повертається і вони тестують його і з’ясовують, що він не працює. Вони просто викинули багато грошей у вікно.
Увімкніть перевірку. Інженери з верифікації створюють моделі, що імітують поведінку чіпа, вони створюють тестовий стенд, який перевірятиме ці конкретні моделі. Вони отримують результати цих моделей, а потім порівнюють їх з результатами RTL (модель написання схеми мовою апаратного проектування). Якщо вони співпадають, речі (як правило) добре.
Існує ряд різних методологій для процесу верифікації, популярною є Універсальна методологія верифікації (UVM) .
У цій галузі багато глибини, і люди можуть провести в ній всю свою кар’єру.
Ще одна випадкова інформація: Зазвичай вам потрібні 3 інженери-перевірки для 1-го інженера-дизайнера. Це так чи інакше говорять усі на місцях.
EDIT: Багато людей вважають верифікацію тестовою роллю, але це не так; це сама дизайнерська роль, тому що ви повинні зрозуміти всі тонкощі вашого ІС, як це робить дизайнер, і тоді ви повинні знати, як проектувати моделі, тестові стенди та всі тестові справи, які охоплюватимуть всі функціональні можливості вашого ІС , а також намагатися вразити кожен рядок коду RTL для всіх можливих комбінацій бітів. Пам'ятайте, що в даний час процесор має мільярди транзисторів завдяки процесу виготовлення, що дозволяє все менші та менші (зараз 14 нм).
Також у великих корпораціях, таких як Intel, AMD, Qualcomm тощо, дизайнери насправді не розробляють чіп. Зазвичай архітектор визначає всі характеристики, розміщує типи шматочків, які потрібно скласти разом, щоб отримати певну функцію з конкретною вимогою (тобто швидкість, дозвіл тощо), і тоді дизайнер зашифрує це в RTL. Це аж ніяк не легка робота, це просто не стільки проектування, скільки багато інженерів, що виходять зі школи, вважають, що це. Всі хочуть бути архітектором, але для того, щоб дійти до цього, потрібно багато освіти та досвіду. Дуже багато архітекторів мають наукові ступінь доктора наук і люблять 15-20 років досвіду роботи в цій галузі як дизайнера. Це геніальні люди (а іноді і божевільні), які заслуговують на те, щоб робити те, що роблять, і вони в цьому хороші. Архітектор на першому чіпі, над яким я працював, був трохи незручний і насправді не дотримувався певних соціальних норм, але він міг вирішити все, що ти застряв у відношенні чіпа, а іноді він вирішив би це в голові і сказав тобі подивитись на один сигнал, і вам сподобалося б, "як чорт зробив це?". Тоді ви просите його пояснити, і він робить це, і це переходить через вашу голову. Насправді надихнуло мене читати підручники, хоча я вже закінчила.