В этом примере приведены основные шаги по настройке приложения Verifier™ HDL с помощью мастера Cosimulation Wizard.
В этом примере используется объект MATLAB System и ModelSim для проверки конструкции уровня передачи регистров (RTL) быстрого преобразования Фурье (FFT) размера 8, написанного в Verilog. БПФ обычно используется в цифровой обработке сигналов для получения частотного распределения сигнала.
Для проверки правильности этого БПФ предусмотрены средства тестирования объектов системы MATLAB. В этом испытании генерируются периодические синусоидальные входные данные в тестируемую конструкцию ЛПВП (DUT) и строятся графики коэффициентов Фурье в комплексной плоскости.
Мастер косимуляции принимает предоставленный файл Verilog этого БПФ в качестве входных данных. Он также собирает пользовательские входные данные, необходимые для настройки косимуляции на каждом шаге. В конце примера мастер косимуляции создает сценарий MATLAB, который создает экземпляр настроенного объекта HdlCosimulation System, сценарий MATLAB, который компилирует дизайн HDL, и сценарий MATLAB, который запускает имитатор HDL для косимуляции.
Чтобы гарантировать доступ других пользователей к копиям файлов примеров, настройте папку для вашей собственной работы с примерами, выполнив следующие инструкции.
a. Создайте папку за пределами области установочной папки MATLAB, в которую можно скопировать файлы примеров. Папка должна быть доступна для записи. В этом примере предполагается, что создается папка с именем MyTests.
b. Скопируйте все файлы, находящиеся в следующей папке, в созданную папку:
matlabroot\toolbox\edalink\foundation\hdllink\demo_src\tutorial_fft
c. Теперь в вашем рабочем каталоге есть все необходимые примеры файлов:
fft_tb.m
fft_hdl.v
fft_hdl_tc.v
A. Запуск MATLAB.
b. Установите каталог, созданный в окне Настройка файлов примеров, в качестве текущего каталога в MATLAB.
В командной строке MATLAB введите следующее:
>>cosimWizard
Команда запускает мастер косимуляции.
На странице Тип косимуляции (Cosimulation Type) выполните следующие шаги.
А. Измените косимуляцию HDL с опцией MATLAB System Object.
b. Если используется ModelSim, измените опцию Имитатор ЛПВП (HDL Simulator) на ModelSim.
C. Оставьте параметр по умолчанию Использовать исполняемые файлы симулятора HDL на системном пути, если исполняемые файлы симулятора HDL отображаются на системном пути. Если эти исполняемые файлы не отображаются в пути, укажите путь к имитатору HDL.
d. Нажмите кнопку Next (Далее), чтобы перейти на страницу HDL Files (Файлы HDL).

На странице HDL Files выполните следующие действия.
Ответ. Добавьте файлы HDL в список файлов:
Нажмите кнопку Добавить и выберите файлы Verilog fft_hdl.v и fft_hdl_tc.v в папке примера.
Проверьте, правильно ли определен тип файла в списке файлов.
b. Щелкните Далее (Next), чтобы перейти на страницу Компиляция HDL (HDL Compilation).

Мастер косимуляции перечисляет команды по умолчанию в окне Команды компиляции (Compilation Commands). В данном примере изменять эти команды не требуется.

Нажмите кнопку Далее. На консоли MATLAB отображается журнал компиляции. Если во время компиляции возникает ошибка, она появляется в области Состояние. Исправьте ошибку, прежде чем переходить к следующему шагу.
На странице Модули HDL выполните следующие действия:
а. Укажите имя модуля/объекта ЛПВП для косимуляции. В раскрывающемся списке выберите fft_hdl. Этот модуль является модулем Verilog, используемым для косимуляции. Если «fft_hdl» не отображается в раскрывающемся списке, можно ввести имя файла вручную.
b. В поле Опции моделирования (Simulation options) удалите опцию -novopt, чтобы ModelSim мог оптимизировать конструкцию HDL.

c. Нажмите кнопку Next (Далее). Мастер Cosimulation Wizard запускает имитатор ЛПВП в фоновой консоли с использованием указанного модуля ЛПВП и опций моделирования. Если мастер успешно запускает имитатор HDL, он заполняет входные и выходные порты на fft_hdl модели Verilog и отображает их на следующем шаге.
На этом шаге Мастер косимуляции отображает две таблицы, содержащие входные и выходные порты fft_hdl соответственно.
Мастер косимуляции пытается правильно определить тип порта для каждого порта. Если мастер неправильно идентифицирует порт, с помощью этих таблиц можно изменить тип порта.
Для портов ввода можно выбрать часы, сброс, ввод или неиспользуемые. HDL Verifier подключает только входные порты с пометкой «Input» к MATLAB во время косимуляции.
HDL Verifier соединяет выходные порты, отмеченные как Output, с MATLAB во время косимуляции. Программное обеспечение канала и MATLAB игнорируют выходные порты, отмеченные как «Неиспользуемые во время косимуляции».
На более позднем этапе можно изменить параметры сигналов, обозначенных как «Clock» и «Reset».
Примите типы портов по умолчанию и нажмите кнопку Next, чтобы перейти на страницу Output Port Details.

Для этого примера выходы БПФ ЛВП подписаны длиной 13 бит с длиной дроби 9 бит. На странице «Output Port Details» выполните следующие шаги:
О. Обратите внимание, что время выборки не может быть изменено и всегда фиксируется как 1 с помощью объекта HdlCosimulation System.
b. Измените тип данных на «Подпись» для обоих выходов.
c. Измените значение параметра Fraction Length на 9 для обоих выходов.
c. Нажмите кнопку Next, чтобы перейти на страницу Clock/Reset Details.

Установите для параметра clock Period (ns) значение 20. Из кода Verilog известно, что сброс выполняется синхронно, а активное значение равно 1. Можно сбросить всю конструкцию HDL в момент времени 1 нс, инициируемый передним фронтом часов. Используйте длительность 15 нс для сигнала сброса. На странице Clock/Reset Details выполните следующие шаги:
a. Установите тактовый период равным 20.
b. Оставьте или установите активное ребро на Rising.
c. Оставьте или установите исходное значение сброса равным 1.
d. Установите длительность сигнала сброса на 15.
Нажмите кнопку Next (Далее), чтобы перейти на страницу Start Time Alignment (Выравнивание времени начала).

На странице «Start Time Alignment» отображается график для сигналов синхронизации и сброса. Мастер косимуляции показывает время HDL для начала косимуляции красной линией. Время начала также является временем, в которое объект System получает первую входную выборку из имитатора ЛПВП. Активный фронт часов является передним фронтом. Таким образом, в момент времени 20 нс в имитаторе ЛПВП зарегистрированный выход БПФ стабилен. Условие гонки не существует, и время запуска косимуляции HDL по умолчанию (20 нс) является правильным.
Нажмите кнопку Next (Далее), чтобы перейти к разделу System Object Generation (Создание системных объектов).

Ответ. Перед созданием сценариев мастером Cosimulation Wizard можно изменить период выборки HDL Simulator. Период выборки определяет прошедшее время в имитаторе ЛПВП, разделяющем каждый вызов на шаг в MATLAB. Большую часть времени период выборки равен периоду синхронизации. Можно также указать, основаны ли входные/выходные данные на кадрах (а не на образцах).
b. Нажмите кнопку Готово (Finish), чтобы завершить сеанс мастера косимуляции.

В этом примере тестовый стенд фактически не создается. Вместо этого готовый fft_tb.m сценария можно найти в каталоге, созданном в разделе Настройка файлов примеров.
О. После нажатия кнопки «Готово» в мастере Cosimulation Wizard приложение создает три файла HDL в текущей папке:
compile_hdl_design_fft_hdl.m: Перекомпиляция конструкции ЛПВП
launch_hdl_simulator_fft_hdl.m: Для перезапуска сервера объектов системы MATLAB и запуска имитатора HDL.
hdlcosim_fft_hdl.m: Создание объекта HdlCosimulation System
b. Откройте файлы fft_tb.m и hdlcosim_fft_hdl.m, расположенные в каталоге, созданном в разделе Настройка примеров файлов, и просмотрите вызовы объекта HdlCosimulation System. hdlcosim_fft_hdl.m содержит экземпляр HdlCosimulation, а fft_tb.m содержит тестовый стенд объектов MATLAB System. Этот стенд используется для проверки конструкции HDL, для которой только что был создан соответствующий объект HdlCosimulation System.

a. Запустите имитатор ЛПВП, выполнив launch_hdl_simulator_fft_hdl.m сценария.
>>launch_hdl_simulator_fft_hdl.m
b. Когда имитатор HDL будет готов, вернитесь в MATLAB и запустите моделирование, выполнив fft_tb.m сценария.
>>fft_tb.m
с. Проверить результат из графика на испытательном стенде. На графике отображаются коэффициенты Фурье в комплексной плоскости.

На этом завершается работа мастера косимуляции для использования с примером объекта MATLAB System.