То В этом примере показано, как использовать Рабочий процесс Генерации Ядра IP HDL Coder™, чтобы разработать исходный дизайн для частей Xilinx® без встроенного существующего процессора ARM®, но которые все еще используют HDL Coder™, сгенерировало интерфейс AXI, чтобы управлять DUT. Этот пример использует MATLAB, когда Ведущий IP AXI от HDL Verifier™, чтобы получить доступ к сгенерированным регистрам DUT HDL Coder™ путем включения опции параметра исходного проекта Вводит MATLAB JTAG как Ведущее устройство AXI. Можно затем получить доступ к регистрам DUT из MATLAB непосредственно. В качестве альтернативы можно использовать Xilinx Ведущее устройство JTAG AXI, чтобы получить доступ к использованию регистров DUT Консоль Vivado Tcl путем записи команд Tcl. Для Xilinx Ведущее устройство JTAG AXI необходимо создать пользовательский исходный проект. Проект FPGA реализован на плате Xilinx Kintex-7 KC705.
Набор Проекта Xilinx Vivado, с поддерживаемой версией, перечисленной в документации HDL Coder
Макетная плата Xilinx Kintex-7 KC705
Пакет поддержки HDL Coder™ для Советов FPGA Xilinx
(Необязательно) HDL Verifier™ поддерживает пакет для Советов FPGA Xilinx
Существует много проектов, которые извлекут выгоду из использования Рабочего процесса Генерации Ядра IP HDL Coder™, не используя или встроенный процессор ARM® или Пакет Поддержки Embedded Coder™, но которые все еще усиливают сгенерированные AXI4-облегченные регистры HDL Coder. Эти проекты включают:
HDL Verifier™ MATLAB как ведущее устройство AXI + ядро IP HDL Coder™
Xilinx ведущее устройство JTAG + ядро IP HDL Coder™
MicroBlaze™ + ядро IP HDL Coder™
Конечная точка PCIe + ядро IP HDL Coder™
Существует два исходных проекта, включенные в этот пример:
Default system
исходный проект использует MathWorks IP и интерфейс командной строки MATLAB для издания чтения, и команды записи путем включения опции параметра исходного проекта "Вводят MATLAB JTAG как Ведущее устройство AXI". Обратите внимание на то, что, чтобы использовать этот параметр, необходимо было установить HDL Verifier™.
Xilinx JTAG to AXI Master
исходный проект использует IP Vivado для JTAG Ведущему устройству AXI и поэтому требует, чтобы использование консоли Vivado Tcl выпустило чтения и записи.
Эти два исходных проекта почти идентичны, за исключением Основного IP JTAG, используемого в блок-схеме, показанной ниже:
Исходный проект, "Xilinx JTAG Ведущему устройству AXI", использует IP Vivado™ для JTAG Ведущему устройству AXI и поэтому требует, чтобы использование консоли Vivado™ Tcl выпустило чтения и записи:
Задайте Вводят MATLAB JTAG как Ведущее устройство AXI (Необходимый HDL Verifier) к на в Целевой задаче Исходного проекта Набора IP Core Generation
рабочий процесс. Это добавляет MATLAB Ведущий IP AXI автоматически в исходный проект и подключения к IP DUT с помощью ведомого интерфейса AXI4. Подробные шаги к автоматической вставке Ведущее устройство JTAG AXI MATLAB в исходном проекте обсуждены в следующем разделе.
Следующие инструкции в этом разделе применяются к Default System
исходный проект, который использует MATLAB JTAG as AXI Master
. Используя этот исходный проект, можно сгенерировать Ядро IP HDL, которое мигает светодиодами на плате KC705.
1. Создайте путь к инструменту Xilinx Vivado™ при помощи следующей команды:
hdlsetuptoolpath('ToolName', 'Xilinx Vivado', 'ToolPath', 'C:\Xilinx\Vivado\2019.1\bin\vivado.bat');
Используйте свой собственный путь к установке Xilinx Vivado™ при выполнении команды.
2. Откройте модель Simulink, которая реализует мигание LED с помощью команды:
open_system('hdlcoder_led_blinking')
3. Запустите HDL Workflow Advisor от hdlcoder_led_blinking/led_counter
подсистема путем щелчка правой кнопкой по led_counter
подсистема и HDL Code выбора> HDL Workflow Advisor.
4. В Цели Набора> Целевое устройство Набора и задача Инструмента Синтеза, для Целевого рабочего процесса, выбирают IP Core Generation
, Для Целевой платформы выберите Xilinx Kintex-7 KC705 development board
и Нажмите Run This Task, чтобы запустить задачу Инструмента Целевого устройства и Синтеза Набора
5. В Цели Набора> Целевая задача Исходного проекта Набора, Выберите Default System
как исходный проект и набор Insert JTAG MATLAB as AXI Master
выпадающий выбор к on
который присутствует в опциях параметра исходного проекта.
6. В Цели Набора> Поставившая Целевая Интерфейсная задача, выберите AXI4-Lite
для Blink_frequency, Blink_direction и Read_back. Выберите LEDs General Purpose [0:7]
для LED.
7. Запустите остающиеся шаги в рабочем процессе, чтобы сгенерировать поток битов и программировать целевое устройство.
Заметьте, что различающийся находящийся в Zynq исходный проект, существует, не Генерируют задачу Модели Программного интерфейса. Это показывают в следующем рисунке.
Базовый адрес для Ядра IP HDL Coder™ задан как 0x40000000
для Default System
исходный проект, который использует MATLAB Ведущий IP AXI. Вы видите это в сгенерированном отчете Ядра IP как показано в следующем рисунке.
Смещения могут быть найдены в таблице IP Core Report Register Address Mapping:
Если пакет поддержки HDL Verifier для плат FPGA Xilinx установлен и исходный проект "MATLAB, когда Ведущий исходный проект" AXI выбран, то простой интерфейс командной строки MATLAB может быть использованием, чтобы получить доступ к ядру IP, сгенерированному HDL Coder.
1. создайте объект шаблона AXI
h = aximaster('Xilinx')
2. Дайте простую команду записи. Например, чтобы отключить DUT
h.writememory('40000004', 0)
3. Чтобы повторно включить DUT, используйте следующую команду записи
h.writememory('40000004', 1)
4. Дайте команду чтения. Например, чтобы считать текущее встречное значение
h.readmemory('40000108',1)
5. Удалите объект, когда сделано, чтобы освободить ресурс JTAG. Если объект не будет удален, другие операции JTAG, такие как программирование FPGA перестанут работать.
delete(h)
Необходимо создать пользовательский исходный проект, чтобы использовать Xilinx Ведущее устройство JTAG AXI в исходном проекте и затем добавить файлы исходного проекта в путь MATLAB с помощью addpath
команда.
Чтобы получить доступ к использованию регистров Ядра IP HDL Coder™ Xilinx Ведущее устройство JTAG AXI, базовый адрес задан в файле плагина исходного проекта.
Этот пример будет использовать одинокую консоль Vivado Tcl для основных команд, чтобы выпустить чтения и записи. Следующие команды могут использоваться, чтобы открыть устройство JTAG и установить 'разрешение' и 'отключить' запись к DUT. Они могут быть введены непосредственно в консоль Vivado Tcl или сохраненные в файле Tcl и получили. Для простоты, копия следующие команды Tcl в файл "open_jtag.tcl":
# Open connection to the JTAG Master open_hw connect_hw_server open_hw_target refresh_hw_device [lindex [get_hw_devices] 0]
# Create some reads/writes create_hw_axi_txn wr_enable [get_hw_axis hw_axi_1] -address 44a0_0004 -data 0000_0001 -type write create_hw_axi_txn wr_disable [get_hw_axis hw_axi_1] -address 44a0_0004 -data 0000_0000 -type write
Теперь запустите консоль Vivado™ Tcl, получив файл, который вы только создали:
>> system('vivado -mode tcl -source open_jtag.tcl&')
Когда вы закончите с помощью Ведущего устройства JTAG, закройте связь с помощью следующих команд Tcl:
# Close and disconnect from the JTAG Master close_hw_target; disconnect_hw_server;
Используя JTAG Ведущему устройству AXI простой способ взаимодействовать через интерфейс с регистрами ядра IP HDL Coder™ в системах, которые не имеют встроенного процессора ARM®, такого как Kintex-7. Это может использоваться в качестве первого шага, чтобы отладить одинокие ядра IP HDL Coder™, используемые до программного обеспечения кодирования руки для мягких процессоров, таких как MicroBlaze™, или как простой способ к настройкам параметров в рабочей системе.