joomla 1.6

Последние статьи

Популярные статьи

4. Создание тестового окружение

На уровне SystemVerilog-описания тестовое окружение состоит из набора классов и модулей (см. рис. 9).

Рис. 9. Архитектура тестового окружения на уровне модулей и классов

Рис. 9. Архитектура тестового окружения на уровне модулей и классов

В модуле верхнего уровня иерархии (tb_top) объявляются старый и новый варианты RTL-модулей для проверки идентичности. С помощью интерфейсов модули подключаются к программному блоку (testcase). Программный блок отделяет тестовое окружение от RTL-описания и является некой входной точкой для выполнения тестовой программы. В нем создается экземпляр (объект) основного класса тестового окружения (Environment) и вызывается метод, запускающий процесс симуляции. В классе Environment описываются методы для управления процессом симуляции, создаются необходимые средства коммуникации и экземпляры используемых классов. Согласно разработанной архитектуре первого варианта тестового окружения, необходимо два экземпляра почтового ящика, экземпляр класса Driver, два экземпляра класса Receiver и экземпляр класса Scoreboard. Второй вариант тестового окружения отличается тем, что не использует классы Receiver и Scoreboard, а также почтовые ящики. Их заменяет модуль Checker. На рис. 9 экземпляры, создающиеся классом, нарисованы внутри прямоугольника с именем класса.
Создание тестового окружения разобьем на несколько этапов, как это сделано на testbench.in:
1) Описание программного блока и интерфейсов, и их объявление вместе с тестируемыми схемами в модуле tb_top.
2) Описание класса Environment, содержащего методы для управления процессом симуляции.
3) Описание класса Transaction, который описывает данные, посылаемые на тестируемую модель и принимаемые от нее.
4) Описание класса Driver, который генерирует транзакции и посылает их на входы тестируемых схем.
5) Описание класса Receiver, который принимает транзакции с выходов тестируемых схем.
6) Описание класса Scoreboard, который сравнивает транзакции, полученные от приемника старого и нового варианта схемы.
7) Описание класса Coverage, который реализует механизм оценки функционального покрытия.

Примечание

Обратите внимание на первые две и последнюю строки каждого файла проекта:

`ifndef _CLASS_NAME_
`define _CLASS_NAME_
...
`endif

Директива `ifndef начинает блок так называемой условной компиляции, который заканчивается директивой `endif. Блок условной компиляции – это кусок текста, который будет компилироваться, только если выполнено определенное условие. В данном случае условие заключается в том, что символ _CLASS_NAME_ не определен. Если этот символ определен, текст между `ifndef и `endif не будет компилироваться. В самом начале символ _CLASS_NAME_ не определен, и блок условной компиляции обрабатывается. В нем определяется символ _CLASS_NAME_. Теперь условие для второго блока условной компиляции уже не выполняется, и он будет пропущен. Таким образом модули и классы защищаются от повторной компиляции.

  • 0.0/5 rating (0 votes)

Комментарии (0)

Написать комментарий

You are commenting as guest.

Cancel Submitting comment...

SystemVerilog.ru

SystemVerilog

↑ Ссылка на наши новости

Последние новости Apple
Apple-портал: новости, обзоры, приложения
Все об iPhone 5 и iPad 3
Топовый софт
Последнии версии признанных во всем мире программ
Softenok.com
Компьютерный портал
Лучшее из мира компьютеров на Super4computeR.com
Super4computeR.com
Лучшее из мира WEB
Лучшее из мира web-дизайна на Super4desigN.com
Super4desigN.com
Аренда коттеджа в Подмосковье
Отличные места для проведения любого мероприятия. Близко к Москве и недорого!
CottageArenda.ru
мини-логотип сайта systemverilog.ru

2010-2011 SystemVerilog.ru, все права защищены. | Обратная связь