Подписка на новости

Опрос

Нужны ли комментарии к статьям? Комментировали бы вы?

Реклама

 

2014 №4

Базовый маршрут разработки ПЛИС Altera Cyclone V SOC FPGA с аппаратной процессорной системой ARM Cortex-A9 на примере стартового отладочного комплекта SoCrates и референсного дизайна EBV Elektronik.
Часть 1

Висторовский Антон


Цель данной статьи — продемонстрировать специалистам базовый маршрут разработки решения на SOC FPGA от ALTERA при помощи бюджетного отладочного комплекта SoCrates, созданного ведущим официальным дистрибьютором Altera в Европе — компанией EBV Elektronik.
Статья будет интересна всем, кто желает рассмотреть возможности пакета Quartus для системной интеграции — среды Qsys (продолжение SOPC Builder), данные навыки будут полезными при работе с любыми IP-ядрами Altera или третьих фирм.

Введение

Поскольку решение SOC FPGA ALTERA содержит аппаратную процессорную систему на базе ядер ARM Cortex-A9 (доступны версии как с одним, так и c двумя ядрами) и современный массив логики (20-28 нм, семейства Cyclone-5/Arria-5/Arria-10 емкостью от 25 от 460 kLE), то используется две среды с соблюдением основных маршрутов разработки для процессора и ПЛИС — это пакет Quartus-2 для ПЛИС и пакет ARM DS-5 Altera edition для процессора ARM Cortex-A9.

Помимо достаточно очевидных преимуществ интеграции аппаратной процессорной системы и ПЛИС, таких как высокая скорость обмена данными до 125 Гбит/с, меньший форм-фактор, потребление, пониженное потребление и упрощенная система питания, решение может привлекать внимание как некая точка входа в освоение новой технологии для специалистов, работающих с АРМ и интересующихся ПЛИС, и наоборот — работающих с ПЛИС, но интересующихся процессорами АРМ.

Идея Altera заключается в следующем: условно разделить поля деятельности разработчика аппаратных средств и программиста. Для этого в маршруте проектирования создается механизм перехода от аппаратной разработки в пакете Quartus-2 к разработке ПО через генерацию файлов перехода, которые будут созданы Qsys/Quartus и переданы среде ARM DS-5 Altera edition. Момент генерации файлов перехода одной среды и передачи оных другой среде разработки является одним из ключевых в маршруте и будет подробно описан в статье.

Заметим, что пакет ARM DS-5 Altera edition — это совместная разработка компаний Altera и ARM, который, задействуя аппаратные возможности, заложенные в архитектуре решения SOC FPGA, позволяет производить взаимную отладку «cross-trigger» между процессором и ПЛИС через назначение точки останова в ПО ARM DS-5 Altera edition и установление момента срабатывания логики в логическом анализаторе пакета Quartus-2, Logic Analyser, и наоборот. Однако данный механизм предполагается подробно рассмотреть в другом материале.

По мнению автора статьи, разработчикам, еще малознакомым с ПЛИС Altera, будут полезны следующие замечания:

  1. SOC FPGA — одно- или двуядерная аппаратная процессорная система на базе ARM Cortex-A9 и последнего массива логики (28...20 нм) семейств Cyclone-5/Arria-5/Arria-10 в одном корпусе.
  2. HPS — hard processing system (ядро ARM Cortex-A9 + сопроцессор FPU/NEON (FPU — floating point unit, сопроцессор вычисления операций с плавающей точкой; NEON — акселератор ускорения SIMD (single instruction multiply data), например мультимедийной обработки) + кэш первого уровня, разделенный на инструкции и данные, + кэш второго уровня с модулем когерентности кэша для работы версии с двумя ядрами и модулем обеспечения когерентного доступа из ПЛИС + модуль для отладки межъядерного взаимодействия и взаимодействия с ПЛИС).
  3. Quartus-2 — основной пакет проектирования ПЛИС Altera, охватывающий весь маршрут проектирования ПЛИС, доступен в бесплатной версии для работы с SOC, скачиваемой с сайта Altera.
  4. QSYS (SOPC) — часть пакета Quartus-2 для системной интеграции. Автоматически устанавливается при инсталляции пакета Quartus-2.
  5. SOC EDS (ARM DS-5 Altera edition) — software development suite, пакет проектирования процессора ARM Cortex-A9, выполненный на SOC Altera, имеет компилятор под Linux и компилятор Baremetal («голое железо», работа приложения без ОС на базе библиотеки абстракции от регистрового уровня HAL, документированной и предоставляемой Altera бесплатно).
  6. Cross-trigger — механизм связывания ПО Quartus-2 и ПО SOC EDS через аппаратный модуль, предназначен для отладки двустороннего взаимодействия «процессор-ПЛИС».

Для рассмотрения маршрута разработки нам понадобится:

  1. Установить пакет Quartus-2 версии 13.0 или 13.1 с сайта Altera. Для работы с решением SOC FPGA подходит бесплатная версия Web edition с установленной библиотекой поддержки семейства Cyclone-5.
  2. Установить пакет SOC EDS (ARM DS-5 Altera edition). Доступна 30-дневная тестовая версия [12].
  3. Linux или виртуальная машина, например WMware.

Отладочная плата SoCrates

Для работы с решением SOC FPGA есть несколько отладочных комплектов от компании Altera и третьих фирм. В статье мы рассмотрим маршрут разработки на стартовом бюджетном комплекте, созданном ведущими инженерами компании EBV Elektronik совместно с немецкой компанией DevBoards. Стоимость такого комплекта в РФ с НДС составляет около 440 евро. Приведенный маршрут разработки будет также справедлив для других отладочных комплектов SOC FPGA Altera. Внешний вид платы приведен на рис. 1.

Внешний вид платы SoCrates

Рис. 1. Внешний вид платы SoCrates

Отладочная плата SoCrate позволяет работать со всей периферией процессорной системы: Ethernet, USB, SPI, I2C, UART, μSDCard и GPIO. На плате установлена ОЗУ-память 32 бит DDR3 и QSPI Flash как альтернатива загрузке процессорной системы из SD-карты.

Массив FPGA может быть конфигурирован из второй установленной QSPI Flash. Порты ввода/вывода 3.3 V IO и дифференциальные пары LVDS от ПЛИС выведены на разъемы. Имеется специальный дифференциальный LVDS-разъем для подключения видеосенсора EBV Observer CMOS Sensor Board. Внизу платы предусмотрен разъем для подключения TFT-дисплея через LVDS-интерфейс, также заметим, что доступен референсный дизайн для работы с графикой. Блок-диаграмма платы приведена на рис. 2. Подробное описание платы и datasheet находится по ссылке [3].

Блок-диаграмма платы SoCrates

Рис. 2. Блок-диаграмма платы SoCrates

Основные параметры оценочной платы SoCrates:

  • ПЛИС 5CSEBA6U23C7N (110 K LEs/112 DSP Blocks/5,4 Мбит RAM/HPS).
  • EPCQ256 — конфигурационная память.
  • EPCQ256 — дополнительная конфигурационная память.
  • ОЗУ 128Mx32 DDR3.
  • Слот карты микро-SD.
  • Часы реального времени RTC.
  • Датчик температуры.
  • PHY11G 1 Gbit PHY, GMII.
  • Интерфейс USB 2.0.
  • Мост UART/USB.
  • Интерфейс CAN.
  • Выводы GPIO 3,3 В.
  • Дифференциальный LVDS-интерфейс.
  • LVDS TFT-интерфейс подключения дисплея.
  • 12 пользовательских светодиодов.
  • Клавиши навигации.
  • Встроенный программатор USB-Blaster II для конфигурации FPGA/HPS и отладки.
  • Система питания — 1,1/1,35/1,8/2,5/3,3 В.

В статье показано, как при помощи пакета Quartus синтезировать новое IP-ядро по спецификации шины Altera Avalon (в данном случае это периферийное устройство и память), интегрировать в систему, подключив к шине AXI процессорной системы и разместив в адресном пространстве при помощи среды Qsys. Тем самым описан механизм расширения набора уже имеющейся аппаратной периферии процессорной системы HPS посредством синтеза нового периферийного устройства на ресурсах ПЛИС, таких как внутренняя блочная память или логические элементы.

Процессорная система HPS уже имеет аппаратный контроллер SDRAM, что позволяет, во-первых, экономить до 20 000 логических элементов ресурса ПЛИС, эквивалентных $20-снижению стоимости решения, а также предоставляет весьма удобный механизм получения калибровочных настроек физического уровня (PHY) интерфейса памяти для достижения эффективной работы SDRAM. Для этого в приложении Qsys пакета Quartus выбирается тот тип DDR-памяти, который установлен на плате (в примере статьи — SoCrates), пакет автоматически генерирует код с оптимальными калибровочными настройками и включает его в файл загрузчика preloader.

В первой части статьи описан процесс генерации новой системы на кристалле, подключение и вывод портов ввода/вывода к светодиодам на плате для демонстрации корректной работы. Затронут процесс компиляции и разводки проекта по ресурсам FPGA и активация необходимых мостов взаимодействия между процессорной системой и периферийными устройствами на ресурсах ПЛИС, а также механизм установки корректных параметров аппаратного контроллера SDRAM.

Далее показан процесс получения файлов перехода, необходимых для генерации пакета поддержки платы BSP и последующей разработки ПО (один из файлов, описывающий систему, предназначен для ОС, через него ОС узнает об имеющейся периферии, а другой файл используется загрузчиком preloader, через него передаются параметры для конфигурирования мультиплексирования портов ввода/вывода и настройки физического уровня SDRAM). В заключение рассмотрен механизм проверки работоспособности синтезированной периферии до процесса отладки на аппаратуре.

Во второй части статьи при помощи ПО Altera SOC EDS (Embedded Development Suite) и передаваемых файлов перехода, описывающих аппаратуру создаваемой системы на кристалле, рассмотрен процесс создания пакета поддержки платы BSP, включая механизм генерации загрузчика preloader с настройками физического интерфейса SDRAM.

В заключительной части второй статьи затронут процесс записи загрузчика preloader в определенный раздел форматированной SD-карты, уже содержащий U-boot и ядро ОС Linux, момент запуска ОС Linux на плате SoCrates, компиляция при помощи компилятора gcc, программ helloworld.c и devmem.c (программа чтения записи в адресное пространство) для примера работы с синтезируемой периферией под ОС Linux.

Заметим, что в процессе освоения маршрута разработки SOC Altera весьма целесообразно использовать интернет-ресурс, поддерживаемый компанией Altera и посвященный решению SOC FPGA [4]. Исходные коды программ, скрипты и сам референсный проект, описываемый в этой статье, можно найти по ссылке [5].

Cборка системы на кристалле в среде системной интеграции Qsys пакета Quartus под плату SoCrates

Рассмотрение маршрута проектирования по шагам:

  1. В ПО Quartus-2 с помощью мастера по созданию новых проектов формируется новый проект с использованием ПЛИС, установленный на плате, — 5CSXFC6C6U23C8ES. Окно навигатора проекта открывается из меню View → Utility Windows → Project Navigator.
  2. Запускается среда системной интеграции Qsys, предоставляющая удобный графический интерфейс (GUI), чтобы создать и настроить систему на кристалле. Вызов из меню Tools → Qsys или по иконке в верхнем меню. В запускаемом рабочем столе нужно удалить по умолчанию входной модуль тактирования и сброса CLK (clock и reset), поскольку системой используется внутренний источник HPS тактового импульса (ТИ) и сброса.
  3. Для импорта библиотеки модуля аппаратной процессорной системы HPS в проект выбирается компонент Hard Processor System из группы Embedded Processors (окно библиотеки слева на рабочем поле).
  4. В открывшемся конфигурационном окне Hard Processor System выбирается вкладка FPGA Interfaces, содержащая информацию об имеющихся интерфейсах между HPS и FPGA. Референс-дизайн не использует сигналы обеспечения спящего режима процессорной системы, поэтому отключена опция Enable MPU standby и event signals. Для мостов передачи данных между процессорной системой и ПЛИС (AXI bridges) отключен мост FPGA-to-HPS interface, так как в референс-дизайне используется только коммуникация от процессорной системы к ПЛИС (заметим, что FPGA-to-HPS предусмотрена производителем) и выбрана ширина 32 бит для моста управления HPS-to-FPGA (рабочее название: Lightweight, или LW bridge). В референс-дизайне также не применяется доступ из FPGA к внешней SDRAM (такая возможность имеется через специальный мост), поэтому мост FPGA-to-HPS SDRAM interface также отключен (для работы с аппаратным контроллером памяти (HMC — hard memory controller) и памятью DDR имеются отдельные указания по применению Altera). Все остальные настройки оставлены по умолчанию.
  5. Для управления и мультиплексирования портов ввода/вывода всей аппаратной периферией HPS предназначена вкладка HPS Peripherals/Peripheral Pin Multiplexing. Для начального определения корректных настроек мультиплексирования портов ввода/вывода (ВВ) периферии предусмотрена таблица с макросами от Altera: HPS_pin_muxing_ver0_9_preliminary.xlsm с сайта производителя [6].
    В референс-дизайне EBV Elektronik задействована следующая периферия:
    • Ethernet MAC 1 RGMII;
    • QPSI Set 0 with 1 SS;
    • SDMMC/SDIO Set 0 with 4bit Data;
    • USB 1 Set0, SDR;
    • SPIM0 Set0, single slave select;
    • SPIM1 Set0, single slave select;
    • UART0, Set0, No Flow Control;
    • I2C0 Set0;
    • I2C1 Set0;
    • CAN0 Set0;
    • GPIO: GPIO00, GPIO09, GPIO28, GPIO35, GPIO37, GPIO40, GPIO41, GPIO42, GPIO43, GPIO44, GPIO48, GPIO53 and GPIO54. Убедитесь в том, что все I/O-выводы назначены — хотя бы как порты GPIO.
  6. Для настройки системы на кристалле, имеющей внутренние модули ФАПЧ (системная, периферийная и SDRAM PLL с подгонкой фазы) на выбранный источник тактирования, в GUI среды Qsys предусмотрено меню HPS-Clocks. В референс-дизайне (далее РД) использован источник 50 МГц. Этот источник также предназначен для тактирования ПЛИС через установку параметра HPS-to-FPGA user 0 clock на 50 МГц.
  7. Для настройки аппаратного контроллера SDRAM системы на кристалле используется закладка в GUI Qsys под названием SDRAM, которая содержит четыре вкладки:
    • PHY Setting;
    • Memory Parameters;
    • Memory Timing;
    • Board Settings.
    На плате SoCrates установлена память DDR3L с питанием 1,35 В, поэтому в референс-дизайне переданы параметры: тип DDR3, частота работы 400 МГц (максимальная частота 533 MГц на семействе Arria-5) и опорная частота PLL — 25 МГц.
  8. Вкладка Memory Parameters применяется для проверки или установки настроек SDRAM по datasheet производителя памяти (если нет данного типа памяти в предустановленных настройках). В референсном дизайне установлены настройки в соответствии с даташитом производителя Micron (рис. 3 и 4).
    Установка параметров DDR3 на закладке Memory Parameters

    Рис. 3. Установка параметров DDR3 на закладке Memory Parameters

    Установка параметров DDR3 на закладке Memory Timing

    Рис. 4. Установка параметров DDR3 на закладке Memory Timing
  9. Для выхода из графического меню настройки компонента HPS и отображения его на рабочем поле для последующего соединения с остальными компонентами системы на кристалле используется клавиша Finish. Как уже упоминалось в п. 6, референсный дизайн использует внутренние модули ФАПЧ HPS-системы (h2f_user0_ clock). Поэтому источник тактирования основных мостов, моста данных h2f_axi_ clk и моста управления h2f_lw_axi_clock (п. 4) соединен с основным источником h2f_user0_clock через выбор узлового соединения или нажатием правой клавиши мыши:
    • h2f_axi_clk (h2f_user0_clock);
    • h2f_lw_axi_clock (h2f_user0_clock).
    Задача референсного дизайна сводится к синтезу дополнительных периферийных устройств на ПЛИС, таких как демонстрация идеологии гибкости ПЛИС путем расширения аппаратной периферии процессорной системы HPS и построения собственной системы на кристалле.
    Заметим, что среда Qsys автоматически решает вопросы соединения АРМ-шины спецификации AXI с шиной FPGA по спецификации Avalon. Таким образом, предоставляется возможность использовать компоненты, написанные под спецификацию Avalon ранее, и интегрировать их в новую систему.
    Еще раз заметим, что в системе SOC FPGA применяется несколько мостов для различных задач, что увеличивает пропускную способность системы и снижает время отклика: мост HPS2FPGA/FPGA2HPS — двусторонний, с настраиваемой шириной до 128 бит в каждую сторону, имеющий поддержку пакетных передач, служит для передачи данных. Мост LWHPS2FPGA — мост управления с низкой латентностью, разрядностью 32 бит. Также имеется дополнительный мост FPGA2SDRAM для доступа к DDR из FPGA.
    На рис. 5 приведена схема подключения синтезируемых в данном референсном дизайне компонент к мостам процессорной системы HPS.
    Cхема подключения синтезируемых компонент

    Рис. 5. Cхема подключения синтезируемых компонент к мостам процессорной системы HPS
  10. В референсном дизайне добавлена (синтезирована) часть периферии на ресурсах ПЛИС, для демонстрации расширения уже имеющегося набора аппаратной периферии добавлена внутренняя память ОЗУ на блоках внутренней памяти ПЛИС, посредством вызова стандартного библиотечного компонента Qsys выполняется вызов On-Chip-Memory в секции Memory and Memory Controller. Выбран тип RAM, размером 64 К, и установлен как двупортовое ОЗУ. Port1 внутреннего ОЗУ соединен с мостом данных процессорной системы — HPS AXI Port:
    • on-chip memory.clk 1 (h2f_user0_clock);
    • on-chip memory s1 (h2f_axi_master);
    • on-chip_memory reset1 (h2f_reset).
    Port2 (сигнал on-chip memory s1) задействован для проверки периферии через JTAG. Подробности подключения описаны в п. 14. Сигналы reset и clock соединены так же, как и Port 1 c соединен с мостом данных процессорной системы, — HPS AXI.
  11. Для управления светодиодами LED от FPGA добавлен стандартный библиотечный компонент Qsys — компонент PIO (Parallel I/O) из группы Peripherals/Microcontroller Peripherals. Ширина шины установлена 8 бит и разрешение только на выход (output). Компонент переименован в рабочем поле как pio_0 в LED_Pio для сборки системы на верхнем уровне проекта. Компонент LED_Pio соединен с мостом управления HPS LW BRIDGE (LIGHTWEIGHT) указанным ниже образом. Для экспорта порта Pio Port из системы на кристалле двойным нажатием по колонке external connection установлен тип сигнала Export, и экспортируемый сигнал переименован как led_pio. Термин «экспорт» подразумевает, что данный проводник мы выводим наружу из нашей системы на кристалле, для соединения с внешним устройством на плате SoCrates:
    • LED_Pio clk (h2f_user0_clock);
    • LED_Pio_reset (h2f_reset);
    • LED_Pio s1 (h2f_lw_axi_master).
  12. Для синхронизации работы аппаратуры и версии ПО (как правило, сверка .sopc-файла, описывающего компоненты системы с версией пакета поддержки платы) в референс-дизайне добавлен компонент System ID Peripheral из Peripherals/Debug and Performance. Этот компонент соединен с мостом управления HPS lightweight master следующим образом:
    • sysid_qsys_0 clk (h2f_user0_clock);
    • sysid_qsys_0 reset (h2f_reset);
    • sysid_qsys_0 s1 (h2f_lw_axi_master).
  13. Для демонстрации возможности создания собственной системы на кристалле в референсном дизайне синтезирован на ресурсах ПЛИС периферийный модуль ШИМ и добавлен как периферийный модуль HPS. Для этого взят исходный файл на языке аппаратуры — vhdl, описывающий 8-канальный модуль ШИМ по спецификации Altera Avalon (исходный файл можно закачать по ссылке [5]), и добавлен в набор библиотечных функций Qsys через меню создания нового компонента (рис. 6).
    Создание нового периферийного компонента на основе файла HDL

    Рис. 6. Создание нового периферийного компонента на основе файла HDL
    В меню графического интерфейса Component Editor на вкладке Files добавлен и синтезирован новый библиотечный компонент PWM из исходного кода файла PWM_8channel.vhd. В меню Signals установлены параметры выхода ШИМ (PWM_out): выходной сигнал ШИМ назначен типом New Conduit и экспортирован из системы на кристалле (Signal Type = export). В меню Interfaces выбрана опция Remove Interfaces With No Signals и установлен сигнал Associates Reset для интерфейса s1 как источник сброса — reset. Компонент после процесса редактирования находится в библиотеке Qsys в папке Custom — 8 channel PWM и готов к использованию. Компонент ШИМ добавлен к системе на кристалле и соединен следующим образом с мостом управления LW HPS. Сигнал PWM_out (в колонке Export в рабочем поле) экспортирован из системы и переименован в pwm_out для корректного соединения на верхнем уровне проекта:
    • PWM_8channel_0 clk (h2f_user0_clock);
    • PWM_8channel_0 reset (h2f_reset);
    • PWM_8channel_0 s1 (h2f_lw_axi_master).
  14. Для демонстрации возможностей работы по отладке создаваемых синтезируемых периферийных компонент на ресурсах ПЛИС (пп. 10-12) в референс-дизайне добавлен стандартный библиотечный модуль JTAG to Avalon Master Bridge из раздела Bridges → Memory-Mapped. Модуль соединен со всеми синтезируемыми компонентами периферии (slave — s1, кроме двухпортового ОЗУ slave — s2):
    • master_0 clk (h2f_user0_clock);
    • master_0 clk_reset (h2f_reset);
    • master_0 master (LED_Pio s1, sysid_ qsys_0 s1, onchip_memory2_0 s2, PWM_8channel_0 s1).
  15. Базовые адреса в референс-дизайне назначены следующим образом, чтобы избежать конфликтов при последующей генерации системы. Несмотря на то, что компоненты onchip_memory2_0 и LED_ Pio имеют один и тот же базовый адрес, конфликта нет, поскольку эти компоненты (рис. 6) подключены к двум разным мостам:
    onchip_memory2_0 s1 0x0000_0000
    onchip_memory2_0 s2 0x0001_0000
    LED_Pio s1 0x0000_0000
    sysid_qsys_0 s1 0x0000_0010
    PWM_8channel s1 0x0000_0100
  16. Генерация системы на кристалле запускается с вкладки Generation среды Qsys. Тем самым генерируется код на языке аппаратуры, описывающий систему и файл проекта верхнего уровня. Файл сохраняется как SoC_System.qip. После успешной генерации системы работа в среде Qsys закончена, и дальнейшая работа ведется в основном пакете Quartus.
  17. Среда Qsys (рис. 7) генерирует для пакета Quartus IP файлы (.qip). Для добавления в проект любых файлов используется верхнее меню Add → Remove Files пакета Quartus-Projects, генерированные средой Qsys файлы находятся в каталоге установки пакета Quartus в папке :\synthesis\SoC_System.qip.
    Итоговый проект в среде  Qsys Quartus

    Рис. 7. Итоговый проект в среде системной интеграции Qsys Quartus
  18. Для сборки проекта на верхнем уровне в проект добавлено рабочее поле через основное меню File, New, Block Diagram → Schematic File. Этот файл (SoCrates_lab1.bdf) добавлен в файлы проекта через основное меню Project → Add current File to project и сделан файлом верхнего уровня. Через символьный редактор Symbol Tool (правое нажатие мыши на рабочем поле) в рабочее поле помещен сгенерированный компонент Qsys системы на кристалле в виде графического модуля SoC_System.
  19. Для того чтобы автоматически назначить порты ввода/вывода к сигналам HPS, нужно правой кнопкой нажать на компоненте и выбрать опцию Generate Pins for Symbol ports. Вывод LED_Pio назначен как led_pio_export[7..0], поскольку эти порты расположены на ПЛИС и экспортированы из системы. Размещение этих выводов должно быть осуществлено вручную через утилиту пакета Pin planner/Assignment Editor (п. 24).
  20. Для корректного соединения с светодиодиодами платы SoCrates с портами ввода/вывода системы на кристалле необходимо добавить дополнительный логический компонент NOR между шиной led_pio_ export [7..0] и выходом, поскольку LED управляется активным низким уровнем. Через меню Symbol выбран стандартный библиотечный компонент NOR2 и соединен с выводами led_pio_export в рабочем поле, как показано на рис. 8.
    Соединение со светодиодами

    Рис. 8. Соединение со светодиодами на верхнем уровне проекта
  21. Как уже было отмечено, среда Qsys автоматически генерирует скрипт на языке Tcl для автоматической разводки подключения SDRAM, используя настройки того типа памяти, которые введены через графический интерфейс (пп. 7-8). Запуск скрипта осуществляется из меню Tools → Tcl Scripts. Исходный скриптовый файл hps_sdram_p0_pin_assignments.tcl находится в референс-дизайне.
  22. В референс-дизайне назначения соединения портов ввода/вывода в меню Assignment Editor назначены в соответствии со схемой платы SoCrates:
    • led_pio_export [0] Location PIN_AH7;
    • led_pio_export [1] Location PIN_AH9;
    • led_pio_export [2] Location PIN_AF13;
    • led_pio_export [3] Location PIN_AG14;
    • led_pio_export [4] Location PIN_AH16;
    • led_pio_export [5] Location PIN_AH18;
    • led_pio_export [6] Location PIN_AG21;
    • led_pio_export [7] Location PIN_AE22.
  23. После успешной компиляции проекта подключается плата SoCrates Board и для конфигурирования ПЛИС вызывается опция Quartus Programmer из верхнего меню. Настройки программатора установлены (Hardware Setup) как USB-Blaster. Затем вызвана опция Auto Detect для установки JTAG-соединения, поскольку несколько подсемейств в Cyclone V используют один JTAG ID, соответственно, нужно выбрать конкретное подсемейство. Выбран тип ПЛИС, установленный на плате 5CSXFC6. Установлен образ конфигурации для части ПЛИС (5CSXFC6) — SoCrates_Lab1.sof из папки output_file, затем можно приступить к процессу конфигурации (рис. 9).
    Конфигурация ПЛИС

    Рис. 9. Конфигурация ПЛИС
  24. Altera предоставляет системную консоль для первичного тестирования параметров синтезируемой периферии (рис. 10), работающей через мастер-JTAG порт на шине Avalon. Для того чтобы воспользоваться этой возможностью, из библиотеки Qsys добавлен стандартный компонент JTAG_Master Component (п. 14) и соединен с синтезируемыми периферийными устройствами: LED_PIO, On-Chip memory и System ID. Для проверки функциональности этих устройств запускается скрипт SoCrates_verfication.tcl референс-дизайна [5]. Скрипт читает содержимое регистра System ID, записывает в регистры управления светодиодами значения, читает текущие и пишет инкрементированные значения в синтезированную область памяти.
    Системная консоль проверки периферии

    Рис. 10. Системная консоль проверки периферии

Заключение

Успешно пройдя предложенный маршрут разработки, вы приобретете навыки работы с IP-ядрами в пакете Quartus в среде системной интеграции Qsys. Надеемся, этот опыт будет полезен для создания собственной системы на кристалле, будь то синтезируемый процессор Nios или аппаратный ARM Cortex-A9. Забегая вперед, отмечу, что в 2014 году среду Qsys ждет новый этап развития и полученный опыт окажется полезным в дальнейшем. Вторая часть статьи, как уже упоминалось во введении, будет посвящена вопросам генерации в ПО Altera SOC EDS (Embedded Development Suite), пакета поддержки платы BSP и загрузчика preloader для последующего запуска операционной системы и приложений Linux на плате SoCrates.

Литература

  1. http://www.altera.com/products/software/quartus-ii/web-edition/qts-we-index.html
  2. https://www.altera.com/download/software/soc-eds
  3. http://www.ebv.com/products/product-details/5797/SoCrates?L=0
  4. www.rocketboards.org
  5. http://www.rocketboards.org/foswiki/Projects/SoCratesHWReferenceDesign
  6. http://www.altera.com/literature/lit-cyclone-v.jsp
  7. Altera Cyclone V Device Handbook, Volume 3: Hard Processor System Technical Reference Manual.
  8. Altera SoC Embedded Design Suite User Guide.
  9. SoCrates Reference Design EBV ELEKTRONIK.
-->

Сообщить об ошибке