В этом примере показано, как использовать рабочий процесс элемента кода аппаратного программного обеспечения, чтобы мигнуть светодиодами на различных частотах на оценочном комплекте Arrow® SoCKit®.
Этим примером является пошаговое руководство, которое помогает вам использовать программное обеспечение HDL Coder™, чтобы сгенерировать пользовательское ядро IP HDL, которое мигает светодиодами на Стреле оценочный комплект SoCKit и показывает, как использовать Embedded Coder®, чтобы сгенерировать код С, который работает на процессоре ARM®, чтобы управлять частотой мигания LED.
Можно использовать MATLAB® и Simulink®, чтобы спроектировать, симулировать, и проверить приложение, выполнить то, что - если сценарии с алгоритмами, и оптимизируют параметры. Можно затем подготовить проект к аппаратной и программной реализации на Циклоне Altera V SoC путем решения, какие системные элементы будут выполняться программируемой логикой, и какие системные элементы будут работать на ARM Cortex-A9.
Используя ведомый рабочий процесс, показанный в этом примере, вы автоматически генерируете HDL-код для программируемой логики с помощью HDL Coder, генерируете код С для ARM с помощью Embedded Coder и реализуете проект на устройствах Intel SoC.
В этом рабочем процессе вы выполняете следующие шаги:
Настройте свое оборудование Intel SoC и инструменты.
Разделите свой проект для аппаратной и программной реализации.
Сгенерируйте ядро IP HDL использование HDL Workflow Advisor.
Интегрируйте ядро IP в проект Intel Qsys и программируйте оборудование Intel SoC.
Сгенерируйте модель программного интерфейса.
Сгенерируйте код С из модели программного интерфейса и запустите его на процессоре ARM Cortex-A9.
Настройки параметров и получение следуют из оборудования Intel SoC с помощью Режима external mode.
Для получения дополнительной информации обратитесь к другим более усовершенствованным примерам, и документации Embedded Coder и HDL Coder.
Intel Куарт Прайм, с поддерживаемой версией, перечисленной в документации HDL Coder
Intel SoC встроенный комплект проекта
Стрела Циклон SoCKit V оценочных комплектов SoC
Пакет поддержки HDL Coder для устройств Intel SoC
Пакет поддержки Embedded Coder для устройств 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-карты, обратитесь к разделу Hardware Setup этого документа.
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\18.0\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 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, чтобы запустить задачу Инструмента Целевого устройства и Синтеза Набора.
1.5 В Цели Набора> Целевая задача Исходного проекта Набора, выберите систему Default. В данном примере это выбрано по умолчанию
1.6. Нажмите Run This Task, чтобы запустить Целевую задачу Исходного проекта Набора.
2. Сконфигурируйте целевой интерфейс.
% Map each port in your DUT to one of the IP core target % interfaces. In this example, input ports *Blink_frequency* and *Blink_direction* % are mapped to the AXI4 interface, so HDL Coder generates AXI interface accessible % registers for them. The *LED* output port is mapped to an external interface, % *LEDs General Purpose [0:3]*, which connects to the LED hardware on the % Intel SoC board. % % *2.1* In the *Set Target* > *Set Target Interface* task, choose *AXI4* % for *Blink_frequency*, *Blink_direction*, and *Read_back*. % % *2.2* Choose *LEDs General Purpose [0:3]* for *LED*. % % <<hdlcoder_ip_core_tutorial_alterasoc_interface.png>> % % *2.3* In the *Set Target* > *Set Target Frequency* task, choose *Target Frequency as 50 MHz*. % % <<hdlcoder_ip_core_tutorial_alterasoc_target_freq.png>> % % *3.* Generate the IP Core. % % To generate the IP core, right-click the *Generate RTL Code and IP Core* task % and select *Run to Selected Task*. % % <<hdlcoder_ip_core_tutorial_alterasoc_ipcore.png>> % % *4.* Generate and view the IP core report. % % After you generate the custom IP core, the IP core files are in the *ipcore* folder % within your project folder. % An HTML custom IP core report is generated together with the custom IP core. % The report describes the behavior and contents of the generated custom IP core. % % <<hdlcoder_ip_core_tutorial_alterasoc_report.png>>
В этой части рабочего процесса вы вставляете свое сгенерированное ядро 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.
В этой части рабочего процесса вы конфигурируете модель интерфейса сгенерированного программного обеспечения, автоматически генерируете встроенный код С и запускаете вашу модель на процессоре ARM в оборудовании Intel SoC в Режиме external mode.
Когда вы моделируете и разрабатываете алгоритм, полезно контролировать и настроить алгоритм, в то время как это работает на оборудовании. Функция Режима external mode в Simulink включает эту возможность. В этом режиме ваш алгоритм сначала развертывается на процессоре ARM в оборудовании Intel SoC, и затем соединяется с моделью Simulink на хосте - компьютере посредством соединения Ethernet.
Основная роль модели Simulink должна настроить и контролировать алгоритм, работающий на оборудовании. Поскольку процессор ARM соединяется с ядром IP HDL через интерфейс AXI, можно использовать Режим external mode для настроек параметров и собрать данные от FPGA.
В сгенерированной модели откройте диалоговое окно Configuration Parameters.
Выберите Solver и установите "Время остановки" на "inf".
В меню HARDWARE нажмите кнопку Monitor & Tune на панели инструментов модели, чтобы запустить вашу модель на процессоре ARM в оборудовании Intel SoC в Режиме external mode. Embedded Coder создает модель, загружает исполняемый файл ARM на оборудование Intel SoC, выполняет его и соединяет модель с исполняемым файлом, работающим на оборудовании Intel SoC.
Дважды кликните блок Slider Gain. Измените значение Усиления Ползунка и наблюдайте изменение в частоте массива LED, мигающего на оборудовании Intel SoC. Дважды кликните Ручной блок switch, чтобы переключить направление мигающих светодиодов.
Дважды кликните осциллограф, соединенный с выходным портом Read_back, и заметьте, что выходные данные ядра IP FPGA получены и переданы обратно в Осциллограф Simulink.
По окончании, изменив параметры модели, нажимаете кнопку Stop на модели. Заметьте, что системное командное окно, открытое на предыдущем шаге, указывает, что модель была остановлена. На данном этапе можно закрыть системное командное окно.
В этом примере показано, как аппаратный и программный рабочий процесс элемента кода помогает автоматизировать развертывание вашего MATLAB и проекта Simulink к устройствам Intel SoC. Можно исследовать лучшие способы разделить и развернуть проект путем итерации через рабочий процесс.
Следующая схема показывает высокоуровневое изображение рабочего процесса, который вы прошли в этом примере. Чтобы узнать больше об аппаратном и программном рабочем процессе элемента кода, обратитесь к документации HDL Coder.