В этом примере показано, как автоматически вставить JTAG MATLAB в качестве AXI Master IP в эталонную конструкцию и использовать MATLAB для прототипа генерируемого FPGA IP Core кодера HDL.
Для доступа к местоположениям встроенной памяти и быстрого тестирования или управления логикой FPGA из MATLAB используйте JTAG MATLAB в качестве ведущего IP-адреса AXI. Объект подключается к IP по физическому кабелю JTAG и позволяет выполнять чтение и запись команд в подчиненные ячейки памяти из командной строки MATLAB.
Можно вставить JTAG MATLAB в качестве AXI Master IP при выполнении задачи Set Target Reference Design в IP Core Generation workflow-процесс.
Для использования этой возможности:
Необходимо установить и загрузить пакеты поддержки оборудования HDL Verifier™.
Нельзя назначать автономные платы, которые не имеют hRD.addAXI4SlaveInterface или плат, основанных на Xilinx ISE.
В этом примере используется ZedBoard™. Перед запуском рабочего процесса необходимо выполнить следующие действия.
Установка пакета Xilinx Vivado™ Design Suite с поддерживаемой версией, указанной в документации по кодеру HDL
Установите плату Zynq для JTAG MATLAB в качестве вставки AXI Master IP. Дополнительные сведения о настройке платы ZedBoard см. в разделе Настройка оборудования и инструментов Zynq в примере «Начало работы с совместно разрабатываемым оборудованием/ПО для платформы Xilinx Zynq».
Загрузите и установите пакет технической поддержки HDL Verifier для плат Xilinx FPGA. См. раздел «Настройка и конфигурирование» в пакете поддержки HDL Verifier для плат Xilinx FPGA.
Настройте путь к инструменту синтеза с помощью hdlsetuptoolpath. как показано ниже:
hdlsetuptoolpath('ToolName', 'Xilinx Vivado', 'ToolPath', 'C:\Xilinx\Vivado\2018.3\bin\vivado.bat');

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

2. Откройте помощник по рабочим процессам HDL из hdlcoder_led_blinking/led_counter путем щелчка правой кнопкой мыши по led_counter и выберите «Код HDL» > «Помощник по рабочим процессам HDL».
3. В задании Set Target > Set Target Device and Synthesis Tool в поле Target workflow выберите IP Core Generation.
4. Для целевой платформы выберите ZedBoard. Если у вас нет этого параметра, выберите Получить дополнительные сведения, чтобы открыть программу установки пакета поддержки. В установщике пакета поддержки выберите Xilinx Zynq™ Platform и следуйте инструкциям установщика пакета поддержки для завершения установки.
5. Щелкните Запустить эту задачу, чтобы запустить задачу Задать целевое устройство и средство синтеза.
6. В задаче «Задать цель» > «Задать целевое ссылочное проектирование» выберите «Система по умолчанию» и выберите в раскрывающемся списке «Вставить JTAG MATLAB как AXI Master» значение, которое присутствует в параметрах ссылочного параметра конструкции.
7. Нажмите кнопку «» Выполнить эту задачу «», чтобы запустить задачу «» Задать целевое ссылочное проектирование «».
Сопоставьте каждый порт в DUT с одним из основных IP-интерфейсов. В этом примере входные порты Blink_frequency и Blink_direction сопоставляются с интерфейсом AXI4-Lite, поэтому кодер HDL генерирует для них регистры, доступные интерфейсу 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.
Чтобы создать проект, щелкните правой кнопкой мыши задачу «Создать проект» и выберите «Выполнить до выбранной задачи».
«В проекте Vivado вы видите JTAG MATLAB как AXI Master IP, вставленный в эталонный дизайн».

Для использования этой функции требуется лицензия HDL Verifier. После этого для доступа к ядру IP, сгенерированному кодером HDL, можно использовать простой интерфейс командной строки MATLAB ®.
В окне команды MATLAB:
1. Создание главного объекта AXI
h = aximaster('Xilinx')
2. Введите команду записи для изменения частоты мигания светодиода
h.writememory('400D0100', 0)
Обратите внимание на низкую частоту мигания светодиода. Попробуйте изменить значение в команде AXI Master write с 0 до 15, чтобы увеличить частоту мигания светодиода.
h.writememory('400D0100', 15)
3. Введите команду чтения для считывания текущего значения счетчика
h.readmemory('400D0108',1)
4. Удалите объект после завершения, чтобы освободить ресурс JTAG. Если объект не будет удален, другие операции JTAG, такие как программирование FPGA, завершатся неуспешно.
delete(h)
В этой демонстрации показано, как легко выполнить прототип ядра IP FPGA из MATLAB.
Ссылочный параметр конструкции «Insert JTAG MATLAB as AXI Master (требуется проверка HDL)» по умолчанию добавляется в пользовательскую ссылочную конструкцию. Значение по умолчанию для параметра - «off».
Если требуется управлять этим поведением по умолчанию для ссылочной конструкции, можно использовать следующие два необязательных свойства ссылочной конструкции:
AddJTAGMATLABASAXIMasterParameter и JTAGMATLABASAXIMasterDefureValue, в которых автор ссылочного проекта может задать для этих свойств отключение или даже отключение параметра, чтобы он не появлялся в помощнике по рабочим процессам HDL.
% Insert JTAG MATLAB as AXI Master in reference designs hRD.AddJTAGMATLABasAXIMasterParameter = true; hRD.JTAGMATLABasAXIMasterDefaultValue = 'on';
1. Параметр видимости параметра в HDLWA: Если вы не хотите, чтобы JTAG MATLAB в качестве AXI Master IP был вставлен в созданную ссылочную конструкцию, отключите это свойство: hRD.AddJTAGMATLABASAXIMasterParameter в значении false.
2. Значение параметра по умолчанию: в созданном ссылочном проекте можно управлять свойством hRD.JTAGMATLABASAXIMasterDefureValue для «on» или «off».