Рабочий процесс генерации ядра IP без встроенного процессора ARM: стрела ДЕКА МАКС 10 оценочных комплектов FPGA

То В этом примере показано, как использовать Рабочий процесс Генерации Ядра IP HDL Coder™, чтобы разработать исходный дизайн для частей Intel® без встроенного существующего процессора ARM®, но которые все еще используют HDL Coder™, сгенерировало интерфейс AXI, чтобы управлять DUT. Этот пример использует MATLAB, когда Ведущий IP AXI от HDL Verifier™, чтобы получить доступ к сгенерированным регистрам DUT HDL Coder™ путем включения опции параметра исходного проекта Вводит MATLAB JTAG как Ведущее устройство AXI. Можно затем получить доступ к регистрам DUT из MATLAB непосредственно. В качестве альтернативы можно использовать Intel Qsys (TM) JTAG для IP Авэлон Мэстер-Бридж, чтобы получить доступ к использованию регистров FPGA команды Tcl в Системной Консоли Qsys. Для Intel Ведущее устройство JTAG AXI необходимо создать пользовательский исходный проект. Проект FPGA реализован на Стреле ДЕКА МАКС 10 оценочных комплектов FPGA.

Требования

  • Intel Куарт Прайм, с поддерживаемой версией, перечисленной в документации HDL Coder

  • Стрела ДЕКА МАКС 10 оценочных комплектов FPGA

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

  • Пакет поддержки HDL Verifier™ для Советов FPGA Intel (Необязательно)

  • Пакет Поддержки HDL Coder™ для Устройств Intel SoC (Дополнительный: интегрировать ядро IP в ваш собственный исходный проект.)

Стрела ДЕКА МАКС 10 оценочных комплектов FPGA

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

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

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

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

  3. Ядро Nios® II + HDL Coder™ IP

  4. Ядро PCIe® Endpoint + HDL Coder™ IP

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

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

  • Intel JTAG to AXI Master исходный проект использует Куарта ИПА для JTAG Ведущему устройству AXI и поэтому требует, чтобы использование консоли Quartus Tcl выпустило чтения и записи.

Эти два исходных проекта почти идентичны, за исключением Основного IP JTAG, показанного в блок-схеме.

Исходный проект, "Altera JTAG Ведущему устройству AXI", использует IP Qsys™ для JTAG Ведущему устройству AXI и поэтому требует, чтобы использование Intel® System Console выпустило чтения и записи:

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, которое мигает светодиодами на плате DECA.

1. Создайте путь к инструменту Intel Quartus™. Замените путь к установке Quartus™ на свою локальную установку

hdlsetuptoolpath('ToolName', 'Altera QUARTUS II', 'ToolPath', 'C:\intelFPGA\18.1\quartus\bin64\quartus.exe');

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, Для Целевой платформы выберите Arrow DECA MAX 10 FPGA evaluation kit и Нажмите Run This Task, чтобы запустить задачу Инструмента Целевого устройства и Синтеза Набора

5. В Цели Набора> Целевая задача Исходного проекта Набора, Выберите Default System как исходный проект и набор Insert JTAG MATLAB as AXI Master выпадающий выбор к on который присутствует в опциях параметра исходного проекта.

6. В Цели Набора> Поставившая Целевая Интерфейсная задача, выберите AXI4 для Blink_frequency, Blink_direction и Read_back. Выберите LEDs General Purpose [0:7] для LED.

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

Заметьте, что различающийся Intel находящийся в SoC исходный проект, существует не, 'Генерируют задачу' Модели Программного интерфейса. Это показывают в следующем рисунке.

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

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

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

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

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

1. Создайте объект шаблона AXI

h = aximaster('Altera')

2. Выпустите простую запись команды. Например, чтобы отключить DUT

h.writememory('4', 0)

3. Чтобы повторно включить DUT, используйте следующую команду записи

h.writememory('4', 1)

4. Считать текущее встречное значение

h.readmemory('108', 1)

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

delete(h)

Intel Ведущий исходный проект JTAG AXI

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

Чтобы получить доступ к использованию регистров Ядра IP HDL Coder™ Intel Ведущее устройство JTAG AXI, базовый адрес задан в файле плагина исходного проекта.

Системная консоль Qsys команды Tcl для чтения AXI и записи

Прежде чем мы откроем Системную Консоль, позволяет взгляду на основные команды, чтобы выпустить чтения и записи. Существует много разновидностей чтения Ксиса и методов записи, но мы будем использовать следующее, поскольку сгенерированные регистры Ядра IP всего HDL Coder™ - в настоящее время 32 бита:

% master_write_32 <service-path> <start-address> <list-of-32-bit-values>
% master_read_32  <service-path> <start-address> <size-in-multiples-of-32-bits>

Например, примите, что мы хотели бы записать шестнадцатеричное значение на 32 бита '0x12345678' в регистр Ядра IP, заданный смещением '0x100' использование ранее заданного сервисного пути, сохраненного в переменной $jtag:

% master_write_32 $jtag 0x100 0x12345678

Прежде чем можно будет сгенерировать чтения и записи, необходимо сначала запустить Системную Консоль и открыть связь с Ведущим устройством JTAG, которое выпустит чтения регистра и записи. Обратитесь снова к системной схеме ниже:

Чтобы открыть связь с Ведущим устройством JTAG, сначала установите переменную, которая хранит сервисный путь (в этом случае, существует только одно ведущее устройство):

% set jtag [lindex [get_service_paths master] 0]

Затем используйте переменную, чтобы открыть Ведущее устройство JTAG в привилегированном режиме.

% open_service master $jtag

Теперь запустите Altera® System Console и введите команды, чтобы открыть jtag ведущее устройство:

>> system('C:\intelFPGA\17.1\quartus\sopc_builder\bin\system-console&')

Когда вы закончите с помощью Ведущего устройства JTAG, убедитесь, что закрыли связь с помощью следующей команды Tcl:

  close_service master $jtag

Сводные данные

Используя JTAG Ведущему устройству AXI простой способ взаимодействовать через интерфейс с регистрами ядра IP HDL Coder™ в системах, которые не имеют встроенного процессора ARM®, такого как MAX 10. Это может использоваться в качестве первого шага, чтобы отладить автономные ядра IP HDL Coder™, используемые до кодирующего руку программного обеспечения для мягких процессоров, таких как Nios® II, или как простой способ к настройкам параметров в рабочей системе.