stringtranslate.com

Функциональная проверка

Функциональная проверка — это задача проверки того, что логическая конструкция соответствует спецификации. [1] Функциональная проверка пытается ответить на вопрос «Делает ли эта предлагаемая конструкция то, что задумано?» [2] Это сложная задача, которая занимает большую часть времени и усилий (до 70% времени проектирования и разработки) [1] в большинстве крупных проектов по проектированию электронных систем. Функциональная проверка является частью более всеобъемлющей проверки конструкции , которая, помимо функциональной проверки, учитывает нефункциональные аспекты, такие как синхронизация, компоновка и питание. [3]

Фон

Хотя количество транзисторов увеличивалось экспоненциально в соответствии с законом Мура , увеличение количества инженеров и времени, затрачиваемого на создание проектов, увеличивалось только линейно . По мере увеличения сложности транзисторов, количество ошибок кодирования также увеличивалось. Большинство ошибок в логическом кодировании возникали из-за небрежного кодирования (12,7%), недопонимания (11,4%) и проблем микроархитектуры (9,3%). [1] Таким образом, средства автоматизации электронного проектирования (EDA) создавались, чтобы догнать сложность проектирования транзисторов. Такие языки, как Verilog и VHDL, были введены вместе с инструментами EDA. [1]

Функциональная проверка очень сложна из-за огромного объема возможных тестовых случаев, которые существуют даже в простом проекте. Часто существует более 10^80 возможных тестов для всесторонней проверки проекта — число, которое невозможно достичь за всю жизнь. Эти усилия эквивалентны проверке программы и являются NP-трудными или даже хуже — и не было найдено решения, которое работало бы хорошо во всех случаях. Однако его можно атаковать многими методами. Ни один из них не идеален, но каждый может быть полезен в определенных обстоятельствах:

Типы

Существует три типа функциональной верификации, а именно: динамическая функциональная, гибридная динамическая функциональная/статическая и статическая верификация. [1]

Проверка на основе моделирования (также называемая « динамической проверкой ») широко используется для «симуляции» дизайна, поскольку этот метод очень легко масштабируется. Предоставляется стимул для проверки каждой строки в коде HDL. Создается испытательный стенд для функциональной проверки дизайна путем предоставления значимых сценариев для проверки того, что при определенных входных данных дизайн выполняет спецификацию.

Среда моделирования обычно состоит из нескольких типов компонентов:

Для оценки адекватности реализации дизайна определяются различные метрики покрытия . К ним относятся функциональное покрытие (каждая ли функциональность дизайна была реализована?), покрытие операторов (каждая ли строка HDL была реализована?) и покрытие ветвей (каждое направление каждой ветви было реализовано?).

Смотрите также

Ссылки

  1. ^ abcde Molina, A; Cadenas , O (8 сентября 2006 г.). "Функциональная верификация: подходы и проблемы". Latin American Applied Research . 37. ISSN  0327-0793. Архивировано из оригинала 16 октября 2022 г. Получено 12 октября 2022 г.
  2. ^ Резаеян, Банафшех. «Методология моделирования и проверки автомобильных ИС со смешанными сигналами». CiteSeerX 10.1.1.724.527 . 
  3. ^ Страуд, Чарльз Э.; Чейндж, Яо-Чан (2009). "ГЛАВА 1 – Введение". Проверка дизайна . стр. 1–38. doi :10.1016/B978-0-12-374364-0.50008-4. ISBN 978-0-12-374364-0. Архивировано из оригинала 12 октября 2022 г. . Получено 11 октября 2022 г. . {{cite book}}: |journal=проигнорировано ( помощь )