Доступ к регистрам DUT на Xilinx чистый Совет FPGA Используя рабочий процесс генерации ядра IP

То В этом примере показано, как использовать рабочий процесс генерации ядра IP HDL Coder™, чтобы разработать исходный дизайн для частей Xilinx®, которые не используют встроенный существующий процессор ARM®, но которые все еще используют HDL Coder, сгенерировало интерфейс AXI, чтобы управлять проектом под тестом (DUT). Этот пример использует HDL Verifier™ MATLAB®, когда Ведущий IP AXI, чтобы получить доступ к сгенерированным регистрам DUT HDL Coder путем включения опции параметра исходного проекта Вставляет MATLAB JTAG как Ведущее устройство AXI. Можно затем получить доступ к регистрам DUT из MATLAB непосредственно. В качестве альтернативы можно использовать Ведущее устройство JTAG AXI Xilinx, чтобы получить доступ к регистрам DUT с помощью консоли Vivado® Tcl путем записи команд Tcl. Для Ведущего устройства JTAG AXI Xilinx необходимо создать пользовательский исходный проект. Проект FPGA реализован на плате Xilinx Kintex®-7 KC705.

Требования

  • Набор Проекта Xilinx Vivado, с поддерживаемой версией, перечисленной в

  • Макетная плата Xilinx Kintex-7 KC705

  • Пакет поддержки HDL Coder для Советов FPGA Xilinx

  • Пакет поддержки HDL Verifier для Советов FPGA Xilinx

Макетная плата Xilinx Kintex-7 KC705

Этот рисунок показывает макетную плату Xilinx Kintex-7 KC705.

Исходные проекты в качестве примера

Проекты, которые могут извлечь выгоду из использования рабочего процесса генерации ядра IP HDL Coder, не используя или встроенный процессор ARM или пакет поддержки Embedded Coder™, но все еще усилить сгенерированные AXI4-облегченные регистры HDL Coder, могут включать один из этих наборов IP.

  • HDL Verifier MATLAB как ведущее устройство AXI + ядро IP HDL Coder

  • Xilinx ведущее устройство JTAG + ядро IP HDL Coder

  • MicroBlaze™ + ядро IP HDL Coder

  • Конечная точка PCIe + ядро IP HDL Coder

Этот пример включает два исходных проекта.

  • Системный исходный проект По умолчанию использует MathWorks® IP и интерфейс командной строки MATLAB для издания чтения, и команды записи путем включения опции параметра исходного проекта Вставляют MATLAB JTAG как Ведущее устройство AXI. Чтобы использовать этот параметр, у вас должен быть продукт HDL Verifier.

  • JTAG Xilinx к Основному исходному проекту AXI использует IP Vivado для JTAG Ведущему устройству AXI и требует, чтобы использование консоли Vivado Tcl выпустило команды записи и чтение.

Эти два исходных проекта отличаются только Основным IP JTAG, который они используют, когда этот рисунок показывает.

HDL Verifier MATLAB ведущий исходный проект AXI

В рабочем процессе генерации ядра IP HDL Workflow Advisor, на Целевом шаге Исходного проекта Набора, выбирают Insert JTAG MATLAB как Ведущее устройство AXI (требуемый HDL Verifier) параметр. Эта опция добавляет MATLAB как Ведущий IP AXI автоматически в исходный проект и соединяет добавленный IP с IP DUT с помощью AXI4-ведомого интерфейса. Следующий раздел детализирует шаги, чтобы автовставить MATLAB JTAG как Ведущий IP AXI в исходном проекте.

Выполните рабочий процесс ядра IP

Выполните эти шаги, чтобы выполнить рабочий процесс ядра IP для Системного исходного проекта По умолчанию, который использует MATLAB JTAG в качестве Ведущего IP AXI. Используя этот исходный проект, можно сгенерировать ядро IP HDL, которое мигает светодиодами на плате KC705. Чтобы сгенерировать ядро IP HDL, выполните эти шаги.

1. Создайте путь к инструменту Xilinx Vivado путем выполнения этой команды в MATLAB. Используйте свой собственный путь к установке Xilinx Vivado при выполнении команды.

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

2. Откройте модель Simulink, которая реализует LED, мигающий путем выполнения этой команды в MATLAB.

open_system('hdlcoder_led_blinking')

3. Запустите HDL Workflow Advisor от hdlcoder_led_blinking/led_counter подсистема путем щелчка правой кнопкой по led_counter подсистема и HDL Code выбора сопровождаются HDL Workflow Advisor.

4. На шаге 1.1 выберите рабочий процесс Target как IP Core Generation и Целевая платформа как Xilinx Kintex-7 KC705 development board. Нажмите Run This Task.

5. На шаге 1.2 выберите Исходный проект как Default System. Под параметрами Исходного проекта выберите Insert JTAG MATLAB как Ведущее устройство AXI (требуемый HDL Verifier) как on.

6. На шаге 1.3, присвоение Blink_frequency, Blink_direction и Read_back порты к интерфейсу AXI4. Присвойте порт LED LEDs General Purpose [0:7].

7. Запустите остающиеся шаги в рабочем процессе, чтобы сгенерировать поток битов и программировать целевое устройство.

В отличие от находящегося в Zynq исходного проекта, не существует Сгенерировать задача Модели Программного интерфейса, когда этот рисунок показывает.

Определите адреса из отчета ядра IP

Базовый адрес для ядра IP HDL Coder задан как 0x40000000 для Системного исходного проекта По умолчанию, который использует MATLAB в качестве Ведущего IP AXI. Вы видите, что адрес устанавливает в сгенерированном отчете ядра IP как показано в этом рисунке.

Таблица отображения адресов регистра отчета ядра IP показывает смещения.

Интерфейс командной строки HDL Verifier

Если у вас есть пакет поддержки HDL Verifier для плат FPGA Xilinx, выберите MATLAB как Ведущий исходный проект AXI, то можно использовать интерфейс командной строки MATLAB, чтобы получить доступ к ядру IP, которое сгенерировано продуктом HDL Coder.

Чтобы записать и читать из памяти DDR, выполните эти шаги.

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

Создайте пользовательский исходный проект, чтобы использовать JTAG Xilinx для Основного IP AXI в исходном проекте, и затем добавить файлы исходного проекта в путь MATLAB с помощью addpath команда.

Доступ к регистрам ядра IP HDL Coder с помощью JTAG Xilinx для Основного IP AXI при помощи базового адреса, который задан в файле плагина исходного проекта.

Vivado Tcl управляет для чтения 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 в качестве первого шага, чтобы отладить автономные ядра IP HDL Coder, до программного обеспечения кодирования руки для мягких процессоров, (таких как MicroBlaze), или как путь к настройкам параметров в рабочей системе.