Інструменти, методології та процеси, які існували з самого початку розробки напівпровідників, руйнуються, але цього разу немає великої групи дослідників, які пропонують потенційні рішення. Галузь сама по собі може сформулювати ці ідеї, і для цього знадобиться багато співпраці між компаніями EDA, фабриками та дизайнерами, що не було їх сильною стороною в минулому.
Важко оптимізувати щось, якщо ви не можете це проаналізувати, і аналіз стає набагато складнішим, оскільки багато проблем у великих напівпровідникових продуктах є або мультифізичними, або поєднанням апаратного та програмного забезпечення, системи, плати , пакет IC, інтерпозер, мікросхема та IP-блок. У минулому підхід «розділяй і володарюй» був способом вирішення проблем. Іноді це робиться ієрархічно, наприклад, повна перевірка блоку перед його інтеграцією, або іноді шляхом ізоляції проблеми, наприклад, із перетином домену годинника.
Однак деякі проблеми все частіше перешкоджають таким підходам, і промисловість ще не знайшла легкого вирішення. Наприклад, такі проблеми, як безпека, є проблемами системного рівня. Те саме стосується багатьох проблем із продуктивністю чи живленням. Навіть такі проблеми, як живлення та цілісність сигналу, мають вирішувати ієрархію, яка охоплює від IP до системи через складне взаємозв’язок багатьох рівнів, кожен з яких традиційно пристосовувався до іншого набору інструментів.
Це створює новий набір проблем моделювання та вимагає, щоб деякі існуючі інструменти взяли на себе набагато більшу роль, ніж у минулому. Крім того, промисловості доведеться серйозно поставитися до накладення обмежень на проекти, щоб аналіз був можливим. Хоча ця галузь починає визнавати проблеми, сьогодні вона вирішує їх поетапно. Поки що ніхто не запропонував загального рішення, яке поширюватиметься на майбутнє.
Це гра чисел. «Якщо ви візьмете до уваги всю систему, кількість кутів різко зростає», — каже Шекхар Капур, старший директор з маркетингу компанії Синопсис. «Сьогодні підходи все ще повертаються до ієрархічного принципу «розділяй і володарюй», а також знаходять способи зменшити кількість сценаріїв, з якими вам доведеться мати справу. Без них вимоги до обчислень будуть величезними. І щоб ви могли вийти з системи, шлях буде набагато, набагато довшим».
Ієрархічні підходи все ще корисні для деяких речей. «Принцип абстракції використовується там, де фундаментальна складність аналізу надто складна», — говорить Пракаш Нараїн, президент і генеральний директор Real Intent. «У симуляції ми використовуємо це з точки зору функціональних моделей шини та статичного аналізу часу. Ми використовуємо його, створюючи моделі синхронізації на рівні вводу/виводу, перетини доменів тактового сигналу, статичні методи підписання для перетину домену годинника, перетину домену скидання. Це всі місця, де ми успішно використовуємо ієрархічні методи».
Зменшення кутів часто передбачає дизайнерські рішення. «Чому б не уникнути перетину доменів», — каже Капур із Synopsys. «Просто зберігайте дизайн асинхронним, де кожна частина вирізняється окремо. Таким чином ви можете керувати кількістю кутів для цієї конкретної частини. Крім того, ви можете використовувати техніку зменшення кутів. За допомогою ієрархічних підходів до аналізу часу ми вираховуємо час для кожної частини окремо, а потім обидві разом із обмеженнями та об’єднуємо кути».
Що означає шляхи, що збільшуються всюди. «Багато людей хочуть аналізувати системи з кількома матрицями, — говорить Мік Познер, старший директор HPC IP у Synopsys. «Рішення для забезпечення цілісності сигналу та живлення, які використовуються для зосередження на матриці, через корпус і на друкованій платі. Тепер це стало die, to interposer, to package, to PCB. Особливо це стосується високопродуктивних інтерфейсів, таких як 112G, і інтерфейсів пам’яті, де велика увага приділяється впливу інтерпозера або рівня маршрутизації. Ми маємо розробити, як упакувати цю інформацію в IP-адресу, що іноді неможливо, оскільки ми не знаємо, як ця IP-адреса використовується. Ми можемо надати довідковий потік, який покаже їм, як вони роблять цей аналіз».
Проблема полягає в тому, що зробити деякі з необхідних абстракцій важко. «Вимоги до абстракції дуже специфічні для програми», — каже Нараїн з Real Intent. «Вони залежать від технології та відрізняються від продукту до продукту навіть для того чи іншого застосування. Вони залежать від технології, яка використовується кожним продуктом для реалізації функціональності. Тоді ви повинні розглянути рівень точності, якого ви шукаєте. Це буде дуже специфічно для програми та технології, а стандарти справді з’являться пізніше, тому що це дуже складний процес».
Познер наводить конкретний приклад. «Для HBM3 ми підготували еталонний дизайн. Це еталонний дизайн нашого власного тестового чіпа. Ми розробили PHY, але коли ми робимо тестовий чіп, ми також повинні розробити інтерпозер, який підключається до стеку HBM. Ми повинні робити все подібно до того, що мав би робити клієнт. Тоді вони зможуть використовувати цей потік. Але, звичайно, це була наша тестова фішка. Вони можуть повторно використовувати потік, але фактичні дані стосуватимуться того, як вони розміщують цей інтерпозер».
Проблема моделювання
Причиною цих труднощів є відсутність моделей і засобів генерації цих моделей. Моделі — це компроміс між вірністю, точністю та продуктивністю. Високоточні моделі, як правило, мають хорошу точність, але виконуються повільно, тоді як моделі, які виконуються швидше, дещо поступаються з точки зору точності, вірності або обох. Потрібні моделі як функціональні, так і нефункціональні.
Ми деякий час вирішували проблему у функціональній області, але потрібно ще працювати. «Для функціональної перевірки ми створюємо кілька моделей», — каже Ніл Хенд, директор зі стратегії технології верифікації дизайну Siemens EDA. «У нас є точність до циклу, точність до набору інструкцій і так далі. Але ви хочете мати спосіб легко переміщатися між ними. Завдяки гібридному моделюванню у вас є можливість того, що вони називають швидким і точним. На льоту потрібно вміти перемикати модель. Наприклад, хтось може завантажити операційну систему на менш точній, швидкодіючій моделі, а потім змінити стан розробки на точну модель. Тепер вони можуть рухатися вперед із цього моменту з набагато більшою деталізацією та набагато більшою точністю в самій моделі. Нам потрібно розвинути ще більше можливостей для перемикання між точністю, коли вони вам потрібні».
Сьогодні подібна методологія використовується для перевірки блоків та інтеграції. «Коли ви купуєте ядро Arm, ви не перевіряєте функціональність ядра Arm», — каже Саймон Девідманн, засновник і генеральний директор Програмне забезпечення Imperas. «Ви перевіряєте його інтеграцію. Ось тут на допомогу приходять такі компанії, як Breker. У вас є ці блоки, але як перевірити, що всі вони добре говорять один з одним? Ви не робите це так само, як перевіряли б блок за допомогою UVM або Verilog, які ви використовуєте для перевірки на рівні блоку. Ієрархія верифікації полягає в тому, щоб усі ваші блоки працювали, тестували їх окремо, а потім об’єднували разом і турбувалися про інтеграційні тести. Але вони вимагають інших методологій».
Проблема завжди полягала в тому, що створення цих моделей вимагає часу та зусиль, і кожну модель потрібно перевіряти, щоб забезпечити узгодженість. «Для архітектури вам також потрібні нефункціональні властивості, такі як деталі синхронізації», — каже Тім Когель, головний інженер із створення віртуальних прототипів для Synopsys. «Це вимагає значно більше зусиль для створення моделей. Хоча індустрія встановила вищі рівні абстракції, вона не була настільки успішною у створенні інструментів для створення цих нефункціональних моделей продуктивності. Наприклад, програмне забезпечення розглядає елементи обробки як більш абстрактні одиниці ресурсу, і тоді ви можете мати більш детальні моделі з’єднання та підсистеми пам’яті або мережі між різними мікросхемами. Arteris і Arm надають їх для когерентних мереж, для різних типів IP-з’єднання, а також для контролерів пам’яті, які є ключовими елементами інтеграції».
Потрібні додаткові інструменти створення моделі. «Коли ви аналізуєте дизайн за допомогою конкретних шаблонів, у вас є можливість створити абстрактну модель», — каже Малік Васірікала, директор і спеціаліст із продуктів Відповіді. «Наприклад, коли я аналізую внутрішню частину чіпа, я також знаю, як він поводиться з точки зору інтерфейсу. Я можу створити модель так, ніби я бачу всю цю частину з периферії або на межі мікросхеми із зовнішнім світом. Тоді під час аналізу іншого чіпа, підключеного до нього, мені не потрібні внутрішні деталі чіпа. Я просто підключаю цю поведінкову модель до цього аналізу, і готово».
Але є прогалини. «Частина, якої не вистачає, — це краща інтеграція та обмін даними між фізичними та віртуальними світами», — каже Когель із Synopsys. «Нам потрібна архітектурна модель, заснована на вивченій інформації про план поверху, вивчені геометрії, які, перенесені на рівень віртуального прототипу, допоможуть вам перевірити продуктивність, потужність і тепло на основі реальної діяльності програми».
Коли закінчиш?
Завершення є однією з проблем будь-якого аналізу. Ви охопили важливі справи? Існують показники покриття для функціональної перевірки на рівні блоку, але це ще одна модель, яку потрібно перенести на вищі рівні абстракцій і в нефункціональні домени. «Якщо ви виконуєте частину перевірки в області RTL, а частину — у віртуальному прототипі, як об’єднати ці елементи покриття разом?» запитує Рука Сіменса. «Сьогодні це робиться за допомогою функціонального покриття, але є можливість — особливо коли ви дивитеся на генерацію стимулів, коли ви використовуєте штучний інтелект на стороні покриття — почати виводити інформацію з різних типів покриття».
Світ програмного забезпечення був дуже млявим у цьому відношенні. «Я не думаю, що існує стандартний підхід чи методологія для висвітлення», — каже Девідманн з Imperas. «Наскільки мені відомо, люди не автоматизували програмне забезпечення, еквівалентне точкам покриття та групам покриття в HDL. Перевірка протоколів існує для перевірки та аналізу. І ви можете будувати статистику, де ви можете спостерігати за функціями або за доступом до змінних. Зважаючи на відсутність стандартизації, ми надаємо необхідні інструменти, але користувачеві доведеться створювати його самостійно».
Коли у вас є поняття охоплення, можна подумати про оптимізацію перевірки. «Незалежно від того, чи це переносний стимул у його поточній формі, чи щось, що базується на цих поняттях, нам потрібна генерація сценаріїв на системному рівні», — говорить Хенд. «Чи можемо ми взяти це та піднятися на один рівень вище та перейти до віртуальних прототипів та моделювання системи та створити сценарій для надійних систем? Це ставатиме дедалі важливішим у міру того, як системи стануть усе більш інтегрованими».
Інші погоджуються. «Ви хочете мати безперервність між IP-рівнем, SoC-рівнем і пізніше внутрішньою перевіркою», — говорить Когель. «Портативний стимул — це один із підходів до досягнення цього. Тоді ви також можете запустити те, що було абстрактним тестовим прикладом, як програма на вбудованому ядрі, а потім у віртуальному прототипі. У цьому широкому розумінні це перевірка архітектурної концепції. Пізніше ви запускаєте RTL із програмним забезпеченням на емуляторі, на прототипі FPGA, і це можна використовувати для перевірки продуктивності, тому що це більше схоже на те, що ви бачите, те й отримуєте. Це не віртуальна модель високого рівня. »
Рис. 1: Кілька рівнів моделей і цілей перевірки. Джерело: Synopsys
Ще один спосіб підійти до перевірки інтеграції – через функціональну відповідність. «В Arm зроблено спробу під назвою «система готова», щоб визначити, що означає бути сумісним і здатним завантажувати операційну систему», — каже Нік Хітон, видатний інженер і архітектор верифікації SoC у Каденція. «Якщо ваша реалізація пройде, вам не доведеться змінювати випуски ОС Red Hat чи щось інше. Вони просто завантажаться з цього. Це контракт між програмним і апаратним забезпеченням. Portable stimulus намагається зробити це більш узагальненим способом, і ми називаємо це VIP, тому що це готовий контент, який ми надаємо, скажімо, на рівні узгодженості. Ми перевіряємо всі перестановки когерентності, і ми можемо доставити це практично на будь-яку платформу, чи то Arm, чи RISC-V, чи іншу».
Проблема налагодження
Одна справа — мати можливість запустити модель, але зовсім інший рівень складності — знайти й усунути проблему в моделі або в тому, як модель використовується. «Якщо ви налагоджуєте програмне забезпечення на апаратному забезпеченні або FPGA, ви отримуєте gdb, який підключається до нього, і ви можете одним кроком виконувати потік інструкцій процесора», — говорить Девідманн. «Але проблема виникає, коли у них 10 або більше процесорів, і їм потрібно знати, коли «цей» записує в «той», як це виглядає? Аналіз і налагодження потрібно проводити цілісно, щоб ви могли бачити все. Це має включати стеки програмного забезпечення, щоб ви могли дивитися на поведінку платформи».
Це інший набір вимог, ніж просто налагодження обладнання. «Коли ми починаємо тестувати інтеграцію апаратного та програмного забезпечення, ми починаємо бачити більше можливостей налагодження програмного забезпечення, інтегрованих у середовище налагодження віртуального прототипу», — говорить Хенд. «Коли ми починаємо робити це доступним для системних дизайнерів, у нас є можливість подивитися на моделі використання та над якими середовищами проектування хочуть працювати ці команди? Як ми можемо це включити? Ви хочете, щоб розробники систем взаємодіяли з віртуальними прототипами у спосіб, який є значущим для них. Йдеться про ідентифікацію кінцевих користувачів і відображення моделей використання для них. Це сфера, де ми можемо багато зробити, і є багато, що ми повинні зробити».
Інструменти та методології мають відповідати потребам на кожному рівні. «Хлопці, які перевіряють інтеграцію, не є хлопцями, які знають кожен із блоків», — каже Хітон з Cadence. «Час налагодження або час виконання стають дедалі важливішими. Кількість циклів налагодження, які ви можете запустити за день, критично проблематична. Якщо інструменти можуть вказати вам місце першого замовлення, це може заощадити години налагодження. Ми на початку цього шляху. Навчання триває, і те, як ми використовуємо ці інструменти, стане кращим».
AI може допомогти. «Незважаючи на те, що люди мають найкращу нейронну мережу, наш ввід-вивід все ще є більш-менш послідовним», — каже Метт Грем, директор групи розробки продуктів Cadence. «Можливо, ми можемо працювати з двома-трьома паралельними треками, але точно не більше того. Машини можуть розглядати всі ці речі паралельно. Вони можуть використовувати простий алгоритм або простий набір штучного інтелекту, щоб зробити щось у цій надзвичайно паралельній, високоінтегрованій речі. Але це відрізняється від того, що ми можемо зробити самі. Можливо, це пов’язано з такими речами, як минулий раз, коли ми робили ревізію, або що змінилося, або визначення того, де поведінка відрізняється, або які параметри були змінені в IP».
Висновок
Складність системи переважає багато інструментів і методологій, які існують сьогодні. Техніки, які використовувалися в минулому, хоч і залишаються цінними, але недостатні. Промисловість бачить багато з цих проблем у сфері функціональної перевірки, але це лише верхівка айсберга. Зважаючи на те, наскільки мало прогресу було досягнуто в найбільш добре зрозумілій сфері, прогрес навряд чи буде швидким у багатьох інших сферах, особливо в тих, які обумовлені вдосконаленим пакуванням.
- Розповсюдження контенту та PR на основі SEO. Отримайте посилення сьогодні.
- Платоблокчейн. Web3 Metaverse Intelligence. Розширені знання. Доступ тут.
- джерело: https://semiengineering.com/design-and-verification-methodologies-breaking-down/
- 1
- 10
- a
- Здатний
- МЕНЮ
- РЕЗЮМЕ
- рахунки
- точність
- точний
- Achieve
- через
- діяльність
- просунутий
- AI
- алгоритм
- ВСІ
- завжди
- аналіз
- аналізувати
- Аналізуючи
- та
- Інший
- додаток
- підхід
- підходи
- архітектурний
- архітектура
- ПЛОЩА
- області
- ARM
- навколо
- Автоматизація
- доступний
- назад
- заснований
- В основному
- оскільки
- ставати
- стає
- становлення
- перед тим
- початок
- буття
- КРАЩЕ
- Краще
- між
- більший
- Блокувати
- блоки
- рада
- Розрив
- приносити
- широкий
- будувати
- Створюємо
- Будує
- bus
- купити
- Каденція
- call
- званий
- можливості
- здатний
- випадок
- випадків
- Генеральний директор
- звичайно
- перевірка
- чіп
- Чіпси
- КОГЕРЕНТНИЙ
- поєднання
- Приходити
- майбутній
- Компанії
- комплекс
- складність
- дотримання
- поступливий
- концепція
- підключений
- з'єднує
- Вважати
- обмеження
- зміст
- контракт
- співробітництво
- Core
- Кут
- кути
- курс
- обкладинка
- охоплення
- покритий
- створювати
- створює
- створення
- Поточний
- клієнт
- циклів
- дані
- день
- угода
- справу
- рішення
- доставляти
- надання
- запити
- залежний
- дизайн
- Дизайнери
- конструкцій
- деталь
- докладно
- деталі
- розвивати
- розвиненою
- Померти
- різний
- важкий
- утруднення
- Директор
- Видатний
- справи
- домен
- домени
- Не знаю
- вниз
- керований
- кожен
- легко
- зусилля
- або
- елементи
- вбудований
- інженер
- Машинобудування
- забезпечувати
- Навколишнє середовище
- середовищах
- Еквівалент
- особливо
- встановлений
- Навіть
- все
- приклад
- обмін
- виконувати
- існуючий
- продовжити
- зовнішній
- мода
- ШВИДКО
- швидше
- кілька
- вірність
- Фіга
- знайти
- виявлення
- Перший
- виправляти
- потік
- Потоки
- Сфокусувати
- стежити
- форма
- Вперед
- засновник
- Засновник і генеральний директор
- FPGA
- від
- повністю
- функціональний
- функціональність
- Функції
- фундаментальний
- майбутнє
- гра
- Загальне
- породжує
- покоління
- отримати
- Давати
- даний
- Go
- Цілі
- буде
- добре
- великий
- Group
- Групи
- обробляти
- апаратні засоби
- hat
- допомога
- ієрархія
- на вищому рівні
- висока продуктивність
- вище
- дуже
- цілісний
- ГОДИННИК
- Як
- How To
- к.с.
- HTTPS
- величезний
- Людей
- гібрид
- ідеї
- ідентифікує
- Impact
- здійснювати
- реалізація
- важливо
- накладення
- неможливе
- in
- включати
- зростаючий
- все більше і більше
- Індивідуально
- промисловість
- інформація
- інтегрований
- інтеграція
- цілісність
- намір
- взаємодіяти
- інтерфейс
- Інтерфейси
- внутрішній
- залучати
- IP
- питання
- питання
- IT
- пунктів
- сам
- подорож
- Капур
- тримати
- ключ
- Дитина
- Знати
- знання
- відсутність
- великий
- останній
- шар
- шарів
- вчений
- вивчення
- рівень
- рівні
- Важіль
- Ймовірно
- трохи
- довше
- подивитися
- виглядає як
- серія
- Машинки для перманенту
- made
- Робить
- управляти
- манера
- багато
- відображення
- Маркетинг
- масово
- матч
- макс-ширина
- значущим
- засоби
- пам'ять
- Злиття
- злиття
- методології
- Методологія
- Метрика
- може бути
- відсутній
- модель
- моделювання
- Моделі
- змінювати
- більше
- найбільш
- переміщення
- множинний
- необхідно
- Необхідність
- потреби
- мережу
- мереж
- Нейронний
- нейронної мережі
- Нові
- поняття
- номер
- номера
- ONE
- операційний
- операційна система
- Можливість
- Оптимізувати
- оптимізуючий
- порядок
- OS
- Інше
- власний
- пакет
- упаковка
- Паралельні
- параметри
- частина
- приватність
- особливо
- проходить
- Минуле
- шлях
- моделі
- Люди
- продуктивність
- перспектива
- фізичний
- частина
- частин
- місце
- місця
- платформа
- plato
- Інформація про дані Платона
- PlatoData
- точка
- точок
- басейн
- це можливо
- потенціал
- влада
- Пракаш
- президент
- Головний
- принцип
- Проблема
- проблеми
- процес
- обробка
- процесори
- Product
- Продукти
- програма
- прогрес
- властивості
- запропонований
- протокол
- прототип
- Прототипи
- макетування
- забезпечувати
- забезпечує
- реальний
- царство
- причина
- визнавати
- червоний
- Red Hat
- зменшити
- еталонний дизайн
- Релізи
- вимагати
- вимагається
- Вимога
- Вимагається
- Дослідники
- ресурс
- міцний
- Роль
- прогін
- біг
- то ж
- зберегти
- сценарії
- безпеку
- бачачи
- пошук
- бачить
- напівпровідник
- старший
- сенс
- послідовний
- серйозний
- комплект
- Повинен
- Шоу
- підпис
- Сигнал
- аналогічний
- Саймон
- простий
- моделювання
- з
- один
- Повільно
- So
- так далеко
- Софтвер
- рішення
- Рішення
- деякі
- Хтось
- що в сім'ї щось
- Source
- прольоти
- спеціаліст
- конкретний
- стек
- Стеки
- standard
- стандартів
- старт
- Починаючи
- стан
- статистика
- Крок
- Як і раніше
- стимул
- Стратегія
- потік
- сильний
- успішний
- Успішно
- такі
- достатній
- поставка
- перемикач
- система
- Systems
- з урахуванням
- Приймати
- приймає
- говорити
- Завдання
- команди
- методи
- Технологія
- terms
- тест
- Тестування
- Тести
- Команда
- Площа
- Майбутнє
- їх
- самі
- теплової
- річ
- речі
- три
- через
- Тім
- час
- Приурочений
- синхронізація
- чайові
- до
- сьогодні
- разом
- занадто
- інструменти
- топ
- до
- традиційно
- правда
- Типи
- зрозуміла
- В процесі роботи
- одиниць
- us
- використання
- користувач
- користувачі
- використовувати
- використовує
- ПЕРЕВІР
- перевірка достовірності
- Цінний
- різний
- перевірка
- перевірено
- перевірити
- перевірка
- VIP
- Віртуальний
- віртуальні світи
- годинник
- способи
- Що
- Чи
- який
- в той час як
- ВООЗ
- волі
- без
- Work
- тренування
- робочий
- світ
- світі
- б
- лист
- вашу
- зефірнет