Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Учебное пособие 3000429.doc
Скачиваний:
23
Добавлен:
30.04.2022
Размер:
4.02 Mб
Скачать
      1. Верификационные расширения

Библиотека верификации SystemC (SCV) предлагает SystemC сообществу много новых возможностей тестирования, она была создана как библиотека расширений на основе SystemC и базовых библиотек SystemC.

SCV позволяет создавать верификационные IP-блоки, которые можно рассматривать и как IP для проектирования SoC, и как IP для повторного использования в других проектах. Учитывая, насколько много усилий (в процессе проектирования) уходит на верификацию (по неформальным оценкам - 50-70%), возможность создания верифицированного IP становится очень важной [6].

В основные верификационные возможности SCV библиотеки входит:

• Самодиагностика (introspection) данных, и возможность манипулировать элементами данных произвольных типов. На базе этого SCV может манипулировать заданными пользователем типами и ссылаться на них - например, структуры, отображающие пакеты и фреймы. Это обеспечивает возможность PLI (Programming Language Interface - Verilog) доступа к таким объектам и позволяет определить все атрибуты или характеристики этих типов.

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

• Рандомизация - простая, взвешенная и на основе заданных ограничений. Рандомизация является мощным методом в современных процессах функциональной верификации. SCV поддерживает несколько типов, включая простую рандомизацию (в которой значения, например, адресов данных, генерируются на основе простой интервальной функции от набора корректных адресов). Простая рандомизация позволяет создавать распределение значений на основе более сложных наборов корректных интервалов, а также позволяет задавать пустые интервалы.

• Взвешенная рандомизация позволяет связывать вероятностные распределения со значениями или с подмножеством значений в заданном интервале, так что сложные распределения (например биномиальное, Пуассона, нормальное) могут быть ассоциированы с тестовыми платформами. Это также хороший способ отразить в тестовой платформе реальные статистические распределения.

• Заданные ограничения позволяют достичь большей абстракции при генерации на тестовых платформах сложных случайных сценариев. Они позволяют вводить сложные условия и комбинации при задании наборов допустимых значений переменных тестирования. Например, в коммуникационных приложениях можно сгенерировать распределение пакетов в зависимости от интервалов адресов, возникновения ошибок, и некоторых других ограничений. SCV поддерживает механизм задания ограничений и нахождения удовлетворяющих всем ограничениям решений, при этом: решения распределяются равномерно по всем допустимым значениям; производительность механизма приемлема при увеличении числа ограничений и тестовых переменных; механизм не зависит от порядка и поддерживает отладку нерешаемых систем (с избыточным набором ограничений).

• SCV также: предоставляет простую базу данных для хранения и изучения результатов верификации; предоставляет простой механизм связывания SystemC с HDL симулятором; совместимый механизм обработки и отладки ошибок.