Этот пример проводит вас по основным шагам для подготовки HDL Verifier™ cosimulation, который использует MATLAB® и симулятор HDL. Этот cosimulation проверяет проект HDL с помощью компонента MATLAB в качестве испытательного стенда. В этом примере вы выполняете шаги к cosimulate MATLAB с симулятором HDL, чтобы проверить пригодность повышенного фильтра косинуса, написанного в Verilog®.
Примечание
Этот пример требует MATLAB, HDL Verifier, Fixed-Point Designer™, и симулятора HDL Incisive® или ModelSim®. Этот пример также предполагает, что вы считали HDL-код Импорта для функции MATLAB.
Испытательный стенд HDL инстанцирует двух компонентов фильтра повышенного косинуса: каждый реализован в HDL, и другой сопоставлен с функцией обратного вызова MATLAB. Испытательный стенд также генерирует стимул для обоих фильтров и сравнивает их выходные параметры.
Чтобы помочь копиям доступа других учебных файлов, настройте папку для своей собственной учебной работы путем следования этим инструкциям:
Создайте папку вне осциллографа вашей папки установки MATLAB, в которую можно скопировать учебные файлы. Папка должна быть перезаписываема. Этот пример предполагает, что вы создаете папку под названием MyTests
.
Скопируйте все файлы, расположенные в следующей папке MATLAB к папке, которую вы создали:
matlabroot\toolbox\edalink\foundation\hdllink\demo_src\tutorial
где matlabroot
корневой каталог MATLAB в вашей системе.
У вас теперь есть следующие файлы в вашей рабочей папке:
filter_tb.v
mycallback_solution.m
rcosflt_beh.v
rcosflt_rtl.v
rcosflt_tb.mdl
(не используемый в этом примере)
StartMatlab.
Установите папку, которую вы создали в Примере: Настройте Учебные Файлы (MATLAB) как ваша текущая папка в MATLAB.
В командной строке MATLAB введите:
>>cosimWizard
Эта команда запускает Cosimulation Wizard.
Этот пример приводит вас через следующие страницы мастера, спроектированные, чтобы помочь вам в создании функции компонента HDL Verifier:
В Полосе набора Cosimulation выполните следующие шаги:
Измените набор опции HDL cosimulation with в MATLAB
.
Если вы используете ModelSim, оставляете опцию HDL Simulator как ModelSim
.
Если вы используете Острый, изменяете опцию HDL Simulator в Incisive
.
Оставьте опцию опции по умолчанию Use HDL simulator executables on the system path, если исполняемые файлы симулятора HDL появляются на вашем системном пути.
Если исполняемые файлы не появляются в пути, задайте путь к симулятору HDL как описано в Типе Cosimulation — функция MATLAB.
Нажмите Next, чтобы перейти к странице HDL Files.
На странице HDL Files выполните следующие шаги:
Добавьте файлы HDL в список файлов.
Нажмите Add и обзор к директории, которую вы создали в Примере: Настройте Учебные Файлы (MATLAB).
Выберите файлы Verilog filter_tb.v
, rcosflt_rtl.v
, и rcosflt_beh.v
. Можно выбрать несколько файлов в файловом браузере путем удержания клавиши CTRL при выборе файлов с мышью.
Рассмотрите файл в списке файлов с типом файла, идентифицированным, как вы ожидали.
Нажмите Next, чтобы перейти к странице HDL Compilation.
Мастера Cosimulation перечисляют команды по умолчанию в окне Compilation Commands. Вы не должны изменять эти значения по умолчанию для этого примера.
Исследуйте команды компиляции.
Пользователи ModelSim: Ваша панель Компиляции HDL выглядит похожей на следующее.
Острые пользователи: Ваши команды Компиляции HDL будут выглядеть похожими на следующее:
ncvlog -64bit -update "/mathworks/home/user/MyTests/filter_tb.v" ncvlog -64bit -update "/mathworks/home/user/MyTests/rcosflt_beh.v" ncvlog -64bit -update "/mathworks/home/user/MyTests/rcosftl_rtl.v"
Нажмите Next, чтобы перейти к панели Модулей HDL.
Консоль MATLAB отображает журнал компиляции. Если ошибка происходит во время компиляции, та ошибка появляется в области Status. Измените любые настройки, вы можете, чтобы удалить ошибку прежде, чем перейти к следующему шагу.
В панели Модулей HDL выполните следующие шаги:
Задайте имя модуля/сущности HDL для cosimulation.
В Name of HDL module to cosimulate with выберите filter_tb
из выпадающего списка, чтобы задать модуль Verilog вы будете использовать для cosimulation.
Если вы не видите filter_tb
в выпадающем списке можно ввести его вручную.
Для Connection method выберите Shared Memory
если ваша политика брандмауэра не позволяет коммуникацию сокета TCP/IP.
Нажмите Next, чтобы перейти к странице Callback Schedule.
Cosimulation Wizard запускает симулятор HDL в фоновом режиме консоль с помощью заданного модуля HDL и опций симуляции. После того, как мастер запускает симулятор HDL, страница Callback Schedule появляется. В системах Windows® консоль остается открытой. Не закрывайте консоль; приложение закрывает это окно после завершения.
На странице Callback Schedule выполните следующие шаги:
Оставьте Callback type как matlabcp
(значение по умолчанию). Этот тип дает Cosimulation Wizard команду создавать функцию обратного вызова MATLAB как компонент для cosimulation с симулятором HDL.
Оставьте Callback function name как callback_fcn
. Мастер дает это имя сгенерированной функции обратного вызова MATLAB.
Для HDL component нажмите Browse. Кликните по значку расширителя рядом с filter_tb
расширять выбор. Выберите u_rcosflt_beh
, и нажмите OK. Вы указали к Cosimulation Wizard, что симулятор HDL сопоставляет этот компонент с функцией обратного вызова MATLAB.
Установите Trigger mode на Rising Edge
.
Для Trigger Signal нажмите Browse. Кликните по значку расширителя рядом с filter_tb
расширять выбор. Выберите u_rcosflt_beh
. В списке портов справа, выберите clk
. Нажмите OK.
Нажмите Add. Cosimulation Wizard генерирует соответствие matlabcp
команда, которая сопоставляет модуль HDL u_rcosflt_beh с функцией MATLAB callback_fcn, как показано в следующем изображении:
Для получения дополнительной информации о параметрах коллбэка смотрите страницу с описанием для matlabcp
.
Нажмите Next, чтобы перейти к странице Generate Script.
Оставьте Launch HDL simulator after exiting this dialog выбранным.
Нажмите Finish, чтобы завершить сеанс Cosimulation Wizard и сгенерировать скрипты.
После того, как вы нажмете Finish в Cosimulation Wizard, приложение генерирует три файла HDL в текущем каталоге:
compile_hdl_design.m
: Для перекомпиляции проекта HDL
launch_hdl_simulator.m
: Повторно запустить сервер MATLAB и запустить симулятор HDL.
callback_fcn.m
: Функция обратного вызова MATLAB
В дополнение к запуску симулятора HDL программное обеспечение HDL Verifier открывает редактор MATLAB и загружает callback_fcn.m
(частичное показанное изображение).
Сгенерированный шаблон включает четыре части:
Инициализируйте внутреннее состояние (состояния) функции обратного вызова
Считайте сигнал из компонента HDL
Запишите сигнал в компонент HDL
Обновите внутреннее состояние (состояния)
Вы изменяете этот шаблон, чтобы смоделировать повышенный косинус, просачиваются MATLAB, следующий инструкциям как показано в следующих разделах.
Примечание
Можно найти завершенную модифицированную функцию обратного вызова в mycallback_solution.m
. Эта функция находится в директории, в которую вы скопировали учебные файлы. Можно использовать этот файл, чтобы перезаписать тот в текущем каталоге. Назовите файл "callback_fcn.m
", и поменяйте имя функции на callback_fcn
.
Задайте два внутренних состояния: вектор с 49 элементами, чтобы содержать входные параметры фильтра и вектор из коэффициентов фильтра.
Отредактируйте callback_fcn.m
так, чтобы раздел внутреннего состояния содержал следующий код:
Считайте вход фильтра и преобразуйте его в десятичное число в MATLAB.
Отредактируйте callback_fcn.m
так, чтобы раздел сигнала чтения содержал следующий код:
Входной сигнал "сброса" управляет фильтром выход. Если сброшенный является низким, то выход является продуктом предыдущих входных параметров и коэффициентов фильтра. MATLAB преобразует десятичный результат в многозначную логику выход компонента HDL.
Отредактируйте callback_fcn.m
так, чтобы раздел сигнала записи содержал следующий код:
Используйте вход фильтра, чтобы обновить внутреннее состояние с 49 элементами.
Отредактируйте callback_fcn.m
так, чтобы раздел внутренних состояний обновления содержал следующий код:
Переключитесь на симулятор HDL и введите следующую команду в консоль симулятора HDL:
run 200 ns
Вы видите следующий вывод, отображенный в симуляторе HDL:
Эти сообщения указывают, что выход компонента HDL совпадает с поведенческим выходом компонента MATLAB.