В этом руководстве приведены основные шаги для настройки HDL- Verifier™ косимуляции, которая использует MATLAB® и Симулятор HDL. Эта косимуляция проверяет проект, используя компонент MATLAB в качестве испытательного стенда. В этом руководстве вы выполняете шаги, чтобы косимулировать MATLAB с Симулятором HDL, чтобы проверить пригодность фильтра приподнятого косинуса, написанного в Verilog®.
Примечание
Для этого руководства требуются MATLAB, HDL Verifier, Fixed-Point Designer™ и ModelSim® или резьбовое® Симулятор HDL. В этом руководстве также предполагается, что вы прочитали Import HDL Code для функции 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
(не используется в данном руководстве)
Запустите MATLAB.
Установите папку, созданную вами в Tutorial: Set Up Tutorial Files (MATLAB), как текущую папку в MATLAB.
В командной строке MATLAB введите:
>>cosimWizard
Эта команда запускает Cosimulation Wizard.
В этом руководстве приведены следующие страницы мастера, призванные помочь вам в создании функции компонента HDL Verifier:
На странице Тип косимуляции выполните следующие шаги:
Измените HDL cosimulation with опцию на MATLAB
.
Если вы используете ModelSim, оставьте HDL Simulator опцию следующим ModelSim
.
Если вы используете Incisive, измените HDL Simulator опции на Incisive
.
Оставьте опцию Use HDL simulator executables on the system path по умолчанию, если Симуляторы HDL исполняемые файлы появляются в вашем системном пути.
Если исполняемые файлы не появляются в пути, задайте путь к Симулятору HDL, как описано в Cosimulation Type - Функцию MATLAB.
Нажмите кнопку Next, чтобы перейти на страницу HDL- Файлов.
На странице Файлов HDL выполните следующие шаги:
Добавьте HDL-файлы в список файлов.
Нажмите Add и перейдите в директорию, созданный в Tutorial: Set Up Tutorial Files (MATLAB).
Выберите файлы Verilog filter_tb.v
, rcosflt_rtl.v
, и rcosflt_beh.v
. Можно выбрать несколько файлов в браузере файлов, удерживая нажатой клавишу CTRL при выборе файлов мышью.
Проверьте файл в списке файлов с типом файла, указанным как вы ожидали.
Нажмите кнопку Next, чтобы перейти на страницу компиляции HDL.
В Мастерах косимуляции перечислены команды по умолчанию в окне Команды компиляции. Вам не нужно изменять эти значения по умолчанию для этого руководства.
Исследуйте команды компиляции.
Пользователи 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-модуля/объекта для косимуляции.
При Name of HDL module to cosimulate with выберите filter_tb
в раскрывающемся списке для определения модуля Verilog, который будет использоваться для косимуляции.
Если вы не видите filter_tb
в раскрывающемся списке его можно ввести вручную.
Для Connection method выберите Shared Memory
если политика межсетевого экрана не разрешает обмен данными между сокетами TCP/IP.
Нажмите кнопку Next, чтобы перейти на страницу Расписание коллбэк.
Мастер косимуляции запускает Симулятор HDL в фоновой консоли с помощью заданных HDL-модуля и параметров симуляции. После запуска Симулятора HDL появится страница Коллбэка Schedule. В Windows® систем, консоль остается открытой. Не закрывать консоль; приложение закрывает это окно по завершении.
На странице Расписание коллбэке выполните следующие шаги:
Оставьте Callback type следующим matlabcp
(по умолчанию). Этот тип предписывает Cosimulation Wizard создать функцию обратного вызова MATLAB как компонент для косимуляции с Симулятором 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
команда, которая связывает u_rcosflt_beh модуля HDL с Функцией MATLAB callback_fcn, как показано на следующем изображении:
Для получения дополнительной информации о параметрах коллбэка смотрите страницу с описанием для matlabcp
.
Нажмите кнопку Next, чтобы перейти на страницу Сгенерировать скрипт.
Оставьте Launch HDL simulator after exiting this dialog выбранным.
Щелкните Finish, чтобы завершить сеанс Cosimulation Wizard и сгенерировать скрипты.
После клика Finish в Cosimulation Wizard приложение генерирует три HDL- файлов в текущей директории:
compile_hdl_design.m
: Для перекомпиляции проекта
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.