
- •Глава7 программируемая логика и ее применение в микропроцессорных системах
- •7.1. Общие сведения, классификация
- •7.1.1. Уровень интеграции интегральных схем (ис) и его влияние на качество цифровой аппаратуры и ее проектирование.
- •7. 1. 4. Области применения микросхем с программируемой логикой
- •7.2. Первые поколениямикросхем с программируемой структурой
- •7.2.1. Программируемые логические матрицы и программируемая матричная логика
- •7.2.2. Базовые матричные кристаллы
- •7.3. Типичные фрагменты схемотехники ис пл. Общие свойства ис пл
- •7.3.1. Типичные схемотехнические решения
- •7.3.2. Свойства ис пл, важные для их применения в составе систем
- •7.4. Fpga-программируемые пользователем вентильные матрицы
- •7.4.1. Архитектура и блоки fpga
- •7.4.2. Популярные fpga фирмы «xilinx»
- •7.5. Cpld - сложные программируемые логические устройства
- •7.5.1. Архитектура и блоки cpld
- •7.5.2. Популярные cpld фирмы «altera»
- •7.6. Сбис пл комбинированной архитектуры
- •7.6.1. Общие сведения
- •7.6.2. Сбис пл комбинированной архитектуры flex10k
- •7.7. Сбис программируемой логики типа «система на кристалле»
- •7.7.1. Общие сведения
- •7.7.2. Сбис пл с конфигурируемостью всех областей кристалла
- •7.7.3. Сбис пл класса «система на кристалле» с блочной архитектурой
- •7.8. Конфигурирование бис/сбис программируемой логики
- •7.9. Методика оценки параметров ис пл
- •7.9.1. Вводные замечания
- •7.9.2. Об оценке сложности микросхем программируемой логики
- •7.9.3. Об оценке быстродействия микросхем программируемой логики
- •7.9.4. Параметры популярных семейств микросхем программируемой логики
- •7.10. Аналоговые программируемые микросхемы
- •7.10.1 Общие сведения
- •7.10.2. Практические разработки
7.4. Fpga-программируемые пользователем вентильные матрицы
7.4.1. Архитектура и блоки fpga
Программируемые пользователем вентильные матрицы (FPGA или ППВМ) топологически сходны с канальными БМК. Их основой служит матрица регулярно расположенных по строкам и столбцам идентичных конфигурируемых логических блоков. Между строками и столбцами логических блоков проходят трассировочные каналы, содержащие ресурсы межсоединений. При программировании логические блоки настраиваются на требуемые операции преобразования данных, а трассировочные ресурсы - на обеспечение нужных взаимных соединений логических блоков. В результате во внутренней области FPGA реализуется функциональная схема проектируемого устройства. В периферийной области кристалла, по его краям, размещены блоки ввода/вывода, обеспечивающие интерфейс FPGA с другими микросхемами, причем в современных FPGA схемы ввода/ вывода способны выполнять требования множества стандартов на сигналы передачи данных, число которых может доходить до 20.
Свойства и возможности FPGA зависят прежде всего от ключевых архитектурных факторов — типа логических блоков и системы межсоединений.
Важной характеристикой логических блоков (ЛБ) является зернистость (granularity). Зернистость характеризует уровень разбиения схемы блока на коммутируемые при программировании части. Примерами наиболее мелкозернистых логических блоков могут служить цепочки транзисторов с р- и n-каналами, с помощью которых можно собирать логические схемы непосредственно из пар транзисторов по обычной методике реализации КМОП-логики. Мелкозернистость придает гибкость использованию схемных элементов кристалла, но усложняет систему межсоединений. Более крупнозернистые блоки используются в большинстве FPGA и имеют довольно разнообразный характер.
Типичными представителями логических блоков FPGA являются:
логические модули на основе мультиплексоров;
логические модули на основе программируемой памяти (блоки типа LUT- Look-Up Tables).
В некоторых FPGA применяют логические блоки, состоящие из нескольких малоразмерных Известно, что мультиплексоры могут работать в режиме универсальных логических модулей, если на их адресные входы подавать аргументы переключательной функции, а на информационные -настроечные сигналы. При настройке константами 0 и 1 мультиплексор размерности 2n - 1 воспроизводит функции п переменных, что иллюстрируется на рис. 7.11, а примером для функции двух переменных. Действительно, комбинация х1х0 = 00 определяет передачу на выход мультиплексора сигнала DO с нулевого информационного входа. Если на этом входе задано в качестве настроечного сигнала значение функции при нулевом аргументе F(0), то на выходе получим искомый результат. Комбинация х1х0 = 01 передает на выход сигнал D1, и если D1 = F(1), то получим необходимый результат и для этого набора аргументов и т. д. Таким образом можно получать с помощью мультиплексора любую функцию n аргументов.
В некоторых FPGA применяют логические блоки,состоящие из нескольких мультиплексоров (2-1,4-1), получая при этом программируемые логические блоки с широкими логическими возможностями.
Самые распространенные логические блоки FPGA - табличные (LUTs). Эти блоки называют часто табличными функциональными преобразователями. В них используются программируемые запоминающие устройства. При этом набор аргументов служит адресом, по которому записывается соответствующее значение функции, если память имеет одноразрядную организацию, или значения m функций, если разрядность хранимых слов равна т. Число аргументов воспроизводимых функций равно разрядности адреса памяти. Табличные функциональные преобразователи (рис. 7.11, б) воспроизводят любые функции данного числа аргументов.
Для систем межсоединений FPGA характерны сегментированные линии, составленные из отдельных отрезков, соединяемых друг с другом программируемыми элементами. Программируемые соединительные элементы могут быть размещены в так называемых переключательных блоках, конфигурируемых так, чтобы составить из сегментов необходимые цепи. Программируемые соединительные элементы (ключи) вносят в линии передач сигналов задержки, так как имеют паразитные параметры (сопротивление R и емкость С). Задержки, обусловленные постоянными времени ключей RC, доминируют над другими, так что число ключей в линии передачи сигнала практически определяет и задержку в линии связи.
Выбор длин сегментов - непростая задача, поскольку короткие сегменты затрудняют передачи сигналов на большие расстояния (появится большое число ключей в линии), а длинные сегменты неудобны для реализации коротких передач. Обычно применение однотипных сегментов не может дать удовлетворительных результатов, и система межсоединений организуется как иерархическая. Так, например, в широко известных FPGA фирмы «Xilinx» ресурсы межсоединений содержат основные связи (General Purpose Interconnects) с сегментами единичной длины, основные связи с сегментами двойной длины, так называемые прямые связи для соединения логических блоков с ближайшими соседями (Direct Connects) и длинные линии (Long Lines), пересекающие кристалл по всей его длине и ширине для передач сигналов на большие расстояния и с малыми задержками.
На рис. 7.12, а представлена структура FPGA с простейшей системой межсоединений, содержащей только основные связи с единичной длиной сегментов. Через ЛБ обозначены
конфигурируемые логические блоки (для краткости принято обозначение ЛБ, в котором конфигурируемость не обозначена, также обозначаются конфигурируемые логические блоки и в дальнейшем). В структуру входят также переключательные блоки ПБ и соединительные блоки СБ. Соединительные блоки обеспечивают связи ПБ с трактами передач сигналов, проходящими через переключательные блоки.
В сущности, это совокупность пересечений линий ввода/вывода логических блоков с линиями, проходящими через переключательные блоки, с элементами программируемых соединений в точках пересечений. Схема ПБ раскрыта на рис. 7.12, б. Сигналы, поступающие по какой-либо линии в ПБ, могут быть направлены далее по трем направлениям, что обеспечивается наличием в ПБ показанных зачерненными квадратами схем, представленных на рис. 7.12, в. Иными словами, сигналы могут передаваться по горизонтальным или вертикальным линиям и переходить с одних на другие.
Ресурсы межсоединений в FPGA в полном виде показаны на рис. 7.13 на примере микросхемы ХС4000Е фирмы «Xilinx» . Здесь наряду с основными связями единичной длины (восемь линий в каждом из направлений) имеются основные связи с линиями двойной длины (четыре линии в каждом из направлений), шесть вертикальных и шесть горизонтальных длинных линий и четыре линии глобального, т. е. общего для всей микросхемы тактирования.
В сегментированных линиях межсоединений задержки сигналов зависят от путей их распространения, так как пути неидентичны и в них может оказаться разное число ключей.