КЛЕВО_FPGA
.pdfГлава Ц- Программируемые логические блоки
Импликанты, маркированные пдфрами от 1 до 8 реализуются с помо щью первых 8 п-вентилей И-матрицы, как это показано на рис. 14.2. К выходам этих 8 И-вентилей подключена малая комплементарная матрица. При этом данное подключение осуществлено таким обра зом, чтобы эта комплементарная матрица при состояниях нормаль ного цикла не реализована. Во всех других случаях комплементар ная матрица через И-вентиль 10 в И-матрице подает 1 на R- вход RS-триггера и возвращает его в исходное состояние. ИЛИ-матрица программируется в соответствии с уравнениями от (14.1) до (14.6).
Вход P/-iE программируется таким образом, чтобы он был раз решающим входом для выходов. Соответствующий пункт програм мирования часто опускается, что соответствует 1.
XQ Xi Х2
га
>1 io
>1
>1
И-матрица |
ИЛИ-матрица |
Рис . 14.10. PAL с 3 входами, 3 выходами и с 4 термами логических произ |
|
ведений на каждом из выходов. |
|
14.5. PAL
PAL (Programmable Array Logic, «Программируемая матричная ло гика»), показанная на рис. 14.10, является упрощенным вариантом PLD). Она имеет только лишь программируемую И-матрицу. ИЛИматрица ограничена несколькими (на рис. 14.10 это четыре) терма ми логического произведения.
С помощью PAL многие функции могут быть реализованы с мень шими аппаратными затратами, чем в случае PLA. Однако структу-
Глава Ц- Программируемые логические блоки
логических произведений (product terma). Выходы могут быть ис пользованы и как входы, благодаря чему спектр вариантов внедре ния PAL может быть увеличен.
В настоящее время для некоторых PAL реализована возмож ность целенаправленно придавать термы логических произведений отдельным выходам (product term steering). Это конечно не означа ет, что термы логических произведений, относящиеся к различным функциям, могут быть использованы совместно.
Для PAL применяется единая схема обозначений: PAL 16 R 8
R— синхронный выход регистра Ra — асинхронный выход регистра
S— комбинационный выход с управлением термами логи ческого умножения (product term steering)
Н— выход активный, уровень Н (high)
L— выход активный, уровень L (low)
V — изменяющаяся выдача сигналов
X — вентиль EXOR и выход регистра
ХР — вентиль EXOR и программируемая выходная поляр ность
XPR — вентиль EXOR и программируемая полярность реги стра
С— дополнительный выход (complement output)
Р— выход с программируемой полярностью
14.6. GAL
Наименование GAL (generic array logic, «базовая матричная логика») соответствует улучшенному варианту PAL, в котором на выходах PAL имеются программируемые ячейки (OLMC, output logic macro cell). Эти ячейки могут быть запрограммированы для работы в ка честве входа, выхода или выхода с тремя состояниями.
GAL изготавливаются по технологии EECMOS, объединяющей КМОП-процесс с технологией электрически стираемых ЗУ (EEPROM).
Глава Ц- Программируемые логические блоки
GAL 16V8. Массив данных имеет, в начале каждой строки строчный адрес, который начинается с *L.
В каждой строке находится 32 бита, поскольку GAL 16V8 со вместно с 32 входами охватывает 32 столбца в И-матрице, как это можно видеть на рис. 14.12. Значение «1» означает, что соединение в соответствующем месте разорвано, «О» означает, что оно существует.
*L0000 1111110110111101110111111111111
*L0032 1111010111111011111011110111111
*L0064 1111111111010101111110101101111
*L0096 1110111101111111110111111111111
*L0128 1111111110111110111111111011111
Рис . 14.14. Извлечение из JEDEC-файла, соответствующего PLD GAL 16V8.
Строки JEDEC-файла, описывающего GAL 16V8, заполнены сле дующим образом:
0000-2047 |
Соединения логической матрицы в соответствии с при |
|
веденным выше примером. |
2048-2055 |
ХОД(п)-бит ^1^ля OLMC 12-19. |
2056-2119 |
Электронная сигнатура: 64 бита ^ля собственного при |
|
менения. |
2120-2127 |
ЛС(п)-бит ^1,ля OLMC 12-19. |
2128-2191 |
Освобождение термов логического произведения от |
|
РТО до РТ63. |
2192 |
SYN-6VIT. |
2193 |
Л СО-бит. |
]\ля программирования GAL вводится в режим программирова ния с помощью подведения определенного напряжения к одному из выводов (здесь вывод 2 = 16,8В). На 6 выводах (вывод 18, выво ды от 3-го до 7-го) набираются строки матрицы ЗУ и в соответ ствии с тактовым сигналом SCLK (вывод 8) биты, которые лежат на контакте SDIN (вывод 9), передвигаются в сдвиговый регистр GAL, который снабжен электронной защитой от копирования. Ко гда введен бит защиты, программированные данные не могут быть считаны. Остается возможным только стирание.
Гарантируется работоспособность GAL течение 10 лет. Процесс программирования продолжается в течение нескольких секунд.
14-8. Программируемые полем вентильные матрицы (FPGA)
14.7.1. Тестирование
При применении управляющих схем (драйверов) важно протестиро вать, исключены ли состояния, в которые драйвер при нормальной эксплуатации не должен входить. Для этого целесообразна загрузка всех регистров произвольно выбранным значением. Для этого GAL 16V8 имеет схему, с помощью которой регистр может быть загру жен. Этот вид работы активируется приложением 15 В на PRLD (вывод 11).
Теперь в соответствии с тактовым сигналом DCLK (вывод 1) через последовательный вход SDIN (вывод 9) данные могут быть продвинуты через сдвиговый регистр. С последовательного выхода SDOUT (вывод 12) данные могут быть сняты. Используются толь ко те ячейки регистра, которые могут быть конфигурированы как выход регистра.
14.8.Программируемые полем вентильные матрицы (FPGA)
Программируемые полем вентильные матрицы (FPGA, field program mable gate arrays) представляют собой стандартные логические бло ки, конфигурацию которых задает пользователь. Они состоят из многих PLD, взаимодействия между которыми обеспечивается ма трицей соединений.
FPGA имеют следующие преимущества:
•При применении специального программного обеспечения FP GA можно легко запрограммировать.
•Не требуется какое-либо складирование схем у заказчика, по скольку стандартные логические блоки легко доступны.
•При заказном же проектировании необходимо учесть время доставки продолжительностью в несколько месяцев, которое пройдет после выдачи заказа изготовителю интегральных схем.
•Тестирование проводится просто.
•FPGA тестируются изготовителем, поэтому пользователю до статочно проведения сокращенной программы испытаний.
•В противоположность дискретной реализации требуется очень малое количество элементов, благодаря чему схема становится надежнее.
340Глава Ц- Программируемые логические блоки
•Затраты на разводку проводящих дорожек меньше. Благодаря этому при определенных обстоятельствах могут быть исполь зованы более дешевые печатные платы.
•В FPGA может быть реализована оптимальная архитектура. Поэтому они обладают высоким быстродействием.
•Изменения проводятся легко, так как для этого достаточно только изменения программы.
1 ю- 1 ^" 11 ю- 1 1 ю- 11 ю- 11 lo- 1 lo- |
|
|||||||||||||||
Block |
Block |
|
Block |
Block |
|
Block |
|
|
Block |
Block |
||||||
1 ю- |
|
|
|
|
|
|
|
|
|
|
\==f\=" Щ 8 М 1 |
10- |
|
|||
Block |
'SMNfff^jSM^ ^ |
^ |
|
S M |
Block |
|||||||||||
|
ттптг1 Ги ! |
1 |
(Штг |
i l l |
1 |
|
]TTjT| |
т"1 |
ТШТ |
|
1 |
|||||
1 ю- |
(11111 |
J , |
|
(ill |
Г" |
|
|
|
... /^т |
If |
lO- |
1 |
||||
1т1 Иг" |
1'^Lli |
|
|
К-.LJL5 |
|
|
|
CLi |
J |
|
||||||
Block |
Ним. |
|_ |
1 |
|
1 |
[ 1 |
1 JJIlii |
|
.IHIII |
Block |
||||||
|
|
1 1 |
1 |
IHIII. |
|
|
|
|
|
|
|
|
||||
|
8 М Щ |
[~[ 1 |
|
1 S M ^ФМзм |
|
|
^ S M |
|
|
|||||||
1 ю- |
ПТш |
|
1 1 1 |
1ТТПТ |
|
1 j |
|
т ш п |
|
|
~1 |
т п |
10- |
1 |
||
-^Т Г> |
1 |
и И1 |
г•^г r> |
1 |
|
П и 1 |
|
ИII ii |
||||||||
Block |
|
|
|
/• |
|
|
|
|
|
|
|
Block |
|
|||
и и1 п^Lli |
|
|
к^LU |
|
|
CLL |
|
|
|
|||||||
|
иии^ |
|_j 11 |
I |
jnin^1 |
] 1 |
1 jnMI |
|
|
J |
IHIU |
|
|
||||
|
S ME |
1 |
|
| S r v f l^Щзм= |
|
|
Щш |
10- |
1 |
|||||||
1 Ю- |
[птпт |
|
1 1 |
1 |
тштт |
1 1 |
|
|
шттт |
|
|
|
ТПТТТ |
|||
Block |
|
и: L B [ |
II |
[СTBI |
|
—JCLE^1 |
|
Block |
|
|||||||
|
ТТТТГ-—П |
|
|
|
|
1 |
ИНН |
|
|
-Нжн |
|
|
||||
1 Ю- |
mil |
^\jf |
|
IHIII |
hггН |
|
|
|
|
|
Ю- 1 |
|||||
SM[zr= |
^ ^ S N f e ^ ^ S M |
|
|
^ S M |
||||||||||||
Block |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Block |
|
Ю- |
Ю- 1 |
|
10- 1 1 I |
|
|
|
|
ю- |
11 ^^' |
10- 1 |
||||||
Block |
Block |
|
Block |
Bl0- II |
Block |
|
||||||||||
|
|
|
|
|
|
оск |
|
|
Block |
|
|
Block |
1 |
|
Рис. 14.15.
14.8.1. Структура FPGA
FPGA представляет собой программируемые в соответствии с при менением матрицы из логических блоков, выполненных большей ча стью в форме PLА (программируемых логических матриц). Логиче-
14'S. Программируемые полем вентильные матрицы (FPGA)
скал конфигурация устанавливается программой, которая хранится в статическом RAM, выполненном в кристалле. В начале работы статическое RAM загружается из ROM. В альтернативном вари анте FPGA может быть запрограммирована, например, с помощью пережигаемых перемычек.
Ниже описывается семейство FPGA РСЗООО, выпускаемое ком панией Xilinx ИЗГОТОВИТЕЛЕМ ПОЛУПРОВОДНИКОВЫХ ПРИ БОРОВ. Речь идет о семействе logic cell arrays (матриц логических ячеек).
Data In . |
MUX |
|
|
|
|
|
|
|
|
10 |
ID |
|
|
|
|
^0 |
|
1 |
j>Cl |
Xi |
|
1 |
|
|
PLD |
Уо |
|
|
|
||
|
|
|
|
Хз |
|
|
|
Х4 |
|
|
yi |
|
|
|
|
|
|
MUX |
ID |
|
|
iO |
|
|
|
j>Cl |
|
|
|
1 |
|
EN. |
|
|
|
|
|
|
|
ENCLK. |
-Ф |
|
|
CLK |
|
|
|
DIRRST- |
>1 |
|
INHIBIT. |
программируемый |
|
Global |
||
мультиплексор |
||
RST' |
||
|
Рис, 14.16. Конфигурируемый логический блок (CLB) FPGA из семейства ХСЗООО компании Xilinx.
Архитектура FPGA может быть разделена на 3 типа блоков, из которых формируются различные конфигурации:
Логика сведена в образующие различные конфигурации блоки (CLB, configurable logic blocks). CLB соответствуют приблизитель но одному PAL и могут быть запрограммированы с помощью кон фигурационной программы. CLE размещены в форме матрицы в центральной части FPGA.
Входы и выходы реализованы с помощью блоков input/output (lO-blocks). Их можно включить как вход, выход, выход типа tri-