СХЕМ ЛАБ РАБОТА _7 (1274910), страница 2
Текст из файла (страница 2)
6.1. Структуры первых ПЛИС
Прототипами современных ПЛИС типа CPLD являлись микросхемы ПЛМ–программируемые логические матрицы (PLA–Programmable logic Array) и ПМЛ – программируемая матричная логика(PAL–Programmable Array Logic).
-
Программируемая Логическая Матрица (ПЛМ)
ПЛМ – комбинационная схема, которая имеет N входов и M выходов. Она состоит из двух блоков– матрицы И и матрицы ИЛИ (рис.6.1), а так же входных и выходных буферов. Матрица И представляет собой совокупность из К штук 2*N– входовых схем И, образующих строки матрицы (термы). На строки из входных буферов поступают прямые и инверсные значения внешних входов ПЛМ. Выходы каждой из этих строк можно соединить с входами К– входовых схем ИЛИ, образующих столбцы матрицы ИЛИ, их М штук. Выходы этих схем ИЛИ и являются выходами ПЛМ.
Рис.6.1. Структура ПЛМ
При программировании ПЛМ каждый вход каждой схемы И может быть соединен с прямым или инверсным (рис.6.1) значением соответствующего входного сигнала или быть разомкнут, что соответствует значению логической 1 на этом входе. Итак, матрица И имеет 2*N столбцов и K строк, а матрица ИЛИ – К строк и M столбцов. Нетрудно провести аналогию с реализацией СДНФ произвольной логической функции на элементах И ,имеющими N входов ,элементах ИЛИ ,имеющими К входов и N элементов НЕ.
Например, функция мультиплексора 2–1 с тремя входами in1,in2 ,sel и выходом out_m, описываемая булевским уравнением
out_m=in1 & sel | in2 & ~ sel;
(обозначения– &– операция И, |– операция ИЛИ,~ операция инверсии НЕ) реализуется двумя строками матрицы И, соединенными с одним столбцом матрицы ИЛИ.
Иными словами, на ПЛМ с N–входами и M– выходами можно реализовать M разных N – входовых логических функций, число термов в которых ограничивается K.
6.1.2. Программируемая Матрица Логики (ПМЛ)
ПМЛ (рис.6.2) в отличие от ПЛМ, имеет не программируемые, а фиксированные связи строк–схем И со столбцами– схемами ИЛИ, что ограничивает их логические возможности, но резко упрощает процесс изготовления микросхем.
Рис.6.2. Структура ПМЛ(PAL)
В первых ПЛИС для программирования их функций использовались однократно пережигаемые перемычки.
Развитие технологии ПЛМ и ПМЛ пошло по пути реализации в ПЛИС возможности многократного перепрограммирования(конфигурирования) соединений и реализации большого числа таких узлов в одной микросхеме. Кроме того в состав микросхемы были включены запоминающие элементы – триггера, что резко повысило логические возможности ПЛИС. Эти ПЛИС стали называться сложными (CPLD–Complex Programmable Logic Device).Таким образом, в отличие от технологии заказных БИС в ПЛИС используются не фиксированные, а программируемые пользователем соединения элементов, а функции элементов тоже не фиксированные, а программируемые. Информация, осуществляющая функцию программирования, в современных ПЛИС хранится в так называемой теневой (конфигурационной) памяти микросхемы. Меняя содержимое этой памяти, мы изменяем функцию, реализуемую микросхемой.
.
6.1.3.Схемотехника ПЛИС типа CPLD.
CPLD (Complex Programmable Device) – ПЛИС с относительно небольшим числом функциональных блоков (ФБ– FB), состоящих из многовходовой ПЛМ (или ПМЛ) и триггера и как правило с энергонезависимой конфигурационной (FLASH) памятью, программирование которой реализует настройку блоков и их связей. В упрощенном виде (рис.6.3) СPLD можно представить как набор из множества ФБ, коммутируемых друг с другом через так называемую главную коммутационную матрицу (ГТМ или AIM–Advanced Interconnection Matrix)). На периферии расположены блоки ввода–вывода (БВВ или I/O).
Рис.6.3. Структурная схема ПЛИС семейства COOLRUNNER 2
Внутреннюю структуру ПЛИС типа CPLD поясним на примере семейства маломощных дешевых микросхем COOLRUNNER 2 фирмы XILINX. Каждая такая микросхема (рис.6.5) состоит из множества функциональных блоков типа ПЛМ, составляющих ее логический ресурс. ФБ в свою очередь, состоят из так называемых макроячеек (МЯ). Например, функциональный блок ПЛИС семейства COOLRUNNER 2 содержит 16 макроячеек (МС1–МС16) со структурой 40-входовых ПЛМ, что позволяет реализовать 16 логических функций от 40 переменных. Каждая макроячеека (рис.6.4)помимо комбинационной схемы – одновыходовой ПЛМ, имеет триггер, который может быть запрограммирован как D–триггер или как триггер-защелка. На него, кроме выходного сигнала от ПЛМ(D/T), приходят сигналы разрешения(CE),установки/сброса(S,R)и синхросигнал(C).
Рис. 6.4. Упрощенная схема макроячейки ПЛИС семейства COOLRUNNER 2
Семейство ПЛИС COOLRUNNER 2 отличается пониженным энергопотреблением (статический ток не превышает 100 мкА). Эти ПЛИС выпускаются в плоских корпусах. Снизу корпуса или с боков расположены выводы микросхемы, сверху указано ее обозначение.
Например, обозначение XC2C256 говорит о том, что это микросхема фирмы XILINX (X),типа CPLD серии COOLRUNNER 2 (C2), число макроячеек в которой 256. Микросхемы этого типа могут быть применены при создании нестандартных АЛУ, дешифраторов, мультиплексоров, конечных автоматов и т.д., т.е. при создании устройств, в которых реализуются логические функции большого числа переменных и используется относительно небольшое число триггеров. Более подробно с архитектурой CPLD можно ознакомиться по литературным источникам, приведенным в конце данного пособия [23–27 ], а также на сайтах производителей или продавцов ПЛИС – www.xilinx.com, www.altera.com, www.plis.ru и др.
Итак, ПЛМ реализует систему из n логических функций от m аргументов, представленных в дизъюнктивной нормальной форме (ДНФ). Эти функции должны содержать не более k различных термов.
6.2. Схемотехника ПЛИС типа FPGA
FPGA (Field Programmable Gate Array)–это другой тип ПЛИС. На площади кристалла микросхемы ПЛИС (рис.6.8) типа FPGA размещена матрица из множества программируемых функциональных блоков и множество программируемых соединений (PM–Programmable Interconnections). Функциональные логические блоки в ПЛИС типа FPGA называются конфигурируемыми логическими блоками (КЛБ), а в англоязычной литературе CLB–Сonfigurable Logic Block. В свою очередь КЛБ состоят из логических ячеек (ЛЯ).
Рис. 6.8. Структура ПЛИС типа FPGA
По периметру микросхемы размещены блоки ввода–вывода сигналов (IOB–Input Output Block). В отличие от ПЛИС типа CPLD функциональные блоки FPGA имеют другую организацию и логические возможности, а трассировочные ресурсы более разнообразны, т.к. состоят из линий разной длины и коммутаторов.
6.2.2. Логическая ячейка ПЛИС типа FPGA
Конфигурируемый Логический блок (КЛБ) образован из нескольких секций–slice, которые в свою очередь состоят обычно из двух логических ячеек (ЛЯ).Логическая ячейка является базовым логическим элементом ПЛИС типа FPGA(рис.6.9).Она состоит из 4–6 входовой (в зависимости от типа FPGA) схемы, выполняющей логическую функцию– логической таблицы (ЛТ,ЛУТ) по английски– LUT–Luc Up Table), реализуемую с помощью постоянного запоминающего устройства( ПЗУ), D–триггера (DFF–D–Flip Flop), дополнительной управляющей логики и схемы ускорения переноса,используемой при построении сумматоров. Часто для всей логической ячейки используется то же наименование ЛУТ (LUT) как и для логисекой таблицы.
Рис. 6.9. Упрощенная структура четырехвходовой логической ячейки
Обычно, как уже отмечалось, логическая функция ячейки ПЛИС типа FPGA реализуется таблично с помощью Постоянного Запоминающего Устройства( ПЗУ). ПЗУ после записи хранит записанную в него информацию. Каждому информационному слову сопоставлен его адрес. C помощью ПЗУ емкостью в 16 одноразрядных слов (16 х 1) можно реализовать любую булевскую функцию от четырех аргументов, записав в ПЗУ таблицу истинности этой функции, а при обращении к ПЗУ в качестве адреса использовать набор значений аргументов( четырехразрядный вектор или четырехразрядное двоичное число. В качестве примера в табл.6..1 представлена таблица истинности логической функции мультиплексора 2–1, имеющего три входа: in1, in2 и sel и один выход– out_m (рис.6.10, а также см.гл.3, раздел мультиплексор). При sel=0 мультиплексор пропускает на выход сигнал с входа
in1, а при sel=1 с входа in2.
Рис. 6.10. УГО мультиплексора 2-1(ANSI)
Эта функция реализуется при занесении в ПЗУ ЛЯ емкостью 16 х 1 соответствующей табл.6..1 информации. Старший разряд адреса, обозначенный как Х4 в данном случае, при реализации функции трех аргументов с помощью ПЗУ с четырехразрядным адресом, не задействован и равен 0, что позволяет обращаться только к первым восьми ячейкам ПЗУ. Например мультиплексор 2-1 должен передавать на выход out_m значение сигнала 1 при in1=1, in2=0 и управляющем сигнале sel=0.
Соответственно комбинация 0100 рассматриваемая как номер строки табл.6.1 или как адрес ячейки ПЗУ дает 1. Помимо настройки на выполнение основной функции – четырехвходового логического элемента, логическая ячейка может настраиваться при программировании ПЛИС на выполнение другой функции, например 16 разрядного регистра сдвига. ПЗУ в этом варианте настройки ЛЯ используется по прямому назначению как ЗУ.
Таблица 6.1. Реализация логической функции мультиплексора 2–1.с помощью ПЗУ 16х1
Значения входных сигналов, которые формируют адрес ячейки памяти X4 in1 in2 sel | Содержимое ячейки определяет значение выхода out_m |
0 0 0 0 | 0 |
0 0 0 1 | 0 |
0 0 1 0 | 0 |
0 0 1 1 | 0 |
0 1 0 0 | 1 |
0 1 0 1 | 0 |
0 1 1 0 | 1 |
0 1 1 1 | 1 |
В логической ячейке используются программируемые D–триггеры (рис. 6.9). При программировании ПЛИС можно задать различные режимы работы такого триггера, такие как триггер–защелка(D–Latch),синхронный D–триггер(FD), D–триггер с начальным сбросом (FDR) или начальной установкой (FDS), с записью по фронту или спаду синхросигнала, с разрешением(FDE) записи и т.п. Как уже отмечалось, пара ЛЯ обьединяется в секцию(slice), где также имеются узлы ускорения переноса, позволяющие ускорить и упростить реализацию арифметических операций. На рис.6.11 дано упрощенное представление секции, состоящей из двух ЛЯ.
Примером недорогой микросхемы типа FPGA является микросхема XC3S200–4–FT256С фирмы XILINX. Это микросхема серии SPARTAN 3(3S) c эквивалентной логической емкостью 200 тысяч двухвходовых вентилей, классом быстродействия (–4) , корпусом типа FT256 (корпус, в котором 256 штырьковых выводов расположены по периметру), предназначенная для работы в диапазоне температур аппаратуры коммерческого (С– commercial) применения. В ней более 4000 логических ячеек– (LUT). Помимо этого в микросхеме имеется много других логических ресурсов( см.следующий параграф) – встроенных умножителей (MUL) 18*18, блоков памяти(BRAM)–емкостью 16 кбит, блоков цифрового управлении синхросигналами (DCM)и др., рассматриваемых ниже.
Микросхемы АЛУ
Промышленность выпускает несколько типов АЛУ в различных сериях микросхем средней степени интеграции. Рассмотрим микросхему АЛУ типа КР****ИП3(зарубежный аналог LS181).