Назад в библиотеку

Современные средства генерирования VHDL описаний аппаратуры при проектировании программируемых схем FPGA

Автор: Хвищук А.Ю., Григорьев А.В.
Источник: Микроелектроника и информатика — 2018. 25–я Всеросийская межвузовская научно–техническая конференция студентов и аспирантов: тезисы докладов. — М.:МИЭТ, 2018. — 316 с.

Аннотация

Хвищук А.Ю., Григорьев А.В. Современные средства генерирования VHDL описаний аппаратуры при проектировании программируемых схем FPGA. В тексте данной статьи представлен краткий обзор методов проектирования интегральных схем по технологии FPGA, а также средства автоматизации процесса проектирования в существующих программных комплексах.

Annotation

Khvishchuk A.Yu., Grigoriev A.V. Methods and tools for designing integrated circuits using FPGA technology. The text of this article provides a brief overview of the methods for designing integrated circuits using FPGA technology, as well as the means for automating the design process in existing software systems.

Введение

Сегодня очень быстро развиваются и широко используются интегральные схемы общего назначения или ПЛИС (Программируемая Логическая Интегральная Схема). Область их применения очень обширна: от промышленности и медицины до военной и космической отраслей. Это способствует развитию методик и средств проектирования этих интегральных схем.

Актуальной задачей является разработка и внедрение средств упрощающих проектирование интегральных схем общего назначения. Существуют различные программные пакеты, позволяющие проектировать ПЛИС, однако для пользования ими проектировщик должен обладать высоким уровнем знаний предметной области.

Целью данной статьи является анализ технологии FPGA как наиболее яркого представителя интегральных схем общего назначения, сравнение её с аналогичными технологиями, а также анализ и сравнение САПР для проектирования FPGA.

1 Технология FPGA

Технология FPGA (англ. Field–Programable Gate Array) или ППВМ (Программируемая Пользователем Вентильная Матрица) является одной из разновидностей ПЛИС. Всего их существует три вида:

  1. 1) PAL (англ. Programmable Array Logic) (в настоящее время практически не используется).
  2. 2) CPLD (англ. Complex Programmable Logic Device).
  3. 3) FPGA.

Если не углубляться в особенности архитектуры (тут, всё таки, есть отличия между ними), то можно сказать, что они отличаются только количеством транзисторов на кристалле. А если углубляться, то основой CPLD является матрица макроячеек, которая, в свою очередь, так же как и FPGA, состоит из логических вентилей. Она выполняет функции более высокого уровня (тригеры, АЛУ и т.п.), поэтому CPLD проще в проектировании конечной схемы. Однако FPGA является более гибкой вследствие того, что проектировщик сам реализует высокоуровневые функции. Он может более эффективно использовать ресурсы схемы, благодаря этому FPGA, обычно, более производительны, чем CPLD.

2 Методы разработки ПЛИС по технологии FPGA

Несмотря на недолгое существование, технология методы проектирования схем по технологии FPGA претерпели несколько этапов своего развития:

1) Проектирование с помощью RTL–описания

RTL (или уровень регистровых передач) — способ разработки синхронных цифровых интегральных схем, при применении которого работа схемы описывается в виде последовательностей логических операций, применяемых к цифровым сигналам (данным) при их передаче от одного регистра к другому (не описывается, из каких электронных компонентов или из каких логических вентилей состоит схема). Такое высокоуровневое описание составляется на одном из языков описания аппаратуры (hardware description language или HDL), например, на языке Verilog или VHDL, после чего специальной программой преобразуется в низкоуровневое описание — граф логических элементов и проводников; процесс преобразования называется логическим синтезом или синтезом логики. Другие программы по описанию могут проверить правильность работы схемы и соответствие схемы предъявляемым требованиям. Третья программа, используя низкоуровневое описание, может разместить логические элементы и проводники по поверхности схемы или создать прошивку для ПЛИС.

2) Проектирование с помощью IP–блоков

IP–блоки или IP–ядра — готовые блоки для проектирования микросхем (например, для построения систем на кристалле). Они представляют собой высокоуровневые элементы схемы (такие как сумматоры, шифраторы, элементы для взаимодействия с внешними устройствами и д.т.), которые уже готовы к использованию, в отличие от методики HDL–проектирования, при которой проектировщик должен сам описывать эти высокоуровневые элементы.

Различают три основных класса блоков:

Также под IP–Core понимают специализированные области кристалла, выделенные для определённых функций. В этих областях реализованы блоки неизменной структуры, спроектированные по методологии ASIC, оптимизированные для заданной функции и не имеющие средств её программирования. В случае использования данного вида ядер размер площади, используемой на кристалле, сокращается, улучшаются характеристики быстродействия, но происходит потеря универсальности.

3) Высокоуровневое проектирование или High Level Systhesis

В обеих системах моделирования все элементы представлены блоками. На их базе в системах моделирования была построена схема (рис. 1, 2).

Данный пункт можно разделить на два меньших, которые отличаются средствами проектирования схем:

  1. a. Проектирование с помощью MATLAB и Simulink
  2. Ведущие производители FPGA предлагают средства автоматизации создания VHDL/Verilog описания схем, используя мощь и простоту разработки в Matlab. Это System Generator for DSP от компании Xilinx и DSP Builder от Intel.

  3. b. Проектирование FPGA с помощью C/C++
  4. Аналогично использованию Matlab, производители FPGA предлагают для автоматизации создания VHDL/Verilog описания использовать очень распространённые языки программирования C и C++. Программные пакеты, предназначенные для этого: Vivado High–Level Synthesis от Xilinx и HLS Compiler от Intel. Этот метод не позволяет синтезировать схемы со сложной или асинхронной логикой, но при проектирования простых схем позволяет существенно сократить время разработки.

Выводы

Описанные выше средства автоматизации разработки ПЛИС позволяют сократить время от момента задумки схемы до её фактической реализации. Они берут на себя часть трудозатратных работ, таких как трассировка и синтез схемы. Но для работы с любым из пакетов, которые сейчас существуют на рынке, проектировщик по–прежнему должен обладать высоким уровнем знаний предметной области. Кроме того, для ведущих компаний в сфере проектирования вычислительной техники (и не только для них) имеет место проблема: Как сохранить знания и опыт сотрудников? и, более того: Как извлечь из этого практическую пользу?.

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

Способы создания, обучения базы знаний, а также методы обработки и вывода данных из неё станут темами следующих статей.

Список использованной литературы

1. Григорьев А.В. Интеллектуализация процесса проектирования аппаратуры средствами языка VHDL / А.В. Григорьев, Д.А. Кошелева // Наук. працi ДонНТУ. Серия: ІКОТ. — 2006. — Вып. 93. — С. 99–105.
2. Григорьев А.В. Перспективные направления решения задачи синтеза HDL–программ в САПР РЭА / А.В. Григорьев, Д.А. Грищенко // Сборник трудов XI международной научной конференции им. Т.А. Таран. — К., 2011. — С. 75–81.
3. ПЛИС [электронный ресурс] – Режим доступа: https://ru.wikipedia.org/wiki/ПЛИС
4. Вентильная матрица [электронный ресурс] – Режим доступа:
https://ru.wikipedia.org/wiki/Программируемая_пользователем_вентильная_матрица
5. CPLD [электронный ресурс] – Режим доступа: https://ru.wikipedia.org/wiki/CPLD
6. САПР Xilinx [электронный ресурс] – Режим доступа: http://www.fpga-cpld.ru/sapr1.html
7. DSP Builder [электронный ресурс] – Режим доступа: https://habrahabr.ru/post/238821/
8. Архитектура ПЛИС [электронный ресурс] – Режим доступа: https://marsohod.org/11-blog/265-fpga
9. Quartus II Introduction Using VHDL Design. Altera Corporation. – 2008. – Режим доступа: http://people.ee.duke.edu/~dwyer/courses/ece52/tut_quartus_intro_vhdl.pdf