«…Труд избавляет человека от трех великих зол: скуки, порока, нужды…»

OVM/Архитектура теста — различия между версиями

Материал из Wiki
< OVM
Перейти к: навигация, поиск
м (Общий вид)
(Названия файлов описания)
 
(не показаны 7 промежуточных версий 2 участников)
Строка 3: Строка 3:
 
! <html><img src="https://docs.google.com/drawings/d/14PCLQWzk8U3maebwNx0Rk9dfixyy_efgP4GbyfJhxGA/pub?w=800"> </html>
 
! <html><img src="https://docs.google.com/drawings/d/14PCLQWzk8U3maebwNx0Rk9dfixyy_efgP4GbyfJhxGA/pub?w=800"> </html>
 
|-
 
|-
! Рисунок 1 — Архитектура OVM теста ([https://docs.google.com/drawings/d/14PCLQWzk8U3maebwNx0Rk9dfixyy_efgP4GbyfJhxGA/edit])
+
! Рисунок 1 — Архитектура OVM теста ([https://docs.google.com/drawings/d/14PCLQWzk8U3maebwNx0Rk9dfixyy_efgP4GbyfJhxGA/edit edit])
 +
|}
 +
 
 +
== Структура проекта ==
 +
{{OVM_TOC}}
 +
{| class="wikitable"
 +
|-
 +
!  Папки  !! Описание
 +
|-
 +
| /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''' - описание функционального назначения или содержания класса (одно или два слова).
 +
 
 +
 
 +
{| class="wikitable"
 +
|-
 +
! Название файла !! Название класса  !! Описание
 +
|-
 +
| '''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 модели.
 
|}
 
|}

Текущая версия на 01:23, 9 апреля 2013

Общий вид

Рисунок 1 — Архитектура OVM теста (edit)

Структура проекта

Проект Диплом

Вебинары
Литература

* OVM *
Папки Описание
/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 модели.