Программируемые пользователем вентильные матрицы (FPGA)

Программируемые пользователем вентильные матрицы (ППВМ или FPGA) топологически сходны с канальными БМК. В их внутренней области размещается множество регулярно расположенных идентичных конфигурируемых логических блоков (КЛБ), между которыми проходят трассировочные каналы, а на периферии кристалла расположены блоки ввода/вывода (БВВ или ЮВ, Input/Output Blocks). Таким образом, архитектуру ППВМ можно представить рисунком, подобным рис. 7.21, а, д, если вместо наименования "базовая ячейка" иметь в виду наименование КЛБ, а вместо "периферийной ячейки" - БВВ.

К наиболее известным FPGA относятся БИС/СБИС семейств ХС2000, ХСЗООО, ХС4000, ХС5000 и Spartan фирмы Хilinх, которая в 1985 г. впервые выпустила FPGA с триггерной памятью конфигурации. Среди FPGA с перемычками типа antifuse следует отметить семейства АСТ1, 1200XL, ACTS, 3200DX фирмы Actel, используемые, в частности, в космической аппаратуре США.

Свойства и возможности FPGA зависят в первую очередь от характера их КЛБ и системы межсоединений.

Логические блоки FPGA

В качестве КЛБ (далее для краткости просто ЛБ - логические блоки) используются:

  • транзисторные пары, простые логические вентили И-НЕ, ИЛИ-НЕ и т. п. Такие ЛБ называют SLC - Simple Logic Cells;
  • логические модули на основе мультиплексоров;
  • логические модули на основе программируемых ПЗУ, такие ЛБ называют LUTs - Look-Up Tables.

Важной характеристикой Л Б является их "зернистость" (Granularity). Другой важной характеристикой считается "функциональность" (Functionality).

Первое свойство связано с тем, насколько "мелкими" будут те части, из которых можно "собирать" нужные схемы, второе - с тем, насколько велики логические возможности Л Б.

Мелкозернистость ЛБ ведет к большей гибкости их использования, возможностям реализовать воспроизводимые функции разными способами, получая разные варианты в координатах "площадь кристалла - быстродействие". В то же время мелкозернистость ЛБ усложняет систему межсоединений FPGA в связи с большим числом программируемых точек связи.

Крупнозернистый блок семейства ХС4000Е (рис. 8.7) в качестве основы имеет три табличных функциональных логических преобразователя G, F и Н, а также ряд программируемых мультиплексоров (отмечены номерами 1...12 или надписями у выходов) и два триггера.

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

Программируемые пользователем вентильные матрицы (FPGA) - student2.ru
Ркс. 8.7.Схема логического блока FPGA XC4000E

Табличные преобразователи представляют собой ППЗУ, для которых аргументы логической функции служат адресом (см. §4.5). Воспроизводятся любые функции числа аргументов п при организации памяти 2n × 1. Число воспроизводимых функций, т. е. число возможных вариантов программирования ЗУ, составляет 22 n . Логические преобразователи G и F (блоки памяти с организацией 16 × 1) воспроизводят функции 4-х аргументов. Их выходные сигналы могут непосредственно передаваться на выходы Y и X при соответствующем программировании мультиплексоров 4 и 6, либо использоваться иным образом. Через мультиплексоры 1 и 2 выходы преобразователей G и F могут быть поданы на входы преобразователя Н, если мультиплексоры запрограммированы на передачу сигналов от нижних входов. Кроме того, преобразователь Н может использоваться как третий независимый генератор функций со входами Н0, H1 и Н2, если мультиплексоры 1 и 2 запрограммированы иначе. Входной сигнал H1 может добавляться как дополнительный аргумент и при подаче на преобразователь Н выходов преобразователей G и F.

При подаче выходных сигналов преобразователей G и F на вход преобразователя Н он воспроизводит функции большего, чем 4 числа аргументов (от 5 до 9, причем для 5 аргументов воспроизводятся любые функции, а для 6...9 лишь некоторые).

В зависимости от программирования мультиплексоров 3 и 5, триггеры принимают данные от логических преобразователей или внешнего входа DIN. Сигналы К тактирования триггеров поступают от общего входа через мультиплексоры 7 и 8, программирование которых позволяет индивидуально изменять полярность фронта, тактирующего триггеры. Сигнал разрешения тактирования ЕС также поступает от общего входа, но, благодаря мультиплексорам 9 и 10, можно либо использовать сигнал разрешения, либо постоянно разрешить тактирование. Триггеры имеют асинхронные входы установки и сброса (SD - Set Direct и RD - Reset Direct), один из которых через программируемый селектор S/R может быть подключен к выходу коммутатора SR, который, в свою очередь, может программироваться для подключения к любому из внешних выводов ЛБ С1...С4. Это же возможно и для других выходов коммутаторов верхней строки рис. 8.7.

В специальных режимах блоки G и F функционируют как обычные ОЗУ, способные хранить 32 бита данных. Возможна реализация двухпортовых ОЗУ, буферов FIFO и т. д. Память распределена по всему кристаллу.

Наши рекомендации