exponenta event banner

Рабочий процесс поколения IP Core без встроенного процессора ARM: стрелка DECA MAX 10 FPGA Оценочный комплект

Этот пример показывает, как использовать IP HDL Coder™ Основной Технологический процесс Поколения, чтобы разработать справочный дизайн для частей Intel® без встроенного существующего процессора ARM®, но которые все еще используют произведенный интерфейс AXI HDL Coder™, чтобы управлять DUT. В этом примере MATLAB используется в качестве главного IP-адреса AXI из Verifier™ HDL для доступа к созданным Coder™ HDL регистрам DUT путем включения опции ссылочного параметра конструкции Вставить мастер JTAG MATLAB в качестве главного регистра AXI. Затем можно получить доступ к регистрам DUT непосредственно из MATLAB. Вы также можете использовать Intel Qsys (TM) JTAG к Avalon Master Bridge IP для доступа к регистрам FPGA с помощью команд Tcl в системной консоли Qsys. Для Intel JTAG AXI Master необходимо создать пользовательский эталонный дизайн. Конструкция FPGA реализована на оценочном комплекте Arrow DECA MAX 10 FPGA.

Требования

  • Intel Quartus Prime с поддерживаемой версией, указанной в документации по кодеру HDL

  • Стрелка DECA MAX 10 Комплект для оценки FPGA

  • Пакет поддержки HDL Coder™ для системных плат Intel FPGA

  • Пакет поддержки HDL Verifier™ для системных плат Intel FPGA (опционально)

  • Пакет поддержки HDL Coder™ для устройств Intel SoC (опционально: интеграция IP-ядра в собственный эталонный дизайн).

Стрелка DECA MAX 10 Комплект для оценки FPGA

Примеры ссылочных конструкций

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

  1. HDL Verifier™ MATLAB в качестве ядра AXI Master + HDL Coder™ IP

  2. Ядро JTAG Master + HDL Coder™ IP

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

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

В этот пример включены две ссылочные конструкции:

  • Default system в ссылочном проекте используется IP MathWorks и интерфейс командной строки MATLAB для ввода команд чтения и записи путем включения опции ссылочного параметра конструкции «Insert JTAG MATLAB as AXI Master». Для использования этого параметра необходимо установить Verifier™ HDL.

  • Intel JTAG to AXI Master эталонный дизайн использует Quartus IP для JTAG до AXI Master и поэтому требует использования консоли Quartus Tcl для выполнения операций чтения и записи.

Две эталонные конструкции почти идентичны, за исключением ведущего IP-адреса JTAG, показанного на блок-схеме.

Эталонная конструкция Altera JTAG to AXI Master использует Qsys™ IP для JTAG to AXI Master и поэтому требует использования системной консоли Intel ® для чтения и записи:

1. HDL Verifier™ MATLAB в качестве эталонного проекта AXI Master

Укажите команду Вставить JTAG MATLAB как мастер AXI (требуется верификатор HDL), чтобы включить в задаче Задать целевое ссылочное проектирование (Set Target Reference Design) в IP Core Generation workflow-процесс. При этом MATLAB AXI Master IP автоматически добавляется в эталонную конструкцию и подключается к DUT IP AXI4 подчиненному интерфейсу. Подробные шаги по автоматической вставке MATLAB JTAG AXI Master в эталонную конструкцию рассматриваются в следующем разделе.

Выполнение рабочего процесса IP Core

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

open_system('hdlcoder_led_blinking')

3. Запуск помощника по рабочим процессам HDL из hdlcoder_led_blinking/led_counter путем щелчка правой кнопкой мыши по led_counter и выберите «Код HDL» > «Помощник по рабочим процессам HDL».

4. В задании Set Target > Set Target Device and Synthesis Tool в поле Target workflow выберите IP Core Generation, Для целевой платформы выберите Arrow DECA MAX 10 FPGA evaluation kit и нажмите кнопку Run This Task, чтобы запустить задачу Set Target Device and Synthesis Tool

5. В задаче «Задать целевой объект» > «Задать целевой ссылочный проект» выберите «Выбрать» Default System в качестве эталонного проекта и набора Insert JTAG MATLAB as AXI Master раскрывающийся список для on которая присутствует в опциях ссылочных параметров конструкции.

6. В задании Set Target > Set Target Interface выберите AXI4 для Blink_frequency, Blink_direction и Read_back. Выбирать LEDs General Purpose [0:7] для светодиода.

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

Обратите внимание, что в отличие от эталонного проекта на базе Intel SoC, не существует задачи «Создание модели интерфейса программного обеспечения». Это показано на следующем рисунке.

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

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

Смещения можно найти в таблице сопоставления адресов регистров основных отчетов IP:

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

Если установлен пакет поддержки HDL Verifier для плат Intel FPGA и выбран эталонный дизайн «MATLAB as AXI Master», то для доступа к ядру IP, сгенерированному кодером HDL, можно использовать простой интерфейс командной строки MATLAB.

1. Создание главного объекта AXI

h = aximaster('Altera')

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

h.writememory('4', 0)

3. Для повторного включения DUT используйте следующую команду write

h.writememory('4', 1)

4. Чтение текущего значения счетчика

h.readmemory('108', 1)

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

delete(h)

Эталонный дизайн Intel JTAG AXI Master

Для использования Intel JTAG AXI Master в эталонном дизайне необходимо создать пользовательский эталонный дизайн, а затем добавить файлы эталонного дизайна в путь MATLAB с помощью addpath команда.

Для доступа к регистрам HDL Coder™ IP Core с помощью Intel JTAG AXI Master базовый адрес определяется в файле эталонного подключаемого модуля.

Команды Qsys System Console Tcl для чтения и записи AXI

Прежде чем открыть системную консоль, рассмотрим основные команды для выполнения операций чтения и записи. Существует ряд способов чтения и записи Qsys, но мы будем использовать следующее, поскольку все регистры IP Core, сгенерированные Coder™ HDL, в настоящее время являются 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 Master, которое будет выдавать операции чтения и записи в регистр. Снова обратитесь к приведенной ниже схеме системы:

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

% set jtag [lindex [get_service_paths master] 0]

Затем используйте переменную для открытия JTAG Master в режиме master.

% open_service master $jtag

Запустите системную консоль Altera ® и введите команды, чтобы открыть мастер jtag:

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

По завершении работы с JTAG Master убедитесь в закрытии соединения с помощью следующей команды Tcl:

  close_service master $jtag

Резюме

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