Компания altera начала поставку своих первых компонентов снк

Компания altera начала поставку своих первых компонентов снк

На техническом семинаре, организованном ЗАО «Золотой Шар» совместно с компанией Arrow, был представлен обзор новых продуктов и рассмотрены ключевые особенности перспективных семейств Altera.

УДК 621.382.2.3
ВАК 05.27.00
DOI: 10.22184/1992-4178.2017.169.8.76.81

Компания Altera, которая с 2016 года является подразделением Programmable Solutions Group (PSG) корпорации Intel, предлагает разработчикам самый широкий среди конкурентов спектр устройств программируемой логики, а также однокристальных систем на базе архитектуры ARM. ПЛИС от Altera подходят как для устройств, выпускаемых серийно, так и для новых разработок.
Продукты компании Altera включают в себя ПЛИС с энергонезависимой конфигурационной памятью семейства MAX, недорогие ПЛИС семейства Cyclone, СБИС программируемой логики среднего класса Arria, высокопроизводительные СБИС Stratix, конфигурационные флеш-ПЗУ для СБИС программируемой логики, импульсные преобразователи питания Enpirion, а также средства разработки и IP-ядра. В современные ПЛИС и системы-на-кристалле Altera интегрированы блоки памяти, DSP-блоки, высокоскоростные трансиверы, аналоговые схемы, ARM-ядра и др.
Следует отметить длительный жизненный цикл изделий Altera, как правило, не менее 15 лет, что существенно превышает аналогичный показатель конкурентов. Altera периодически анализирует жизненные циклы своей продукции, чтобы минимизировать проблемы, возникающие у потребителей при снятии микросхемы с производства. Таким образом, клиентам Altera доступен широкий ассортимент продукции, который не может предложить ни один поставщик ПЛИС.

Среди всего спектра продукции Altera особое место занимают недорогие ПЛИС семейств MAX и Cyclone (рис.1). Компания постоянно инвестирует в развитие этих семейств. К настоящему времени Altera поставила более 1 млрд изделий недорогих серий.
Рассмотрим подробнее особенности семейств ПЛИС от Altera последних поколений.
В первую очередь следует отметить серию MAX 10 – полнофункциональные ПЛИС общего назначения с конфигурационной NOR флеш-памятью, выпускаемые по технологии 55 нм компании TSMC. Микросхемы семейства MAX 10 сочетают высокую функциональность с низкой стоимостью, компактностью и простотой использования микросхем предыдущих поколений семейства MAX. ПЛИС MAX 10 содержат от 2 000 до 50 000 эквивалентных логических элементов, блоки пользовательской и конфигурационной (до двух конфигурационных образов) флеш-памяти, аналоговые блоки (до двух АЦП), блоки встроенной статической памяти и DSP-блоки (табл.1). Кроме того, в MAX 10 реализованы интерфейсы внешней памяти (DDR2, DDR3, DDR3L, LPDDR2). Возможна также реализация синтезируемого процессора Nios II.
Микросхемы MAX 10 содержат до 500 пользовательских выводов, а также встроенный преобразователь напряжения. Малое время конфигурации (менее 10 мс) позволяет использовать эти устройства для решения задач быстрой инициализации и конфигурации системы, безопасного обновления, мониторинга и управления последовательностью подачи питания. При подаче питания микросхемы MAX 10 самостоятельно конфигурируются из встроенной памяти. Наличие в устройствах семейства MAX 10 двух блоков флеш-памяти для хранения конфигурации обеспечивает возможность динамического переключения между двумя образами конфигурации и безопасность при обновлении системы.
Встроенные в ПЛИС MAX 10 АЦП имеют разрешение 12 бит, частота выборки составляет 1 Мвыб/с. Кроме того, MAX 10 содержит до 18-ти аналоговых каналов, блоки ФАПЧ, температурный датчик. В режиме ожидания потребление микросхемы может быть снижено на 95%. Одна из особенностей ПЛИС MAX 10 – наличие встроенного линейного стабилизатора напряжения (LDO), формирующего из входного напряжения 3 В/3,3 В необходимые уровни для питания ядра и блоков ввода-вывода. Также доступны варианты исполнения MAX 10 без встроен-
ного стабилизатора напряжения, на которое необходимо подавать отдельно напряжение питания ядра (1,2 В) и напряжение питания ФАПЧ/АЦП/блоков ввода-вывода (2,5 В). Применение MAX 10 со встроенным стабилизатором напряжения упрощает проектирование схемы и печатной платы.
Более продвинутые ПЛИС семейства Cyclone позиционируются в первую очередь как компоненты для недорогих систем, работающих с большим объемом данных, например таких, как Интернет вещей. Они подходят и для большинства встраиваемых систем, используемых в промышленности и автомобилестроении. ПЛИС этого семейства содержат ОЗУ для хранения конфигурационных данных, которые загружаются в ПЛИС каждый раз, как только на микросхему подается питание. Последние поколения семейства Cyclone – Cyclone V и Cyclone 10.
Основой массива программируемой логики 28-нм семейства Cyclone V являются адаптивные логические модули (как в более дорогих сериях Arria и Stratix). Кроме этого, микросхемы семейства Cyclone V содержат DSP-блоки переменной точности, встроенное ОЗУ, высокоскоростные трансиверы, аппаратные IP-блоки (контроллеры PCI Express и внешней синхронной памяти) и средства защиты проекта от несанкционированного копирования и модификации.
Входящие в состав устройств семейства Cyclone V микросхемы содержат такие инновационные решения, как аппаратный процессорный блок, основой которого является одно- или двухъядерный процессор ARM Cortex-A9 (табл.2).
Представленное совсем недавно семейство Cyclone 10 состоит из двух линеек – Cyclone 10 GX и Cyclone 10 LP, которые существенно различаются по характеристикам и позиционированию.
Микросхемы Cyclone 10 GX оптимизированы для высокопроизводительных приложений, таких как системы промышленного зрения, робототехника и автомобильные развлекательные системы. ПЛИС Cyclone 10 LP предназначены для недорогих приложений с низким энергопотреблением – расширителей ввода-вывода, систем на основе датчиков, управления электроприводами и др.
ПЛИС Cyclone 10 GX изготовлены по 20-нм техпроцессу, обеспечивают высокую производительность (до 134 Гфлопс) и расширенные возможности ввода-вывода. Микросхемы содержат до 220 тыс. логических элементов, до 80 тыс. адаптивных логических модулей с 8-входовыми таблицами поиска (LUT), до 192 DSP-блоков переменной точности (табл.3). Подключение к другим устройствам возможно посредством LVDS-каналов со скоростью передачи 1,4 Гбит/с, сетевого порта 10G либо шины PCI Express x4. В микросхемы Cyclone 10 GX встроен 72-битный интерфейс внешней памяти (DDR3, DDR3L, LPDDR3), работающий на скорости до 1 866 Мбит/с. Напряжение питания ядра составляет 0,9 В.
Микросхемы Cyclone 10 LP, выполненные по 60-нм процессу (оптимизированному для низкого энергопотребления), содержат до 120 тыс. логических элементов, до 288 умножителей 18 Ч 18 и до 230 LVDS-каналов (табл.4). Для питания микросхем Cyclone 10 LP требуется напряжение 1,0 или 1,2 В.
ПЛИС и СнК среднего класса – Arria 10 – производятся по 20-нм технологии и обеспечивают баланс между производительностью и энергопотреблением. Они предназначены для разработок, требующих высокой производительности, но имеющих жесткие ограничения по конечной стоимости и энергопотреблению. Основные сферы применения Arria 10 – телекоммуникационная аппаратура и высокопроизводительные вычислительные системы.
ПЛИС Arria 10 содержат до 1,15 млн эквивалентных логических элементов, а также более 3 300 аппаратных умножителей 18 Ч 19. В составе микросхем – аппаратные контроллеры с поддержкой высокоскоростных интерфейсов внешней памяти (в том числе DDR4 со скоростью передачи 2 666 Мбит/с и Hybrid Memory Cube со скоростью передачи до 15 Гбит/с), а также контроллеры шины PCI Express Gen3 x8. СнК Arria 10 содержат двухъядерный процессор ARM Cortex-A9, работающий на частоте до 1,5 ГГц. Пропускная способность каналов связи Arria 10 возросла в четыре раза по сравнению с Arria V благодаря трансиверам со скоростью передачи данных в 25,78 Гбит/с.
В составе семейства Arria 10 три варианта СБИС:
• Arria 10 GT – ПЛИС, содержащие до 78 трансиверов со скоростью передачи данных до 25,78 Гбит/с и до 1,15 млн эквивалентных логических элементов;
• Arria 10 GX – ПЛИС, содержащие до 96 трансиверов со скоростью передачи данных до 17,4 Гбит/с и до 1,15 млн эквивалентных логических элементов;
• Arria 10 SX – системы-на-кристалле на базе двухъядерного процессора ARM Cortex-A9, содержащие до 48 трансиверов со скоростью передачи данных до 17,4 Гбит/с и до 660 тыс. эквивалентных логических элементов.
Семейство Arria 10 содержит усовершенствованные аппаратные DSP-блоки переменной точности, которые обеспечивают скорость обработки данных до 1,5 Тфлопс.
Наиболее производительное семейство – Stratix 10 – изготавливается по 14-нм технологическому процессу Tri-Gate компании Intel, содержит до 5,5 млн эквивалентных логических элементов, до 144 высокоскоростных трансиверов (до 56 Гбит/с) и обеспечивает производительность более 10 Тфлопс при решении задач цифровой обработки сигнала одинарной точности. Микросхемы Stratix 10 предназначены для создания самых передовых приложений в сфере телекоммуникации, телерадиовещания, высокопроизводительных вычислений, хранения данных, обладающих в то же время невысоким энергопотреблением.
В СБИС Stratix 10 реализована инновационная архитектура HyperFlex, имеющая регистры не только в логических элементах, но и во всех узлах матрицы межсоединений. Данные регистры позволяют оптимальным способом обеспечить максимальное быстродействие разрабатываемого устройства за счет перераспределения задержек, конвейеризации и других методов. Применение архитектуры HyperFlex совместно с 14-нм технологией Tri-Gate дает возможность снизить энергопотребление Startix 10 на 70% по сравнению с предыдущим поколением.
Все СБИС семейства Stratix 10 реализованы в виде гетерогенных систем-в-корпусе (3D SiP): трансиверы и высокопроизводительная память (HBM2) DRAM (опционально) расположены на отдельных кристаллах и объединены с программируемой логической матрицей по технологии EMIB (Embedded Multi-die Interconnect Bridge) от Intel (рис.2). Технология EMIB обеспечивает значительно большее быстродействие и высокую целостность сигналов при меньшей сложности и стоимости системы по сравнению с альтернативными технологиями. Использование 3D SiP дает возможность масштабировать изделия и существенно расширять функционал семейства: увеличить скорость трансиверов, реализовать поддержку новых стандартов передачи данных (PCIe Gen4, Multi-Port Ethernet), снабдить устройство аналоговыми блоками и т. д.
В состав СнК Stratix 10 входит аппаратная процессорная система на базе 64-разрядного четырехъядерного процессора ARM Cortex-A53, работающего на частоте до 1,5 ГГц. Блок управления конфигурацией и безопасностью Secure Device Manager обеспечивает разностороннюю защиту СБИС Stratix 10, в частности от одиночных сбоев (SEU), вызванных тяжелыми заряженными частицами. Благодаря этому Startix 10 является оптимальным решением для систем военного назначения, безопасности облачных хранилищ и вычислительных центров, прочих систем, предъявляющих высокие требования к многоуровневой защите.
В составе семейства Stratix 10 на сегодняшний день предлагается четыре варианта систем-в-корпусе:
• Stratix 10 GX – ПЛИС для высокоскоростных приложений с производительностью до 10 Тфлопс с поддержкой трансиверов со скоростью передачи данных до 28,3 Гбит/с;
• Stratix 10 SX – СнК на базе четырехъядерного 64-разрядного процессора ARM Cortex-A53 плюс поддержка всех функций серии Stratix 10 GX;
• Stratix 10 TX – СнК на базе четырехъядерного 64-разрядного процессора ARM Cortex-A53 с поддержкой H- и E-трансиверов, которые обеспечивают два режима работы (56 Гбит/с в режиме PAM‑4 или 30 Гбит/с в режиме NRZ), плюс поддержка всех функций Stratix 10 GX и Stratix 10 SX;
• Stratix 10 MX – СнК на базе четырехъядерного 64-разрядного процессора ARM Cortex-A53 с поддержкой H- и E-трансиверов, объединенные в одном корпусе с высокопроизводительной памятью (HBM2) DRAM объемом до 16 Гбайт.
Наряду с микросхемами программируемой логики и СнК Altera предлагает интегрированные высокоэффективные решения для управления питанием Enpirion с цифровым управлением и коммуникационными возможностями, которые предназначены специально для ПЛИС и СнК. Все семейства микросхем Altera поддерживаются наборами разработчика для отладки систем на базе этих изделий, а также инструментами проектирования, которые позволяют реализовать все этапы разработки системы на базе продуктов Altera. ●

Читайте также  Автоматический выключатель освещения

Горохов Игорь Викторович

Факультет компьютерных наук и технологий

Кафедра компьютерной инженерии

Специальность Компьютерные системы и сети

Верификация FPGA-проектов по методологии зондовой диагностики

Научный руководитель: к.т.н., доц. Зинченко Юрий Евгеньевич

Мой опыт проектирования встраиваемых систем в инструментальной среде Quartus Qsys

Содержание

  • Причины выбора темы
  • Quartus Qsys как новейшее средство для проектирования СнК
  • Мой опыт работы с Quartus Qsys
  • Возможности использования Quartus Qsys в сфере Internet-технологий
  • Выводы и рекомендации
  • Список использованной литературы

Причины выбора темы

Благодаря современным тенденциям роста степени интеграции интегральных схем все большее применение находит использование встраиваемых систем типа система-на-кристалле(СнК). Современные технологии позволяют погрузить в кристалл проект практически любой сложности. Несомненными преимуществами использования СнК является их миниатюрность (в кристалле помещается как вычислительное устройство и память, так и набор специальных контроллеров), относительно низкая потребляемая мощность и возможность автоматизации проектирования.

Относительно долго единственным средством проектирования СнК на базе FPGA фирмы Altera был инструмент SOPC Builder, входящий в состав САПР Quartus. Но в начале 2011 года фирма Altera представила новый инструмент для проектирования СнК под названием Qsys, пришедший на смену SOPC Builder, который был интегрирован в последний релиз САПР Quartus. Стала необходимой задача освоения новой среды проектирования для реализации текущих проектов в ногу со временем. Актуальность перехода на новое средство проектирования послужила поводом для освещения данной проблематики с учетом собственного опыта.

Quartus Qsys как новейшее средство для проектирования СнК

Даже при краткосрочном знакомстве с новым инструментарием становится ясно, что разработчики сделали ставку на качественно новое отличие, по сравнению с SOPC Builder — поддержку иерархической структуры, которая подразумевает использование спроектированных в Qsys систем в качестве подсистем для последующих Qsys-проектов. Данное нововведение позволяет сделать систему более масштабируемой, за счет использования уже спроектированных модулей. Таким образом, не только облегчается процесс проектирования, но и делается более удобным в использовании графический пользовательский интерфейс. Уровень абстракции системы был повышен — если в SOPC Builder наибольшим звеном было IP-ядро, то в Qsys таким звеном является подсистема. Пример иерархической структуры изображен на рис. 1.

Рисунок 1 — Пример иерархической структуры проекта

Наряду с появлением иерархической структуры было заявлено повышение производительности систем по сравнению с SOPC Builder до двух раз, благодаря использованию новой системы межсоединений, основанной на FPGA-оптимизированной технологии Network-on-Chip [1].

Помимо этого, повышена эффективность передачи информации по шине данных (от master к slave), что обеспечивает повышение пропускной способности соединений.

Для большей универсальности спроектированных систем добавлена возможность использования интерфейсов промышленных стандартов, что подразумевает возможность соединения IP-ядер, которые используют различные интерфейсы [2].

В завершение к упомянутым нововведениям стоит добавить возможность автоматической генерации testbench, а также наличие специального средства ускоренной верификации с использованием транзакций на чтение/запись при отладке проекта на чипе в реальном времени.

Мой опыт работы с Quartus Qsys

Первым делом для ознакоммления с новой средой разработки я принялся к изучению вводного примера [3] по разработке, который реализовывал простую систему тестирования модуля памяти SDRAM. Предполагалось собрать СнК, которая включает в себя процессор, контроллер памяти и собственно подсистему тестирования модуля памяти. Подсистема тестирования памяти состояла из генератора тестов, контроллера тестов и устройства проверки тестовых реакций. Таким образом уже на таком простом примере проявилось нововведение Qsys — возросший от ядра до подсистемы уровень иерархии. Полученный опыт по сборке простейшей СнК обеспечил возможность разработки более серьезных проектов.

Полученные знания по работе в Quartus Qsys в дальнейшем были расширены и закреплены в ходе работы над курсовым проектом в рамках курса FPGA & HDL технологии проектирования КС , в рамках которого мне необходимо было разработать подсистему опроса датчиков в составе СРВ на базе FPGA фирмы Altera.

Для выполнения поставленных к подсистеме требований была разработана структура СнК с учетом особенностей платформы NEEK [4], которая представлена на рис. 2.

Рисунок 2 — Структура СнК

С учетом обозначенной структуры и особенностей проектирования в состав СнК вошли следующие модули:

  1. Делитель частоты pll, обеспечивающий отдельную схему синхронизации процессора и памяти.
  2. Выходные мосты для синхронизации памяти и остальных системных узлов ssram_clock_bridge и system_clock_bridge соответственно.
  3. Идентификатор системы sys_id.
  4. Контроллер JTAG, необходимый для прошивки платформы и отладки проекта.
  5. Интерфейсы подключения памяти (ssram_controller, ssram_bridge_pin_sharer, ssram_bridge).
  6. Процессор NIOS II (cpu).
  7. Системный таймер sys_timer.
  8. Контроллер 1-Wire интерфейса для подключения датчика температуры sockit_owm_inst.

Результатом сборки компонентов СнК стала синтезированная блоковая схема, представленная на рис. 3.

Рисунок 3 — Блоковая схема СнК

Возможности использования Quartus Qsys в сфере Internet-технологий

Применение Quartus Qsys в сфере Internet-технологий возможно благодаря включению в состав СнК контроллера Ethernet, реализующего функции стека протоколов TCP/IP. Примером такого использования является демонстрационный проект NIOS II Simple Socket Server [5]. Этот пример демонстрирует проект сокет сервера, использующего NicheStack TCP/IP под NIOS II, работающий под управлением MicroC/OS-II. Сервер реализует простые команды управления светодиодами платформы через отдельную задачу ОС MicroC/OS-II. Этот пример не является полной реализацией сервера Telnet, а использует интерфейс сокетов. Принцип работы проекта показан на рис. 4.

Рисунок 4 — Принцип работы проекта

Выводы и рекомендации

Таким образом, инструментальная среда Quartus Qsys позволяет собирать иерархические и легко масштабируемые СнК с использованием большого набора стандартных компоментов, будь то периферийные контроллеры или контроллер Ethernet. Qsys можно рекомендовать для проектирования встраиваемых систем для самых различных областей применения.

Altera ведёт разработку самой защищённой ПЛИС FPGA старшего класса

Altera Corporation и Intrinsic-ID, ведущий разработчик технологии физически неклонируемой функции (Physically Unclonable Function – PUF), заключили партнёрское соглашение в области интеграции передовых систем безопасности в ПЛИС FPGA и системы-на-кристалле семейства Stratix ® 10. Хранение ключей на основе PUF-технологии является новым требованием для большинства военных и инфраструктурных приложений, предъявляемым сегодня с целью обеспечить защиту и привязку программного обеспечения к аппаратным функциям и предотвратить клонирование систем. Реализация технологии физически неклонируемой функции в ПЛИС FPGA и системах-на-кристалле Stratix ® 10 значительно увеличат защищённость устройств, что в полной мере отвечает всё более возрастающим требованиям безопасности системных компонентов.

Современные ПЛИС и СнК представляют собой сложные, многофункциональные компоненты, которые требуют применения новейших средств аппаратной защиты в условиях возрастающих угроз. Решения безопасности на основе PUF-технологии Intrinsic-ID обеспечивают надёжную защиту от несанкционированного доступа к системам на базе ПЛИС FPGA Stratix ® 10, привязывая оригинальную и уязвимую системную информацию к уникальным физическим свойствам каждого конкретного устройства. Привязка аппаратной архитектуры и программного обеспечения к физически неклонируемым функциям позволяет реализовать чрезвычайно надёжный механизм аутентификации устройств и предотвратить их подделку и фальсификацию. Использование PUF-технологии и защищённого менеджера устройства (SDM) делает ПЛИС FPGA и системы-на-кристалле семейства Stratix ® 10 идеальным выбором для применения в военной электронике, системах безопасности облачных сервисов и инфраструктуре Интернета вещей и везде, где многоуровневая безопасность и раздельная защита IP-блоков играют ключевую роль.

Сотрудничество между Altera и Intrinsic-ID позволит разработчикам систем на базе устройств Stratix ® 10 лицензировать технологию физически неклонируемых функций для применения в широком спектре защищённых приложений. Разработчики смогут воспользоваться всесторонней технической поддержкой со стороны компании Intrinsic-ID.
«Intrinsic-ID является ведущим разработчиком PUF-технологии, и сотрудничество с этой компанией позволит нам встроить в наши высокопроизводительные ПЛИС и СнК функции безопасности и защиты, не имеющие себе равных в отрасли, – заявил вице-президент подразделения встраиваемых систем компании Altera Ден МакНамара. – Наши совместно разрабатываемые решения не только увеличат защиту конфигурационного файла программируемой логической матрицы, но и позволят реализовать функции аутентификации устройства для критически важных приложений, исполняемых на ПЛИС FPGA».

«Компания Intrinsic-ID проделала долгий и нелёгкий путь развития PUF-технологии, и в результате нашей совместной работы мы ожидаем, что клиенты Altera получат существенные преимущества при разработке критически важных с точки зрения безопасности приложений в области военной электроники, телекоммуникаций, оборудования дата-центров, защищённых облачных сервисов и ряда других, – говорит исполнительный директор компании Intrinsic-ID Пим Тюйлс. – ПЛИС и системы-на-кристалле Stratix® 10 с технологией физически неклонируемой функции обеспечат непревзойдённый уровень защиты от несанкционированного доступа и фальсификации, и мы чрезвычайно рады работать вместе с Altera с целью вывести передовые решения безопасности на рынок FPGA».

ПЛИС FPGA и системы-на-кристалле SoC FPGA семейства Stratix ® 10 отличаются высочайшей производительностью и наивысшим уровнем интеграции. Все представители семейства оснащены защищённым менеджером устройства (Secure Device Manager – SDM), выполняющего роль цент­рального узла управления всей ПЛИС, контролирующего ключевые функции, такие как процесс конфигурации, системную безопасность, реакцию на одиночные сбои (Single Event Upset – SEU) и управление питанием. Secure Device Manager формирует единую, защищённую систему управления всего устройства, включая программируемую логическую матрицу, аппаратно реализованную процессорную систему (HPS), аппаратные IP-блоки функций и блоки ввода/вывода.

Читайте также  Устройство записи с телефонной линии

ПЛИС Altera. Часть 3: первая компиляция проекта

Это третья часть цикла посвященная программируемой логике и среде разработки Quartus компании Altera.

Ссылки на предыдущие части:

В первой части рассказывалось о загрузке и установке Quartus, создании пустого проекта с помощью мастера.

Во второй части рассматривалось проектирование цифровой схемы, определялась последовательность шагов для создания конфигурации ПЛИС. Напоминаю, что процесс создания конфигурации предусматривает следующие этапы:

проектирование цифровой схемы;

анализ созданной схемы на наличие ошибок;

привязка входов и выходов схемы к конкретным выводам ПЛИС;

компиляция проекта и создание двоичных файлов для конфигурирования ПЛИС;

конфигурирование ПЛИС посредством USB Blaster.

Первый этап освещен во второй части. Содержание второго этапа раскрывается ниже.

Шаг 2 . А нализ созданной схемы на наличие ошибок

Анализ схемы выполняется при компиляции проекта. Но прежде чем приступить к компиляции необходимо указать главный модуль проекта. Смысл и назначение главного модуля раскрывались в первой части, при описании работы мастера создания проекта. Коротко, главный модуль — это ключевой элемент иерархии проекта. Проект без главного модуля невозможно откомпилировать.

Г лавный модуль проекта

Главный модуль указывается в окне «Project Navigator» среды Quartus. «Project Navigator» предназначен для управления файлами и иерархией проекта. Его окно располагается в левой части основного окна среды разработки. С помощью этого инструмента можно просмотреть список модулей и файлов включенных в проект.

Окно «Project Navigator» содержит несколько вкладок. На вкладке «Hierarchy» выводятся модули проекта сгруппированные в иерархический список. Корнем списка является выбранный чип Altera, следом идет главный модуль.

Список всех добавленных к проекту файлов выводится на вкладке «Files». Эти файлы можно открывать для редактирования выполнив двойной клик на одном из них. Кроме того здесь можно и удалить файл из проекта. Но файл не удаляется с диска физически, а просто исключается из проекта. На этой же кладке можно выбрать файл, который будет главным модулем проекта.

Для определения одного из файлов проекта в качестве главного необходимо переключиться на вкладку «Files». Выбрать этот файл в представленном списке и указать действие «Set as Top-Level Entity» из контекстного меню файла. Описанная последовательность приведена на рисунке выше.

По умолчанию главным модулем проекта считается файл, имя которого совпадает с именем «Top-Level Entity» указанном при создании проекта. С помощью «Project Navigator» можно проверить корректность настройки главного модуля. Для этого необходимо закрыть все файлы проекта. Выбрать вкладку «Hierarchy» в навигаторе и произвести двойной клик на имени главного модуля в иерархии. Должна открыться Ваша схема. Если схема не открылась, то необходимо задать главный модуль вручную.

После настройки главного модуля можно переходить к компиляции проекта.

Первая компиляция: анализ и синтез схемы

Процесс компиляции построенной схемы в конфигурацию ПЛИС включает в себя множество этапов. Ключевыми этапами являются: « Analysis & Synthesis », « Fitter (Place & Route) », « Assembler », « TimeQuest Timing Analysis ». Все они выполняются при каждой компиляции, но независимо друг от друга. То есть, если критичные ошибки будут выявлены на этапе « Analysis & Synthesis », то процесс не прервется, а будет продолжаться до завершения всех оставшихся этапов. Для ускорения процесса отладки проекта каждый этап можно выполнять отдельно с помощью меню Processing → Start . Самые важные из них также вынесены на панель инструментов « Standart » среды Quartus.

Анализ и синтез схемы (« Analysis & Synthesis ») — это первый и наиболее важный из всех этапов. Здесь выявляются ошибки на уровне проектирования, а также выполняется трансляция созданной схемы в блоки физически реализованные в выбранной микросхеме Altera. При обнаружении ошибок на данном этапе дальнейшее выполнение компиляции не имеет смысла.

Запустить анализ и синтез схемы можно с помощью кнопки « Start Analysis & Synthesis » расположенной на стандартной панели инструментов. Данная кнопка выделена на следующем рисунке.

При нажатии на указанную кнопку запустится процесс анализа и синтеза, прогресс выполнения которого в процентах будет указан в строке « Analysis & Synthesis » окна « Tasks ». Окно « Tasks » располагается под окном « Project Navigator ».

По окончании процесса компиляции в центральной части окна Quartus откроется новая вкладка под названием « Compilation Report – firstproject ».

Вкладка « Compilation Report – firstproject » содержит полный отчет о результатах выполнения анализа и синтеза. Этот отчет чрезвычайно подробный. В нем приводятся не только обобщенный результат анализа и синтеза, раздел « Flow Summary », но и параметры с которыми выполнялась компиляция, время ее выполнения и детальные результаты синтеза. Помимо данной информации последними пунктами идет полный лог сообщений, которые выводились в процессе компиляции. Это пункты « Messages » и « Flow Messages ». Разница между ними в том, что Analysis & Synthesis → Messages содержит только те сообщения, что были выведены при выполнении анализа и синтеза. Раздел « Flow Messages » включает в себя сообщения всех этапов, которые были выполнены при данной компиляции. Так как сейчас был выполнен только один этап, то содержание « Flow Messages » полностью повторяет Analysis & Synthesis → Messages.

Из всей информации приведенной в отчете о компиляции, в первую очередь необходимо ознакомиться с содержанием разделов « Flow Summary » и « Flow messages ».

Вид раздела « Flow Summary » представлен на предыдущем рисунке. В разделе « Flow Summary » в первой же строке « Flow Status » выводится обобщенный результат компиляции: « Successful » — успешно, или « Flow Fail ed » в случае ошибки . Так как первая схема очень проста, то и первая компиляция наверняка будет успешной. В противном случае необходимо будет перейти к разделу « Flow Messages » и изучить приведенные там сообщения.

Содержание раздела « Flow Messages » оформлено в виде окна, изображение которого представлено на рисунке ниже.

На этом рисунке представлен возможный вид окна в случае возникновения ошибки компиляции.

Все сообщения выводимые в окне « Flow Messages » можно разделить на четыре группы, сообщения каждой группы окрашены в свой цвет.

Зеленым цветом обозначаются информационные сообщения, которые выводятся во время любой компиляции.

Синим цветом обозначаются предупреждения («Warnings»). Сюда, в основном, выводятся сообщения о проблемах возникших во время компиляции. Данные проблемы не являются настолько серьезными чтобы помешать успешной компиляции, но они могу влиять как на производительность самого процесса компиляции, так и на производительность результирующей конфигурации. В частности, бесплатная версия Quartus будет постоянно выводить сообщение о не работающей параллельной компиляции: «Parallel compilation is not licensed and has been disabled». Параллельная компиляция доступна только в платных редакциях Quartus. Поэтому данное сообщение можно игнорировать.

На приведенном выше рисунке помимо предупреждения связанного с параллельной компиляцией присутствует предупреждение о не подключенном выводе схемы: «Pin «input2_or» not connected». Строго говоря эта ошибка может быть и незначительной. Так как на схеме мог остаться лишний вывод, который просто забыли удалить. Но так как компиляция завершилась с ошибкой, то это первая подсказка где ее нужно искать.

Красным цветом выделяются сообщения об ошибках (« Errors »). Ошибки — это все события, которые препятствуют успешному выполнению компиляции. В примере выше присутствуют два сообщения об ошибках. Первое: «Node «inst1» is missing source». Эта ошибка сообщает о сути проблемы: у блока с именем « inst1 » , на схеме представленной ниже это логический элемент « OR2 » , один из входов ни к чему не подключен. С учетом предыдущего предупреждения о выводе «input2_or» можно сделать вывод, что на схеме необходимо исправить связь между данным выводом схемы и соответствующим входом логического элемента. Вторая ошибка не является ошибкой самой по себе. Это сообщение о результате компиляции. Статус — «unsuccessful». И число ошибок и предупреждений выведенных в процессе.

Синим цветом также выделяются критические предупреждения (« Critical Warnings »). Данные предупреждения принципиально отличаются от обычных тем, что вызываются ошибками, которые уже могут серьезно повлиять на работу итоговой схемы. Они не являются непреодолимыми для ПО Quartus и устраняются автоматически, но результат работы автоматики может сильно отличаться от ожидаемого. Поэтому все такие предупреждения требуют к себе более внимательного отношения. В рассмотренном примере подобные ошибки отсутствуют.

Каждый тип сообщений, помимо цвета, обозначается еще и собственной пиктограммой. Этими же пиктограммами обозначены кнопки фильтра сообщений расположенного в левом верхнем углу окна « Flow Messages ». Эти к нопки выделены на изображении окна представленном выше. Количество сообщений каждого типа дополнительно обозначается числом на соответствующей кнопке фильтра сообщений. С помощью фильтра можно включать отображение сообщений только одного конкретного типа или нескольких типов одновременно . Назначение кнопок п о порядку:

« All » отключает все остальные кнопки ;

« Flagged Messages » — этот фильтр выводит только те сообщения, которые были помечены пользователем с помощью контекстного меню Flag → Flag Message.

Справа от кнопок расположено поле ввода текстового фильтра, который ограничивает вывод строками частично совпадающими с введенным текстом.

Сообщения из окна « Flow Messages » также дублируются в окне « Messages », которое по умолчанию располагается в нижней части основного окна среды Quartus . Принципиальное отличие « Messages » от « Flow Messages » в том, что оно содержит две вкладки: « Processing » и « System ». Эти вкладки располагаются в левой нижней части окна. Они обозначены на рисунке ниже. Содержимое « Processing » ничем не отличается от одноименной вкладки окна « Flow Messages ». Вкладка « System » предназначена для вывода сообщений связанных с изменением настроек проекта в целом или с работой самой среды Quartus.

Читайте также  Фэйзер для электрогитары на операционных усилителях

С успешным выполнением анализа и синтеза схемы завершается третья часть серии статей о ПЛИС Altera. В четвертой части освещается работа над схемотехнической частью проекта. Уже завершена разработка внутренней, реализованной в ПЛИС части схемы. Теперь нужно будет разработать схему подключаемую к ПЛИС извне. Что будет невозможно сделать не зная устройства используемой в проекте платы «CTRL-CPLD-EPM570».

Структурная модификация процессорных СФ-блоков для систем на кристалле, реализуемых на базе FPGA

В статье рассматриваются возможные варианты модификации СФ-блоков, используемых при проектировании систем на кристалле. Подробно рассказывается о методике структурной модификации с целью исключения избыточных инструкций и функций, не используемых в конкретном приложении.

СБИС класса «система на кристалле» (СнК) начинают широко внедряться в современную электронную аппаратуру, вытесняя традиционные конструктивные решения в виде систем, реализованных на печатных платах. Современные микро- и наноэлектронные технологии позволяют реализовать СнК в виде заказной СБИС (ASIC) или на базе ПЛИС высокой интеграции (FPGA). При разработке методов и средств создания современных СБИС класса «СнК» следует рассматривать оба эти направления, каждое из которых имеет свои области применения [1—4].
СнК, реализованные в виде ASIC, имеют значительные преимущества по сравнению с другими решениями:
– возможность получения более высоких технических показателей (производительность, энергопотребление, массогабаритные характеристики);
– более низкая стоимость при крупносерийном выпуске.
Однако разработка и организация серийного выпуска СнК в виде ASIC требуют значительных финансовых затрат. Поэтому такая реализация СнК является перспективной для проектов, предъявляющих особо высокие требования к техническим характеристикам изделий, которые другими средствами не обеспечиваются, или для высокобюджетных проектов, ориентированных на многосерийное производство и обеспечивающих экономическую эффективность данного решения.
Альтернативой является реализация СнК на базе высокоинтегрированных FPGA, которые производятся по технологии 90 нм и менее, имеют логическую емкость более 106 логических вентилей. Данный вариант реализации СнК также имеет ряд преимуществ:
– малые затраты на разработку и создание опытных образцов;
– возможность многократной оперативной коррекции проекта;
– использование хорошо проверенных серийных изделий;
– более простой процесс тестирования и отладки.
СнК на базе FPGA являются перспективной элементной базой для широкой номенклатуры мало- и среднесерийных изделий с ограниченными требованиями к параметрам.

Основная особенность технологии проектирования СнК – широкое использование СФ-блоков, имеющихся на рынке и в свободном доступе, которые могут быть реализованы на базе различных функциональных библиотек и технологий и интегрированы в кристалл СБИС средствами современных САПР. СФ-блоки, используемые при проектировании СнК, имеют три основные формы представления:
– топологический фрагмент, ориентированный на определенную технологию изготовления, который можно непосредственно реализовать в физической структуре кристалла – аппаратно реализованные (hard) СФ-блоки;
– схема соединения функциональных элементов из состава библиотеки, предназначенной для создания СБИС на базе конкретной технологии изготовления – гибкие (firm) СФ-блоки;
– модель на языке описания аппаратуры (Verilog, VHDL), которая средствами САПР преобразуется в топологические фрагменты для реализации на кристалле СБИС – синтезируемые (soft) СФ-блоки.
Разработчик может непосредственно «вмонтировать» в структуру проектируемой СБИС топологически готовый СФ-блок (hard) или использовать имеющуюся модель СФ-блока (firm, soft) и выполнить его схемотехническое и топологическое проектирование в составе реализуемой СБИС СнК.
Типовая структура СнК представлена на рисунке 1. Обычно основные функции по организации работы СнК выполняет процессорный СФ-блок, который во многих приложениях обеспечивает также необходимую программную обработку поступающих данных. В качестве внутренней памяти используются блоки статической памяти (SRAM). Дополнительные блоки памяти различного типа (SRAM, DRAM, ROM, EEPROM, флэш) обычно подключаются к СнК как внешние устройства. Специализированные СФ-блоки обработки данных обеспечивают аппаратное выполнение функций, специфических для данной системы. Это могут быть блоки цифровой обработки сигналов (DSP), аналоговые схемы, преобразователи потоков данных и другие устройства, выполняющие функции сопроцессоров. Таймеры, АЦП и ЦАП, широтно-импульсные модуляторы и другие цифровые устройства интегрируются в состав СнК в качестве периферийных СФ-блоков. Интерфейс с внешними устройствами обеспечивается с помощью параллельных и последовательных портов, различных шинных и коммуникационных контроллеров и других интерфейсных СФ-блоков.

В составе СнК могут использоваться различные типы 8-, 16- и 32-разрядных процессорных СФ-блоков:
– имеющиеся в открытом доступе (OpenCores [5] и другие источники);
– предоставляемые на коммерческой основе по лицензиям фирм-разработчиков.
Разработчик проекта может выбрать готовую модель синтезируемого процессорного СФ-блока, которая в наибольшей степени обеспечивает выполнение задач в соответствии с требованиями технического задания. При этом современная технология проектирования СнК на базе процессорных СФ-блоков позволяет производить в процессе проектирования структурную модификацию процессорного ядра с учетом конкретных задач, решаемых в данном приложении. Т.к. синтезируемый СФ-блок представлен в виде HDL-модели, задачей проектировщика является коррекция имеющейся модели, верификация полученного модифицированного варианта, оценка параметров системы, реализованной на базе полученного ядра с целью определения эффективности проведенной модификации. Такая коррекция особенно эффективна в СнК, реализуемых на базе FPGA, где модификация структуры и функций используемых СФ-блоков легко обеспечивается средствами соответствующих САПР.
Возможны два варианта структурной модификации процессорного СФ-блока:
– расширение реализуемых функций путем добавления дополнительных возможностей (инструкций, функциональных блоков), обеспечивающих повышение эффективности при использовании СФ-блока в данном приложении;
– исключение ряда избыточных функций СФ-блока, которые не используются в данном приложении.
Отметим, что расширение функциональных возможностей процессорного СФ-блока обычно приводит к необходимости модификации пакета средств разработки программного обеспечения ввиду добавления инструкций по использованию новых функций. Это обстоятельство существенно снижает эффективность применения данного варианта модификации из-за значительных дополнительных затрат времени и средств.
В тех приложениях, где процессорный СФ-блок выполняет ограниченное число функций обмена данными и управления работы системы, имеет смысл его модифицировать, исключив ряд инструкций и соответствующих функциональных блоков. При этом не требуется модификации набора средств разработки программного обеспечения, ранее созданного для исходного процессорного ядра. Данный вариант модификации СФ-блока позволяет получить следующие результаты:
– повышение максимальной тактовой частоты процессорного СФ-блока, обусловленное сокращением количества и длины логических цепей;
– уменьшение количества ресурсов, необходимых для реализации СФ-блока на кристалле FPGA;
– снижение энергопотребления, обусловленное сокращением количества используемых ресурсов кристалла FPGA.

Предлагаемая методика модификации структуры процессорных СФ-блоков позволяет произвести сокращение набора команд, не требуемых для реализации данного приложения, и исключить из состава СФ-блока соответствующие неиспользуемые блоки. Общий алгоритм реализации данной методики представлен на рисунке 2. Исходными данными являются синтезируемая модель исходного процессорного СФ-блока в виде описания на HDL-языке (Verilog, VHDL) и программный код реализуемого приложения. Методика структурной модификации СФ-блока реализуется путем выполнения этапов в следующей последовательности.

1. Компиляция и линковка программы реализации заданного приложения позволяют получить исполняемый бинарный код.
2. Синтаксический анализ полученного кода позволяет выделить подмножества команд, используемых и неиспользуемых (исключаемых) при выполнении приложения.
3. Модификация HDL-кода исходного СФ-блока на основе полученной информации об используемом и исключаемом подмножествах команд:
а) модификация блока дешифрации команд: удаляется HDL-код, реализующий формирование выходных сигналов блока дешифрации при поступлении команд из исключаемого подмножества;
б) модификация состава исполнительных блоков: если в результате коррекции блока дешифрации команд выявляются блоки, для которых не формируются необходимые управляющие сигналы, HDL-код этих блоков исключается из исходной модели.
4. Синтез процессорного СФ-блока в соответствии с модифицированным вариантом HDL-кода выполняется средствами САПР для семейства FPGA, на базе которого предполагается реализация СнК.
5. HDL-моделирование на исходном и модифицированном ядрах позволяет получить две трассы, сравнив которые, можно определить корректность модифицированного HDL-описания: в случае идентичности трасс модификация признается корректной.
6. Оценка параметров модифицированного варианта СФ-блока позволяет определить его основные характеристики и количественно оценить достигаемое улучшение основных показателей.
В качестве критериев оценки используется следующий набор параметров:
– количество ресурсов FPGA, необходимое для реализации СФ-блока;
– максимальная тактовая частота СФ-блока;
– динамическая мощность, потребляемая СФ-блоком.
При выполнении основных этапов данной методики модификации используются САПР, предоставляемые производителями используемых FPGA: QuartusII компании Altera, ISE компании Xilinx и др. Эти САПР выдают данные об использовании различных ресурсов кристалла – логических блоков LUT (Look-Up Table), триггеров, блочной памяти, аппаратных умножителей и других блоков, производят определение максимальной рабочей частоты, позволяют оценить значения потребляемой мощности.

Для оценки эффективности методики структурной модификации процессорных СФ-блоков путем сокращения набора поддерживаемых инструкций выбрана архитектура MIPS-I, которая является типичным представителем RISC-архитектур, а ее модификации широко используются в разнообразных современных системах. Для более полной оценки были использованы VHDL-модели ряда вариантов СФ-блоков данной архитектуры, которые отличались количеством ступеней конвейера (от 1 до 7), реализацией блока сдвигателя, способом переноса данных в арифметико-логическом устройстве.
Моделирование производилось для случая размещения процессорных СФ-блоков на FPGA семейства Stratix III компании Altera. В качестве набора тестовых приложений выбрано 20 алгоритмов из различных наборов тестов (см. табл. 1). Для компиляции приложений использовался стандартный компилятор GCC.
Полученные данные о сокращении количества ресурсов (LUT и триггеров), требуемых для реализации модифицированных СФ-блоков, представлены на рисунке 3, где приводятся средние, минимальные и максимальные значения для исследованных вариантов, а также значения для ядра p3m_st (процессорный СФ-блок с трехступенчатым конвейером и сдвигателем на базе умножителя), который имеет наилучшие показатели по совокупности критериев оценки.