Рабочий процесс генерации ядра IP без встроенного процессора ARM: Xilinx Kintex-7 KC705

То В этом примере показано, как использовать Рабочий процесс Генерации Ядра IP HDL Coder™, чтобы разработать исходный дизайн для частей Xilinx® без встроенного существующего процессора ARM®, но которые все еще используют HDL Coder™, сгенерировало интерфейс AXI, чтобы управлять DUT. Этот пример использует MATLAB, когда Ведущий IP AXI от HDL Verifier™, чтобы получить доступ к сгенерированным регистрам DUT HDL Coder™ путем включения опции параметра исходного проекта Вводит JTAG MATAB как Ведущее устройство 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

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

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

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

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

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

  3. MicroBlaze™ + ядро IP HDL Coder™

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

Существует два исходных проекта, включенные в этот пример:

  • Default system исходный проект использует MathWorks IP и интерфейс командной строки MATLAB для издания чтения, и команды записи путем включения опции параметра исходного проекта "Вводят JTAG MATAB как Ведущее устройство 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 выпустило чтения и записи:

1. HDL Verifier™ MATLAB как Ведущий исходный проект AXI

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

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

Следующие инструкции в этом разделе применяются к 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

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

Смещения могут быть найдены в таблице IP Core Report Register Address Mapping:

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

Если пакет поддержки 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)

2. Xilinx Ведущий исходный проект JTAG

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

Чтобы получить доступ к использованию регистров Ядра IP HDL Coder™ Xilinx Ведущее устройство JTAG 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 HDL Coder™, используемые до программного обеспечения кодирования руки для мягких процессоров, таких как MicroBlaze™, или как простой способ к настройкам параметров в рабочей системе.