Начало работы с рабочим процессом элемента кода аппаратного программного обеспечения для устройств Intel SoC

Этот пример показывает, как использовать HDL Coder™, чтобы сгенерировать пользовательское ядро IP HDL, которое мигает светодиодами на оценочном комплекте Arrow® SoCKit® и показывает, как использовать Embedded Coder®, чтобы сгенерировать код С, который работает на процессоре ARM®, чтобы управлять частотой мигания LED.

Введение

Этим примером является пошаговое руководство, которое помогает ввести вас рабочему процессу элемента кода аппаратного программного обеспечения.

Можно использовать MATLAB® и Simulink®, чтобы разработать, моделировать, и проверить приложение, выполнить то, что - если сценарии с алгоритмами, и оптимизируют параметры. Можно затем подготовить проект к аппаратной и программной реализации на Циклоне Altera V SoC путем решения, какие системные элементы будут выполняться программируемой логикой, и какие системные элементы будут работать на ARM Cortex-A9.

Используя ведомый рабочий процесс, показанный в этом примере, вы автоматически генерируете HDL-код для программируемой логики с помощью HDL Coder, генерируете код С для ARM с помощью Embedded Coder и реализуете проект на устройствах Intel SoC.

В этом рабочем процессе вы выполняете следующие шаги:

  1. Настройте свое оборудование Intel SoC и инструменты.

  2. Разделите свой проект для аппаратной и программной реализации.

  3. Сгенерируйте ядро IP HDL использование HDL Workflow Advisor.

  4. Интегрируйте ядро IP в проект Intel Qsys и программируйте оборудование Intel SoC.

  5. Сгенерируйте модель программного интерфейса.

  6. Сгенерируйте код С из модели программного интерфейса и запустите его на процессоре ARM Cortex-A9.

  7. Настройки параметров и получение следуют из оборудования Intel SoC с помощью Режима external mode.

Для получения дополнительной информации обратитесь к другим более усовершенствованным примерам, и документации Embedded Coder и HDL Coder.

Требования

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

  2. Intel SoC встроенный комплект проекта

  3. Стрелка Циклон SoCKit V оценочных комплектов SoC

  4. Пакет поддержки HDL Coder для устройств Intel SoC

  5. Пакет поддержки Embedded Coder для устройств Intel SoC

Настройте оборудование Intel SoC и инструменты

1. Настройте Стрелку оценочный комплект SoCKit как показано в фигуре ниже. Чтобы узнать больше о Стрелке настройка оборудования SoCKit, обратитесь к документации платы.

1.1 Настройте переключатель SW4 (выбор цепочки JTAG) как показано в фигуре ниже. Положение 1: 'off'; Положение 2: ON. Эта настройка включает HPS в цепочку JTAG и обходит HSMC.

1.2 Настройте JP2 как показано в фигуре ниже, чтобы настроить Стандарт ввода-вывода контактов FPGA/HSMC. Короткий Контакт 5 и 6, чтобы установить напряжение ввода-вывода на 2.5 В.

1.3 Настройте J17 - J19 как показано в фигуре выше, чтобы загрузить HPS от SD-карты. J17: Короткий Контакт 1 и 2; J18: Короткий Контакт 1 и 2; J19: Короткий Контакт 2 и 3.

1.4 Настройте J15 - J16 как показано в фигуре выше для установки часов HPS. J15: Короткий Контакт 2 и 3; J16: Короткий Контакт 2 и 3.

1.5 Настройте SW6 с задней стороны платы как показано в фигуре ниже. Этот переключатель установил режим настройки FPGA. Установите все 6 положений на ON.

1.6 Соедините свой компьютер с коннектором UART USB с помощью кабеля micro-USB. Убедитесь, что ваши драйверы USB-устройства, такой что касается USB FTDI к UART, установлены правильно. В противном случае ищите драйверы онлайн и установите их.

1.7 Соедините свой компьютер и Стрелку плата SoCKit с помощью кабеля Ethernet.

2. Установите HDL Coder и Пакеты Поддержки Embedded Coder для Устройств Intel SoC, если вы уже не имеете. Чтобы запустить инсталлятор, перейдите к панели инструментов MATLAB и нажмите Add-Ons> Get Hardware Support Packages. Для получения дополнительной информации обратитесь к Документации по установке Пакета Поддержки.

3. Убедитесь, что вы используете изображение SD-карты, обеспеченное Пакетом Поддержки Embedded Coder для Устройств Intel SoC. Если необходимо обновить изображение SD-карты, запустить Встроенное программное обеспечение Пакета Поддержки Updater путем выполнения следующей команды в посдказке MATLAB:

targetupdater

4. Настройте Стрелку аппаратная связь SoCKit путем ввода следующей команды в окно команды MATLAB:

h = alterasoc

Функция alterasoc входит в систему оборудования через COM-порт и запускает команду ifconfig, чтобы получить IP-адрес платы. Эта функция также тестирует соединение Ethernet.

5. Можно опционально протестировать последовательную связь с помощью следующей настройки с помощью программы, такой как PuTTY™. BaudRate: 115200; DataBits: 8; StopBits: 1; Четность: 'none'; FlowControl: 'none'. Необходимо смочь наблюдать Linux, загружающий вход в систему последовательная консоль, когда вы подвергаете циклу включения и выключения питания Стрелку плата SoCKit. Необходимо закрыться, эта последовательная связь перед использованием alterasoc функционируют снова.

6. Настройте инструмент path синтеза Куарта Intel с помощью следующей команды в окне команды MATLAB. Используйте свой собственный путь к установке Куарта, когда вы запустите команду.

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

Разделите свой проект для аппаратной и программной реализации

Первый шаг рабочего процесса элемента кода аппаратного программного обеспечения 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 HDL использование HDL Workflow Advisor

Используя рабочий процесс Генерации Ядра IP в 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. Для Целевой платформы выберите макетную плату Arrow SoCKit. Если у вас нет этой опции, выберите Get больше, чтобы открыть Инсталлятор Пакета Поддержки. В Инсталляторе Пакета Поддержки выберите Intel SoC Devices и следуйте инструкциям, предоставленным Инсталлятором Пакета Поддержки, чтобы завершить установку.

1.4. Нажмите 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.

3. Сгенерируйте ядро IP.

Чтобы сгенерировать ядро IP, щелкните правой кнопкой по Generate RTL Code и задаче IP Core и выберите Run to Selected Task.

4. Сгенерируйте и просмотрите отчет ядра IP.

После того, как вы сгенерируете пользовательское ядро IP, файлы ядра IP находятся в ipcore папке в вашей папке проекта. HTML пользовательский отчет ядра IP сгенерирован вместе с пользовательским ядром IP. Отчет описывает поведение и содержимое сгенерированного пользовательского ядра IP.

Интегрируйте ядро IP со средой Intel Qsys

В этой части рабочего процесса вы вставляете свое сгенерированное ядро IP в исходный проект встраиваемой системы, генерируете поток битов FPGA и загружаете поток битов на оборудование Intel SoC.

Исходный проект является предопределенным проектом Intel Qsys. Это содержит все элементы, программное обеспечение Intel должно развернуть ваш проект на устройствах Intel SoC, за исключением пользовательского IP базовое и встроенное программное обеспечение, которое вы генерируете.

1. Чтобы объединяться со средой Intel Qsys, выберите Создать задачу Проекта при Интегрировании Встраиваемой системы и нажмите Run This Task. И проект Intel Qsys и проект Куарта Intel сгенерированы со ссылками на проекты, предоставленные в диалоговом окне. Можно опционально открыть проекты смотреть.

2. Если у вас есть лицензия Embedded Coder, можно сгенерировать модель программного интерфейса в следующей задаче, Сгенерировать Модель Программного интерфейса. Детали модели программного интерфейса объяснены в следующем разделе этого примера, "Сгенерируйте модель программного интерфейса".

3. Создайте поток битов FPGA в задаче Потока битов FPGA Сборки. Убедитесь процесс сборки Выполнения внешне, опция проверяется, таким образом, инструмент синтеза Intel запустится в отдельном процессе из MATLAB. Ожидайте процесса инструмента синтеза, чтобы закончить запускаться во внешнем командном окне.

4. После того, как поток битов сгенерирован, выберите задачу Целевого устройства Программы. Выберите Download for Programming method, чтобы загрузить поток битов FPGA на SD-карту на плате Intel SoC, таким образом, ваш проект будет автоматически перезагружен, когда вы подвергнете циклу включения и выключения питания плату Intel SoC. нажмите Run This Task, чтобы программировать оборудование Intel SoC.

После того, как вы будете программировать оборудование FPGA, LED начинает мигать на вашей плате Intel SoC.

Затем, вы сгенерируете код С, чтобы работать на процессоре ARM, чтобы управлять частотой мигания LED и направлением.

Сгенерируйте модель программного интерфейса

В HDL Workflow Advisor, после того, как вы генерируете ядро IP и вставляете его в исходный проект Qsys, можно опционально сгенерировать модель программного интерфейса в Интегрировании Встраиваемой системы>, Генерируют задачу Модели Программного интерфейса.

Модель программного интерфейса содержит часть вашего проекта, который запускается в программном обеспечении. Это включает все блоки за пределами подсистемы HDL и заменяет подсистему HDL на блоки драйверов AXI. Если у вас есть лицензия Embedded Coder, можно автоматически сгенерировать встроенный код из модели программного интерфейса, создать ее и запустить исполняемый файл на Linux на процессоре ARM. Сгенерированное встроенное программное обеспечение включает код драйвера AXI, сгенерированный от блоков драйверов AXI, который управляет ядром IP HDL.

Запустите Сгенерировать задачу Модели Программного интерфейса и смотрите, что сгенерирована новая модель. Диалоговое окно задачи показывает ссылку на модель.

В модели интерфейса сгенерированного программного обеспечения "led_counter" подсистема заменяется блоками драйверов AXI, которые генерируют интерфейсную логику между процессором ARM и FPGA.

Запустите модель программного интерфейса на оборудовании Intel SoC

В этой части рабочего процесса вы конфигурируете модель интерфейса сгенерированного программного обеспечения, автоматически генерируете встроенный код С и запускаете вашу модель на процессоре ARM в оборудовании Intel SoC в Режиме external mode.

Когда вы моделируете и разрабатываете алгоритм, полезно контролировать и настроить алгоритм, в то время как это работает на оборудовании. Функция Режима external mode в Simulink включает эту возможность. В этом режиме ваш алгоритм сначала развертывается на процессоре ARM в оборудовании Intel SoC, и затем соединяется с моделью Simulink на хосте - компьютере посредством соединения Ethernet.

Основная роль модели Simulink должна настроить и контролировать алгоритм, работающий на оборудовании. Поскольку процессор ARM соединяется с ядром IP HDL через интерфейс AXI, можно использовать Режим external mode для настроек параметров и собрать данные от FPGA.

  1. В сгенерированной модели откройте диалоговое окно Configuration Parameters.

  2. Выберите Solver и установите "Время остановки" на "inf".

  3. Из образцового меню выберите Simulation> Mode> External.

  4. Щелкните по кнопке Run на образцовой панели инструментов. Embedded Coder создает модель, загружает исполняемый файл ARM на оборудование Intel SoC, выполняет его и соединяет модель с исполняемым файлом, работающим на оборудовании Intel SoC.

  5. Дважды кликните блок Slider Gain. Измените значение Усиления Ползунка и наблюдайте изменение в частоте массива LED, мигающего на оборудовании Intel SoC. Дважды кликните Ручной блок switch, чтобы переключить направление мигающих светодиодов.

  6. Дважды кликните осциллограф, соединенный с выходным портом Read_back, и заметьте, что выходные данные ядра IP FPGA получены и переданы обратно в Осциллограф Simulink.

  7. По окончании, изменив параметры модели, нажимаете кнопку Stop на модели. Заметьте, что системное командное окно, открытое на предыдущем шаге, указывает, что модель была остановлена. На данном этапе можно закрыть системное командное окно.

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

Этот пример показывает, как аппаратный и программный рабочий процесс элемента кода помогает автоматизировать развертывание вашего MATLAB и проекта Simulink к устройствам Intel SoC. Можно исследовать лучшие способы разделить и развернуть проект путем итерации через рабочий процесс.

Следующая схема показывает высокоуровневое изображение рабочего процесса, который вы прошли в этом примере. Чтобы узнать больше об аппаратном и программном рабочем процессе элемента кода, обратитесь к документации HDL Coder.