В этом примере показано, как задать и указать плату и исходный проект для комплекта разработчика Intel Arria10 SoC и использовать рабочий процесс элемента кода аппаратного программного обеспечения, чтобы мигнуть светодиодами на различных частотах на комплекте разработчика Intel Arria 10 SoC.
Используя этот пример, можно указать комплект разработчика Arria 10 SoC и исходный проект в HDL Workflow Advisor. Исходный проект также показывает Ранний ввод-вывод (Поток битов разделения) функция, поддерживавшая Intel Arria 10 SoC в HDL Workflow Advisor. Этим примером является пошаговое руководство, которое помогает вам использовать программное обеспечение HDL Coder™, чтобы сгенерировать пользовательское ядро IP HDL, которое мигает светодиодами на комплекте разработчика Intel Arria 10 SoC и показывает, как использовать Embedded Coder®, чтобы сгенерировать код С, который работает на процессоре ARM®, чтобы управлять частотой мигания LED.
Можно использовать MATLAB® и Simulink®, чтобы спроектировать, симулировать, и проверить приложение, выполнить то, что - если сценарии с алгоритмами, и оптимизируют параметры. Можно затем подготовить проект к аппаратной и программной реализации на Intel Arria 10 SoC путем решения, какие системные элементы выполняются программируемой логикой, и какие системные элементы будут работать на ARM Cortex-A9.
В этом рабочем процессе вы выполняете следующие шаги:
Настройте свое оборудование Intel SoC и инструменты.
Создайте исходный проект для Intel Arria 10 SoC, который использует Раннюю функцию ввода-вывода.
Разделите свой проект для аппаратной и программной реализации.
Сгенерируйте ядро IP HDL использование HDL Workflow Advisor.
Интегрируйте ядро IP в проект Разработчика Платформы Intel Ксиса и программируйте оборудование Intel SoC.
Сгенерируйте модель программного интерфейса.
Сгенерируйте код С из модели программного интерфейса и запустите его на процессоре ARM Cortex-A9.
Настройки параметров и получение следуют из оборудования Intel SoC с помощью Режима external mode.
Intel Куарт Про (или Intel КУАРТ II), с поддерживаемой версией, перечисленной в документации HDL Coder
Intel SoC встроенный набор проекта
Комплект разработчика Intel Arria 10 SoC
Пакет поддержки HDL Coder для устройств Intel SoC
Пакет поддержки Embedded Coder для устройств Intel SoC
1. Настройте Arria 10 SoC как показано на рисунке ниже. Чтобы узнать больше о настройке оборудования Arria 10 SoC, обратитесь к документации платы.
1.1 Настройте Dip-переключатели и настройки Jumper как показано на рисунке ниже.
1.2 Соедините UART USB Набора Arria10 SoC с помощью кабеля micro-USB для компьютера. Убедитесь, что ваши драйверы USB-устройства, такой что касается USB FTDI к UART, установлены правильно. В противном случае ищите драйверы онлайн и установите их.
1.3 Соедините Набор Arria10 SoC со своим использующим компьютеры кабель Ethernet.
2. Установите HDL Coder и Пакеты Поддержки Embedded Coder для Устройств Intel SoC, если вы уже не имеете. Чтобы запустить инсталлятор, перейдите к панели инструментов MATLAB и нажмите Add-Ons> Get Hardware Support Packages. Для получения дополнительной информации обратитесь к Документации по установке Пакета Поддержки.
3. Убедитесь, что вы используете изображение SD-карты, обеспеченное Пакетом Поддержки Embedded Coder для Устройств Intel SoC. Если необходимо обновить изображение SD-карты, обратитесь к разделу Hardware Setup этого документа.
4. Настройте аппаратную Arria10 SoC связь путем ввода следующей команды в окно команды MATLAB:
h = alterasoc
alterasoc
функция входит в систему оборудования через COM-порт и запускает ifconfig
команда, чтобы получить IP-адрес платы. Эта функция также тестирует соединение Ethernet.
5. Можно опционально протестировать последовательную связь с помощью следующей настройки с помощью программы, такой как PuTTY™. BaudRate: 115200
DataBits: 8
StopBits: 1
Четность: None
FlowControl: None
. Необходимо смочь наблюдать Linux, загружающий вход в систему последовательная консоль, когда вы подвергаете циклу включения и выключения питания плату Arria10 SoCKit. Необходимо закрыть эту последовательную связь перед использованием alterasoc
функционируйте снова.
6. Настройте инструмент path синтеза Куарта Про Intel используя следующую команду в окне команды MATLAB. Используйте свой собственный путь к установке Куарта, когда вы запустите команду.
hdlsetuptoolpath('ToolName', 'Intel Quartus Pro', 'ToolPath', 'C:\intelFPGA\19.4\quartus\bin64\qpro.exe');
Если вы используете Intel КУАРТ II, Использование следовать команда:
hdlsetuptoolpath('ToolName', 'Intel QUARTUS II', 'ToolPath', 'C:\intelFPGA\18.1\quartus\bin64\quartus.exe');
Исходный проект получает полную структуру проекта SoC, задавая различные компоненты и их соединения. Рабочий процесс SoC HDL Coder генерирует ядро IP, которое объединяется с исходным проектом и затем используется, чтобы программировать плату SoC. Следующая фигура описывает отношение между исходным проектом, ядром IP HDL и платой SoC
В этом разделе мы обрисовываем в общих чертах основные шаги, необходимые, чтобы создать и экспортировать простой исходный проект с помощью Intel Куарт Про и Разработчик Платформы (QSys) среда. Для получения дополнительной информации об инструменте системной интеграции QSys, обратитесь к документации Intel.
1. Создайте пустой проект Куарта с помощью мастера Нового проекта с номером детали устройства как показано в следующем рисунке.
2. Инициализируйте Разработчика Платформы (Qsys) в Куарте Про путем навигации к Инструментам-> Разработчик Платформы как показано в следующем рисунке.
3. Выберите Hard Processor System Intel Arria 10 FPGA IP (HPS), часы и сбросьте дюйм/с от каталога IP до созданного проекта Разработчика Платформы. Соедините необходимые часы и сброс к Arria 10 HPS IP как показано в следующем рисунке. завершите другие настройки, требуемые для Arria 10 Твердая Система Процессора, такие как Периферийный набор контакта и настройки режима.
4. Сохраните h2f_axi_master подключение порта открытым для того, чтобы соединиться с IP DUT во время процесса интегрирования IP рабочего процесса. Полная остальная часть связей между IP PLL Altera и IP HPS как показано в следующем рисунке.
5. Сохраните файл Qsys. Этот файл используется, когда вы создаете плагин исходного проекта.
В этом разделе Вы указываете комплект разработчика Intel Arria 10 SoC в HDL Workflow Advisor.
1. Создайте файл регистрации плат с именем hdlcoder_board_customization.m
и добавьте его в путь MATLAB.
Для получения дополнительной информации о создании файла регистрации плат относитесь, чтобы Задать Пользовательский Совет и Исходный проект для Рабочего процесса Intel SoC.
2. Создайте файл определения платы.
Файл определения платы содержит информацию о плате SoC.
Для получения дополнительной информации о создании файла определения платы относитесь, чтобы Задать Пользовательский Совет и Исходный проект для Рабочего процесса Intel SoC.
В этом разделе Вы указываете пользовательский исходный проект в HDL Workflow Advisor.
1. Создайте регистрационный файл с именем исходного проекта hdlcoder_ref_design_customization.m
содержание списка плагинов исходного проекта сопоставлено с платой SoC.
Для получения дополнительной информации о создании пользовательского исходного проекта относитесь, чтобы Задать Пользовательский Совет и Исходный проект для Рабочего процесса Intel SoC.
2. Создайте файл определения исходного проекта.
Файл определения исходного проекта задает интерфейсы между пользовательским исходным проектом и ядром IP HDL, которое сгенерировано HDL Coder рабочий процесс SoC. Для получения дополнительной информации о создании файла определения исходного проекта относитесь, чтобы Задать Пользовательский Совет и Исходный проект для Рабочего процесса Intel SoC.
Ранний ввод-вывод для Arria 10: устройство Intel Arria 10 SoC FPGA поддерживает Ранний Релиз ввода-вывода.
Ранний релиз IO позволяет вам включать DDR функционирование предшествующего программирования базового необработанного двоичного файла (RBF) для ускорения времени начальной загрузки. В этом потоке разделяемый ввод-вывод и твердый ввод-вывод контроллера памяти сконфигурированы и выпустили разрешение немедленный доступ HPS к ним.
Эта функция разделяет последовательность настройки FPGA в две части. Первая часть конфигурирует ввод-вывод FPGA, Разделяемый ввод-вывод и также включает Интерфейс Внешней памяти HPS (EMIF) если существующий. Вторая часть последовательности конфигурирует базовую матрицу FPGA. Путем разделения последовательности настройки Arria10 Твердая Система обработки теперь имеет доступ к Разделяемому вводу-выводу и EMIF, прежде чем матрица FPGA будет сконфигурирована. Это позволяет больше гибкости для проектов, для которых нужны более быстрое время начальной загрузки или альтернативные источники начальной загрузки. В этом Раннем вводе-выводе два Необработанных Двоичных формата (.rbf) файлы сгенерированы: (1) файл peripheral.rbf. (2) файл core.rbf. Вместе, эти конфигурационные файлы содержат те же данные как объединенная настройка .rbf файл, который сгенерирован, когда Ранняя функция Релиза ввода-вывода не используется. peripheral.rbf файл загружается сначала и конфигурирует ввод-вывод FPGA, Разделяемый ввод-вывод и HPS EMIF. core.rbf загружается затем и завершает последовательность настройки FPGA путем конфигурирования матрицы FPGA. После того, как peripheral.rbf успешно загружается, контакты Intel Arria 10 SoC FPGA HPS EMIF выпущены, и интерфейс начинает калибровку.
Чтобы использовать эту функцию, необходимо включить параметру исходного проекта hRD.GenerateSplitBitstream = true;
как показано в ниже plugin_rd файла. Соответственно, если этот параметр исходного проекта сделан верным, он генерирует два .rbf файла для конфигурирования FPGA, как упомянуто выше.
Содержимое этого файла определения исходного проекта plugin_rd.m
похоже на стандартную версию Куарта Intel, различия для Intel, Куарт Про описан ниже.
function hRD = plugin_rd() % Reference design definition
% Construct reference design object hRD = hdlcoder.ReferenceDesign('SynthesisTool', 'Intel Quartus Pro');
%% Add custom design files % add custom Qsys design hRD.addCustomQsysDesign( ... 'CustomQsysPrjFile', 'system_soc.qsys');
% split the full rbf file into core and peripheral rbf files for Early I/O feature
hRD.GenerateSplitBitstream = true;
Первый шаг рабочего процесса элемента кода аппаратного программного обеспечения Intel SoC должен решить который части вашего проекта реализовать на программируемой логике, и который части работать на процессоре ARM.
Группируют все блоки, которые вы хотите реализовать на программируемой логике в атомарную подсистему. Эта атомарная подсистема является контуром вашего раздела аппаратного программного обеспечения. Все блоки в этой подсистеме реализованы на программируемой логике, и все блоки вне этой подсистемы будут работать на процессоре ARM.
В этом примере подсистема led_counter является аппаратной подсистемой. Это моделирует счетчик, который мигает светодиодами на плате FPGA. Два входных порта, Blink_frequency и Blink_direction, являются портами управления, которые определяют частоту мигания LED и направление. Все блоки за пределами подсистемы led_counter для реализации программного обеспечения.
В Simulink можно использовать Усиление Ползунка или Ручной блок switch, чтобы настроить входные значения аппаратной подсистемы. Во встроенном программном обеспечении это означает, что процессор ARM управляет сгенерированным ядром IP путем записи в интерфейс AXI доступных регистров. Выходной порт аппаратной подсистемы, LED, связывает с оборудованием LED. Выходной порт, Read_Back, может использоваться, чтобы считать данные назад в процессор.
open_system('hdlcoder_led_blinking_4bit');
Используя IP Core Generation
рабочий процесс в HDL Workflow Advisor позволяет вам автоматически сгенерировать и допускающий повторное использование модуль ядра IP с обеспечением совместного доступа из модели Simulink. Сгенерированное ядро IP спроектировано, чтобы быть соединенным со встраиваемым процессором на устройстве FPGA. HDL Coder генерирует HDL-код от блоков Simulink, и также генерирует HDL-код для логики интерфейса AXI соединение ядра IP к встраиваемому процессору. Пакеты HDL Coder все сгенерированные файлы в папку ядра IP. Можно затем интегрировать сгенерированное ядро IP с большим FPGA встроенный проект в среде Intel Qsys.
1. Запустите рабочий процесс генерации ядра IP.
1.1. Откройте HDL Workflow Advisor от hdlcoder_led_blinking_4bit/led_counter
подсистема путем щелчка правой кнопкой по led_counter
подсистема и выбор HDL Code> HDL Workflow Advisor.
1.2. В Цели Набора> Целевое устройство Набора и задача Инструмента Синтеза, для Целевого рабочего процесса, выбирают IP Core Generation.
1.3. Для Целевой платформы выберите комплект разработчика Intel Arria 10 SoC. Если у вас нет этой опции, выберите Get больше, чтобы открыть Инсталлятор Пакета Поддержки. В Инсталляторе Пакета Поддержки выберите Intel SoC Devices и следуйте инструкциям, предоставленным Инсталлятором Пакета Поддержки, чтобы завершить установку.
1.4. Выберите инструмент Synthesis как Intel Куарт Про (или Altera КУАРТ II)
1.5. Нажмите Run This Task, чтобы запустить задачу Инструмента Целевого устройства и Синтеза Набора.
1.6. В Цели Набора> Целевая задача Исходного проекта Набора, выберите систему Default. В данном примере это выбрано по умолчанию.
1.7. Нажмите Run This Task, чтобы запустить Целевую задачу Исходного проекта Набора.
2. Сконфигурируйте целевой интерфейс.
Сопоставьте каждый порт в своем DUT к одному из целевых интерфейсов ядра IP. В этом примере входные порты Blink_frequency и Blink_direction сопоставлены с интерфейсом AXI4, таким образом, HDL Coder генерирует интерфейс AXI доступные регистры для них. Выходной порт LED сопоставлен с внешним интерфейсом, светодиодная Общая цель [0:3], который связывает с оборудованием LED на плате Intel SoC.
2.1 В Цели Набора> Поставившая Целевая Интерфейсная задача, выберите AXI4 for Blink_frequency, Blink_direction и Read_back.
2.2 Выберите LEDs General Purpose [0:3] для LED.
2.3 В Цели Набора> Целевая задача Частоты Набора, выберите Target Frequency в качестве 50 МГц.
3. Сгенерируйте ядро IP.
Чтобы сгенерировать ядро IP, щелкните правой кнопкой по Generate RTL Code и задаче IP Core и выберите Run to Selected Task.
4. Сгенерируйте и просмотрите отчет ядра IP.
После того, как вы сгенерируете пользовательское ядро IP, файлы ядра IP находятся в ipcore папке в вашей папке проекта. HTML пользовательский отчет ядра IP сгенерирован вместе с пользовательским ядром IP. Отчет описывает поведение и содержимое сгенерированного пользовательского ядра IP.
5. Следуйте шаг 1 Интегрируют ядро IP с разделом Environment Intel Qsys Начала работы с Предназначением для примера Устройств Intel SoC, чтобы интегрировать ядро IP в исходном проекте и создать проект Qsys.
6. Теперь давайте исследуем проект Intel Qsys, созданный рабочим процессом SoC после завершения Создать задачи Проекта при Интегрировании Встраиваемой системы. Следующий рисунок показывает проект SoC, где мы подсветили Ядро IP HDL. Это поучительно, чтобы сравнить этот проект с предыдущим проектом, используемым в пользовательском плагине исходного проекта для более глубокого понимания отношения между пользовательским исходным проектом и Ядром IP HDL.
7. Следуйте шаги 2, 3 и 4 Интегрируют ядро IP с разделом Environment Intel Qsys Начала работы с Предназначением для примера Устройств Intel SoC, чтобы сгенерировать модель программного интерфейса, сгенерировать поток битов FPGA и целевое устройство программы соответственно.
8. Светодиоды на Arria 10 SoC начнут мигать после загрузки потока битов. Кроме того, можно управлять частотой мигания LED и направлением путем выполнения модели программного интерфейса. Пошлите к примеру, Начинающему с Предназначением для примера Устройств Intel SoC управлять частотой мигания LED и направлением из модели интерфейса сгенерированного программного обеспечения.