Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

КЛЕВО_FPGA

.pdf
Скачиваний:
39
Добавлен:
14.04.2015
Размер:
8.21 Mб
Скачать

Глава 14Программируемые логические блоки

Уменьшаются затраты на разводку на печатной плате. При определенных обстоятельствах могут быть использованы бо­ лее дешевые печатные платы.

Скопировать ASIC сложно, поскольку ее функции снаружи про­ сматриваются с трудом. Вследствие этого достижения, полу­ ченные при разработке, легче уберечь от конкурентов.

ASIC тестируются легче, чем схемы из большого числа стан­ дартных компонентов, если соответствуюш;ие возможности тести­ рования были учтены при разработке.

Таблица 14.2. Сравнение стандартных компонентов и различных типов ASIC.

Параметр

Стандартные

Программи­

ASIC с

ASIC с

 

 

компоненты

руемые поль­

полузаказным

полностью

 

 

зователем

проектиро­

заказным

 

 

ИС

ванием

проектиро­

 

 

 

 

ванием

 

мощность

средняя-

средняя

высокая

очень

высо­

 

высокая

 

 

кая

 

стоимость

низкая

низкая

средняя-

высокая-

разработки

 

 

высокая

очень

высо­

 

 

 

 

кая

 

стоимость

низкая-

высокая

 

масок

 

 

высокая

 

 

продолжи­

короткая

средняя

средняя

средняя-

тельность

 

 

 

очень

высо­

разработки

 

 

 

кая

 

стоимость

низкая

высокая

средняя

низкая

 

одного

 

 

 

 

 

элемента

 

 

 

 

 

плотность

высокая

низкая

высокая

очень

 

интеграции

 

 

 

высокая

 

14.2. Программируемые логические ИС (PLD)

Программируемые логические ИС (PLD) являются по своей сути стандартными схемными элементами, конфигурацию которых за­ казчики могут изменять в своих целях. Их электрические характе­ ристики хорошо известны, поэтому можно получить очень досто­ верные модели для моделирования. Программируемые логические

14-2. Программируемые логические ИС (PLD)

ИС могут быть разработаны достаточно надежно на основании мо­ делирования. Стоимость одного образца, отнесенная к количеству вентилей, может оказаться очень малой, так как PLD могут быть изготовлены с высокой степенью интеграции. При этом с помощью небольшого ресурса проектирования можно добиться высокой сте­ пени использования вентилей. Поэтому PLD хорошо подходят J\A^ вариантов применения, когда требуется малое число образцов. В чи­ сло их преимуществ входит и то, что они могут быть скорректиро­ ваны за короткий срок.

К преимуществам программируемых логических ИС относится также то, что они тестируются изготовителем. Пользователю при­ ходится проверять только топологию.

Ниже программируемые логические ИС обозначаются обпщм тер­ мином «programmable logic devices» (PLD).

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

14.2.1. ТипыРЮ

Эти типы различаются по способу программирования:

Пережигаемые перемычки (fuse link), электрические пережи­ гаемые соединения.

Без пережигаемых перемычек (anti fuse), электрически фор­ мируемые соединения.

1-битовые RAM-ячейки; триггеры.

EPROM-ячейки: долговременное хранение заряда, информа­ ция может стираться при воздействии ультра фиолетового об­ лучения.

ЕЕРКОМ-ячейки: долговременное хранение заряда, информа­ ция может стираться электрическим путем.

В PLD используются программируемые И- и ИЛИ-матрицы. В за­ висимости от структуры можно выделить следующие PLD:

PLA

— программируемые И- и ИЛИ-матрицы;

PAL

— программируемая И-матрица, фиксированная

 

ИЛИ-матрица;

324 Глава Ц- Программируемые логические блоки

GAL

такие же, как PLA, но с дополнительными прог­

 

раммируемыми выходными схемами;

EEPROM

программируемая ИЛИ-матрица, фиксированная

 

И-матрица;

FPGA, LCA

электрически программируемая энергозависимая

CPLD, EPLD

логическая матрица;

электрически программируемая энергонезависимая

 

логическая матрица, информация, стирается ульт­

 

рафиолетовым излучением или электрически.

Ниже дано упрощенное представление используемых в PLD И- и ИЛИ-вентилей, которые имеют, как правило, большое число входов (рис. 14.2).

полное представление

упрощенное представление

^0

Xi

г^

V^

Хо 1^1 р — ^

Xl 1^

IP—*

Xl —f

Х2 - t

ЧТ]

у = -^o^ixi

программируемое соединение запрограммированное (ранее) соединение

Р и с . 1 4 . 2 . Полное и упрощенное представление И-вентиля в PLD .

14.3. ROM, EPROM, EEPROM

На основе энергонезависимых ЗУ ROM, EPROM, EEPROM и т.д., могут быть выполнятся логические схемы. Пусть, например, с помо­ щью ROM с емкостью 16x2 бит должна быть реализована функция с четырьмя входными переменными и двумя выходными переменны­ ми. Под каждым из 16 адресов в ROM могут храниться запомнены

U.S. ROM, EPROM, EEPROM 325

значения обеих функций. При этом еще возможно выполнение ло­ гической операции. Таким образом ROM, используемая как логиче­ ская схема, универсальна. Но оно может оказаться не эффективным, если функция имеет очень мало нулей в таблице истинности.

Применение ROM предпочтительно в следующих случаях:

Когда функция задана таблицей истинности. Тогда функция может быть без дальнейшей обработки введена в ЗУ.

Когда функция нуждается в большом количестве термов ло­ гического произведения (булевых логических термов).

Когда очевидно, что схема должна часто изменяться.

Когда в таблице истинности имеется большое число единиц.

ROM можно представить себе как логическую схему, в состав кото­ рой входят: фиксированная И-матрица, осуществляющая адресное декодирование, и программируемая масками ИЛИ-матрица (рис. 14.3).

 

1 1 1 Ь

i

 

LLJ

И-матрица

^1

I т>I P

.'

 

 

(фшссированная)

^2 U1 1 Y

 

 

| & II& II& II& II& {|& II& ||<S

 

 

>1

 

 

>1

ИЛИ-матрица (программируемая)

Рис. 14.3. Представление ROM с емкостью 8 x 4 (32 бит) с И- и ИЛИматрицами.

Глава 14Программируемые логические блоки

14.4. PLA

Как показано на рис. 14.4, программируемые логические матрицы PLA (programmable logic array) включают программируемую И-мат- рицу. С помощью PLA можно непосредственно создавать нормаль­ ную DNF, причем термы логического произведения (product term) реализуются с помощью И-матрицы, а суммарные термы с помо­ щью ИЛИ-матрицы. При этом число термов логического произведе­ ния меньше 2^. Общие термы логического произведения могут быть поданы на многие логические входы.

^0 - г Ч 1 Р

И-матрица (программируемая)

1 р

"1 1 р-

 

г& ж Ж1Г& & ж

 

>1

fo

>1

f.

>1

 

>1

ИЛИ-матрица (программируемая)

Р и с . 14.4. Общая схема PLA.

В общую схему, приведенную на рис. 14.4, могут быть введены некоторые улучшения.

Выходы должны иметь возможность подвергаться логической операции НЕ, так как р^ля многих функций дополнение реализуется с меньшими затратами.

Часто необходимы выходы типа tri-state («с темя состояниями»). В этом случае имеет смысл, чтобы некоторые выходы могли бы быть использованы как входы.

При определенных обстоятельствах выходные сигналы должны подвергаться промежуточному запоминанию. Поэтому многие PLA имеют на выходе триггеры.

144' PLA 327

С помощью введения инвертированной обратной связи из мати­ цы ИЛИ могут быть при определенных обстоятельствах сэкономле­ ны многие термы логического произведения.

Обсудим полезность и реализацию улучшений на основе двух сле­ дующих схем.

Входящий в PLА вентиль «исключающее ИЛИ» (EXOR), пока­ занный на рис. 14.5, служит для управления полярностью выхода. Если на его втором входе имеет место О, вентиль работает как бу­ фер, если же второй вход находится в состоянии 1, выход становит­ ся инвертированным. Следовательно, всегда можно выбрать между реализацией функции и ее инвертированием, экономя таким обра­ зом термы логического произведения.

И-матрица

управляющие термы

М

4 1 Р

^1 - Т

Ч 1 р

ЧТ]

Я1 П

Я1 П

& & &

& &

& &

>1

±

>1

±

ИЛИ-матрица

=1

EN

-^

*-<

4 E N

=1

Рис . 14.5. PLA с вентилями EXOR и двунаправленным выходом типа tristate.

Кроме того, в PLA на рис. 14.5 используются на выходах вентили типа tri-state. Как альтернативный вариант можно рассматривать PLA, у которых разрешающие (enable) входы управляются допол­ нительными выходами матрицы ИЛИ, либо применяются дополни­ тельные вывода. Поскольку выходы выполнены как триггеры с вы-

Глава 14' Программируемые логические блоки

ходами типа tri-state, их можно использовать как двунаправленные интерфейсы. Соответствующие входы также ведут в И-матрицу. Повышенная гибкость обеспечивает лучшее использование PLА.

В PLА на рис. 14.7 имеется инвертированная обратная связь, ведуш,ая из матрицы ИЛИ, которую также называют дополнитель­ ной (обраш;енной) матрицей (complement array). Эта обратная связь способствует экономии термов логического произведения в тех слу­ чаях, когда обрабатываются задачи, при решении которых выходы должны принимать определенные значения с рядом исключений.

Пусть, например, должен быть разработан сегментный декодер для представленных с помоп];ью десятично-двоичного кода (BCD) чисел, который при входных значениях более ЮООв должен пока­ зывать на дисплее Е как обозначение ошибок. Определение цифр с помош;ью соответствуюш;его кода показано на рис. 14.6.

f

а

 

» I I I г

_

е

g

1

г

I и _

 

 

 

о

I и J

L

Р и с . 14.6. Определение 10 цифр и Е как обозначения ошибок для случая 7-сегментной индикации.

Для цифр от о до 9 требуются 10 термов логического произведе­ ния. Они подаются на вход дополнительной матрицы. Дополнитель­ ная матрица не реагирует на появление одного из этих термов. Если же не задействован ни один из термов логического произведения, а подана псевдотетрада (двоичные числа между 10 и 15), то в этом случае приходят в действие сегменты, формируюш;ие букву Е.

На рис. 14.8 показана в упрош;енной форме PLA, служаш;ая для реализации управляюш;ей схемы (драйвера). PLА данного вида обо­ значают как устройства задания последовательности (sequencer).

Впоказанную схему входят:

Регистр состояний с выходами PQ^ Pi и Р2. Выходы регистра подведены к И-матрице.

Вход Р/->Е может быть запрограммирован так, что он дей­ ствует либо как вход enable, управляюш,ий tri-state-буфером, либо как вход preset («предварительная установка») для D- триггеров.

144' PLA 329

Добавочная матрица может быть использована для того, что­ бы устанавливать определенное состояние при включении или при ошибках. Добавочная матрица (complement array) сраба­ тывает тогда, когда ни одно из непосредственно применяемых состояний не наступает при включении.

^0 TFi

^

Vf,1 р

^ ^ - *

-

*

* - *

И-матрица

v^1 \>

*

* - ^

 

ж ж

ж

ж

Т7

 

 

 

 

ж

ж >ic ж

 

Хз

ж ж ж ж ж ж ж ж

 

" ^

ff

 

 

 

 

 

& & & & & & & & & & & &

ж ж ж ж ж ж ж ж ж ж

>1

 

^ М ^

ж ж ж ж ж ж

>1

ИЛИ-матрица Ж Ж

Ж Ж Ж

ж ж ж

>1

 

 

 

>1

* - ~ *

ж ж ж ж ж ж ж

 

* - *

^ ^ - *

Ж Ж Ж

>1

 

 

 

 

>1

 

 

ж ж ж

ж ж ж

>1

 

ж ж ж ж ж

ж ж ж

>1

±-

±-

±- ±1

±-

±-

а

Ь

с

d

е

f g

Р и с . 14.7. PLА с инвертированной обратной связью, выведенной из матри­ цы ИЛИ (пример с индикацией семью сегментами).

Пусть, например, на основе показанной на рис. 14.8 PLA, должен быть спроектирован двоичный счетчик по модулю 5, который для входного сигнала х = XQ = Q считает в прямом направлении и р^ля X = жо = 1 в обратном направлении. На основе этой информации получаем табл. 14.3.

На основе таблицы состояний может быть разработана таблица запуска (табл. 14.4) р,ля RS-триггеров данной схемы.

Из таблицы запуска может быть вьшедена KV-диаграмма (рис. 14.9). В этой KV-диаграмме (диаграмме Карно-Вейча) находятся свобод­ ные поля, которые принадлежат состояниям, не возникающих в нор­ мальных циклах счета. Из этих состояний, которые могут устано­ виться при включении или при возникновении помехи, счетчик дол-

330 Глава 14Программируемые логические блоки

жен переходить в последовательные состояния (Ро? -Рь -Р2) — (0,0,0).

"-ш

* - *

 

* - *

 

ж ж ж ж

ггр-

* - *

 

ж

* ~ *

Ж Ж Ж

^к-ж

ж ж ж ж

ж - *

41}^

йыыййй

ЧТЬ

>1

Ж Ж Ж Ж Ж Ж Ж Ж Ж

* - ^

 

>1

 

 

>1

 

 

>1

Ж-)^

>1

 

 

>1

* - *

л

^1

CLK-

 

 

&

Р/^Е-

&

IS •t>ci IR

IS t>ci IR

IS i>ci IR

S

IvkPo

H E N

k P i

EN

k P 2

EN

Рис . 14.8. PLA для реализации управляющих схем (устройств задания по­ следовательности, sequencer), программирование для данного примера реверсивный двоичный счетчик для счета по модулю 5.

Таблица 14.3. Таблица последовательности состояний двоичного счетчика

 

 

по модулю 5.

 

 

 

 

 

 

рш

 

 

хо = 0

 

 

Хо = 1

 

р?"

гут

•pm + l

рт-{-1

 

•рт-\-1

p m + l

p m + l

 

 

^2

 

 

^2

^ 1

^0

0

0

0

0

0

1

1

0

0

0

0

1

0

1

0

0

0

0

0

1

0

0

1

1

0

0

1

0

1

1

1

0

0

0

1

0

1

0

0

0

0

0

0

1

1

14.4' PLA 331

Таблица 14.4. Таблица запуска для RS-триггеров двоичного счетчика по модулю 5.

 

 

 

рш

 

 

 

 

 

 

хо = 0

 

 

 

 

 

Xo = I

 

 

 

р : ^

 

тэга

R2S2

 

RiSi

RoSo

R2S2

RiSi

RQSO

 

 

 

 

М)

 

 

 

0

 

0

 

0

 

do

 

 

do

01

 

01

do

do

 

 

0

 

0

 

1

 

do

 

 

01

10

 

do

do

10

 

 

0

 

1

 

0

 

do

 

 

Od

01

 

 

do

10

01

 

 

0

 

1

 

1

 

01

 

 

10

10

 

do

Od

10

 

 

1

 

0

 

0

 

10

 

 

dO

do

 

10

01

01

 

 

 

 

R2S2

 

 

 

 

 

RiS,

 

 

 

 

RQSO

 

 

dO

 

dO

dO

 

/

 

dO

 

Od

0

 

dO

2

Л)1

j,y

(op

do

 

b6

 

 

2

 

 

 

6

 

d

 

 

(5

 

dO

 

 

 

dO

 

 

 

 

 

 

 

5

 

 

 

7

 

6

T5

 

 

 

1

Po

 

 

\

 

 

 

 

 

 

i

 

 

 

 

 

 

 

'\Л

 

do

© do

do

 

fb\\

 

ЛоЛ

Od

 

dO

 

(ГГ 10

10

 

 

 

Px

 

 

 

 

 

 

P,

 

 

 

 

 

P,

 

 

 

Рис. 14.9. Диаграмма Карно-Вейча для запуска

RS-триггеров.

 

 

Из диаграммы Карно-Вейча получаем уравнения:

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

(14.1)

 

 

 

 

 

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

So = ^PQ^PIP2X

 

V -РоА-'-Ргж V

-^PQ^PI^X

 

(14.2)

 

 

 

 

 

 

V

 

'

 

^

V

 

' "

 

V -

 

 

 

 

 

 

 

 

2

 

 

 

 

5

 

 

 

 

4

 

 

 

 

 

Rl

=

^PoPi^P2Xy

 

PoPi^P2^X

 

 

 

 

(14.3)

 

 

 

 

 

^

V

 

 

'

'

V

 

'

 

 

 

 

 

 

 

 

 

 

 

5

 

 

 

 

6

 

 

 

 

 

 

 

 

 

 

Si

= ^PQ --PI Р2Ж V PQ ^ f i ^A

-^Ж

 

 

 

(14.4)

 

 

 

 

 

 

2

 

 

 

 

7

 

 

 

 

 

 

 

 

 

 

Д2 =

-Po-^-P2a;V-nPo-jPi^2-a;

 

 

 

(14.5)

 

 

 

 

 

^^

V

 

 

'

"^

V

 

 

'

 

 

 

 

 

 

 

 

 

 

2

 

 

 

 

3

 

 

 

 

 

 

 

 

 

 

52

=

Р 0 Р 1 - Р 2 - Ж

 

V - P o - P i - P 2 a ;

 

 

 

 

(14.6)