Моделируйте проект FPGA на оборудовании с живыми данными при помощи Команд MATLAB

В этом примере показано, как использовать MATLAB, чтобы моделировать алгоритм, работающий на оборудовании FPGA от вашего хоста - компьютера.

Введение

На многих этапах в процессе проектирования может быть полезно взаимодействовать с проектом FPGA, который запускается непосредственно на оборудовании. Работа с оборудованием позволяет проектам быстрого прототипирования, проверьте функциональность, настройте основные параметры, соединитесь с реальными сигналами, соберите данные для анализа, и многое другое.

Этот пример показывает вам, как соединить MATLAB на вашем хосте - компьютере к вашему оборудованию FPGA. Используйте MATLAB для:

  • Запишите входные сигналы в свой алгоритм FPGA.

  • Получите выходные сигналы своего FPGA для анализа.

  • Читайте из и запишите в регистры в своем проекте FPGA.

Как часть этого примера, вас:

  1. Сгенерируйте и разверните простой алгоритм на оборудовании.

  2. Создайте аппаратный объект установить связь с вашим FPGA.

  3. Используйте простой скрипт, чтобы моделировать проект, работающий на оборудовании с живыми данными.

Прежде чем вы начнете

Чтобы запустить этот пример, установите и настроить:

Архитектура системы

Предыдущее изображение показывает высокоуровневую архитектуру системы. Хост - компьютер связывается с FPGA через систему обработки на плате Системы на чипе (SoC). Хост - компьютер может отправить и принять кадры данных, которые переводятся в и от потоковой передачи данных дюйм/с Прямого доступа к памяти (DMA). Хост - компьютер может также настройки параметров путем записи в AXI4-облегченные регистры в ядре IP алгоритма.

Алгоритм FPGA

Алгоритм, развернутый на FPGA, является простым алгоритмом потоковой передачи, который масштабирует амплитуду входного сигнала константой. Данные о потоковой передаче моделируются с данными и допустимыми сигналами. Амплитудный сигнал моделируется как константа.

Откройте модель. Модель состоит из проекта под тестом (DUT) и испытательного стенда. DUT содержит алгоритм, который развертывается на FPGA. Испытательный стенд осуществляет DUT в процессе моделирования путем обеспечения входных параметров и получения выходных параметров для отображения.

% open_system hdlcoder_scale_amplitude.slx

Сгенерируйте ядро IP HDL

Сгенерировать ядро IP от DUT при помощи HDL Workflow Advisor:

1. Настройте инструмент path синтеза Xilinx Vivado используя следующую команду в командном окне MATLAB. Используйте свой собственный путь к установке Vivado, когда вы запустите команду.

hdlsetuptoolpath('ToolName', 'Xilinx Vivado', 'ToolPath', 'C:\Xilinx\Vivado\2020.1\bin\vivado.bat');

2. Откройте приложение панели инструментов HDL Coder из Приложений> HDL Coder. Кликните по значку панели инструментов, чтобы открыть Советника по вопросам Рабочего процесса.

3. В задаче Инструмента Целевого устройства и Синтеза Набора выберите рабочий процесс IP Core Generation for Target и ZedBoard для Целевой платформы. Если вы предназначаетесь для различного Xilinx SoC, выбираете вашу плату из контекстного меню Целевой платформы.

Нажмите Run This Task.

4. В Целевой задаче Исходного проекта Набора выберите Систему По умолчанию с интерфейсом AXI4-Stream для Исходного проекта.

Нажмите Run This Task.

5. В Поставившей Целевой Интерфейсной задаче порты подсистемы DUT сопоставлены с интерфейсами Ядра IP. Входные данные и действительные порты сопоставлены с AXI4-потоковым Ведомым устройством. Выходные данные и действительные порты сопоставлены с AXI4-потоковым Ведущим устройством. Амплитудный сигнал сопоставлен с AXI4-облегченным.

Нажмите Run This Task.

6) Щелкните правой кнопкой по Generate RTL Code и задаче IP Core, и выберите Run to Selected Task, чтобы сгенерировать ядро IP.

Сгенерируйте интерфейс между ядром IP и хостом - компьютером

Чтобы сгенерировать хост - компьютер взаимодействуют через интерфейс к ядру IP и развернуть проект в плату целевого компьютера:

1. Запустите Создать задачу Проекта. Эта задача вставляет сгенерированное ядро IP для алгоритма FPGA в исходный проект, чтобы создать систему, показанную в схеме Архитектуры системы.

2. В Сгенерировать задаче Программного интерфейса выберите поле для скрипта программного интерфейса Generate MATLAB, затем запускают эту задачу.

3. Два файла MATLAB сгенерированы в вашей текущей папке, которые позволяют вам моделировать свое сгенерированное ядро IP непосредственно из MATLAB.

4. Смотрите эти сгенерированные файлы в, Взаимодействуют с Проектом FPGA от Хоста - компьютера. Во-первых, выполните остающегося Советника по вопросам Рабочего процесса задачи. Запустите задачу Потока битов FPGA Сборки, которая может занять время, чтобы закончиться.

5. Запустите задачу Целевого устройства Программы программировать алгоритм FPGA на плату. Выберите метод программирования Загрузки, который загружает поток битов FPGA на SD-карту и конфигурирует систему обработки ARM, чтобы запустить правильно.

Взаимодействуйте с проектом FPGA от хоста - компьютера

Взаимодействуйте с проектом FPGA путем чтения и записывания данные из MATLAB на хосте - компьютере.

Откройте сгенерированный файл скрипта:

open gs_hdlcoder_scale_amplitude_interface.m

Этот файл создает связь с вашим оборудованием FPGA для того, чтобы читать и записать данные.

  1. Создает “fpga” аппаратный объект, который представляет связь с FPGA на вашей аппаратной плате.

  2. Конфигурирует объект “fpga” с желаемыми аппаратными интерфейсами и портами из вашего алгоритма DUT.

  3. Чтения и записывают данные к портам DUT, чтобы осуществить ваш алгоритм, работающий на оборудовании.

  4. Релизы любые аппаратные ресурсы используются fpga возразите, чтобы очистить связь.

Откройте сгенерированную функцию настройки:

open gs_hdlcoder_scale_amplitude_interface.m

Эта функция конфигурирует fpga аппаратный объект с теми же портами и интерфейсами, которые были сопоставлены в Цели Набора Интерфейсная задача. Можно снова использовать эту функцию, может быть снова использован в собственных скриптах, чтобы воссоздать эту настройку.

Можно изменить сгенерированный файл скрипта, чтобы осуществить алгоритм, работающий на оборудовании. Live скрипт был подготовлен, который можно открыть путем выполнения этой команды:

open hdlcoder_scale_amplitude_script.mlx

Измените значение ползунка и наблюдайте, как выходные данные (оранжевый) изменяются в графике ниже его. Когда ползунок перемещается, код ниже его выполнен. Каждое подписание кода:

  • Пишет новое амплитудное значение от ползунка до регистра AXI в ядре IP.

  • Записи одна система координат входного сигнала.

  • Чтения одна система координат выходного сигнала.

  • Строит сигналы ввода и вывода на том же графике, чтобы показать различие в амплитуде.

По окончании запустите последнюю линию скрипта, чтобы выпустить любые аппаратные ресурсы, используемые fpga объект для уборки:

release(hFPGA);

Следующие шаги

Эксперимент далее со сгенерированным скриптом:

  • Изменитесь функция MATLAB раньше производила данные о входном сигнале по линии 7 из live скрипта. Некоторые другие функции, чтобы попробовать состоят в том потому что, квадрат и зуб пилы.

  • Используйте App Designer, чтобы создать пользовательское приложение с командами из этого скрипта. Добавьте компоненты Пользовательского интерфейса (UI) для взаимодействия с алгоритмом, когда это работает на оборудовании.

  • Выполните шаги из этого примера с вашей собственной моделью. Используйте сгенерированный скрипт, чтобы моделировать ваш алгоритм на оборудовании.