Введение:
Программируемые логические интегральные схемы (ПЛИС) в настоящее время получили широкое распространение, как основа для создания сложных, но в то же время компактных устройств. Также популярно использование ПЛИС при реализации сложных алгоритмов с повышенными требованиями к скорости исполнения, в таких случаях проще и дешевле их аппаратная реализация на ПЛИС, чем программная с помощью ЭВМ.
Современный уровень развития средств разработки устройств на ПЛИС позволяет максимально приблизить процесс разработки к процессу программирования алгоритмов на языках программирования, при этом языки проектирования (такие, как VHDL, Verilog, SystemC) развиты настолько, что с их помощью можно создавать и полноценное программное обеспечение для ЭВМ.
Достоинством ПЛИС, как базы для разработки логической схемы, является компактность размеров при большой сложности схемотехники, а главным достоинством ПЛИС при ее сравнении с микропроцессорными устройствами является высокое быстродействие исполнения реализованных алгоритмов.
К недостаткам ПЛИС можно отнести сравнительно высокое энергопотребление (по отношению к возможностям схем на дискретных элементах) и, по отношению к микропроцессорным системам, ограниченную сложность реализуемых алгоритмов, обусловленную конечным числом логических вентилей, которое на несколько порядков меньше используемых сейчас в вычислительных машинах объемов оперативной памяти, хранящей программу.
Тем не менее, ПЛИС является перспективным направлением, позволяющим разработчикам реализовать свои собственные топологии микросхем для своих нужд и создавать компактные и в то же время высокосложные устройства.
В данной работе приведен пример разработки логической схемы и ее реализации на ПЛИС. Проект для ПЛИС составлен с использованием языка VHDL.
Глава 3:
Каждому блоку в логической модели соответствует своя сущность (entity) в проекте VHDL, зачастую имена, использованные в проекте повторяют имета, использовавшиеся при моделировании. DTR соответствует D-триггеру, REG обозначает регистр, CONV — формирователь сигнала для одного шестрадцатеричного разряда, SWITCH — выключатель (цепь гашения) индикатора для одного шестрадцатеричного разряда. Также сохранены имена сигналов, за исключением «шинных», т. е. многоразрядных сигналов, в которых цифра в конце имени перешла в индекс массива по причине удобства работы с массивами в VHDL.
Для тестирования файла использовалась программа GHDL. Она не имеет графического интерфейса и работа с ней происходит в текстовом режиме операционной системы Linux. Помимо основного файла с проектом подготавливается файл с сигналами. Исходные данные в графическом виде и результаты тестирования можно увидеть в Приложении 2. Исходные данные составлялись таким образом, чтобы каждый индикатор смог отобразить все возможные символы и проверился сигнал гашения индикатора. Обозначения сигналов на диаграммах изменены на обозначения идентичные проекту в CoDeSys.
Также тестирование проводилось с помощью пакета программ «QuartusII», выпускающегося компанией «Altera», производителем ПЛИС серии MAX, в данном пакете произведен выбор микросхемы и распределение выводов микросхемы для входных и выходных сигналов. Цоколевка ПЛИС, запрограммированной для данной задачи показана на рисунке 10. Цоколевка выбрана из соображений удобства подключения системной шины и индикаторов (группы выводов разнесены по сторонам корпуса ПЛИС и выводы расположены по порядку). Микросхема выбрана исходя из требований минимальной стоимости при минимально необходимом количестве выводов и достаточном количестве логических элементов в корпусе. Таким требованиям соответствует MAX EPM3064ATI100-10. Так как специальные требования по быстродействию к устройству не предъявляются, взята микросхема с минимальным быстродействием.
В приложении 3 представлен файл отчета компиляции проекта. Особых требований по быстродействию к данному устройству не предъявляется.