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

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

Требования

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

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

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

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

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

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

Этот рисунок показывает Стреле ДЕКУ МАКСА 10 оценочных комплектов FPGA.

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

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

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

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

  • Ядро Nios® II + HDL Coder IP

  • Ядро PCIe® Endpoint + HDL Coder IP

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

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

  • JTAG Intel к Основному исходному проекту AXI использует Куарта ИПА для JTAG Ведущему устройству AXI и требует, чтобы использование консоли Quartus 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, которое мигает светодиодами на плате DECA. Чтобы сгенерировать ядро IP HDL, выполните эти шаги.

1. Настройте инструмент path Intel Quartus®. Используйте свой собственный Intel путь к установке Куарта путем выполнения этой команды в MATLAB.

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

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 и Целевая платформа как Arrow DECA MAX 10 FPGA evaluation kit. Нажмите 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. Запустите остающиеся шаги в рабочем процессе, чтобы сгенерировать поток битов и программировать целевое устройство.

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

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

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

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

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

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

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

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

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

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

Прежде, чем открыть системную консоль, выберите соответствующее чтение Ксиса и команды записи. В данном примере, потому что весь HDL Coder сгенерировал регистры ядра IP, в настоящее время 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® и введите команды, чтобы открыть Ведущее устройство 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 в качестве первого шага, чтобы отладить автономные ядра IP HDL Coder, до программного обеспечения кодирования руки для мягких процессоров, (таких как Nios II), или как путь к настройкам параметров в рабочей системе.