Synopsys опублікував на сайті SolvNet захоплюючу доповідь доктора Тео Дрейна з Intel Graphics. Тема – перевірка еквівалентності шляху даних. Це може звучати як чергова офіційна підтримка Synopsys VC DPV, але ви все одно повинні її переглянути. Це захоплююче обговорення використання та міркувань у формальності, яке виведе вас за межі рутинного посібника користувача на більш захоплюючу територію.
Інтелектуальне розуміння проти тестування за зразком
Тестове моделювання у всіх його формах є чудовим і часто незамінним у перевірці правильності специфікації проекту або реалізації. Також легко почати. Просто напишіть тестову програму та почніть симулювати. Але зворотна сторона цієї простоти полягає в тому, що нам цього не потрібно повністю зрозуміти, що ми тестуємо, щоб почати. Ми переконуємо себе, що уважно прочитали специфікацію та розуміємо всі кутові випадки, але для того, щоб перевершити наше розуміння, не потрібна складна складність.
Formal заохочує вас зрозуміти функціональність на глибокому рівні (принаймні, якщо ви хочете отримати цінний результат). У наведеному вище прикладі просте запитання – чи може Z коли-небудь бути лише одиницями – не може продемонструвати приклад у мільярді циклів на симуляторі. Не дивно, адже це крайній кутовий випадок. Формальний тест надає конкретний і дуже неочевидний приклад за 1 секунд і може довести, що це єдиний такий випадок за трохи менший час.
OK formal зробив те, що не могло зробити динамічне тестування, але, що важливіше, ви дізналися те, про що симулятор міг ніколи не сказати вам. Що існував лише один можливий випадок, у якому ця умова могла статися. Formal допоміг вам краще зрозуміти дизайн на інтелектуальному рівні, а не просто як імовірнісний підсумок для кінцевого набору тестів.
Проблеми зі специфікацією
Наступний приклад Тео заснований на автоматі з продажу помилок (так називається, тому що коли ви натискаєте кнопку, ви отримуєте помилку). Це виглядає як досить проста проблема перевірки еквівалентності C до RTL, модель C ліворуч, модель RTL праворуч. Однією несподіванкою для Тео в його перші дні у формальній роботі було те, що поведінка правого зсуву в C-моделі не повністю визначена в стандарті C, навіть якщо gcc поводитиметься розумно. Однак DPV скаржиться на невідповідність у порівнянні з RTL, як і належить. Покладатися на невизначену поведінку небезпечно.
Порівняння специфікацій між C і RTL пов’язане з іншими небезпеками, особливо навколо бітової ширини. Усічення або втрата біта переносу в проміжному сигналі (№3 вище) є хорошими прикладами. Це проблеми зі специфікаціями? Можливо, сіра зона між вибором специфікації та реалізації.
Крім перевірки еквівалентності
Основна мета DPV, здається, полягає в перевірці еквівалентності між посиланням C або RTL і реалізацією RTL. Але така потреба зустрічається відносно рідко, і є інші корисні способи застосування такої технології, якщо це трохи нестандартно. Спочатку класика у світі реалізації – я вніс зміни, виправив помилку – чи в результаті я вніс нові помилки? Трохи схоже на перевірку SEQ після додавання стробування годинника. Іншим корисним застосуванням у деяких випадках може бути аналіз доступності в блокових виходах.
Тео стає ще більш креативним, просячи слухачів використовувати контрприклади, щоб краще зрозуміти дизайн, розгадувати судоку or розкласти цілі числа на множники. Він визнає, що DPV є дивним способом підходу до таких проблем, але зазначає, що його намір полягає в тому, щоб розбити ілюзію, що DPV призначена лише для перевірки еквівалентності. Цікава ідея і, безперечно, напружує розум, щоб продумати такі виклики. (Зізнаюся, я одразу почав думати про проблему судоку, щойно він згадав про неї.)
Завершіть
Тео завершує обговорення методологій, важливих для використання у виробництві, навколо обмежень, регресії та порівняння із застарілими моделями RTL. Також проблеми з визначенням того, чи дійсно те, що ви перевіряєте, відповідає специфікації природної мови верхнього рівня.
Дуже енергійна розмова, варта перегляду тут на SolvNet!
Поділитися цим дописом через:
- Розповсюдження контенту та PR на основі SEO. Отримайте посилення сьогодні.
- Платоблокчейн. Web3 Metaverse Intelligence. Розширені знання. Доступ тут.
- джерело: https://semiwiki.com/eda/325878-intel-keynote-on-formal-a-mind-stretcher/
- :є
- a
- МЕНЮ
- вище
- через
- насправді
- після
- ВСІ
- аналіз
- та
- Інший
- додаток
- прикладної
- підхід
- ЕСТЬ
- ПЛОЩА
- навколо
- AS
- At
- заснований
- BE
- оскільки
- Краще
- між
- За
- Мільярд
- Біт
- Блокувати
- Box
- Перерва
- Помилка
- помилки
- button
- by
- званий
- CAN
- обережно
- нести
- випадок
- випадків
- звичайно
- проблеми
- зміна
- перевірка
- контроль
- вибір
- classic
- годинник
- порівняння
- повністю
- складність
- стан
- міркування
- обмеження
- переконати
- Кут
- може
- Counter
- Креатив
- циклів
- Небезпечний
- Днів
- глибокий
- певний
- доставляти
- демонструвати
- дизайн
- DID
- обговорення
- Ні
- Не знаю
- динамічний
- Рано
- заохочує
- особливо
- Навіть
- НІКОЛИ
- приклад
- Приклади
- відмінно
- екстремальний
- зазнає невдачі
- захоплюючий
- Перший
- фіксованою
- Flip
- для
- формальний
- форми
- функціональність
- GCC
- отримати
- даний
- добре
- графіка
- сірий
- сіра зона
- траплятися
- Мати
- допоміг
- Однак
- HTTPS
- i
- ідея
- негайно
- реалізація
- важливо
- in
- Intel
- інтелектуальний
- намір
- цікавий
- Проміжний
- вводити
- питання
- IT
- ЙОГО
- Лейтмотив
- Дитина
- Знання
- мова
- вчений
- Legacy
- рівень
- як
- трохи
- ВИГЛЯДИ
- від
- машина
- made
- зробити
- макс-ширина
- згаданий
- методології
- може бути
- модель
- Моделі
- більше
- Природний
- Природна мова
- Необхідність
- Нові
- наступний
- of
- on
- ONE
- Інше
- Крок
- plato
- Інформація про дані Платона
- PlatoData
- точок
- це можливо
- пошта
- розміщені
- press
- досить
- первинний
- Проблема
- проблеми
- Production
- програма
- Доведіть
- забезпечує
- мета
- питання
- Читати
- щодо
- результат
- seconds
- комплект
- Повинен
- Сигнал
- простий
- простота
- моделювання
- симулятор
- з
- сайт
- So
- деякі
- що в сім'ї щось
- Скоро
- Звучати
- конкретний
- специфікація
- standard
- старт
- почалася
- просто
- такі
- РЕЗЮМЕ
- сюрприз
- дивно
- Приймати
- балаканина
- Технологія
- тест
- Тестування
- Що
- Команда
- Ці
- річ
- Мислення
- через
- час
- до
- верхній рівень
- тема
- усічення
- розуміти
- розуміння
- Використання
- використання
- Цінний
- VC
- перевірка
- Проти
- через
- годинник
- спостереження
- шлях..
- способи
- ДОБРЕ
- Що
- Чи
- який
- волі
- з
- світ
- вартість
- б
- запис
- зефірнет