Структура файлов и каталогов для двух вариантов тестовых окружений представлена в таблице:

var1 var2
\rtl
    new_scheme.cpp
    new_scheme.h
    new_scheme.v
    new_scheme.vhd
    old_scheme.cpp
    old_scheme.h
    old_scheme.v
    old_scheme.vhd
\sim
    Makefile
    run.do
    synopsys_sim.setup
\testbench
    Coverage.sv
    Driver.sv
    Environment.sv
    Globals.sv
    Interface.sv
    Receiver.sv
    Scoreboard.sv
    tb_top.sv
    testcase.sv
    Transaction.sv
\testbench
    Checker.sv
    Coverage.sv
    Driver.sv
    Environment.sv
    Globals.sv
    Interface.sv
    tb_top.sv
    testcase.sv
    Transaction.sv

Конфигурирование и симуляция тестового окружения

Конфигурирование тестового окружения рекомендуется делать по следующим шагам:
1. В Interface.sv объявить все входные порты тестируемой схемы в input_interface, а все выходные - в output_interface.
2. Объявить тестируемые модули в tb_top.sv и передать им интерфейсные сигналы.
3. В Environment.sv установить начальные значения входных сигналов, если это необходимо.
4. В Transaction.sv обяъвить все входные сигналы типом rand bit, а все выходные типом bit. Указать выходные сигналы в функции compare().
5. В Globals.sv указать количество транзакций для генерации (константа NUM_OF_TRANS).
6. В Driver.sv изменить функцию drive().
7. В Receiver.sv изменить функцию recieve(). Для второго варианта тестового окружения на этом шаге модифицируется Checker.sv – для каждой пары сравниваемых сигналов вызывается свойство p_equal.
8. В Coverage.sv изменить группу покрытия.
9. В файлах run.do для ModelSim или Makefile для VCS изменить названия файлов тестируемых модулей.