Добавление testbench'ей на языке Verilog в проект Vivado — различия между версиями

Материал из SRNS
Перейти к: навигация, поиск
(Написание TB'ей)
(Написание TB'ей)
Строка 25: Строка 25:
 
== Написание TB'ей ==
 
== Написание TB'ей ==
  
Накидаем через GUI новый TB, а потом перенесем его в tcl-скрипт! Начнем с TB для модуля imichnl_synthesizer.
+
Накидаем через GUI новый TB, а потом перенесем его в tcl-скрипт! Начнем с TB для модуля '''imichnl_synthesizer'''.
  
 
В ''Flow Navigator'' (это панель слева в Vivado) в разделе ''Simulation'' выбираем ''Simulation Settings''
 
В ''Flow Navigator'' (это панель слева в Vivado) в разделе ''Simulation'' выбираем ''Simulation Settings''
Строка 32: Строка 32:
 
В открывшемся окне в разделе ''Simulation'' в графе ''Simulation top modulw name'' создаем новый файлсет, выбирая ''Create Simulation Set''
 
В открывшемся окне в разделе ''Simulation'' в графе ''Simulation top modulw name'' создаем новый файлсет, выбирая ''Create Simulation Set''
 
[[file:20160404_vivado_revolution3.png|center]]
 
[[file:20160404_vivado_revolution3.png|center]]
 +
 +
Новому файлсету даем осмысленное название, например, sim_imichnl_synthesizer
 +
[[file:20160404_vivado_revolution7.png|center]]
 +
 +
Очищаем графу ''Simulation top module name'', т.к. файл с кодом TB'а у нас ещё не создан.
 +
 +
На вкладке ''Advanced'' запрещаем включать в TB все файлы проекта, снимая галку с ''Include all design sources for simulation''. Иначе он добавит все наши файлы в файлсет этого TB'а, что нам не нужно.
 +
[[file:20160404_vivado_revolution11.png|center]]
 +
 +
Закрываем окно, нажимая ''Ok''. Vivado задает вопрос, сделать ли данный TB активным. Можно соглашаться. В итоге в Source проекта появился новый пустой файлсет для симуляции sim_imichnl_synthesizer
 +
[[file:20160404_vivado_revolution12.png|center]]
  
  
Строка 41: Строка 52:
 
'''ВНИМАНИЕ''' Не занимайте и не удаляйте файлсет sim_1. Vivado его очень любит и будет создавать заново, делая при этим активным. Лучше оставить sim_1 пустым.  
 
'''ВНИМАНИЕ''' Не занимайте и не удаляйте файлсет sim_1. Vivado его очень любит и будет создавать заново, делая при этим активным. Лучше оставить sim_1 пустым.  
 
[[file:20160404_vivado_revolution6.png|center]]
 
[[file:20160404_vivado_revolution6.png|center]]
 
Новому файлсету даем осмысленное название, например, sim_imichnl_synthesizer
 
[[file:20160404_vivado_revolution7.png|center]]
 
  
 
В том же окне ''Add Sources'' можем пометить новый TB как активный. Добавляем новый файл TB'а, нажимая кнопку ''Create File''. Даем файлу осмысленное имя с суффиксом '''tb''', например, imichnl_synthesizer_tb.v и '''обязательно''' указываем в качестве пути каталог tb дизайна imitator:
 
В том же окне ''Add Sources'' можем пометить новый TB как активный. Добавляем новый файл TB'а, нажимая кнопку ''Create File''. Даем файлу осмысленное имя с суффиксом '''tb''', например, imichnl_synthesizer_tb.v и '''обязательно''' указываем в качестве пути каталог tb дизайна imitator:

Версия 18:52, 4 апреля 2016

Содержание

Пусть у нас есть дизайн для Vivado, проект которого разворачивается в соответствии со статьей Vivado и Git. Возможно, это конечный дизайн, возможно - сабмодуль для другого дизайна. Процедура добавления test bench'ей (далее TB) отличаться не будет, поэтому дальнейшее рассмотрение продолжим на примере сабмодуля imitator.


Задача - добавить TB'и для модулей imitator'а, причем

  • они должны храниться в СКВ и быть доступны всем разработчикам,
  • имеются в виду TB'и на языке Verilog для симуляторов типа Vivado Simulator, ModelSim и т.д., а не тесты на языках Си или Matlab для Verilator'а.


Подопечные

Для конкретики, будем добавлять в дизайн imitator TB'и для двух модулей:

  • imichnl_synthesizer, отвечающий за фазу несущей,
  • imitator_channel, являющийся топ-модулем для одного канала имитатора и включающий в себя первый модуль.


Наша задача разбивается на несколько этапов:

  • написать код самих TB'ей, запустить, получить результаты,
  • понять, какие файлы охватывает TB,
  • внести изменения в скрипт регенерации проекта так, чтобы сохранились все настройки и файлы TB.

Приведу один из вариантов решения подзадач, не требующий знания tcl скриптов и опирающийся по-максимуму на GUI.

Написание TB'ей

Накидаем через GUI новый TB, а потом перенесем его в tcl-скрипт! Начнем с TB для модуля imichnl_synthesizer.

В Flow Navigator (это панель слева в Vivado) в разделе Simulation выбираем Simulation Settings

20160404 vivado revolution2.png

В открывшемся окне в разделе Simulation в графе Simulation top modulw name создаем новый файлсет, выбирая Create Simulation Set

20160404 vivado revolution3.png

Новому файлсету даем осмысленное название, например, sim_imichnl_synthesizer

20160404 vivado revolution7.png

Очищаем графу Simulation top module name, т.к. файл с кодом TB'а у нас ещё не создан.

На вкладке Advanced запрещаем включать в TB все файлы проекта, снимая галку с Include all design sources for simulation. Иначе он добавит все наши файлы в файлсет этого TB'а, что нам не нужно.

20160404 vivado revolution11.png

Закрываем окно, нажимая Ok. Vivado задает вопрос, сделать ли данный TB активным. Можно соглашаться. В итоге в Source проекта появился новый пустой файлсет для симуляции sim_imichnl_synthesizer

20160404 vivado revolution12.png


Далее Add or create simulation sources

20160404 vivado revolution4.png

В следующем окне создаем новый fileset для симуляции через Specify simulation set -> Create Simulation Set.

ВНИМАНИЕ Не занимайте и не удаляйте файлсет sim_1. Vivado его очень любит и будет создавать заново, делая при этим активным. Лучше оставить sim_1 пустым.

20160404 vivado revolution6.png

В том же окне Add Sources можем пометить новый TB как активный. Добавляем новый файл TB'а, нажимая кнопку Create File. Даем файлу осмысленное имя с суффиксом tb, например, imichnl_synthesizer_tb.v и обязательно указываем в качестве пути каталог tb дизайна imitator:

20160404 vivado revolution8.png20160404 vivado revolution9.png

С помощью кнопки Add Files добавляем уже существующие файлы, которые потребуются для работы тестируемого модуля. В данном случае это сам модуль imichnl_synthesizer из каталога verilog

20160404 vivado revolution10.png

Ссылки

Easyelectronics:TestBench на Verilog для новичков

Персональные инструменты
Пространства имён

Варианты
Действия
SRNS Wiki
Рабочие журналы
Приватный файлсервер
QNAP Сервер
Инструменты