Общий вид
|
Рисунок 1 — Архитектура OVM теста (edit)
|
Структура проекта
Папки |
Описание
|
/ovm |
Корневая папка проекта
|
/ovm/raduga7 |
Папка с описанием и спецификацией блока
|
/ovm/raduga7/rtl |
Папка содержащее rtl описание на языках vhdl или verilog
|
/ovm/raduga7/tlm |
Папка содержащая описание поведения модели на языке C/C++/SystemC
|
/ovm/raduga7/vplan |
План верификации написанный на xml (формат word, excel)
|
/ovm/sim |
Содержит результаты запусков моделирования и скрипты запуска
|
/ovm/sim/script |
Скрипты запуска моделирования
|
/ovm/tb |
Папка содержит тесты для запуска во время моделирования
|
/ovm/tb/sv |
Содержит среду верификации на языке SystemVerilog
|
/ovm/tb/golden |
Содержит файлы паттернов тестов
|
Названия файлов описания
/ovm/tb/sv - папка тестового окружения
- Имя файла для удобства должно соответствовать названию класса
- NAME - название RTL проекта.
- Discription - описание функционального назначения или содержания класса (одно или два слова).
Название файла |
Название класса |
Описание
|
top.sv |
top |
модуль верхнего уровня
|
NAME_test_Discription.svh |
NAME_test_Discription |
Описание класса содержащего тест. Принято для каждого теста создавать свой класс.
|
NAME_env.svh |
NAME_env |
Тестовое окружение в тесте (тестбенч). Содержит в себе обычно Agent и Scoreboard
|
NAME_agent.svh |
NAME_agent |
Агент - модуль, который содержит sequencer, sequencer_driver, monitor, coverage
|
NAME_scoreboard.svh |
NAME_scoreboard |
Табло - модуль, который содержит comparator и вызов обработки эталонной модели.
|
NAME_sequencer.svh |
NAME_sequencer |
Объект, содержащий в себе последовательность транзакций для посылки в DUT
|
NAME_sequencer_driver.svh |
NAME_sequencer_driver |
Объект, который преобразует транзакции в переключения на входной шине dut.
|
NAME_monitor.svh |
NAME_monitor |
Объект который получает с пинов DUT переключения обрабатывает их и преобразовывает в транзакции и записывает analisys_port (через запись в порт транзакция передается ии может быть прочитана в scoreboarde)
|
NAME_coverage.svh |
NAME_coverage |
Файл содержит covergroup (группа, содержащая точки проверки во время моделирования ... отвечает на вопрос Are we done?, а также объект, создающий, вызывающий и записывающий пункт проверки(анализирует транзакцию через анализ порт и дает заключение выплняется ли одно из условий описанных в covergroup) )
|
NAME_comparator.svh |
NAME_comparator |
Класс который получает транзакции из scoreboard(они туда поступают по analisys_porty из монитора) и из gold модели написанной на c++ и сравнивает и выдает сообщение и подсчитывает совпадения и несовпадения.
|
NAME_tr.svh |
NAME_tr |
Объект, содержащий описание ограничений для задаваемых значений, транзакции для посылки в DUT, и описание передаваемых транзакций между блоками. Обязательно или ключевой особенностью транзакции является наличие rand параметров, парметры которые при генерации будут задаваться в соответсвии с указанными ограничениями или случайно или по алгоритму.
|
NAME_sv_utils.svh |
NAME_sv_utils |
Содержит описание класса - интерфейс подключения к DUT
|
NAME_fpu_reference_model.svh |
NAME_fpu_reference_model |
Содержит класс с описанием запуска golden модели.
|