- •Глава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.7.2. Сбис пл с конфигурируемостью всех областей кристалла
К СБИС ПЛ с конфигурируемостью всех областей кристалла (типа «generic») принадлежат СБИС АРЕХ20К, АРЕХ20КЕ фирмы «Altera», Virtex и VirtexE фирмы «Xilinx», Ultra39K фирмы «Cypress Semiconductor», QL фирмы «QuickLogic», ProASIC500K фирмы «Actel», PSD фирмы WSI и др.
СБИС ПЛ АРЕХ20К/КЕ имеют уровень интеграции до более чем 2,5 млн системных вентилей и архитектуру комбинированного типа, называемую Multicore. В них комбинируются табличные методы реализации функций и реализации их в ДНФ, имеются встроенные блоки памяти и гибкая система межсоединений. Сочетая достоинства FPGA и CPLD, семейства с комбинированной архитектурой и высоким уровнем интеграции, в том числе и АРЕХ20К/КЕ, пригодны для решения как задач с интенсивными вычислениями, так и для реализации сложных логических контроллеров и других быстродействующих автоматов. На момент своего появления микросхемы АРЕХ20К/КЕ, которые были объявлены фирмой как первые промышленные СБИС ПЛ с интеграцией уровня SOPC, отличались и наибольшим объемом встроенной памяти (ядра ЗУ), составлявшим от 26 до 264 Кбит для разных представителей семейства при общих ресурсах памяти от 54 до 540 Кбит. Сложность микросхем характеризовалась числом системных вентилей от 162 К до 2,4 М. В первой половине 2000 г. появилось новое семейство фирмы «Altera» -АСЕХ, являющееся более дешевой версией семейства АРЕХ20К/КЕ с числом системных вентилей от 10 до 100 К и рабочей частотой 160 МГц. Ценой микросхем семейства АСЕХ считают 1 долл. за 5К вентилей.
Ядро ЗУ в микросхемах семейства АРЕХ20К/КЕ состоит из блоков ESB (Embedded System Blocks) no 2 Кбита в каждом, число блоков составляет от 26 у младших представителей семейства до 264 у старших. Блоки могут работать независимо с вариантами организации 128 х 16, 256 х8, 512 х4, 1024x2, 2048 х 1 или соединяться с другими для образования более емкой памяти. Вместе со схемами близлежащих логических блоков ESB могут образовывать блоки SRAM, буферы FIFO, двухпортовую память, а в некоторых микросхемах возможна и организация ассоциативной памяти САМ (Content Addressable Memory). Память типа САМ используется в системах коммуникаций, и ее наличие открывает много новых применений для микросхем.
Архитектура микросхем семейств АРЕХ20К/КЕ (рис. 7.27) характеризуется наличием трех типов структур: 1) табличных функциональных преобразователей типа LUT, заимствованных от семейства FLEX10K и FLEX6000; 2) блоков типа SOP (Sum Of Products) для воспроизведения ДНФ логических функций, заимствованных от микросхем семейства МАХ7000; 3) блоков встроенной памяти от микросхем FLEX10KE.
Архитектура Multicore включает в себя новый уровень иерархии, называемый MegaLAB. Каждый MegaLAB составлен из 16 логических блоков LABs, каждый из которых, в свою очередь, содержит по 10 логических элементов LE, и встроенной структуры ESB. На уровне MegaLAB реализованы локальные межсоединения без использования глобальных ресурсов коммутации. Между структурами MegaLAB и контактами ввода/вывода сигналы распространяются по непрерывным связям FastTrack, вносящим малые и предсказуемые задержки.
Блоки ввода/вывода БВВ (lOEs) позволяют работать со многими стандартами сигналов интерфейса: LVTTL; LVCMOS; 1.8-VI/O; 2,5-VI/O; 3,3-VI/O;3,3-VPCI; 3.3AGP; LVDS; GTL+; СТТ; SSTL-3 l,ll; STTL-2 1,11.
В состав современных СБИС ПЛ высокого уровня интеграции, как правило, включаются блоки, управляющие фазовыми соотношениями между синхросигналами в разных точках схемы. Одним из названий подобных блоков является PLL (Phase Locked Loop). В микросхемах семейства АРЕХ20К/КЕ такие блоки усовершенствованы относительно
своих предшественников и выполняют функции ClockLock, ClockBoost и ClockShift. Первая из этих функций снижает задержки контролируемых синхросигналов относительно опорных, вторая состоит в делении или умножении частот синхросигналов, а третья программирует фазовые сдвиги между контролируемыми синхросигналами. Наличие перечисленных возможностей позволяет существенно повысить тактовые частоты реализуемых устройств без нарушения их работоспособности по сравнению с вариантами без блоков PLL.
Каждый внешний вывод микросхем связан с блоком ввода/вывода (БВВ или ЮЕ). Блоки ввода/вывода расположены в концах строк и столбцов шин быстрых связей (FastTracks), которые проходят по всей длине или ширине схемы. Каждый БВВ содержит двунаправленный буфер и триггер (регистр), который может быть входным, выходным или входить в состав двунаправленной линии. БВВ обеспечивает поддержку интерфейса JTAG с возможностями периферийного сканирования для тестирования и конфигурирования микросхемы, имеет управляемую крутизну фронтов, формируемых буферами сигналов, и управление третьими состояниями буферов. Имеется опция Турбо-бита, т. е. его программирование на быстрый или экономичный режим работы схемы.
Микросхемы семейства APEX выпускаются в вариантах с напряжением питания 2,5 В (вариант 20К) и 1,8 В (вариант 20КЕ). При этом напряжения питания для периферийных элементов, обеспечивающих передачу сигналов во внешние цепи, могут составлять 1,8; 2,5 или 3,3 В.
Семейства СБИС ПЛ Virtex и VirtexE фирмы «Xilinx» - FPGA с триггерной памятью конфигурации (SRAM-based), заявленные фирмой как «истинные программируемые системы на кристалле». Семейство Virtex с напряжением питания 2,5 В выпущено в конце 1998 г.,семе-
йство VirtexE с напряжением питания 1,8 В и более высоким уровнем интеграции - несколько позднее. Оба семейства имеют мегавентильный уровень интеграции, блоки встроенной памяти большой емкости и работают на системной частоте до 200 МГц. Основные технологические параметры: минимальный технологический размер 0,22 мкм,пять слоев ме- таллизации.
Рис. 7.28. Архитектура микросхем семейств Virtex и VirtexE
Число пользовательских выводов у корпусов микросхем для разных представителей семейства составляет от 180 до 804. Эффективная система межсоединений согласно данным фирмы, обеспечивает достижимый процент использования вентилей до 90 даже в сложных проектах. Линии ввода/вывода программируются на 15 стандартов интерфейсных сигналов. Реализуется интерфейс для шины PCI, работающей на частотах 33 или 66 Мгц.
Общий план кристаллов микросхем Virtex и VirtexE показан на рис. 7.28. Сердцевина на схемы - матрица блоков, основу которых с блоки КЛБ (CLB, Configurable Logic Blocks) и переключательные блоки ПБ (GRM, Globsl Routing Matrix). В совокупности КЛБ и ПБ соcтавляют так называемый VersaBlock. Переключательный блок содержит набор программируемых ключей на пересечениях горизонтальных и вертикальных линий каналов трассировки, таким образом, VersaBlock имеет как средства логической обработки данных, так и средства локальной трассировки, обеспечивающие коммутацию КЛБ (рис.7.29). Как видно из рисунка, VersaBlock обеспечивает связи трех типов:
1) межсоединения в составе КЛБ и между КЛБ и ПБ;
внутренние обратные связи для КЛБ, позволяющие подавать выходные сигналы КЛБ к табличным функциональным преобразователям этого же КЛБ с малыми задержками;
прямые связи, соединяющие горизонтально-смежные КЛБ без использования ПБ, что ускоряет передачу сигналов.
Иерархическая система межсоединений семейств Virtex и VirtexE сохранила многие черты, традиционные для фирмы «Xilinx», но имеет и своеобразные особенности, в частности, систему коммутации, названную VersaRing, дающую дополнительные возможности межсоединений в периферийной области кристалла. Благодаря этой системе облегчается взаимозаменяемость выводов микросхемы и их размещения по тем или иным цепям конфигурируемой схемы. Такие возможности могут обеспечивать сохранение прежних печатных плат при модификациях внутренней структуры СБИС.
На периферии кристалла располагаются блоки ввода/вывода (lOBs), а в углах - схемы DDL (Digital Delay Loops), назначение и функционирование которых аналогичны рассмотренным для блоков PLL семейства АРЕХ20К/КЕ несмотря на иное название блоков.
Блоки ввода/вывода имеют и тракт ввода, и тракт вывода сигнала, так что подключенные к ним контактные площадки могут быть использованы как входы или выходы в зависимости от программирования блока (рис. 7.30). Через тракт ввода входные сигналы передаются во внутренние цепи микросхемы либо непосредственно, либо с запоминанием триггером, тип которого можно выбрать из числа возможных вариантов (управляемый фронтом, защелка). В цепь информационного входа триггера включен программируемый элемент задержки, который при необходимости позволяет исключить нарушение условий предустановки или выдержки сигналов, соблюдение которых обеспечивает работоспособность схемы.
Тракт вывода содержит буфер с третьим состоянием, выводящий сигналы на контактную площадку КП. Выходные сигналы могут быть поданы на вход буфера непосредственно от комбинационных цепей выработки логических функций или через триггер, тип которого также может быть выбран из числа имеющихся вариантов. Управление третьим состоянием может осуществляться как от комбинационных логических схем, так и через триггер, который обеспечивает синхронизацию сигналов разрешения или запрещения буфера.
Блоки ввода/вывода могут обеспечивать интерфейс шины PCI с частотой до 66 Мгц.
Блоки ввода/вывода семейств Virtex и VirtexE способны воспринимать и вырабатывать сигналы, отвечающие широкому спектру стандартов на интерфейс: LVTL; LVCMOS2; PCI3.3V; PCI5.0V; GTL; GTL+; HSTL 1,11,111; SSTL31,11; SSTL21,11; СТТ; AGP. Для конфигурации буферов, соответствующей тому или иному стандарту, в некоторых случаях требуются определенные значения двух внешних напряжений: VCCO и VREF. Входной буфер воспринимает пороговое напряжение VREF. Уровень сигнала логической единицы для большинства стандартов интерфейса зависит от напряжения VCCO. Оба напряжения задаются на контактах микросхемы и обслуживают группу блоков ввода/вывода, называемую банком. Для всех БВВ данного банка напряжения идентичны, поэтому существуют ограничения на стандарты интерфейса у близко расположенных контактов. Внутри банка могут быть и разные стандарты интерфейса, если они требуют одних и тех же напряжений VCCO и VREF. В качестве входных для напряжений VREF могут быть запрограммированы определенные пользователем внешние выводы. В микросхемах Virtex и VirtexE организовано по восемь банков (по два на каждую сторону кристалла).
Основой конфигурируемого логического блока КЛБ семейств Virtex и VirtexE (рис. 7.31) являются четыре логические ячейки ЛЯ (LCs, Logic Cells). В каждой логической ячейке имеется четырех входовый функциональный преобразователь табличного типа LUT, логические схемы переноса и управления и триггер (регистр) типа D. КЛБ делится на две идентичные секции (Slice 1 и Slice 2), схема одной из секций раскрыта на рисунке. Величины G1-G4 и F1-F4 - это аргументы функций Y и X, вырабатываемых преобразователями LUT. Выходные сигналы от преобразователей могут передаваться прямо на выход КЛБ или на вход триггера типа D. Имеющиеся в логических ячейках специальные логические схемы позволяют комбинировать выходы нескольких функциональных преобразователей для получения любых функций пяти и шести аргументов и некоторых функций большего числа аргументов, а также мультиплексоров размерностью до 8 - 1.
Ресурсы памяти функциональных преобразователей секции можно использовать как синхронную статическую память SRAM с организацией 162 или 32 1 или как двухпортовую синхронную SRAM с организацией 16x1 или для образования 16-разрядного регистра сдвига.
Специальные логические схемы выработки сигналов переноса упрощают и ускоряют воспроизведение арифметических функций. Ресурсы одной ЛЯ позволяют реализовать в ней схему разряда полного сумматора. Предусмотрены и специальные логические элементы для построения из ЛЯ множительных устройств.
Триггер типа D программируется в вариантах управления фронтом или защелки. Информационный вход триггера подключается к выходам функциональных преобразователей или же прямо ко входам секций (входы BY, BX). Помимо сигналов Clock и Clock Enable каждая секция имеет синхронные сигналы сброса и установки триггеров.
В каждом КЛБ имеются два буфера с третьим состоянием, способные работать на внешние шины.
При работе микросхем большинство сигналов передается через основную систему межсоединений (General Purpose Routing). Линии связей этой системы расположены в горизонтальном и вертикальном каналах трассировки между строками и столбцами КЛБ. Ресурсы этой системы следующие.
• Переключательный блок у каждого КЛБ, обеспечивающий ему доступ к трассам основной системы межсоединений.
По 24 линии передач сигналов от ПБ к соседним ПБ в каждом из четырех направлений.
96 буферированных линий передач сигналов между ПБ от одного к другому через шесть блоков в каждом из четырех направлений. Сигналы поступают на эти линии только в их концах и доступны в концах линий или в их серединах (на расстоянии трех блоков от источника). Треть этих линий двунаправленные, остальные однонаправленные.
• 12 длинных линий, буферированных, двунаправленных, передающих сигналы по всей схеме (по всей высоте или ширине кристалла) с малыми задержками.
Кроме системы основных соединений микросхемы имеют ресурсы VersaRing, о которых уже говорилось, а также глобальные и специальные ресурсы. Глобальные ресурсы используются для распределения синхросигналов и других сигналов, поступающих на большое число приемников, а специальные - для распространения сигналов переноса и т. п.
Микросхемы семейств Virtex и VirtexE воспринимают все команды, специфицированные в стандарте IEEE 1149.1 интерфейса JTAG.