Использование JTAG MATLAB в качестве AXI Master для управления HDL Coder сгенерированным IP-ядром

Этот пример иллюстрирует, как автоматически вставить JTAG MATLAB как AXI Master IP в ваш исходный проект и использовать MATLAB для прототипа HDL Coder, сгенерированного IP Core FPGA.

Введение и необходимые условия

Для доступа к местоположениям встроенной памяти и быстрого зондирования или управления логикой FPGA из MATLAB используйте JTAG MATLAB в качестве ведущего IP AXI. Объект соединяется с IP по физическому кабелю JTAG и позволяет считывать и записывать команды в подчиненные места памяти из командной строки MATLAB.

Можно вставить JTAG MATLAB в качестве AXI Master IP при выполнении задачи Set Target Reference Design IP Core Generation рабочий процесс.

Чтобы использовать эту возможность:

  • Необходимо установить и загрузить пакеты аппаратной поддержки HDL Verifier™.

  • Вы не должны назначать автономные платы, не имеющие hRD.addAXI4SlaveInterface или платы, основанные на Xilinx ISE.

Этот пример использует ZedBoard™. Прежде чем запускать рабочий процесс, необходимо:

  1. Установите Xilinx Vivado™ Design Suite с поддерживаемой версией, указанной в документации HDL Coder

  2. Установите плату Zynq для JTAG MATLAB в качестве платы AXI Master IP. Чтобы узнать, как настроить плату ZedBoard, смотрите раздел «Настройка оборудования и инструментов Zynq» в примере «Начало работы с совместным проектированием HW/SW для платформы Xilinx Zynq».

  3. Загрузите и установите пакет аппаратной поддержки HDL Verifier для плат Xilinx FPGA. См. раздел настройки и строения в пакете поддержки HDL Verifier для плат Xilinx FPGA.

  4. Настройте путь к инструменту синтеза с помощью hdlsetuptoolpath. как показано ниже:

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

Включите вставку JTAG MATLAB в качестве AXI Master

1. Откройте hdlcoder_led_blinking демонстрацию с помощью следующей команды:

open_system('hdlcoder_led_blinking')

2. Откройте HDL Workflow Advisor из hdlcoder_led_blinking/led_counter подсистема щелчком правой кнопкой мыши по led_counter и выбор HDL-кода > HDL Workflow Advisor.

3. В задаче Set Target > Set Target Device and Synthesis Tool для рабочего процесса Target выберите IP Core Generation.

4. Для целевой платформы выберите ZedBoard. Если у вас нет этой опции, выберите Получить больше, чтобы открыть программу установки пакета поддержки. В программе установки пакета поддержки выберите Xilinx Zynq™ Platform и следуйте инструкциям программы установки пакета поддержки.

5. Нажмите Run This Task, чтобы запустить задачу Set Target Device and Synthesis Tool.

6. В задаче Set Target > Set Target Reference Design выберите Default system и установите в раскрывающемся выпадающем списке AXI Master значение Insert JTAG MATLAB, которое присутствует в опциях исходного проекта.

7. Щелкните Запустить эту задачу, чтобы запустить задачу Задать исходный проект целевого объекта.

Сгенерируйте IP-ядро HDL и создайте проект с помощью AXI Master IP

Сопоставьте каждый порт в DUT с одним из базовых IP-интерфейсов. В этом примере входные порты Blink_frequency и Blink_direction сопоставлены с интерфейсом AXI4-Lite, поэтому HDL Coder генерирует для них доступные регистры интерфейса AXI. Выходной порт светодиода сопоставлен с внешним интерфейсом, светодиодами общего назначения [0:7], который соединяется с оборудованием светодиодов на плате Zynq.

1. В задаче Set Target > Set Target Interface выберите AXI4-Lite для Blink_frequency, Blink_direction и Read_back.

2. Выберите LEDs General Purpose [0:7] для светодиодов.

3. Создайте проект исходного проекта, который включает JTAG MATLAB в качестве AXI Master.

Чтобы создать проект, щелкните правой кнопкой мыши задачу Create Project и выберите Run to Selected Task.

«В проекте Vivado в исходном проекте отображается JTAG MATLAB как AXI Master IP».

Использование JTAG MATLAB в качестве AXI Master для управления IP-ядром HDL Coder

Для порядок использования этой функции требуется лицензия HDL Verifier. После этого простой интерфейс командной строки MATLAB ® может использоваться для доступа к ядру IP, сгенерированному HDL Coder.

В командном окне MATLAB:

1. Создайте основной объект AXI

h = aximaster('Xilinx')

2. Введите команду write, чтобы изменить частоту мигания светодиода

h.writememory('400D0100', 0)

Наблюдайте низкую частоту мигания светодиода. Попробуйте изменить значение в команде записи AXI Master с 0 до 15, чтобы увеличить частоту мигания светодиода.

h.writememory('400D0100', 15)

3. Введите команду read, чтобы считать текущее значение счетчика

h.readmemory('400D0108',1)

4. Удалите объект, когда это сделано, чтобы освободить ресурс JTAG. Если объект не удален, другие операции JTAG, такие как программирование FPGA, будут неудачными.

delete(h)

Эта демонстрация показывает, как вы можете легко прототипировать IP-ядро FPGA от MATLAB.

JTAG MATLAB как мастер AXI в пользовательских исходных проектах

Ссылочный параметр проекта «Insert JTAG MATLAB as AXI Master (HDL Verifier required)» по умолчанию добавляется в пользовательский ссылочный проект. Значение по умолчанию для параметра является «off».

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

AddJTAGMATLABasAXIMasterParameter и JTAGMATLABasAXIMasterDefaultValue, где автор исходного проекта может задать эти свойства, чтобы выключить или даже отключить опцию параметра, чтобы не появляться в HDL Workflow Advisor.

% Insert JTAG MATLAB as AXI Master in reference designs
hRD.AddJTAGMATLABasAXIMasterParameter = true;
hRD.JTAGMATLABasAXIMasterDefaultValue = 'on';

1. Опция видимости в HDLWA: Если вы не хотите, чтобы JTAG MATLAB как AXI Master IP был вставлен в созданный вами исходный проект, отключите это свойство: hRD.AddJTAGMATLAB AS sasAxim

2. Значение по умолчанию параметра: В исходный проект, которую вы создали, вы можете управлять свойством hRD.JTAGMATLABasAXIMasterDefaultValue, чтобы ' on ' или ' off '.