ПЛИС CPLD компании Xilinx с малым потреблением. Серия CoolRunner
Выпускаемые в настоящее время ПЛИС c архитектурой CPLD представляют собой программируемые пользователем интегральные схемы малой логической емкости (до 13 000 вентилей), которые могут перепрограммироваться непосредственно в устройстве и сохранять конфигурацию при выключенном питании. Они производятся по EEPROM или Fast Flash КМОП-технологии. Обладая массой преимуществ при использовании в стационарных устройствах, эти ПЛИС имеют очень существенный недостаток, не позволяющий использовать их в мобильных системах: это большое потребление тока как в статическом (десятки миллиампер), так и в динамическом (несколько сотен миллиампер при работе на частотах в несколько десятков мегагерц) режимах. Единственной серией ПЛИС CPLD, лишенной этого недостатка является серия CoolRunner, выпускаемая компанией Xilinx. В 2001 г. начат выпуск нового семейства ПЛИС серии CoolRunner® — семейства XPLA3.
Семейство ПЛИС XPLA3 (eXtended Programmable Logic Array) является дальнейшим развитием серии CoolRunner®. Микросхемы семейства XPLA3 предназначены для использования в системах с низким потреблением тока, которые включают мобильные, карманные и другие критичные к энергопотреблению приложения. Каждый кристалл семейства XPLA3 производится с использованием технологии FZP (Fast Zero Power). Технология FZP позволяет производить кристаллы с задержкой распространения «контакт-контакт» до 5 нс при потребляемом токе менее 100 мкА в статике без использования дополнительных схем перевода в малое потребление. Такое низкое потребление (более чем в 100 раз меньше, чем у микросхем CPLD других производителей) обусловлено применением методики, основанной полностью на КМОП-принципах. В отличие от других CPLD, где используются методы усиления считывания для реализации логических произведений, применяемых со времен биполярных технологий, в CPLD серии CoolRunner® применяются каскадные цепи КМОП-вентилей. Потребление тока в динамике для МС серии CoolRunner® также значительно ниже (в 3–4 раза), чем для всех остальных ПЛИС с архитектурой CPLD.
Разработка конфигурации кристалла семейства XPLA3 осуществляется с помощью пакета программного обеспечения WebPACK. Пакет включает в себя программы схемного и текстового (Abel, VHDL) ввода, программу верификации, трассировки и программирования. Разработка осуществляется на ПК или рабочей станции. Пакет можно загрузить с сайта http://www.xilinx.com/products/software/webpowered.htm.
Для программирования МС семейства XPLA3 не требуется программатор. Перепрограммирование осуществляется сигналами от элементов с напряжением питания 3,3 В через специальные выводы МС (JTAG-порт) в той же системе, в которой и применяется данная ПЛИС. Минимальное число циклов перепрограммирования МС превышает 1000. Записанная конфигурация может сохраняться более 20 лет. Программирование и перепрограммирование, помимо программирования/перепрограммирования в системе, также может осуществляться программаторами таких производителей, как Data I/O, BP Microsystems, SMS и др.
В состав семейства XPLA3 входит шесть МС, емкостью от 32 до 512 макроячеек (от 800 до 12 800 логических вентилей соответственно) в различных корпусах. Все МС семейства XPLA3 совместимы по контактам, что обеспечивает возможность легкого перехода от одной МС к другой в том же корпусе.
Параметры микросхем семейства XPLA3 представлены в табл. 1. Таблица 2 дает представление о том, какие микросхемы в каких корпусах выпускаются.
XCR3032XL | XCR3064XL | XCR3128XL | XCR3256XL | XCR3384XL | XCR3512XL | |
Число макроячеек | 32 | 64 | 128 | 256 | 384 | 512 |
Число вентилей | 800 | 600 | 3200 | 6400 | 9600 | 12800 |
Число триггеров | 32 | 64 | 128 | 256 | 384 | 512 |
Задержка вход МС — комбинаторная логика — выход МС, tPD, нс | 5 | 6 | 6 | 7,5 | 7,5 | 7,5 |
Время установки глобального тактового сигнала, tSU, нс | 3,5 | 4 | 4 | 4,8 | 4,8 | 4,8 |
Задержка глобального тактового сигнала до выхода, tCO, нс | 3,5 | 4 | 4 | 4,5 | 4,5 | 4,5 |
fSYSTEM, МГц | 175 | 145 | 145 | 140 | 127 | 127 |
Корпус | XCR3032XL | XCR3064XL | XCR3128XL | XCR3256XL | XCR3384XL | XCR3512XL |
PLCC-44 | 36 | 36 | ||||
VQFP-44 | 36 | 36 | ||||
CSP-48 | 36 | 40 | ||||
CSP-56 | 48 | |||||
VQFP-100 | 68 | 84 | ||||
CSP-144 | 108 | |||||
VQFP-144 | 108 | 120 | ||||
PQFP-208 | 164 | 172 | 180 | |||
BGA-256 | 164 | 212 | 212 | |||
CSP-280 | 164 | |||||
BGA-324 | 220 | 260 |
Описание архитектуры семейства XPLA3
На рис. 1 представлена блок-схема архитектуры кристалла семейства XPLA3, содержащего 128 макроячеек. Каждая МС семейства XPLA3 представляет собой подсистему, состоящую из множества функциональных блоков (ФБ), соединенных переключающей матрицей ZIA (Zero-power Interconnect Array). ZIA является виртуальным матричным коммутатором. Каждый функциональный блок имеет 36 входов от ZIA и включает в себя 16 макроячеек.

На первый взгляд архитектура полностью идентична архитектуре других ПЛИС CPLD. Отличие заключается в реализации логических функций внутри ФБ и в методах реализации самих ФБ в кристалле.
Архитектура ФБ
![]() |
![]() |
Рис. 2. Примеры PLA-матрицы и PAL-матрицы
|
Рис. 3. Архитектура функционального блока семейства XPLA3
|
На рис. 3 показана архитектура функционального блока. Каждый ФБ содержит PLA-матрицу, которая генерирует управляющие термы, термы синхронизации и логические функции. PLA-матрица отличается от PAL-матрицы тем, что она состоит из программируемой матрицы элементов И, за которой следует программируемая матрица элементов ИЛИ. PAL-матрица содержит фиксированную матрицу элементов ИЛИ (рис. 2). Входы PLA-матрицы напрямую подключены к выходам переключающей матрицы ZIA. PAL-матрица имеет 36 пар прямых и инверсных входов, которые формируют 48 термов. Среди них восемь — локальные управляющие термы (LCT[0:7]), доступные для любой макроячейки данного ФБ как асинхронный тактовый сигнал, сигнал сброса, установки и разрешения выхода. Если эти термы не задействованы как управляющие, они могут использоваться для реализации логических функций пользователя.
В каждом ФБ существует восемь термов (PT[8:15]), которые осуществляют обратную связь через элемент И-НЕ внутри ФБ. Эта особенность ФБ может использоваться для увеличения логической емкости при реализации сложных логических функций. Не использованные для реализации обратной связи термы PT[8:15], так же как и LCT[0:7], могут быть использованы для реализации логических функций пользователя.

Шестнадцать термов PT[16:31] доступны для каждой макроячейки (1 терм на одну макроячейку) для реализации логики, критичной к задержкам. Если требуется более одного терма для макроячейки, то могут быть использованы дополнительные 47 термов, предварительно просуммированные, а затем мультиплексированные с термом, отведенным под макроячейку, через специальный мультиплексор VFM (Variable Function Multiplexer). Мультиплексор VFM представлен на рис. 4.
Архитектура макроячейки
На рис. 5 показана архитектура макроячейки микросхем семейства XPLA3. Каждая макроячейка может реализовывать комбинаторную или регистровую функцию. Управление регистра макроячейки может быть запрограммировано на асинхронный сброс, предустановку, а также установку в определенное состояние при включении питания. Регистр макроячейки может быть сконфигурирован как D-триггер, T-триггер, регистр-защелка или не задействован, если макроячейка необходима для реализации комбинаторной функции.

Каждый из указанных выше триггеров может тактироваться от любого из восьми источников сигнала или его инверсии. К этим источникам тактовых сигналов относятся два глобальных тактовых сигнала, выбранные из четырех глобальных сигналов, поступающих напрямую от контактов микросхемы; общий сигнал синхронизации (терм от одного из ФБ кристалла); локальные термы управления (из данного ФБ) — LCT[4:7]; терм синхронизации PTC.
В макроячейке существуют две мультиплексные связи с переключающей матрицей ZIA. Один мультиплексор выбирает либо выход мультиплексора VFM, либо выход регистра. Другой мультиплексор выбирает либо выход регистра, либо сигнал с контакта микросхемы. Когда контакт ввода/вывода используется как выход, выходной буфер задействован, линия обратной связи макроячейки может быть использована для реализации обратной связи внутри макроячейки. Когда контакт ввода/вывода используется как вход, выходной буфер переведен в третье состояние и соединение контакта ввода/вывода с переключающей матрицей осуществляется через линию обратной связи ячейки ввода/вывода. Если контакт микросхемы используется как регистровый вход, то соединение контакта и входа регистра осуществляется по линии прямой связи, что обеспечивает минимальное время установки сигнала. Если регистр макроячейки сконфигурирован как регистр-защелка, то вход разрешения тактирования регистра макроячейки не функционирует.
Ячейка ввода/вывода (ЯВВ)
Блок-схема ячейки ввода/вывода показана на рис. 6. Мультиплексор разрешения выхода (OE) выходного буфера имеет восемь входов. Коды на входах управления мультиплексора и соответствующие состояния выхода перечислены в таблице на рис. 6. При использовании ЯВВ как входа возможно включение pull-up резистора (WP). Если ЯВВ не используется в проекте пользователя, то программа проектирования автоматически включает WP, поэтому не использованные контакты на плате можно оставлять не подключенными. В то же время контакты двойного назначения (CLKx/INx) не имеют внутреннего резистора pull-up, поэтому если они не задействованы, то на плате к ним нужно подключить внешний резистор.

ЯВВ совместима с сигналами 5-вольтовой логики, но сигналы можно подавать только после подачи питания на все отведенные под питание контакты микросхемы.Выходы микросхем семейства XPLA3 полностью совместимы с 3,3-вольтовым PCI.Для уменьшения дребезга фронта сигнала в ЯВВ существует программируемая схема управления задержкой.
JTAG
JTAG — часто используемый акроним стандарта периферийного сканирования JTAG IEEE 1149.1. Данный стандарт определяет контакты, функции логики управления и команды, позволяющие проводить тестирование как интегральных микросхем, так и печатных плат, не применяя специализированного тестового оборудования. В МС семейства XPLA3 JTAG применяется для программирования/перепрограммирования МС непосредственно в готовом устройстве. В табл. 3 представлены JTAG-команды, поддерживаемые МС семейства XPLA3.
Команда | Код | Используемый регистр | Описание |
Sample/ Preload |
10 | Регистр периферийного сканирования | Команда позволяет считать и просмотреть статические данные устройства, находящегося в рабочем режиме. Команда также позволяет загрузить данные в сдвиговый регистр периферийного сканирования перед выбором другой команды периферийного сканирования |
Extest | 0 | Регистр периферийного сканирования | Команда позволяет проводить тестирование устройств и соединений вне кристалла. Обычно перед использованием этой команды данные загружаются в сдвиговый регистр периферийного сканирования с помощью команды Sample/Preload |
Bypass | 11111 | Регистр периферийного сканирования | Устанавливает 1-битный BYPASS регистр между контактами TDI и TDO, что позволяет передать данные периферийного сканирования синхронно через кристалл к соседнему устройству, не прерывая функционирования кристалла |
Idcode | 1 | Регистр периферийного сканирования | Устанавливает IDCODE регистр между контактами TDI и TDO, что позволяет считать идентификационный номер кристалла |
High-Z | 101 | Регистр периферийного сканирования | Переводит все контакты микросхемы в состояние высокого импеданса |
Intest | 11 | Регистр периферийного сканирования | Команда подготавливает регистры периферийного сканирования для выполнения тестирования внутренней логики кристалла |
В МС семейства XPLA3 реализованы четыре из пяти контактов, описанных в спецификации стандарта JTAG: TMS, TDO, TCK и TDI (табл. 4). Пятый сигнал из спецификации (TRST — сброс теста) не реализован в МС семейства XPLA3, так как он не является необходимым для осуществления операций периферийного сканирования и программирования в системе. Это позволяет высвободить контакт для его использования. Сброс теста осуществляется через цепь сброса-установки, которая используется для инициализации при включении питания.
Контакт | Название | Описание |
TCK | Test Clock Input | Сигнал синхронизации входных и выходных данных регистров периферийного сканирования. |
TMS | Test Mode Select | Последовательный вход, выбирающий JTAG-команду. Во время операций пользователя должен удерживаться в состоянии лог. 1 |
TDI | Test Data Input | Последовательный вход для команд и тестовых данных. Данные вводятся по переднему фронту TCK |
TDO | Test Data Output | Последовательный выход для команд и тестовых данных. Данные выводятся по заднему фронту TCK |
Контакт разрешения JTAG-порта
Контакты TMS, TDO, TCK и TDI в МС семейства XPLA3 могут быть запрограммированы как пользовательские. Для активации их как контактов JTAG-порта используется специальный контакт разрешения — Port Enable. Для простоты использования МС поставляются с запрограммированными как JTAG-порт контактами TMS, TDO, TCK и TDI. Для корректной работы микросхемы контакт Port Enable должен удерживаться при включении питания в состоянии лог. 0.
При программировании МС эти контакты могут быть запрограммированы на выполнение пользовательских функций или оставлены как JTAG-порт. В случае программирования их как пользовательских перевод в режим JTAG-порта осуществляется подачей уровня лог. 1 на контакт Port Enable. В случае если эти контакты используются только как JTAG-порт, контакт Port Enable должен быть постоянно соединен с «землей». Контакты JTAG-порта внутренне подтянуты к уровню лог. 1, и при сильных наводках рекомендуется подключить внешние pull-up резисторы сопротивлением 10 кОм.
Программирование/перепрограммирование в системе
Микросхемы XPLA3 могут быть запрограммированы и перепрограммированы непосредственно в системе от компьютера. В кристалл встроена схема, обеспечивающая необходимые напряжения программирования, превосходящие напряжение питания 3,3 В. Данная схема позволяет запрограммировать МС, используя 3-вольтовое питание, применяемое в рабочем режиме без использования дополнительных цепей. Команды программирования в системе описаны в табл. 5.
Команда | Код | Используемый регистр | Описание |
Enable | 1001 | Сдвиговый регистр программирования в системе | Разрешает команды программирования в системе Erase, Program, Verify |
Erase | 1010 | Сдвиговый регистр программирования в системе | Производит стирание всей матрицы EEPROM |
Program | 1011 | Сдвиговый регистр программирования в системе | Программирует данные из сдвигового регистра программирования в системе в EEPROM |
Disable | 10000 | Сдвиговый регистр программирования в системе | Запрещает режим программирования в системе |
Verify | 1100 | Сдвиговый регистр программирования в системе | Считывает конфигурационные данные (процесс верификации) |