СБИС ПЛ С КОНФИГУРИРУЕМОСТЬЮ ВСЕХ ОБЛАСТЕЙ КРИСТАЛЛА

К СБИС ПЛ с конфигурируемостью всех областей кристалла (типа «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) межсоединения в составе КЛБ и между КЛБ и ПБ;

2) внутренние обратные связи для КЛБ, позволяющие подавать выходные сигналы КЛБ к табличным функциональным преобразователям этого же КЛБ с малыми задержками;

3) прямые связи, соединяющие горизонтально-смежные КЛБ без использования ПБ, что ускоряет передачу сигналов.

 
 
 

 

 


 

 


Иерархическая система межсоединений семейств 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 с организацией 16´2 или 32 ´ 1 или как двухпор­товую синхронную SRAM с организацией 16x1 или для образования 16-разрядного реги­стра сдвига.

Специальные логические схемы выработки сигналов переноса упрощают и ускоря­ют воспроизведение арифметических функций. Ресурсы одной ЛЯ позволяют реализо­вать в ней схему разряда полного сумматора. Предусмотрены и специальные логичес­кие элементы для построения из ЛЯ множительных устройств.

Триггер типа D программируется в вариантах управления фронтом или защелки. Информационный вход триггера подключается к выходам функциональных преобразо­вателей или же прямо ко входам секций (входы BY, BX). Помимо сигналов Clock и Clock Enable каждая секция имеет синхронные сигналы сброса и установки триггеров.

В каждом КЛБ имеются два буфера с третьим состоянием, способные работать на внешние шины.

При работе микросхем большинство сигналов передается через основную систе­му межсоединений (General Purpose Routing). Линии связей этой системы расположе­ны в горизонтальном и вертикальном каналах трассировки между строками и столбца­ми КЛБ. Ресурсы этой системы следующие.

• Переключательный блок у каждого КЛБ, обеспечивающий ему доступ к трассам основной системы межсоединений.

• По 24 линии передач сигналов от ПБ к соседним ПБ в каждом из четырех направлений.

• 96 буферированных линий передач сигналов между ПБ от одного к другому через шесть блоков в каждом из четырех направлений. Сигналы поступают на эти линии только в их концах и доступны в концах линий или в их серединах (на расстоянии трех блоков от источника). Треть этих линий двунаправленные, остальные однонаправленные.

• 12 длинных линий, буферированных, двунаправленных, передающих сигналы по всей схеме (по всей высоте или ширине кристалла) с малыми задержками.

Кроме системы основных соединений микросхемы имеют ресурсы VersaRing, о ко­торых уже говорилось, а также глобальные и специальные ресурсы. Глобальные ре­сурсы используются для распределения синхросигналов и других сигналов, поступаю­щих на большое число приемников, а специальные - для распространения сигналов переноса и т. п.

Микросхемы семейств Virtex и VirtexE воспринимают все команды, специфициро­ванные в стандарте IEEE 1149.1 интерфейса JTAG.

 

7.7.3. СБИС ПЛ КЛАССА «СИСТЕМА НА КРИСТАЛЛЕ» С БЛОЧНОЙ АРХИТЕКТУРОЙ

В СБИС ПЛ класса «система на кристалле» с блочной архитектурой выделяются спе­циализированные области (аппаратные ядра), проектируемые методами заказных схем. Достоинства и недостатки применения блочных архитектур обсуждались ранее, в п. 7.7.1. По субъективному мнению авторов, использование микросхем с блочной архитектурой яв­ляется весьма перспективным направлением.

Первые объявленные СБИС, в которых процессор, память и FPGA размещены на одном кристалле - семейство FPSLIC (Field Programmable System Level Integration Chips) фирмы «Atmel», одной из крупных фирм-разработчиков цифровых микросхем, в том чис­ле микросхем программируемой логики. До появления семейства FPSLIC, выход которо­го на рынок датируется серединой 2000 г., фирмой «Atmel» были разработаны хорошо известные процессоры AVR и FPGA семейства АТ40К. В микросхемах семейства FPSLI как раз и совмещены процессорное ядро AVR, FPGA типа АТ40К и блоки статической памяти SRAM. Такая «комплектация» соответствует возможностям построения системы на кристалле. При закреплении функций процессора и памяти за соответствующими яд­рами на программируемую логику возлагаются все остальные функции, необходимые для построения системы (например, функции управления памятью и/или внешними уст­ройствами, создание проблемно-ориентированных сопроцессоров, реализация интер­фейсных функций тех или иных шин и т. д.). В СБИС FPSLIC FPGA рассматривается как «большое внешнее устройство» с разнообразными заказными или общеупотребитель­ными функциями, к которому процессор обращается для выдачи ему команд и исходных данных и получения результатов.

На рис. 7.32 представлена обобщенная структура микросхем семейства FPSLIC. Микросхемы имеют напряжение питания 3,3 В, изготовляются технологическими процес­сами с топологической нормой 0,35 мкм, имеют несколько режимов пониженного энерго­потребления

AVR - 8-разрядное процессорное ядро производительностью более 30 MIPS (при так­товой частоте 40 Мгц) с RISC-архитектурой, имеющее систему команд, содержащую око­ло 120 инструкций. Особенностями микроконтроллера с ядром AVR в первую очередь являются выполнение команд, извлекаемых непосредственно из статической памяти SRAM, что значительно ускоряет работу микроконтроллера, и наличие в АЛУ умножите­ля MPL для.аппаратной реализации операции умножения, широко используемой в про­цессах


цифровой обработки сигналов (ЦОС). Архитектура AVR оптимизирована для раз­работки приложений на языке С, ядро имеет регистровый файл из 32 регистров.

 

С ядром AVR связан ряд устройств, характерных для микроконтроллеров: два уни­версальных асинхронных программируемых связных адаптера (UARTs), два 8-разряд­ных и один 16-разрядный таймер-счетчик, два программируемых порта ввода/вывода. Дополнительно введен специальный аппаратный интерфейс I2 С для обеспечения связи с внешней энергонезависимой памятью типа EEPROM, используемой для конфигуриро­вания микросхем FPSLIC.

Блок статической памяти общей емкостью 36 Кбайт - двухпортовая память с време­нем доступа 15 не содержит фиксированные области памяти программ (с организацией 10К ´ 16) и памяти данных (с организацией 4К ´ 8) и, кроме того, область, которую при конфигурации схемы можно по желанию разработчика полностью или частями добавить к памяти программ или к памяти данных. Предписание по использованию не фиксиро­ванной области памяти содержится в специальном регистре конфигурации в контролле­ре памяти микросхемы (Memory Controller).

В блоке FPGA используются стандартные структуры микросхем АТ40К, работаю­щие на системной частоте 100 Мгц, сложностью от 10 до 40К используемых эквивалент­ных вентилей с емкостью встроенной памяти от 2048 до 18 432 бит. В основных чертах эти структуры типичны для FPGA, хотя и имеют некоторые оригинальные особенности (рис. 7.33). Основа блока - симметричная матрица идентичных логических ячеек, в каж­дую из которых входят несколько программируемых мультиплексоров, триггер типа D, буфер с тремя состояниями и два табличных функциональных преобразователя (LUT). Функциональные преобразователи воспроизводят функции трех переменных (одних и тех же для обоих преобразователей) и могут быть объединены для выработки любых функций четырех переменных. Для логических ячеек предусмотрены несколько стандар­тных режимов (конфигураций), а именно следующие:

• реализации функций одноразрядного сумматора (арифметический режим);

• выполнения операции умножения (режим DSP/Multiplier);

• реализации разряда счетчика;

• выполнения функций мультиплексоров с буферами на три состояния (режим Tristate/MUX).

 

 

Перечисленные режимы, как видно, ориентированы на проекты с интенсивными вы­числениями, такие как реализация цифровых фильтров, быстрых преобразований Фу­рье, конвольверов, криптографических алгоритмов и многих других мультимедийных за­дач. На основе блока FPGA реализуются и общеупотребительные интерфейсные функ­ции (UARTs, PCI и др.).

Топологически логическая ячейка трактуется как восьмиугольник и с восемью бли­жайшими соседями она имеет прямые связи (Direct Connects), проходящие по матрице ячеек в ортогональных и диагональных направлениях. Благодаря прямым связям, в час­тности, строятся ультрабыстродействующие матричные множительные устройства.

Массив FPGA имеет шесть внешних и две внутренних линии тактирования. Для внут­ренних линий тактирования источником сигналов служит ядро AVR, причем одна из этих линий принадлежит системной линии тактирования микроконтроллера, а вторая может быть запрограммирована на соединение с одним из нескольких источников тактовых сиг­налов, генерируемых внутри AVR (таймеров и др.).

Ядро АТ40К имеет свою статическую память, называемую FreeRam. Время досту­па к данным этой памяти составляет 10 не. Благодаря наличию FreeRAM функции памя­ти в создаваемых на основе FPGA устройствах реализуются без затрат логических ре­сурсов FPGA. Возможны различные варианты организации памяти FreeRAM: синхрон­ный или асинхронный, одно- или двухпортовый для RAM, FIFO и др. Варианты организа­ции создаются инструментальными средствами макрогенерации функций.

Система межсоединений элементов FPGA иерархична и включает в себя локальные шины и экспресс-шины. С восемью ближайшими соседями, как уже отмечалось, логи­ческие ячейки имеют прямые связи. Сегменты локальных шин покрывают расстояния в четыре ячейки, экспресс-шин - в восемь. Шины соединяются через повторители (Repeaters), подключаемые к двум соседним сегментам. Повторители регенерируют сиг­налы и выполняют также некоторые функции их коммутации. В системе межсоединений используются программируемые пасс-вентили (Pass gates), с помощью которых форми­руются шины с тремя состояниями.

Интерфейс FPGA с ядром AVR предусматривает для FPGA 16 входных линий деко­дированного адреса от AVR, 16 выходных линий запросов прерываний с различными приоритетами для AVR. Таким образом, каждому устройству, реализованному в FPGA и имеющему адрес в адресном пространстве ввода/вывода AVR, придается возможность иметь собственный запрос прерывания.

Кроме того, AVR определяет направление передачи данных, посылая для FPGA сигна­лы стробов чтения и записи. Эти сигналы управляют двунаправленной шиной данных, об­разуемой из линий Express Lines системы межсоединений FPGA. Таким образом, ядро микроконтроллера взаимодействует с устройствами, созданными в FPGA, принципиально подобно тому, как обычно процессор взаимодействует с внешними устройствами.

Для функций заказной периферии, реализуемой в FPGA, существует макробиблиоте­ка, что существенно упрощает проектирование. Автоматическая генерация макросов, ко­торую способна выполнять FPGA AT40K, минимизирует также риски проектирования, так как дает возможность пользоваться уже хорошо проверенными схемными решениями.

Другой аспект взаимодействия AVR и FPGA состоит в том, что они имеют общий доступ к двухпортовой памяти SRAM с временем доступа 15 не (рис. 7.34). Между FPGA и AVR размещены 36 Кбайт этой памяти, которая в первую очередь используется микро­контроллером, подсоединенным к одному из портов, для хранения команд и данных. Порт, подсоединенный к FPGA, используется во время загрузки конфигурации, чтобы загрузить память программ и память данных микроконтроллера. FPGA может обращать­ся к SRAM одновременное AVR. Разделяемая память позволяет реализовать различные варианты буферного обмена между FPGA и AVR (буферы FIFO, LIFO или др.).

У порта SRAM, подключенного к FPGA, нет сигнала разрешения чтения, т. е. чтение данных для FPGA всегда разрешено. Для предотвращения конфликтов при обращениях FPGA и AVR в одно и то же время к одному и тому же адресу требуется позаботиться о логике арбитража (чаще всего специальный управляющий регистр микроконтроллера при необходимости ограничивает доступ к памяти со стороны FPGA).

 

 

Важная особенность микросхем семейства FPLIC - способность реализовать кон­цепцию кэш-логики (Cache Logic), впервые введенную фирмой «Atmel». Понятие кэш-логики отражает достижения в области развития адаптивных систем. Кэш-логика позво­ляет производить полное или частичное реконфигурирование системы «на лету», без потери имевшихся данных и нарушения работы неизменяемой части устройств. Сохра­няются данные, которые были получены к моменту перестройки той или иной части сис­темы. Та часть аппаратуры, в которой в данный момент происходит обработка информа­ции, представлена схемой соответствующей конфигурации в FPGA, а пассивная часть системы представлена данными, сохраняемыми в недорогих устройствах памяти. В ре­зультате экономно выполняются логические преобразования. Когда активизируются но­вые операции, новая конфигурация записывается «поверх старой».

Та или иная решаемая задача может быть разложена на множество операций низше­го иерархического уровня, таких как сдвиг, счет, сложение, умножение, мультиплексиро­вание и т. д. Ясно, что каждая из подобных функций может быть использована многократ­но в разных ситуациях, причем в каждый момент времени активна только малая часть функций. Исключая избыточность и контролируя условия появления каждой операции, можно так организовать систему, что сложные функции будут воспроизводиться с помо­щью небольшого числа несложных и, следовательно, дешевых схем программируемой логики. В одном из примеров требуемая задача решалась обычным способом с помо­щью 10 000 вентилей, а применение кэш-логики позволило применить микросхему про­граммируемой логики сложностью всего 2000 эквивалентных вентилей, причем осталь­ные 8000 вентилей удалось исключить, используя «кэширование», т. е. запоминание не­изменной в данное время информации в более дешевой системной памяти.

Концептуально выделяют предопределенную (predermined) и динамическую кэш-ло­гику. Первая подразумевает использование предопределенных функций и макросов, хра­нимых во внешней энергонезависимой памяти (EPROM, EEPROM, диск, CD-ROM). Эти функции уже проработаны, размещены и трассированы и имеют ранее сгенерированные битовые потоки (Bit streams) конфигурирования. Выполнением их управляют средства самой кэш-логики или внешние средства (программы процессора). При загрузке новых функций данные в регистрах не теряются даже в модифицируемой части системы.

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

Применение кэш-логики снижает сложность программируемой части аппаратуры и, в конечном счете, удешевляет аппаратуру и улучшает такие ее характеристики, как на­дежность (вследствие уменьшения числа физически существующих схемных компонен­тов), потребляемую мощность и др. Область перспективного применения кэш-логики до­статочно широка: это портативная аппаратура с ее высокими требованиями к снижению потребляемой мощности и габаритных размеров, системы с интенсивными вычисления­ми (компьютерная графика, распознавание образов и речи и многое другое).

Микросхемы семейства FPSLIC имеют механизм конфигурирования FPGA под уп­равлением AVR, который может загружать кэшевую память FPGA, имея прямой доступ к шине данных SRAM-конфигурации. При обычной загрузке конфигурации кэшевый до­ступ в память конфигурации блокируется. При кэшевом доступе AVR использует три регистра для формирования адреса и один регистр для данных. Типовое назначение этого режима для AVR - принять последовательные данные через UART и направить их в качестве данных конфигурации в FPGA, вызывая таким образом загрузку или раз­решая системную реконфигурацию, при которой структура FPGA алгоритмически ви­доизменяется.

Разработчики таких сложных СБИС, как FPSLIC, подчеркивают, что подобные микро­схемы с их впечатляющими возможностями не следует рассматривать как просто микро­контроллеры с программируемой проектировщиком периферией, поскольку для этой от­носительно ограниченной цели могут найтись более простые решения (например, с при­менением микросхем программируемой пользователем периферии фирмы WSI). С точ­ки зрения технико-экономических показателей, эффект достигается в первую очередь при достаточно полном использовании новых функциональных возможностей, присущих такой качественно новой продукции как микросхемы семейства FPSLIC и им подобные [уже объявлено о выпуске блочных СБИС типа «система на кристалле» фирмой «Triscend» (Triscend E5, Configurable System-on-Chip) ожидаются подобные разработки и от фирмы «Altera» и других].

7.8. КОНФИГУРИРОВАНИЕ БИС/СБИС ПРОГРАММИРУЕМОЙ ЛОГИКИ

 

Способ конфигурирования БИС/СБИС ПЛ, т. е. настройки их на определенный алго­ритм функционирования, зависит от типа программируемых элементов. Для микросхем с энергонезависимой памятью конфигурации (EPROM, EEPROM, Flash) запись в память является специальным сточки зрения электрических процессов режимом. Конфигуриро­вание таких СБИС может производиться вне создаваемой системы с помощью програм­маторов или же в составе системы (т. е. при сохранении монтажа микросхемы на плате), но также с использованием специальных устройств, выпускаемых фирмами-производи­телями, и, как правило, посредством расширенного интерфейса JTAG. При этом для про­цессов записи информации требуются повышенные напряжения программирования Unp (для микросхем семейств МАХ7000 и МАХ9000 фирмы «Altera», например, это 12 В при рабочем напряжении питания 5 В). Для старых микросхем требовались несколько источ­ников питания, более новые стали снабжаться внутренними преобразователями рабоче­го напряжения в повышенное напряжение программирования.

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

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

БИС/СБИС ПЛ обычно имеет несколько возможных режимов конфигурирования (на­пример, у FPGA ´C4000 фирмы «Хilinx» их шесть, у СБИС семейства Virtex той же фир­мы четыре, у микросхем семейства Spartan -два). У способов конфигурирования микро­схем разных фирм и разных типов много общего. Для конкретности рассмотрим способы конфигурирования СБИС ПЛ типа SOC семейства Virtex.

Для конфигурирования этой микросхемы используются как специализированные вы­воды, так и выводы, которые после завершения конфигурирования могут играть роль выводов общего назначения. К специализированным относятся выводы М2, М1, МО, на которых задается код того или иного режима, вывод для синхросигналов процесса конфигурирования, выводы PROGRAM, DONE и выводы периферийного сканирования TDI, TDO, TMS, ТСК. Вывод синхросигнала может быть выходом, когда этот сигнал гене­рируется микросхемой, или входом, когда поступает извне.

Возможные способы конфигурирования:

• пассивный последовательный (Slave-serial mode);

• активный последовательный (Master-serial mode);

• байт-последовательный (SelectMAP mode);

• периферийного сканирования.

В пассивном последовательном режиме микросхема получает данные конфигуриро­вания в виде потока битов из последовательной памяти PROM или другого источника. Синхронизация осуществляется от внешнего источника, каждый положительный фронт синхросигнала вводит бит данных от входа DIN. Несколько микросхем могут быть соеди­нены в цепочку для конфигурирования в едином процессе от общего потока битов. В этом случае после завершения конфигурирования очередной микросхемы данные кон­фигурации для следующих микросхем появляются на выводе DOUT микросхемы, завер­шившей конфигурирование.

В активном последовательном режиме выходной синхросигнал микросхемы пода­ется на последовательное ЗУ, с которого на вход DIN микросхемы поступает последова­тельный поток битов конфигурации. Микросхема воспринимает каждый бит под управле­нием положительного фронта синхросигнала. После загрузки очередной микросхемы цепочки данные для следующей снимаются с выхода DOUT той микросхемы, которая закончила конфигурирование. Для синхронизации процесса можно выбирать частоту из широкого диапазона значений. По умолчанию используется наименьшая частота 2,5 МГц. Максимальная частота - 60 МГц. Устанавливаемые частоты, естественно, должны соот­ветствовать возможностям используемых PROM и включенных в цепочку микросхем. При включении питания устанавливается частота 2,5 МГц. Если не поступит команда на из­менение этого значения (опция ConfigRate в программе генерации битового потока кон­фигурации), процесс продолжится до конца на частоте 2,5 Мгц.

В байт-последовательном режиме время конфигурирования минимально. Исполь­зуется байт-последовательный поток данных, которые записываются в микросхему с учетом флажка ее готовности BUSY. Байтовый поток задается от внешнего источника, как и сигналы тактирования, разрешения работы CS и WRITE. В этом режиме данные могут и читаться. Если сигнал WRITE пассивен, то данные конфигурации читаются из микросхемы (этот процесс есть часть процесса Readback). В режиме SelectMAP также можно конфигурировать одновременно несколько микросхем, но в этом случае они вклю­чаются параллельно по входам синхронизации, данных, WRITE и BUSY. Загружаются микросхемы поочередно, путем соответствующего управления сигналами разрешения их работы CS.

В режиме периферийного сканирования конфигурирование осуществляется исключи­тельно через выводы порта тестирования ТАР (Test Access Port) интерфейса JTAG. Ис­пользуется специальная команда CFG_IN, позволяющая входным данным от вывода TDI преобразовываться в пакеты данных для внутренней шины конфигурации микросхемы.

Процесс конфигурирования для микросхем Virtex содержит три этапа: очистка па­мяти конфигурации, загрузка в нее данных и активизация логических схем, участвую­щих в процессе.

Конфигурирование начинается автоматически после включения питания, но может быть и задержано пользователем с помощью сигнала PROGRAM, снятие которого зап­рещает конфигурирование. Завершение очистки памяти выявляется с помощью сигнала INIT, а завершение всего процесса - с помощью сигнала DONE.

Данные для загрузки памяти конфигурации формируются системой автоматизиро­ванного проектирования.

Реконфигурация в системе - одно из важнейших достоинств СБИС ПЛ, позволяющее легко изменять логику их работы. Потребности в изменениях возникают как для устране­ния не выявленных при первоначальном тестировании ошибок, так и для модернизации (Upgade) систем. Возможности программирования в системе растут, если при проекти­ровании часть функциональных возможностей СБИС ПЛ оставлять свободной, имея за­пас по скорости, функциональным возможностям и ресурсам межсоединенй. При рекон­фигурации в системе должно сохраняться назначение внешних выводов, иначе потребу­ется изменить монтаж печатных плат.

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