Проектирование цифровых устройств с использованием ПЛИС (1055366), страница 2
Текст из файла (страница 2)
6). Серии микросхем могут отличаться другот друга числом функциональных блоков и их сложностью.Сигналы, поступающие на входы ПЛИС типа CPLD, с помощью блока ввода/вывода передаются в программируемую матрицусоединений. С помощью этой матрицы также могут быть распределены по кристаллу выходные сигналы блоков SPLD. Глобальные сигналы синхронизации (GCK), сброса и установки (GSR) иуправления третьим состоянием (GTS) подводятся ко всем SPLD.Как правило, современные ПЛИС обеспечивают возможность использования нескольких внешних источников синхросигналов,причем различные части устройства могут работать на разных час9тотах. Часть блоков SPLD, для синхронизации которых используется один и тот же глобальный тактовый сигнал, называется тактовым доменом.Рис. 6.
Структура ПЛИС типа CPLDКаждый функциональный блок представляет собой матрицуконъюнкторов, обеспечивающих получение термов. Для увеличенияфункциональности некоторые термы могут быть направлены не водну, а в несколько соседних макроячеек (рис. 7). В состав макроячейки входят распределитель термов и схема сложения по модулю2, триггер с динамическим управлением и мультиплексоры 2 – 5выбора сигналов управления триггером (адресные входы на рисункене показаны). Входные сигналы матрицы И подаются из матрицыкоммутации. В CPLD XC9500, например, таких линий 54. Каждыйсигнал подается на матрицу в прямом и инверсном виде.
Распределитель термов служит для расширения функциональности макроячеек за счет передачи термов на ближайшие макроячейки.Полученные из матрицы конъюнкторов и из соседних макроячеек термы передаются на элемент ИЛИ, а также на мультиплексоры управления. Результат дизъюнкции матрицы ИЛИ можетбыть инвертирован с помощью схемы сложения по модулю 2, еслина мультиплексоре 1 выбран сигнал низкого уровня. При выборена мультиплексоре 1 сигнала высокого уровня сигнал со схемыИЛИ повторяется. Уровнем этого сигнала также возможно управлять с помощью одного из выходов распределителя термов. Полу10ченный результат может быть выдан на триггер с динамическимуправлением или же непосредственно передан в блок ввода/вывода или в программируемую матрицу соединений с помощьюмультиплексора 6.
Для управления выходным буфером, на который подается этот сигнал, в распределителе термов предусмотренодин выход для сигнала управления третьим состоянием.Асинхронный сброс и установка триггера макроячейки осуществляются с помощью сигнала, выбираемого на мультиплексорах 2и 3. Таковыми могут быть как глобальные сигналы сброса (GR) иустановки (GS), так и сигнал из распределителя термов. В качествесигнала синхронизации с помощью мультиплексора 2 может бытьиспользован один из выходов распределителя термов или же сигнал глобальной синхронизации GCK. Мультиплексор 5 позволяетизменить фазу синхросигнала на 180°.Рис. 7. Структура макроячейки (на примере CPLD XC9500)Периферийная часть ПЛИС типа CPLD состоит из однотипныхэлементов — блоков ввода/вывода, предназначенных для соединения внутренних цепей ПЛИС с внешними цепями. Структура блока11ввода вывода основана на шинном формирователе (элементы 1 и 2на рис.
8), дополненном схемами для подтягивания потенциала иподключения общей точки, мультиплексором управления третьимсостоянием (элемент 3) и схемой управления крутизной фронта.Рис. 8. Структура блока ввода/выводаПЛИС типа CPLD выгодно отличаются от ПЛИС других типовпростотой и регулярностью структуры. В качестве памяти конфигурации чаще всего используются ячейки типа EEPROM, что повышает секретность проектов. Основным назначением ПЛИС типаCPLD является реализация интерфейсной логики (USB, PCI, PCI-Xи т. д.).1.4.
ПЛИС типа FPGAПЛИС типа FPGA предназначены для реализации сложныхпроектов, и их емкость достигает десятков миллионов «эквивалентных вентилей». (Данный термин означает, что для реализацииодного и того же проекта на полностью заказной ИС потребовалось бы определенное число вентилей, называемое при реализациипроекта с использованием ИС «числом эквивалентных вентилей».)Такая высокая функциональность позволяет объединять на одном12кристалле несколько процессорных устройств и интерфейснуюлогику. Архитектура FPGA будет рассмотрена на примере ПЛИСраспространенной серии Spartan-3 фирмы Xilinx.Заданную при программировании функциональность обеспечивают конфигурируемые логические блоки (КЛБ), расположенные повсей площади кристалла.
Их число является основным параметром,характеризующим возможность реализации на конкретной ПЛИСсложных проектов. Связность КЛБ обеспечивается с помощью переключательной матрицы (рис. 9), состоящей из цепей различнойдлины: от длинных глобальных до коротких прямых, соединяющихсоседние КЛБ. Коммутация цепей переключательной матрицы осуществляется с помощью коммутационных блоков.Рис. 9. Структура FPGAПри реализации на основе ПЛИС сложных устройств, работающих на высокой тактовой частоте, особые требования предъявляются к глобальным сигналам синхронизации. В современных13ПЛИС типа FPGA система синхронизации состоит из специальноспроектированной сети распределения синхросигналов, основнымсвойством которой является одинаковая длина линий от источникасинхросигнала (от специально выделенного для этих целей контакта ПЛИС или от менеджера синхросигналов) до всех КЛБ.Так же как и в CPLD, в FPGA предусмотрена возможность использования нескольких тактовых сигналов.
Для реализациифункций деления, умножения и сдвига по фазе синхросигнала накристалле предусмотрено несколько менеджеров синхросигналов.Использование обычных цепей передачи информационных сигналов для передачи синхросигналов не рекомендуется. На кристаллетакже располагаются дополнительные устройства — блоки статической памяти и умножители. На периферии кристалла находятсяблоки ввода/вывода.КЛБ содержат ресурсы, обеспечивающие реализацию комбинационной логики и элементов памяти. Для схем обоих типов внаиболее распространенных ПЛИС со статической памятью конфигурации используются небольшие блоки адресной памяти спроизвольным доступом, называемые таблицами соответствия(Look Up Table, LUT).
Такая память содержит от 16 (реализация16×1) до 64 (64×1) бит, записываемых в LUT при конфигурацииили в рабочем режиме. Также предусматривается возможность использования LUT в качестве сдвигового регистра. Все это существенно расширяет функциональность ПЛИС, так как позволяютреализовать LUT в нескольких качествах:• при использовании комбинационных схем в качестве таблицыистинности произвольной функции от переменных, подаваемых наадресные входы LUT;• при реализации автоматов и памяти в качестве блока статической адресной памяти (16×1 или 64×1 бит);• при реализации арифметических операций, последовательныхинтерфейсов и конвейеров в качестве регистра сдвига.Например, КЛБ в FPGA Spartan-3 (рис. 10) содержит четыресекции, две из которых могут функционировать как память с произвольным доступом (RAM) или как регистр сдвига (SRL в блокеSLICEM).
Две оставшиеся секции могут функционировать тольков качестве постоянных запоминающих устройств (ROM).14Рис. 10. Структура КЛБ (на примере Spartan-3)Каждая секция в блоке типа SLICEL (рис. 11) состоит из двухблоков LUT, двух схем сложения по модулю 2, схем формирования ускоренного переноса (элементы 1, 2, 3, 7, 8, 9, 13), мультиплексоров выбора режима (элементы 5, 6, 11, 12), двух динамических триггеров, схемы наращивания размерности мультиплексора(элемент 10), независимого мультиплексора 4. Адресные входымультиплексоров на рис. 11 не показаны. Блок SLICEM отличаетсяот блока SLICEL тем, что в нем реализована дополнительная схема управления сдвигом.Секция в блоке SLICEL может функционировать в качестве:• комбинационной схемы, реализующей функции Y и X от четырех переменных (G1..G4 и F1..F4) с помощью блока LUT имультиплексоров 5 и 11;• мультиплексора 4 с двумя входами FXINA и FXINB и адресным входом BY;• комбинационной схемы, реализующей функцию F5 от девятипеременных (G1..G4, F1..F4, BX) на блоке LUT и мультиплексоре 10;• мультиплексора с пятью адресными линиями (G1..G4 илиF1..F4, BX) на блоке LUT и мультиплексоре 10;15Рис.
11. Структура секции в блоке типа SLICEL• сумматора с ускоренным переносом, реализующего сложениедвухразрядных чисел (G2F2, G1F1) с учетом переноса в младшийразряд (CIN). С помощью двух элементов блока LUT вырабатываются функции F1 XOR F2 и G1 XOR G2. Эти функции использу16ются для формирования разрядов суммы на элементах сложенияпо модулю 2 с разрядом переноса, а также для формирования переноса в старший разряд с помощью мультиплексоров 3, 9 и мультиплексоров выбора режима 1, 2, 7, 8;• двух триггеров для хранения сигналов Y и X или сигналовBX и BY.Сумматор с ускоренным переносом может также функционировать в качестве счетчика при выборе на мультиплексорах 1 и 7одного из двух разрядов чисел G и F и подаче единицы на входCIN.