Бушуев Иван Юрьевич, студент;
Аверченко Артем Павлович, старший преподаватель
Омский государственный технический университет}}}
В данной статье автор разбирается в моделях ПЛИС, представленных в продаже, и объясняет свой выбор отладочной оплаты для проекта.
Ключевые слова : ПЛИС, синхронизатор, цифровая электроника, цифровая обработка, схема.
Для реализации синхронизирующего устройства на базе ПЛИС нужно подобрать программируемую логическую интегральную схему из предложенных на сегодняшний день на рынке. Выбирать будем исходя из их физических параметров и цены. На базе синхронизирующего устройства предполагается сделать часы, которые будут считать время, а также сравнивающее устройство, задача которого состоит в том, чтобы сравнить время, которое приходит к синхронизатору, и время, которое считают часы на основе программируемой логической интегральной схеме.
Причины по которым использовать будем именно ПЛИС:
Практичность — при смене модели микроконтроллера нужно изучать документацию. При смене производителя микроконтроллера нужно снова изучать новую документацию. При проектировании на ПЛИС, если знакомы с такими языками программирования как Verilog или VHDL, в таком случае есть возможность не только программировать любую ПЛИС из семейства одной и той же выбранной компании, но при необходимости перейти на программируемую логическую интегральную схему от другой компании, например, Altera или Xilinx. Несмотря на проблемы связанные со знакомством с неизвестной средой разработки, новых нюансов, сам алгоритм программирования на HDL от этого не станет иным.
Переход от замысла к реализации задуманного — бывают такие ситуации, что при создании проекта не достаточно одного микроконтроллера, то в таком случае требуется подбирать иной. Вообще-то можно предполагать сможет или не сможет выполнить этот микроконтроллер задуманный проектом. Или имеется какой-то заранее выбранный микроконтроллер и мы пытаемся реализовать проект на его основе. Обычно это происходит примерно так. Поэтому лучший вариант — это продумать то что мы хотим сделать, а затем под эту идею подбирать необходимые запчасти. То есть сначала идея, затем выбор компонентов.
Легкость использования сторонних программ — Не запрещается запустить модуль чужой программы. По коду можно понять, каким образом он работает. Даже не смотря на то, что он выполнен для платы от компании Intel, а мы запускаем на Xilinx. Возможно это получится не сразу и придется потратить некоторое время, но это проще, чем разбираться с разными микроконтроллерами или писать программу каждый раз на новом языке.
Независимость блоков. Блоки в HDL, подчиняются только входящим сигналам. Подготовленный и настроенный модуль будет работать как было задумано изначально, несмотря на то как бы не усложняли и не увеличивали проект. Никакие внешние факторы не смогут повлиять на его работоспособность внутри. Кроме всего прочего, блоки в ПЛИС работают независимо друг друга, т. е. параллельно.
Сразу возникают вопросы какую ПЛИС выбрать Altera или Xilinx? На каком языке программировать Verilog или VHDL? На какой отладочной плате остановить свой выбор?
Программирование мы будем выполнять с помощью языка Verilog.
В данный момент существует большое разнообразие плат на SoC, содержащие в себе FPGA и ядра процессора, они имеют различные цены, но мы из всего разнообразия более или менее доступных микросхем выделим только два семейства: Cyclone V производства компании Intel (Altera) и Zynq-7000, предлагаемых компанией Xilinx. Обе модели отладочных плат обладают двухъядерным процессором ARM Cortex A9 и FPGA. Zynq возможны в одноядерном исполнении (Zynq-7000S). Выбранные микросхемы предлагаются в корпусе BGA, поэтому спаять подобную плату самому не предоставляется возможным. Большинство плат обладают конфигурацией SOM (система на модуле), что дает возможность для их установки в свои проекты, штучные или серийные.
Другими примерами плат на SoC являются модели Arria V, Arria 10, Stratix 10 (перечисленные плат от компании Intel) и Virtex 7 (от компании Xilinx). В чипы Xilinx и Virtex встраивалась микропроцессорная RISC-архитектура PowerPC до семейства Virtex 6 в том числе. Но цена таких отладочных плат с этими чипами может быть очень высокой.
По так называемому “железу” отладочные платы Cyclone V и Zynq-7000 очень похожие системы, обладающие двумя ядрами Cortex A9 и некоторым количеством ячеек FPGA. Но разница между этими семействами заключается в их софте.
Для Xilinx Zynq-7000 (и подобных FPGA седьмой генерации от этой компании) средой разработки проектов FPGA является программа Vivado, средой разработки программного обеспечения — Xilinx Software Development Kit сокращенно SDK. Он распространяется на бесплатной основе и не имеет некоторых ограничений, которые имеются у DS-5 Altera Edition. Обе программы предлагаются в вариантах для Linux ОС и для Windows ОС, но необходимо обратить внимание, что Vivado для Linux ОС устанавливается не на любую Linux ОС. При установке на Windows ОС затруднений не возникнет.
Для программирования на отладочных платах Intel потребуется программа Quartus Prime, а инструментом разработки ПО — DS-5 Altera Edition. Что дает возможность (на бесплатной основе) создавать утилиты для Linux ОС, но в случае если мы захотим разрабатывать приложения, поддерживающие режим Bare Metal (без операционной системы), то нам потребуется платная DS-5. Для обеих программ (Quartus Prime и DS-5) доступны версии для Windows ОС и для Linux ОС. Но нужно держать во внимании тот факт, что инсталляция и настройка данных программ на Linux OC потребует определенных навыков и поиск готовых решений в сети Интернет. На Windows ОС эти программы устанавливаются без проблем.
Для сравнения я взял платы на из семейства Cyclone V от компании Intel (Altera) и семейство Zynq-7000 представленное на рынке компанией Xilinx, которые представлены в продаже на сегодняшний день.
Остановим свой выбор на отладочной плате от компании Intel (Altera) Cyclone V E, которая имеет компактные размеры, отличное оснащение и хорошие технические параметры, которые приведены ниже:
432 М9К блоков памяти
3 888 кбит встроенной памяти
4 ФАПЧ
Устройство последовательной конфигурации EPCS64
Встроенная схема USB — бластера
128 МВ (32Мх32bit) SDRAM
2 MB (1Mx16) SRAM
8 MB (4Mx16) Flash — памяти с 8-ми битным режимом
32 Кб EEPROM
Три входа тактовой частоты генерации 50 МГц
Разъемы SMA (вход/выход внешних часов)
Таким образом, приходим к выводу, что для реализации синхронизирующего устройства нам с запасом для дальнейшего улучшений разрабатываемого проекта вполне подойдет отладочная плата от компании Intel (Altera) Cyclone V Е, в качестве программной среды будем использовать Quartus и язык Verilog.