- •Введение
- •Раздел 1 Технологии тестирования и верификации цифровых систем на кристаллах
- •1.1. Современные проблемы верификации систем-на-кристаллах
- •1.2. Моделирование на уровне транзакций
- •1.3. Верификация на основе ассерций
- •1.4. Синтез ассерций
- •1.5. Средства верификации цифровых систем с использованием ассерций
- •1.6. Постановка цели и задач диссертационного исследования
- •Раздел 2 модели диагностирования функциональных нарушений hdl-кода цифровых систем на кристаллах
- •2.1. Введение в тему исследования
- •2.2. Модель процессов тестирования и верификации
- •2.3. Модель поиска функциональных нарушений в программе
- •2.4. Дискретная производная как бинарное xor-отношение
- •2.5. Выводы и рекомендации
- •Раздел 3 методы диагностирования функциональных нарушений
- •3.1. Форма представления модели
- •3.2. Метод векторно-логического анализа столбцов
- •3.3. Метод векторно-логического анализа строк
- •3.4. Матричный метод поиска функциональных нарушений в программных блоках
- •3.5. Выводы и рекомендации
- •Раздел 4 инфраструктура встроенного тестирования функциональных нарушений hdl-кода
- •4.1 Мультипроцессорные решения задач сервисного обслуживания
- •4.2. Мультиматричный процессор анализа бинарных операций
- •4.3. Аппаратная реализация мультиматричного процессора
- •4.4. Аппаратная имплементация инфраструктуры тестирования
- •4.5. Система тестирования и верификации hdl-кода
- •4.6. Выводы и рекомендации
- •Заключение
- •Приложение б. Подробный отчёт синтеза
- •Приложение в. Аппаратная имплементация инфраструктуры тестированиия
- •Приложение г. Документы, подтверждающие внедрение
- •Список использованных источников
1.5. Средства верификации цифровых систем с использованием ассерций
EDA индустрия признала, что функциональная верификация является узким местом процесса проектирования систем на кристаллах [26]. Используемые в настоящее время модели и методы верификации не могут быть эффективно применены в новых проектах повышенной сложности, при проверке которых слишком много времени тратится на построение тестов, обнаруживающих ошибки проектирования. Существующие testbench должны быть переделаны или изменены с учетом существенно возросшей сложности системы на кристалле.
Новый подход к функциональной верификации (ABV) компании Synopsys, который значительно повышает эффективность проверки исправного поведения, выявление и исправление ошибок в процессе проектирования, предполагает использование ассерций, обнаруживающих ошибки и направляющих проектировщика на правильный путь при написании тестов и создании testbench для генерации стимулов. Использование ассерций позволяет повысить уровень верификации от RTL и Signal Level до уровня, когда пользователь может разрабатывать тесты и отлаживать проект наиболее близко к спецификации проекта. При верификации используются абстракции, под которыми понимают транзакции и свойства, позволяющие выполнять проектирование функциональности с минимальными затратами времени и находить трудно обнаруживаемые ошибки.
Методология ABV поддерживает два метода: динамическая верификация с использованием моделирования, формальная или полуформальная верификация с использованием проверки модели и метода доказательства. Введены две ключевых технологии: спецификации ассерций и функциональное покрытие. На основе этих технологий формируется законченное решение функциональной верификации, которое включает в себя язык, средства анализа и методологию получения требуемой производительности системы. Технология позволяет сократить потребности в человеческом ресурсе, время выхода изделия на рынок и ошибки проектирования.
Современные методы верификации проекта предусматривают написание тестов и моделирование их выполнения. Мониторы распределяются по всем компонентам проекта – тестам, модели проекта, программному обеспечению, скриптам. Верификация на основе ассерций предполагает использование декларативного языка для точного и краткого определения компонентов, функций и характеристик проекта, которые должны быть протестированы, верифицированы и оценены с точки зрения обеспечения качества.
Среда верификации поддерживает сложные инструменты анализа, управляемые общей спецификацией ассерций, предназначенные для обнаружения проблем реализации тестируемого устройства, детального проектирования сущностей (объектов) проекта и оценки качества. Возможно многократное использование верификационных компонентов в других проектах.
Интерпретируемое описание ассерций открывает возможности для проверки поведения проекта в соответствии с планом тестирования в процессе моделирования, позволяет реализовать формальную проверку свойств в случае необходимости, обеспечить отладку проекта на высоком уровне абстракции, а также автоматически генерировать тесты. На рис. 1.8 показано взаимодействие различных верификационных инструментов, использующих общие критерии качества.

Рис. 1.8. Систематический подход к качеству
Верификационная среда сокращает время проверки проекта, предоставляет возможность автоматического сравнения результирующих данных, удаления избыточной или не имеющей существенного значения информации, освобождая пользователя от необходимости анализировать низкоуровневые данные.
Верификация системы на кристалле предусматривает формирование стимулов для подачи сигналов на интерфейсы DUT и проверки откликов этих сигналов. Как правило, планы тестирования не детализирует каждый тест до уровня сигналов, а, скорее, определяетет возможность или функциональный сценарий тестирования. Для того, чтобы обеспечить запись проверочного устройства, отладку ошибок и покрытие функциональности, уровень абстракции, на котором функционируют средства анализа, должен быть таким же, как и уровень, на котором описан план тестирования.
Язык ассерций предоставляет гибкий механизм абстракции, достаточный для преобразования спецификации в план тестирования, позволяющий сократить время выполнения данной процедуры и уменьшить количество ошибок. Средства верификационной среды обеспечивают обратную связь на соответствующем уровне абстракции, что дает возможность уменьшить время отладки ошибок и сформировать точную информацию для анализа. При этом покрытие соответствует плану тестирования и генерируются более эффективные тесты для поверки функциональности с точки зрения транзакций, пакетов, последовательностей и других абстракций.
Одной из проблем верификации без спецификации ассерций является то, что не существует простого способа узнать, какие проверки запланированы или выполнены. Средства верификации не могут на основе информации, полученной в процессе моделирования, определить конкретные проверки, которые завершились неудачей или осуществляются повторно. Другими словами, невозможна оценка качества, без которой процесс верификации проекта является незавершенным.
В целях экономии затрат на верификацию введена критическая обратная связь от функционального покрытия, непосредственно определяющего качество плана тестирования. Это позволяет существенно уменьшить количество невыявленных ошибок. Средства функционального покрытия используют такие же спецификации ассерций и обеспечивают точный подсчет выполненных тестов, проверок и сценариев.
При отсутствии доступа к полной метрике функционального покрытия генерация случайных тестов выполняется вручную с дополнительной настройкой для каждой итерации моделирования. Ввод ограничений и исходных данных изменен таким образом, что большее количество сценариев может быть выполнено. Ручной процесс проб и ошибок характеризуется низкой эффективностью, однако наличие функционального покрытия во время работы может изменить эту ситуацию кардинально. Обратная связь, полученная в процессе анализа покрытия, управляет testbench для обеспечения возможности внесения необходимых изменений в ситуации, когда процедура поиска покрытия заходит в тупик. Описанный процесс, называемый реактивным testbench, генерирует более эффективные стимулы для тестируемого устройства (рис. 1.9).

Рис. 1.9. Реактивный testbench
Отсутствие методологии написания ассерций делает невозможным повторное использование полностью протестированных проверочных устройств. Это означает, что аналогичные спецификации создаются повторно для новых проектов в различных компаниях. Возможность создания библиотек ассерций для стандартных протоколов, проектных модулей, являющихся основой производных систем, часто используемых ассерций элементов проекта, позволит существенно сократить время проектирования и верификации.
Поставщики IP-cores могут встраивать ассерции в производимые модули, что позволит повысить качество готового изделия. IP-модули на языке ассерций, предназначенные для верификации, содержат полностью определенные, тестированные и готовые к использованию ассерции.
Synopsys предлагает новые мощные решения функциональной верификации, включающие язык, средства анализа и методологию для поддержки концепции ABV. Верификационная среда предоставляет следующие возможности:
-
Open Vera Assertion (OVA) – мощный новый язык определения ассерций;
-
обнаружение ошибок с использованием OVA, включает моделирование и формальные методы;
-
функциональное покрытие на основе OVA;
-
автоматизация построения testbench на основе OVA;
Верификационное решение на основе ассерций показано на рис. 1.10.

Рис. 1.10. Верификационное решение на основе ассерций
OVA – декларативный язык, семантика которого базируется на теории регулярных выражений и линейной темпоральной логике. OVA обеспечивает эффективный механизм обнаружения ошибок. Программное обеспечение для анализа ассерций встроено в Verilog симулятор VCS и обеспечивает мгновенную выдачу сообщений о нарушениях, если ассерция, подаваемая на симулятор оказывается в конфликте с ожидаемым поведением. Использование Verilog симулятора VCS, сложных алгоритмов управления ассерциями и модельных данных позволяет понять сущность событий и механизм их возникновения для получения более точных результатов верификации.
OVA спецификации могут быть сохранены в отдельном файле для упрощения плана тестирования, когда усилия разработчиков сосредотачиваются на спецификации уровня кристалла, а не на деталях имплементации проекта. OVA допускает использование встроенных ассерций, описанных на языке Verilog, что позволяет уменьшить время проектирования системы.
Как показано на рис. 1.11, встроенный в VCS анализ ассерций позволяет освободить пользователя от деталей формирования утверждений, выполнять графическую отладку проблемных мест и более глубокий анализ. Графический анализатор Virsim для VCS непосредственно показывает успешные и неудачные ассерции на уровне их спецификаций в виде привычной формы сигнала. Формальные методы обеспечивают также возможность обнаружения сбоев.

Рис. 1.11. Использование VCS
Существует три вида критериев, которые являются критически важными для функционального покрытия:
-
покрытие плана тестирования, где покрытие показывает, покрывается ли ожидаемое поведение устройства тестами, входящими в план тестирования;
-
покрытие имплементации, где покрытие показывает, сработали ли проверочные устройства, гарантирующие корректность имплементации проекта и соответствующие плану тестирования;
-
данные и статистика покрытия, где покрытие гарантирует, что данные адекватно обработаны и выполнены необходимые статистические расчеты.
Основное различие между моделированием и формальной верификацией заключается том, когда они применяются [27]. Ассерции при использовании в процессе моделирования динамически проверяют проектируемый блок на функциональном уровне. Формальная верификация статически использует подмножество ассерционных правил на поведенческом уровне после завершения моделирования. Проверка ассерций в процессе моделирования позволяет оценить время, которое требуется для верификации на функциональном уровне, определить ограничения формальной верификации, а также на ранних этапах выявить потенциальную проблему и сократить время отладки.
Riviera и Riviera-IPT предоставляют уникальные возможности использования технологии ABV в программных симуляторах на основе смешанных языков, а также в аппаратных ускорителях. Компилятор ассерций фирмы Aldec выполняет проверку модулей в виде RTL-кода, добавляемого в синтезируемую часть проекта. Однажды сформированные ассерции, имплементированные в проект, могут быть использованы на поведенческом (динамическом) уровне программного симулятора и на структурном (статическом) уровне аппаратного ускорителя. Преимущество использования ассерций является сокращение времени верификации, гибкость использования ассерций при верификации, возможность их повторного использования в процессе прототипирования и в конечном продукте. Ассерции, используемые в процессе прототипирования, позволяют обнаруживать ошибки в реальном времени. Они становятся частью проекта для мониторинга требуемых сигналов, выдавая флаг ошибки или исключения при обнаружении некорректности.
