Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
схемотехника / Сборник лаб работ 2006.pdf
Скачиваний:
138
Добавлен:
27.03.2016
Размер:
2.05 Mб
Скачать

Рис. 1.2. Структура CLB ПЛИС семейства Spartan

В состав CLB входят:

три таблицы преобразования LUT (Look-Up Table), которые используются как генераторы логических функций;

два триггера;

две группы А и В программируемых мультиплексоров, играющих роль средств конфигурирования CLB.

Генераторы логических функций

Наиболее важными программируемыми элементами логического блока являются схемы F-LUT, G-LUT и Н-LUT (см. рис. 1.2), вырабатывающие значения логических функций. С помощью элементов F и G можно реализовать любую логическую функцию четырех переменных, а элемент Н позволяет сформировать значение любой логической функции трех переменных.

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

9

таблицу истинности в одноразрядной памяти на 16 слов. Подавая на адресные входы памяти четыре входных бита, мы получаем на выходе значение функции для этой комбинации значений переменных.

Именно такой подход был принят разработчиками ПЛИС FPGA в фирме Xilinx. Схемы F и G, вырабатывающие значения логических функций, фактически являются очень компактными и быстрыми статическими ЗУ 16×1, а схема Н представляет собой статическое ЗУ 8×1. Когда логический блок используется для выполнения логических операций, то в статическое ЗУ загружаются таблицы истинности логических функций F, G и Н.

Время вычисления результата не зависит от воспроизводимой функции и равно времени считывания слова из памяти.

Обратите внимание, что сигналы с выходов схем F и G, а также сигналы, поступающие на дополнительные входы логического блока, можно подать через мультиплексоры группы А на входы схемы Н (см. рис. 1.2), поэтому можно реализовать логические функции с числом переменных больше четырех. Ниже приведен перечень функций, которые можно реализовать с помощью схем F, G и Н в одном логическом блоке:

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

любая одна функция пяти переменных;

любая функция четырех переменных плюс некоторые другие функции шести переменных, не зависящих от переменных первой функции;

некоторые функции с числом переменных до девяти, включая проверку на четность и проверку равенства двух 4-разрядных двоичных слов.

При соответствующем программировании мультиплексоров группы В сигналы с выходов схем, вырабатывающих значения функций, могут быть выведены на выходы X и У логического блока или запомнены в переключающихся по фронту D-триггерах.

10

Помимо удобства программирования, применение памяти для хранения таблиц истинности имеет другое важное достоинство. Каждая таблица преобразования LUT (Look-Up Table) может быть использована как оперативное запоминающее устройство с организацией 16x1 или как 16-разрядный сдвиговый регистр. Это дает возможность использовать в проектах небольшие по объему блоки распределенной по кристаллу памяти.

Триггер

Каждый CLB содержит два триггера, которые могут использоваться для фиксации и хранения сигналов с выходов схем (LUT), вырабатывающих значения функций, или же работать независимо от них. Входной сигнал DIN может быть прямым входом для любого триггера (см. рис. 1.2). Сигнал H1 тоже можно передавать любому триггеру, но через схему Н-LUT, что вносит в цепь его передачи некоторую задержку.

Оба триггера имеют общие входы СК тактирования от сигнала К, разрешения тактирования ЕС и установки/сброса SR

(см. рис. 1.2).

Внутренние программируемые цепи в схеме триггера (рис. 1.3) позволяют индивидуально программировать полярность тактирующего сигнала СК.

С помощью мультиплексоров в триггерах может быть также использован вход разрешения тактового сигнала ЕС (см. рис. 1.3).

Сигнал SR асинхронный и для каждого триггера программируется с использованием внутренних цепей триггера как сигнал установки или сброса. Этот сигнал определяет состояние, в котором окажется триггер после процесса конфигурации микросхемы. Конфигурация определяет и характер воздействия на триггеры импульсов GSR (Global SR) и SR при работе схемы.

11

Рис. 1.3. Триггерная схема конфигурируемого блока

Блоки ввода/вывода сигналов

ПЛИС FPGA находят широкое применение также благодаря тому, что имеют большое число блоков ввода/вывода сигналов, настраиваемых под различные стандарты электрического соединения микросхем. Блоки ввода/вывода (БВВ) обеспечивают интерфейс между выводами корпуса ПЛИС FPGA и ее внутренними логическими схемами. Каждому выводу корпуса придается блок ввода/вывода БВВ, который может быть конфигурирован как вход, выход или двунаправленный вывод.

На рис. 1.4 показана упрощенная функциональная блок-схема одного блока ввода/вывода (I/O block, IOВ). Сигнальный вывод ПЛИС получил название PAD. С помощью настройки к нему можно подключать внутренний нагрузочный резистор PULL-UP или резистор PULL-DOWN, соединенные с шиной питания или шиной земли, соответственно. Эти резисторы обеспечивают режим выхода

12

с открытым коллектором (стоком) для систем с различными уровнями логики.

Рис. 1.4. Упрощенная структура блока ввода/вывода

Работа БВВ как выходного блока обслуживается следующими элементами: выходным буфером 1, триггером 1, мультиплексорами 1, 2, 5 и логической схемой ИЛИ (см. рис. 1.4). Выводимый сигнал О можно получать в прямой или инверсной форме в зависимости от программирования мультиплексора 2. Этот сигнал может передаваться на выходной буфер непосредственно или сниматься с триггера при соответствующем программировании мультиплексоpa 5. Сигналы Т и GTS (Global Tri-State), согласно логике ИЛИ, управляют переводом буфера в третье состояние, причем активный уровень сигнала Т программируется с помощью мультиплексора 1. Внутренние программируемые цепи триггера (на рисунке не показаны) позволяют изменять полярность тактирующего фронта. Сам буфер имеет программируемые крутизну фронта выходного сигнала и его уровни — КМОП/ТТЛ. Крутизна фронтов в некритичных к скорости передачи цепях снижается для уменьшения уровня помех на шинах питания и земли.

Тракт ввода сигналов содержит входной буфер 2, триггер 2, программируемые мультиплексоры 3, 4, 6, элемент задержки Delay (см. рис. 1.4). Вводимый сигнал в зависимости от программирова-

13