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

КЛЕВО_FPGA

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

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

state или как двунаправленный интерфейс. Ю-блоки размещены на краю FPGA рядом с выводами корпуса.

Соединительные линии реализованы в виде программируемой сети, которая подключает друг к другу CLB и Ю-блоки. Програм­ мируемые переключательные матрицы располагаются между CLE.

14.8.2. Конфигурируемые логические блоки (CLB)

Все CLB идентичны. Они размещаются в виде матриц, соответству­ ющих размерам FPGA. Так, например, модуль ХС3090, входящий в семейство ХСЗООО, содержит 12 х 12 == 144 CLE. Каждый CLB со­ держит логическую схему с 5 входами, которые выведены наружу, и с двумя входами, которые могут служить как входы для организа­ ции обратной связи с последующими схемами. Два D-триггера мо­ гут быть использованы для хранения признаков состояний. Но они могут быть загружены также и через вход Data In. Для управле­ ния модулем служат входы «прямой возврат в исходное состояние» (direct reset) DIR DST^ вход тактового сигнала CLK и разреша­ ющий (enable) тактовый вход ENCLK. Конфигурация логической функции логической схемы хранится в описанном конфигурацион­ ном ЗУ. Переключение схемы от D-триггера к драйверу (управля­ ющей схеме) осуществляется с помощью адресации мультиплексора на основе конфигурационной программы.

14.8.3. Ю-блоки

Для каждого подсоединяющегося вывода предусмотрен свой Ю-блок (блок вход-выход). Например, модуль ХС3090 имеет 166 выводов и столько же Ю-блоков. В каждый Ю-блок входят дополнительные элементы, обеспечивающие следующие возможности:

Настройка на различные логические уровни (ТТЛили КМОПуровни), которая может программироваться с помощью «под­ тягивающего» сопротивления (pull-up resistor).

Защита от перенапряжений с помощью диодов.

• Промежуточное ЗУ для ввода и вывода данных.

Но возможен также и прямой выход.

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

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

14.8.4. Соединительные линии

Гибкость FPGA обеспечивается в значительной мере за счет про­ граммирования разводки. В nFPGA ^\ля этого имеется два уровня металлизации. Присутствующие линии могут быть иными способа­ ми соединены между собой на основе использования переключатель­ ных матриц и «программируемых точек связи» (PIP, programmable interconnect points). Входы CLB и Ю-блоков могут быть запрограм­ мированы так, что они будут подключены к окружающим их линиям.

инвертировать

инвертировать

выход

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

выход

OTE

прям/рег

для

1

 

подтягивания]

 

 

 

уровня

ОЕ

 

M U X

EN

 

 

 

 

=1

 

1

'

 

ID

о

 

 

OUT ,

t>Cl

 

 

 

 

 

 

 

R

Dir IN

 

TTL

Reg. IN

ID

CMOS

 

CI

4

 

R

 

Global

 

 

RST-

 

 

CLKl-

 

CLK2-

 

lO-PAD

программирующее

соединение

программируемый

мультиплексор

Р и с . 14 . 17 . Конфигурируемый блок Ю семейства ХСЗООО компании ХШпх.

Имеются следующие типы соединительных элементов:

В проходах между CLB размещено по 5 горизонтальных и по 5 вертикальных соединительных линий. Эти линии обозначают­ ся как «связь общего назначения» (general purpose interconnect).

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

Для быстрого соединения используется «прямая связь» (direct interconnection).

Для соединения на большие расстояния используются «длин­ ные линии».

14.8.5. Программирование FPGA

Программирование FPGA как правило начинается с задания схемы:

либо в схематической форме, на основе графического ввода,

либо на языке программирования, например, на языке VHDL (VLSI hardware description language) или на языке ABEL.

В случае FPGA компании Xilinx эти данные конвертируются

всписок связей базовых модулей, именуемый XNF-файл. Он содержит данные всех вентилей и соединения между ними. Но при этом не учитываются физические данные соединительных линий, например, время задержки.

Список связей (net list) задает основу для перепроверки логиче­ ский функций схемы.

Взаключение на основе XNF-файла может быть проведено рас­ пределение вентилей по CLB (implementation, реа-яизация). Одновре­ менно устанавливаются соединительные линии. Этот процесс назы­ вают «размещение и маршрутизация» (place and route). При этом учитываются такие данные пользователя, как положение выводов, критические пути и т.д. Данные известной схемы запоминаются в LCA-файле (line control array). На основе этого возможно имитиро­ вание схемы с реальными значениями времен задержек.

ВLCA-файле генерируется поток битов, содержащий данные о конфигурации. В FPGA данные запоминаются в триггерах, кото­ рые в процессе создания конфигурации включаются как длинный сдвиговый регистр. Число конфигурационных битов в зависимости от размеров FPGA варьируется между 12 кбит и 420 кбит. При определенной конфигурации FPGA могут быть включены друг за другом (цепочка типа «ромашки», daisy chain). При этом при за­ грузке поток битов пробегает вначале одну, потом другую FPGA

изатем останавливается в конце цепочки сдвигового регистра вто­ рой FPGA. Число кофигурационных битов не зависит от степени использования FPGA.

Ц.9. EPLD

14.9. EPLD

EPLD («стираемые программируемые логические устройства erasable programmable logic device), которые также называют CPLD, создаются с помощью УФ-излучения. Они очень хорошо подходят А^ля малых серий и лабораторных образцов.

14.9.1. Пример EPLD:CY7C343

EPLD CY7C343, разработанное компанией Cypress, выполнено по технологии, используемой для КМОП-EPROM.

Максимальная мощность рассеяния корпуса с 44-выводами, со­ ставляет 2,5 Вт. Могут быть использованы различные тактовые частоты, начиная с 100 МГц. Архитектура EPLD представлена на рис. 14.18.

Ядром EPTD является центральная матрица соединений, кото­ рые связывают между собой группы конструктивно объединенных элементов. В схему входят 28 двунаправленных интерфейсов, кото­ рые управляются через Ю-порты, и 8 простых входов. Логика со­ брана в 4 блока, каждый из которых содержит 16 макроячеек. Ма­ кроячейка содержит триггер и логику в форме PLА («программи­ руемой логической матрицы»). Каждая из макроячеек имеет выход, ведущий к центральной матрице соединений. Некоторые из макроячеек имеют связь с Ю-блоками. Другие применяются как «скрытая логика».

14.10. Gate-Arrays

Gate-arrays представляют собой специализированные в соответствии с применением ИС (ASIC's), в составе которых изготовителем пред­ лагается матрица из вентилей с фиксированной геометрией (т.н. mas­ ter-slaves, пластины с базовыми кристаллами). Изготовитель струк­ турирует в соответствии с требованиями заказчика только метал­ лизированные межсоединения. Предлагаются gate-arrays, содержа­ щие до 25000 вентилей. Для их изготовления используется, как пра­ вило, КМОП-технология.

Gate-arrays можно подразделить по видам обрабатываемых сигналов:

цифровые

аналоговые

смешанные цифровые и аналоговые или по структуре:

channeled gatе-arrays, канализированные вентильные матрицы (соединительные проводники проходят по специальным каналам)

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

sea-of gates, «море вентилей» (соединительные проводники про­ ходят по матричным ячейкам).

Input

Input

 

1

 

 

 

 

С1>

 

 

Input/

 

 

 

 

 

 

^

^

CLK

 

 

 

 

 

макроячейка1

 

 

 

 

макроячейка 56

 

 

 

макроячейка 2

 

макроячейка 55

-CZ]

lO-Ports

 

макроячейка 3

 

макроячейка 54

- d ]

 

 

макроячейка 4

 

макроячейка 53

lO-Ports

 

 

макроячейка 5

 

макроячейка 52

 

 

 

 

 

 

макроячейка 6

 

макроячейка 51

 

 

 

макроячеики

 

макроячейка 50

-CZ]

 

 

7-16

 

макроячейка 49

- £ d

 

 

 

 

макроячейки

 

 

 

I

 

57-64

 

 

EZh

 

макроячейка 38

4ZD

 

 

макроячейка 17

 

 

 

 

 

макроячейка 18

 

макроячейка 37

4ZD

 

EZh

макроячейка 19

 

макроячейка 36

-ZZ] lO-Ports

lO-Ports

[IZh

макроячейка 20

 

макроячейка 35

-zz:

 

[ZD-

макроячейка 21

 

макроячейка 34

 

 

 

макроячейка 22

 

макроячейка 33

- C Z

 

CZh

макроячейка 23

 

макроячейки

 

 

 

макроячейка 24

 

39-48

 

 

 

макроячейки

 

 

 

 

 

25-32

 

 

 

Р и с .

14 . 18 .

А р х и т е к т у р а E P L D

CY7C343 компании Cypress.

 

14.10.1. Структура канализированных вентильных матриц

Gate-arrays (рис. 14.19) состоит из матрицы с однородными ячейка­ ми, периферийных ячеек и тестовых структур. Между ними рас­ положены каналы р^ля соединительных трасс. Матрица gate-arrays может иметь несколько сотен выводов.

Однородные матричные ячейки содержат по несколько пар р- и п-МОП транзисторов. Вначале, на базовом кристалле эти МОППТ между собой не связаны. В подобном виде у изготовителя хра­ нится запас полупроводниковых пластин с базовыми матричными кристаллами. Затем может быть осуществлено создание конкрет­ ной схемы в соответствии со специфическими требованиями заказ­ чика. Д,ля этого могут быть использованы один или несколько уров-

Ц.Ю. Gate-Arrays 347

ней межсоединений. Таким образом из отдельных матричнах ячеек могут быть сформированы, например, вентиль НЕ-И (NAND) или триггер. Обычно для реализаций требований заказчика использу­ ются от 1 до 8 фотошаблонов. Использование для соединений не­ скольких уровней помогает экономить площадь кристалла и повы­ шать быстродействие.

1/О-ячейка

область каналов

— матрица ячеек

Рис. 14.19. Структура вентильной матрицы.

р-канал

n-канал

 

.

'

^

 

 

 

(

^

 

 

 

^1И

 

 

 

 

 

 

 

р

 

 

 

 

 

 

I

 

•~i

\п\ \

 

• '

1

[п]

 

[

 

 

1 [п]

 

nj

 

1

0 1 01—1

 

,

1

Fl

 

о

 

^1

11 [Щ]

 

 

 

 

 

 

^1

 

[Щ]

[nj 1rln]

 

п

0 f и 1 01— ' •

- •]

1

1

 

 

 

t

\Ш\

^1 1]

[р]

1[gj' Jrl

n]

 

 

0 1 0

1

 

 

Iml

 

[

 

ш1 0 | 0

 

 

 

 

 

d

 

0 П

0 0

0 П

0 П

Рис. 14.20. Матричная ячейка вентильной матрицы (gate array). Другие матричные ячейки подключаются выше и ниже.

С использованием дополнительных заказных уровней металли­ зации могут быть образованы дополнительные библиотечные эле-

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

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

р-канал

 

 

п-канал

Л

^

 

А

Г

\

С

\

п

П

Ш 0 [ШК~Ч1 ^ и [пр~щ

и

Ь

п

п

п

Рис. 14.21. Элементарные соединения в матричной ячейке, показанной на рис. 14.20.

р-канал

п-канал

Г

Рис. \А/11, Библиотечная ячейка: вентиль НЕ-ИЛИ с тремя входами хо, a:i, а:2 и выходом у.

На рис. 14.22 представлена в качестве примера библиотечная ячей­ ка, содержащая NAND-вентиль с тремя входами. Плоскость соеди-

14-10. Gate-Arrays

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

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

Втестовые и специализированные структуры входят, например, «модуль управления процессом» (РСМ, process controle module), зна­ ки совмещения, обозначение кристалла, номер версии. В каналах разводки располагаются проводники, связывающих отдельные вен­ тили.

 

 

'DD

1

1

у

Хо

 

 

 

И—

 

Xi

b

 

 

 

Х2

 

 

Р и с . 14.23. Электрическая схема

библиотечной ячейки: НЕ-И-вентиль с

тремя входами жо, a:i, Ж2 и выходом

у.

Комплексные ASIC можно экономично производить только с по­ мощью поддерживаемых компьютерами инструментальных систем проектирования. Проектирование производится, как правило, на рабочих станциях заказчика, или, все в большей степени, на пер­ сональных компьютерах. Преимуществом вентильных матриц (gate arrays) является то, что изготовитель имеет готовую библиотеку с протестированными схемами матричных ячеек, в число которых входят, например, отдельные вентили (малый уровень интеграции, SSI), мультиплексоры (средний уровень интеграции, MSI) и малые микропроцессоры (СБИС, LSI). Пользователь может на основе этой библиотеки разрабатывать ИС на основе собственных проектов, по-

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

лагаясь при этом на то, что за счет применения точной модели ИС (почти) всегда начнет сразу функционировать.

14.1 I. ASIC со стандартными ячейками

ASIC со стандартными ячейками имеют больше степеней свободы, чем вентильные матрицы (gate-arrays).

Они имеют следующие особенности:

ширина стандартных ячеек произвольна, фиксирована только высота;

содержание ячеек является произвольным;

возможны аналоговые функции;

размеры каналов для разводки определяются требованиями за­ казчика (то есть являются заказными);

особые функции: предлагаются ROM и RAM, выполненные по специальной технологии;

все фотошаблоны являются заказными;

размеры кристаллов (чипов) являются заказными.

ASIC со стандартными ячейками имеют следуюш;ие достоинства

инедостатки:

плотность интеграции выше, чем у gate-arrays, вследствие чего стоимость в пересчете на вентиль меньше;

стоимость разработки и время разработки больше, чем в слу­ чае gate-arrays, вследствие чего ASIC со стандартными ячейка­ ми могут стать рентабельными только при производстве пар­ тии около 30000 ИС в год;

изготовитель поставляет программное обеспечение для тести­ рования библиотечных ячеек;

сроки поставки больше, чем в случае gate-arrays.

В ASIC со стандартными ячейками структура библиотечных ячеек определяется специальными требованиями. Поэтому плоиладь кристалла меньше, чем у gate-arrays. В качестве альтернативного варианта может быть проведена оптимизация быстродействия.

14-12. ASIC на основе полностью заказного проектирования 35

14.12.ASIC на основе полностью заказного проектирования

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

14.13. Упражнения

Задача 14.1. Пусть с помощью одной программируемой логической матрицы (PLА) должны быть реализованы три булевых функции /о, /1^/2- Отметьте в приведенной ниже схеме необходимые соединения точками и обозначте выводы PLA.

(а, 6, с, d) = ady ^a^bcd

/1

(а, Ь, с, d) — -^ab V -^cd-^abcd V а -^bcd

/2 (а, b,c,d) ^^{{аУЬУ -^с){-^сУ d) (-па V с V ^d))

Ггт>1 1 Р

Х\ U1 Р

Х2 1п>i 1 р хз 1гт>i 1 р

| & il& II& I & {|& 1

>1 fo

— fl

>1 12

Задача 14.2. Пусть с помощью одной PLA должны быть реализо­ ваны 2 булевых функции /о и / i . Обозначьте на схеме необходимые соединения точками и обозначьте выводы.

/о (а, 6, с, d) = ^a-^b-^c^d V ab-^c-^d V a-^b-^c-^d V -^ab-^cdM V -^a-^bcd V -^abcd

/1 (a, 6, c, 6?) = ^a^b-^c^d V ab-^cd V -^a-^bcd V -^abc-^ d