цифровая электроника
вычислительная техника
встраиваемые системы

 
» » » Знакомство с программируемыми логическими интегральными схемами типов FPGA и CPLD



Знакомство с программируемыми логическими интегральными схемами типов FPGA и CPLD

Автор: Mike(admin) от 29-08-2013, 15:23

В первой половине 60-х годов прошлого столетия электронные устройства разрабатывались на основе дискретных компонентов. Цифровые системы были похожи на лабиринты из лапши проводов, соединяющих компоненты. Однажды собрав схему, было сложно ее переделать. Иногда разработчики забывали о том, для чего вообще они проектировали свое устройство! Изготовление таких систем было очень затруднено, а при их починки или переделке у инженеров просто закрывались глаза от ужаса. Производители микросхем решили этот вопрос путем интеграции на одном кристалле не соединенных между собой вентилей ИЛИ-И, что в итоге назвали программируемым логическим устройством (programmable logic device или PLD).

PLD содержит в себе массив соединителей (предохранителей), которые могут быть разомкнуты (разорваны) или замкнуты для подключения к вентилям различных выводов. Мы можем запрограммировать PLD с помощью булевых выражений в виде суммы произведений, и тогда микросхема будет выполнять требуемую функцию.

CPLD (complex programmable logic device или сложные программируемые логические устройства) имеет в своем составе множество блоков PLD, входы и выходы которых соединены вместе посредством глобальной коммутационной матрицы. Таким образом, CPLD имеет два уровня программирования: уровень программирования каждого блока PLD и программирование взаимосвязей между этими блоками.

В программируемых логических интегральных схемах типа FPGA (field-programmable gate array или программируемая пользователем вентильная матрица) заложена другая идея. В ее составе имеется набор простых конфигурируемых логических блоков, расположенных в определенном порядке, с переключателями между ними, которые могут изменять взаимосвязи между этими логическими блоками. Каждый блок индивидуально программируется на выполнение логической функции, например, И, ИЛИ, ИЛИ-НЕ, а затем программируются переключатели для того, чтобы соединить блоки, которые вместе будут реализовывать требуемую сложную логическую функцию.

Различия между FPGA и CPLD

FPGA CPLD
Подходят для схем синхронизации, поскольку у них больше регистров Подходят для схем управления, поскольку они имеют более комбинационную схему
Могут использоваться в продукции класса high-end В основном используются в продукции класса low-end
FPGA более гибкие, у них больше ресурсов CPLD имеют меньше ресурсов по сравнению с FPGA
Могут работать на очень высоких скоростях Работают на небольшой скорости
В большинстве случаев структуру FPGA можно изменить, для этого нужно иметь память для конфигурационных данных CPLD не изменяемы в процессе работы. Они основаны на флэш-памяти или ПЗУ с возможностью стирания
FPGA не будет работать до того, как закончится конфигурирование CPLD будет работать сразу же после подачи питания
FPGA основаны на ОЗУ CPLD основаны на ПЗУ
FPGA являются «мелкозернистыми» устройствами. Это означает, что они содержат множество (до 100 000) небольших логических блоков с триггерами CPLD являются «крупнозернистыми» устройствами, то есть они содержат относительно небольшое число (до 100) крупных логических блоков с триггерами
У FPGA имеются специальные ресурсы маршрутизации для реализации эффективных бинарных счетчиков и арифметических функций Время прохождения сигнала от входа к выходу у CPLD меньше, чем у FPGA, из-за «крупнозернистой» архитектуры, поскольку один логический блок может содержать большое уравнение. В связи с этим CPLD в отличие от FPGA лучше подходят в качестве декодеров для микропроцессоров.
На FPGA можно выполнить очень крупные цифровые проекты На CPLD можно реализовать небольшие цифровые проекты

Архитектура CPLD и FPGA

Архитектура CPLD и FPGA

Реализация логики на FPGA или CPLD

Для начала нужно сделать описание логической схемы с помощью языка описания аппаратных средств (HDL), например, VHDL или Verilog. Это можно также сделать, нарисовав схему в каком-нибудь редакторе.

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

Для соответствия полученной структуры, описывающей логические вентили и взаимодействия, конкретной FPGA на стадии имплементации применяют определенный инструментарий разработки. Конфигурируемые логические блоки (CLB) в FPGA могут быть в дальнейшем разбиты на таблицы преобразования (look-up tables или LUT), которые выполняют логические преобразования. Инструментарий позволяет собрать вентили из списка соединений в группы, которые будут соответствовать  LUT, а затем назначить эти наборы вентилей специальным CLB.

Далее программа извлекает состояния переключателей и генерирует поток битов, где нули и единицы соответствуют открытым или закрытым переключателям. В итоге полученный поток битов загружают в микросхему FPGA.

Перевод © digitrode.ru

<Источник>


Теги: ПЛИС, FPGA, CPLD




Уважаемый посетитель, Вы зашли на сайт как незарегистрированный пользователь.
Мы рекомендуем Вам зарегистрироваться либо войти на сайт под своим именем.

Комментарии:

Оставить комментарий