Класс Transaction

В классе Transaction, описанном в файле Transaction.sv, объявляются данные, которые посылаются на тестируемые схемы и принимаются от них. Для реализации механизма генерации случайных тестовых воздействий все посылаемые на тестируемые схемы сигналы объявляются типами rand bit или randc bit. Принимаемые сигналы объявляются, как bit. Также в классе описаны методы для...

Класс Environment

Класс  Environment  описан в файле  Environment .sv. В нем описываются методы, определяющие архитектуру тестового окружения и управляющие процессом симуляции: new() - конструктор, в котором виртуальные интерфейсы, переданные из программного блока, присваиваются виртуальным интерфейсам, объявленным в классе  Environment . Сам по себе виртуальный интерфейс является неким абстрактным дескриптором физического интерфейса (указатель на физический...

Описание интерфейсов, программного блока testcase и модуля tb_top

Описание интерфейсов В файле Interface.sv объявлены входной и выходной интерфейсы: Оба интерфейса имеют тактовый сигнал в качестве входного. Все сигналы интерфейсов объявлены, как logic. Допускается объявление сигналов входного интерфейса типа bit, т.к. в большинстве случаев не требуется посылать на тестируемую схему тестовые сигналы в неопределенном состоянии. Оба интерфейса содержат тактирующий блок (clocking...

Архитектура тестового окружения

Тестовое окружение на языке SystemVerilog состоит из следующих блоков (см. рис. 6): Рис. 6. Общая архитектура тестового окружения Генератор (Generator) случайных тестовых воздействий генерирует транзакции с учетом наложенных ограничений (Constraint-Random Verification - CRV) и передает их с помощью почтового ящика (MailBox) драйверу. Драйвер (Driver) по входному интерфейсу (Interface) посылает транзакцию на вход...

План верификации

Для проверки идентичности RTL-описаний необходимо выполнить следующую последовательность действий (см. рис. 4): 1) Сгенерировать тестовые воздействия. 2) Послать эти воздействия на входы старой и новой схемы. 3) Сравнить значения на выходах схем. Рис. 4. Схема проверки идентичности RTL-описаний Данная цепочка действий выполняется до тех пор, пока не будет достигнут требуемый уровень функционального покрытия. В SystemVerilog...

Введение

В этом разделе мы рассмотрим пример создания тестового окружения на SystemVerilog для решения задачи верификации, которая нередко встает перед разработчиками. Это задача проверки RTL-описания, в которое были внесены изменения, не изменяющие логику работы схемы. В основном, подобные изменения, направлены на улучшение результатов синтеза. Несколько примеров: Оптимизация критических цепей. Языки описания...

Запускаем UVM 1.2 в QuestaSim под Windows

Знакомство с библиотекой UVM логично начать с примеров, которые включены в дистрибутив библиотеки. Запуск этих примеров в QuestaSim под Windows не может не вызвать затруднений, т.к. в предлагаемых Makefile'ах для запуска примеров есть ошибки. В этой статье я покажу, как с минимальной модификацией исходных Makefile'ов запустить примеры <UVM_HOME>/examples/simple/hello_world и <UVM_HOME>/examples/integrated/ubus. И в качестве бонуса более привычные...