ПЛИС Xilinx семейства Virtex™

ПЛИС семейства Virtex™

1. Особенности
• Высокопроизводительные, большой емкости, программируемые пользователем логические интегральные схемы с архитектурой FPGA (Field Programmable Gate Arrays)
— емкость от 50К до 1М системных вентилей;
— системная производительность до 200 МГц;
— совместимы с шиной PCI 66 МГц;
— поддерживают функцию Hot-swap для Compact PCI.
• Поддержка большинства стандартов ввода-вывода (технология SelectIO™)
— 16 высокопроизводительных стандартов ввода — вывода;
— прямое подключение к ZBTRAM устройствам.
• Встроенные цепи управления тактированием
— четыре встроенных модуля автоподстройки задержек (DLL -delay-locked loop) для расширенного управления тактовыми сигналами как внутри кристалла, так и всего устройства;
— четыре глобальные сети распределения тактовых сигналов с малыми разбегами фронтов, плюс 24 локальные тактовые сети.
• Иерархическая система элементов памяти
— на базе 4-входовых таблиц преобразования (4-LUT — — Look-Up Table), конфигурируемых либо как 16-битовое ОЗУ (Random Access Memory), либо как 16-разрядный сдвиговый регистр;
— встроенная блочная память, каждый блок конфигурируется как синхронное двухпортовое ОЗУ емкостью 4 Кбит;
— быстрые интерфейсы к внешнему высокопроизводительному ОЗУ.

• Гибкая архитектура с балансом быстродействия и плотности упаковки логики
— специальная логика ускоренного переноса для высокоскоростных арифметических операций;
— специальная поддержка умножителей;
— каскадируемые цепочки для функций с большим количеством входов;
— многочисленные регистры/защелки с разрешением тактирования и синхронные/асинхронные цепи установки и сброса;
— внутренние шины с тремя состояниями;
— логика периферийного сканирования в соответствии со стандартом IEEE1149.1;
— датчик температуры кристалла.
• Проектирование осуществляется пакетами программного обеспечения Foundation™ и Alliance Series, работающими на ПК или рабочей станции.
• Конфигурация кристалла хранится во внешнем ПЗУ, и загружается в кристалл после включения питания автоматически или принудительно
— неограниченное число циклов загрузки,
— четыре режима загрузки.
• Производятся по 0.22-мкм КМОП-технологии с 5-слойной металлизацией на основе статического ОЗУ.
• 100%-ное фабричное тестирование.

2. Описание
Семейство FPGA Virtex™ позволяет реализовать высокопроизводи­тельные, большой емкости, цифровые устройства на одном кристалле. Рез­кое увеличение эффективности реализаций достигнуто благодаря новой архитектуре, более эффективной для размещения и трассировки элемен­тов, а также производству кристаллов на основе 0.22-мкм процесса с пя­тью слоями металлизации. Все это позволяет использовать кристаллы Virtex как альтернативу масочно-программируемым вентильным матри­цам. В состав семейства Virtex входят девять микросхем, отличающихся логической емкостью (Табл. 1).
Таблица 1. Основные характеристики семейства Virtex.

Прибор
Системные вентили
Матрица КЛБ
Логические ячейки
Число доступных входов-выходов
Блочная память [бит]
Память на базе LUT [бит]

XCV50
57 906
16×24
1 728
180
32 768
24 576

XCV100
108 904
20×30
2 700
180
40 960
38 400

XCV150
164 676
24×36
3 888
260
49 152
55 296

XCV200
236 666
28×42
5 292
284
57 344
75 264

XCV300
322 970
32×48
6 912
316
65 536
98 304

XCV400
468 252
40×60
10 800
404
81 920
153 600

XCV600
661 111
48×72
15 552
512
98 304
221 184

XCV800
888 439
56×84
21 168
512
114 688
301 056

XCV1000
1 124 022
64×96
27 648
512
131 072
393 216

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

3. Обзор архитектуры семейства Virtex
Основными особенностями архитектуры кристаллов семейства Virtex являются гибкость и регулярность. Кристаллы состоят из матрицы КЛБ (Конфигурируемый Логический Блок), которая окружена программируе­мыми блоками ввода-вывода (БВВ). Все соединения между основными элементами (КЛБ, БВВ) осуществляются с помощью набора иерархичес­ких высокоскоростных программируемых трассировочных ресурсов. Изобилие таких ресурсов позволяет реализовывать на кристалле семейст­ва Virtex даже самые громоздкие и сложные проекты.
Кристаллы семейства Virtex производятся на основе статического ОЗУ (Static Random Access Memory — SRAM), поэтому функционирование кри­сталлов определяется загружаемыми во внутренние ячейки памяти конфи­гурационными данными. Конфигурационные данные могут загружаться в кристалл несколькими способами. В ведущем последовательном режиме (Master Serial) загрузка осуществляется из внешнего ОЗУ и полностью уп­равляется самой FPGA Virtex. В других режимах управление загрузкой осу­ществляется внешними устройствами (режимы Select-MAP™, подчинен­ный-последовательный (Slave Serial и JTAG).
Конфигурационные данные создаются пользователем при помощи программного обеспечения проектирования Xilinx Foundation и Alliance Series. Программное обеспечение включает в себя схемный и текстовый ввод, моделирование, автоматическое и ручное размещение и трассировку, создание, загрузку и верификацию загрузочных данных.
3.1. Быстродействие
Кристаллы Virtex обеспечивают более высокую производительность, чем предыдущие поколения FPGA. Проекты могут работать на системных частотах до 200 МГц, включая блоки ввода-вывода. Блоки ввода-вывода Virtex полностью соответствуют спецификациям PCI-шины, поэтому кри­сталл позволяет реализовывать интерфейсные схемы, работающие на час­тоте 33 МГц или 66 МГц. В дополнение к этому кристаллы Virtex удовле­творяют требованию «hot-swap» для Compact PCI.
К настоящему времени кристаллы полностью протестированы на «эта­лонных» схемах. На основе тестов выявлено, что хотя производительность сильно зависит от конкретного проекта, большинство проектов работают на частотах превышающих 100 МГц и могут достигать системных частот до 200 МГц. В Табл. 2 представлены производительности некоторых стандартных функций, реализованных на кристаллах с градацией быстродействия ‘6’.
В отличие от предыдущих семейств ПЛИС фирмы «Xilinx», в сериях Virtex™ и Spartan™ градация по быстродействию обозначается классом, а не задержкой на логическую ячейку. Соответственно, в семействах Virtex™ и Spartan™ чем больше класс, тем выше быстродействие.

4. Описание архитектуры

4.1. Матрица Virtex
Программируемая пользователем вентильная матрицу серии Virtex пока­зана на Рис. I. Соединение между КЛБ осуществляется с помощью главных трассировочных матриц — ГТМ. ГТМ — это матрица программируемых транзисторных двунаправленных переключателей, расположенных на пере­сечении горизонтальных и вертикальных линий связи. Каждый КЛБ окру­жен локальными линиями связи (VersaBlock™), которые позволяют осуще­ствить соединения с матрицей ГТМ.
Таблица 2. Производительность стандартных функций Virtex-6

Функция
Разрядность [бит]
Производительность

Внутрисистемная производительность

Сумматор
16
5.0 нс

64
7.2 нс

Конвейерный умножитель
8х8
5.1 нс

16х16
6.0 нс

Декодер адреса
16
4.4 нс

64
6.4 нс

Мультиплексор
16 1
5.4 нс

Схема контроля по четности
9
4.1 нс

18
5.0 нс

36
6.9 нс

Системная производительность

Стандарт HSTL Class IV

200МГц

Стандарт LVTTL

180МГц

DLL
Блоки ввода-вывода (БВВ)
DLL

Блоки ввода-вывода (БВВ)

Versa Ring

Блоки ввода-вывода (БВВ)

Versa Ring
Блочная память
Матрица КЛБ
Блочная память
Versa Ring

Versa Ring

DLL
Блоки ввода-вывода (БВВ)
DLL

Рис. 1. Структура архитектуры Virtex.
Интерфейс ввода-вывода VersaRing создает дополнительные трассиро­вочные ресурсы по периферии кристалла. Эти трассы улучшают общую «трассируемость» устройства и возможности трассировки после закрепле­ния электрических цепей к конкретным контактам.
Архитектура Virtex также включает следующие элементы, которые со­единяются с матрицей ГТМ
• Специальные блоки памяти (BRAMs) размером 4096 бит каждый.
• Четыре модуля автоподстройки задержек (DLL), предназначенных для компенсации задержек тактовых сигналов, а также деления, умножения и сдвига фазы тактовых частот.
• Буферы с тремя состояниями (BUFT), которые расположены вблизи каждого КЛБ и управляют горизонтальными сегментированными трассами.
Коды, записанные в ячейки статической памяти, управляют настройкой логических элементов и коммутаторами трасс, осуществляющих соединения в схеме. Эти коды загружаются в ячейки после включения пи­тания и могут перезагружаться в процессе работы, если необходимо изме­нить реализуемые микросхемой функции.

4.2. Блок ввода-вывода
Основным отличительным свойством EBB семейства Virtex является поддержка широкого спектра стандартов сигналов ввода-вывода. На Рис. 2 представлена структурная схема БВВ. В Табл. 3 перечислены поддержива­емые стандарты.
Таблица 3. Поддерживаемые стандарты ввода-вывода.

Стандарт ввод/вывод
Напряжение порогового уровня входных каскадов,
Напряжение питания выходных каскадов,
Напряжение согласования с платой,
5-В совместимость

LVTTL
нет
3.3
нет
да

LVCMOS2
нет
2.5
нет
да

PCI, 5 A
нет
3.3
нет
да

PCI, 3.3 A
нет
3.3
нет
нет

GTL
0.8
нет
1.2
нет

GTL+
1.0
нет
1.5
нет

HSTL Class I
0.75
1.5
0.75
нет

HSTL Class III
0.9
1.5
1.5
нет

HSTL Class IV
0.9
1.5
1.5
нет

SSTL3 Class I & II
1.5
3.3
1.5
нет

SSTL2 Class I & II
1.25
2.5
1.25
нет

CTT
1.5
3.3
1.5
нет

AGP
1.32
3.3
нет
нет

БВВ содержит три запоминающих элемента, функционирующих либо как D-тригтеры, либо как триггеры-защелки. Каждый БВВ имеет входной сигнал синхронизации (CLK), распределенный на три триггера и незави­симые для каждого триггера сигналы разрешения тактирования (Clock Enable — СЕ).
Кроме того, на все триггеры заведен сигнал сброса/установки (Set/Reset-SR). Для каждого триггера этот сигнал может быть сконфигурирован неза­висимо, как синхронная установка (Set), синхронный сброс (Reset), асин­хронная предустановка (Preset) или асинхронный сброс (Clear).
Входные и выходные буферы, а также все управляющие сигналы в БВВ допускают независимый выбор полярности. Данное свойство не отображено на блок-схеме БВВ, но контролируется программой проектирования.
Все контакты защищены от повреждения электростатическим разрядом и от всплесков перенапряжения. Реализованы две формы защиты от перенапряжения, олдна допускает 5-В совместимость, а другая нет. Для случая 5-В совместимости, структура, подобная диоду Зенера, закорачивает на землю контакт, когда напряжение на нем возрастает приблизительно до 6.5В. В случае, когда требуется 3.3-В PCI-совместимость, обычные диоды ограничения могут подсоединяться к источнику питания выходных каскадов, . Тип защиты от перенапряжения может выбираться независимо для каждого контакта. По выбору, к каждому контакту может подключаться
1. Резистор, соединенный с общей шиной питания (pull-down).
2. Резистор, соединенный с шиной питания (pull-up).
3. Маломощная схема удержания последнего состояния (week-keeper).
До начала процесса конфигурирования микросхемы все выводы, не задействованные в этом процессе, принудительно переводятся в состояние высокого импеданса. Резисторы «pull-down» и элементы «week-keeper» неактивны, а резисторы «pull-up» можно активировать.
Активация резисторов «pull-up» перед конфигурацией управляется внутренними глобальными линиями через управляющие режимные кон­такты. Если резисторы «pull-up» не активны, то выводы находятся в состо­янии неопределенного потенциала. Если в проекте необходимо иметь оп­ределенные логические уровни до начала процесса конфигурирования нужно использовать внешние резисторы.
Все БВВ микросхемы Virtex совместимы со стандартом IEEE 1149.1 периферийного сканирования.

4.2.1. Ввод сигнала
Входной сигнал БВВ может быть протрассирован либо непосредствен­но к блокам внутренней логики, либо через входной триггер.
Кроме того, между выходом буфера и D-входом триггера может быть подключен элемент задержки, исключающий время удержания для случая контакт-контакт. Данная задержка согласована с внутренней задержкой распределения сигнала тактирования FPGA, что гарантирует нулевое вре­мя удержания для распределения сигналов контакт-контакт.
Каждый входной буфер может быть сконфигурирован таким обра­зом, чтобы удовлетворять одному из низковольтных сигнальных стан­дартов, поддерживаемых устройством. В некоторых из этих стандартов входной буфер использует напряжение порогового уровня (), фор­мируемое пользователем. Использование напряжений позволяет ввести в устройство принудительные опорные величины для различных, близких по используемым логическим уровням стандартов (см. также «Банки ввода-вывода»).
К каждому входу после окончания процесса конфигурирования могут быть, по выбору, подключены внутренние резисторы (либо pull-up, либо pull-down). Сопротивление этих резисторов лежит в пределах 50… 150 кОм.
4.2.2. Вывод сигнала
Выходной сигнал проходит через буфер с тремя состояниями, выход ко­торого соединен непосредственно с выводом микросхемы. Сигнал может быть протрассирован на вход буфера с тремя состояниями, либо непосредственно от внутренней логической структуры, либо через выходной триг­гер блока ввода-вывода.
Управление буфером с тремя состояниями также может осуществлять­ся либо непосредственно от внутренней логической структуры, либо через специальный триггер БВВ, который позволяет создать синхронное управ­ление сигналом разрешения и запрещения для буфера с тремя состояния­ми. Каждый такой выходной каскад рассчитан на втекающий ток до 48 мА и вытекающий ток до 24 мА. Программирование мощности и скорости на­растания сигнала выходного каскада позволяет минимизировать переход­ные процессы в шинах.
Для большинства сигнальных стандартов выходной уровень логичес­кой единицы зависит от приложенного извне напряжения . Использо­вание напряжения позволяет ввести в устройство принудительные опорные величины для различных, близких по используемым логическим уровням стандартов (см. также «Банки ввода-вывода»).
По выбору, к каждому выходу может быть подключена схема «week-keeper». Если данная цепь активирована (пользователем на этапе создания схемы), то она следит за напряжением на контакте микросхемы и создает слабую нагрузку для входного сигнала, подключенную либо к «земле» (ес­ли на входе уровень логического нуля), либо к источнику питания (если на входе уровень логической единицы). Если контакт подключен к несколь­ким источникам сигнала, эта цепь удерживает уровень входного сигнала в его последнем состоянии, при условии, что все источники были переведе­ны в состояние с высоким импедансом. Поддержание таким путем одного из допустимых логических уровней позволяет ликвидировать неопреде­ленность уровня шины.
Так как схема «week-keeper» использует входной буфер для слежения за входным уровнем, то необходимо использовать подходящее значение напряжения , если выбранный сигнальный стандарт требует этого. Подключение данного напряжения должно удовлетворять требованиям правил разбиения на банки.

4.2.3. Банки ввода-вывода
Некоторые из описанных выше стандартов требуют подключения напря­жения и/или . Эти внешние напряжения подключаются к контак­там микросхемы, которые функционируют группами, называемыми банками.
Как показано на Рис. 3, каждая сторона кристалла микросхемы разделена на два банка. Каждый банк имеет несколько контактов , но все они должны быть подключены к одному и тому же напряжению. Это напряжение определяется выбранным для данного банкастандартом выходных сигналов.

Рис. 3. Банки ввода-вывода Virtex
Стандарты для выходных сигналов конкретного банка могут быть раз­личными только в том случае, если они используют одинаковое значение напряжения . Совместимые стандарты показаны в Табл. 4. GTL и GTL+ присутствуют везде, поскольку их выходы с открытым стоком не зависят от значения .
Таблица 4. Выходные совместимые стандарты.

Совместимые стандарты

3.3 В
PCI, LVTTL, SSTL3 I, SSTL3 II, CTT, AGP, GTL, GTL+

2.5 В
SSTL2 I, SSTL2 II, LVCMOS2, GTL, GTL+

1.5 В
HSTL I, HSTL III, HSTL IV, GTL, GTL+

Некоторые сигнальные стандарты требуют подачи соответствующих пороговых напряжений на входные каскады. При этом определенные БВВ автоматически конфигурируются как входы, соответствующие напря­жению . Приблизительно один контакт из шести в каждом банке мо­жет выполнять эту роль.
Контакты в пределах одного банка внутренне между собой соеди­нены, следовательно, только одно значение напряжения может быть использовано в рамках одного банка. Для правильной работы все контак­ты одного банка должны быть подсоединены к внешнему источнику напряжения.
В пределах одного банка можно одновременно использовать входы, ко­торые требуют напряжения и входы, которые этого не требуют. В то же время, только одно значение напряжения может быть использова­но в рамках одного банка. Входные буферы, которые используют , не совместимы с сигналами 5-В стандартов.
Контакты и для каждого банка приведены в таблицах и ди­аграммах под конкретный корпус и кристалл. На диаграммах также пока­зано, к какому банку относится конкретный контакт ввода-вывода.
В рамках конкретного типа корпуса микросхемы число контактов и может меняться в зависимости от емкости кристалла. Чем больше кристалл по логической емкости, тем большее число контактов ввода-вы­вода преобразовано в контакты типа . Поскольку существует макси­мальный набор контактов для меньших кристаллов, имеется возмож­ность проектирования печатной платы, позволяющей также использовать на ней и большие кристаллы с таким же типом корпуса. Все контакты , предполагаемые к использованию для больших кристаллов, при этом должны быть подсоединены к напряжению и не должны исполь­зоваться как контакты ввода-вывода.
В меньших кристаллах некоторые из контактов , используемые в больших кристаллах, не соединены внутри корпуса. Эти не присоединен­ные контакты могут быть оставлены не присоединенными вне микросхе­мы или быть подключены к напряжению при необходимости обес­печения совместимости разрабатываемой печатной платы с большими кристаллами.
В корпусах типа TQ-144 и PQ-240/HQ-240 все контакты соедине­ны вместе внутри микросхемы и, следовательно, ко всем из них должно быть подключено одно и то же напряжение . В корпусе CS-144 пары банков, расположенные на одной стороне, внутренне соединены, обеспе­чивая, таким образом, возможность выбора только четырех возможных значений напряжения для . Контакты остаются внутренне со­единенными в рамках каждого из восьми банков и могут использоваться, как было описано выше.
4.3. Конфигурируемый логический блок — КЛБ
Базовым элементом КЛБ является логическая ячейка — ЛЯ (Logic Cell — LC). ЛЯ состоит из 4-входового функционального генератора, ло­гики ускоренного переноса и запоминающего элемента. Выход каждого функционального генератора каждой логической ячейки подсоединен к выходу КЛБ и к D-входу триггера. Каждый КЛБ серии Virtex содержит че­тыре логические ячейки, организованные в виде двух одинаковых секций (Рис. 4). На Рис. 5 представлено детальное изображение одной секции.

В дополнение к четырем базовым логическим ячейкам, КЛБ серии Virtex содержит логику, которая позволяет комбинировать ресурсы функциональ­ных генераторов для реализации функций от пяти или шести переменных. Таким образом, при оценке числа эквивалентных системных вентилей для микросхем семейства Virtex, каждый КЛБ приравнивается к 4.5 ЛЯ.

4.3.1. Таблица преобразования
Функциональные генераторы реализованы в виде 4-входовых таблиц преобразования (Look-Up Table — LUT). Кроме использования в качестве функциональных генераторов, каждый LUT-элемент может быть также ис­пользован как синхронное ОЗУ размерностью 16х1 бит. Более того, из двух LUT-элементов в рамках одной секции можно реализовать синхрон­ное ОЗУ размерностью 16х2 бита или 32х1 бит, либо двухпортовое син­хронное ОЗУ размерностью 16х1 бит.
На LUT-элементе микросхемы Virtex может быть реализован 16-раз­рядный сдвиговый регистр, который идеально подходит для захвата высо­коскоростных или пакетных потоков данных. Этот режим может также ис­пользоваться для запоминания данных в приложениях цифровой обработ­ки сигналов.

4.3.2. Запоминающие элементы
Запоминающие элементы в каждой секции КЛБ Virtex могут конфигу­рироваться как динамические триггеры (чувствительные к фронту сигна­ла) D-типа, либо как триггеры-защелки, чувствительные к уровню сигна­ла. D-вход триггера может управляться либо от функционального генератора в рамках той же секции КЛБ, либо непосредственно от входов данной секции КЛБ, минуя функциональные генераторы.
Кроме сигналов синхронизации (Clock) и разрешения синхрониза­ции (Clock Enable — СЕ) в каждой секции КЛБ есть сигналы синхрон­ной установки (Set) и сброса (Reset). Обозначение этих сигналов — SR и BY соответственно. Сигнал SR переводит запоминающий элемент в состояние, определенное для него в конфигурационных данных, а сиг­нал BY — в противоположное состояние. Эти же сигналы могут быть использованы также в качестве асинхронной предустановки (Preset) и очистки (Clear). Все сигналы управления могут быть независимо про-инвертированы. Они подаются на оба триггера в рамках конкретной секции КЛБ.

4.3.3. Дополнительная логика
Дополнительная логика, входящая в каждый КЛБ, представлена двумя мультиплексорами F5 и F6.
На вход мультиплексора F5 подаются сигналы с выходов функциональных генераторов данной секции КЛБ. Этот узел может работать как функциональ­ный генератор, реализующий любую 5-входовую функцию, либо как мульти­плексор 4 1, либо как некоторая функция от девяти входных переменных.
Аналогично, мультиплексор F6 объединяет выходы всех четырех функ­циональных генераторов КЛБ, используя один из выходов мультиплексора F5. Это позволяет реализовать либо любую 6-входовую функцию, либо мультиплексор 8 1, либо некоторую функцию до 19 переменных.
Каждый КЛБ имеет четыре сквозных линии — по одной на каждую ло­гическую ячейку. Эти линии используются как дополнительные входы данных, либо как дополнительные трассировочные ресурсы, не расходую­щие логические ресурсы.

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

4.3.5. Буферы с тремя состояниями
Каждый КЛБ Virtex содержит два буфера с тремя состояниями, кото­рые нагружены на внутренние шины (см. также п. 4.4.4 «Специальные трассировочные ресурсы»). Каждый буфер BUFT имеет независимый вход управления с третьим состоянием и независимый входной контакт.
4.3.6. Блочная память (Block RAM)
В FPGA Virtex встроена особая блочная память (Block Select RAM) большой емкости. Она создана в дополнение к распределенной памяти не­большой емкости (Select RAM), реализованной на таблицах преобразова­ния (Look Up Table RAM — LUTRAM).
Блоки памяти Block Select RAM+ организованы в виде столбцов. Все устройства Virtex содержат два таких столбца, по одному вдоль каждой вертикальной стороны кристалла. Эти колонки увеличивают полный раз­мер кристалла. Каждый блок памяти равен по высоте четырем КЛБ, таким образом, микросхема Virtex, имеющая 64 КЛБ по высоте, содержит 1-6 бло­ков памяти на колонку и 32 блока памяти в целом. В Табл. 5 приводятся ем­кости блочной памяти для различных кристаллов Virtex.
Таблица 5. Емкость блочной памяти.

Кристалл Virtex
Число блоков
Общий объем блочной памяти [бит]

XCV50
8
32 768

XCV100
10
40 960

XCV150
12
49 152

XCV200
14
57 344

XCV300
16
65 536

XCV400
20
81 920

XCV600
24
98 304

XCV800
28
114 688

XCV1000
32
131 072

Каждый блок памяти, как показано на Рис. 6, это полностью синхронное двухпортовое ОЗУ с независимым управлением для каждого порта. Размер­ность шины данных для обоих портов может быть сконфигурирована незави­симо, что позволяет создавать преобразователи размерности шины. В Табл. 6 показаны возможные соотношения размерностей шин данных и адреса.
В кристаллах Virtex созданы специальные трассировочные ресурсы для связи блочной памяти с блоками КЛБ и другими блоками памяти.

Таблица 6. Соотношение шин адреса и данных

Разрядность
Глубина
Шина адреса
Шина данных

1
4096
ADDR<11 0>
DATA<0>

2
2048
ADDR<10 0>
DATA<1 0>

4
1024
ADDR<9 0>
DATA<3 0>

8
512
ADDR<8 0>
DATA<7 0>

16
256
ADDR<7 0>
DATA<15 0>

4.4. Программируемая трассировочная матрица
Быстродействие проекта, рассчитанного для наихудшего случая, огра­ничивает величина задержки для наиболее длинной трассы. Поэтому архи­тектура трассировочных ресурсов и программы размещения и трассиров­ки создавались с учетом использования их в едином процессе оптимиза­ции. Этот совместный процесс оптимизации минимизирует наиболее длинные пути и, таким образом, создает проект с наилучшей системной производительностью.
Кроме того, совместная оптимизация сокращает время компиляции, так как программное обеспечение и архитектура микросхемы создавались с учетом на­илучшего взаимодействия. Циклы проектирования, таким образом, сократи­лись благодаря более коротким временам каждой из итераций всего процесса.

4.4.1. Локальные связи
Как показано на Рис. 7, в кристалле Virtex созданы локальные трасси­ровочные ресурсы, называемые VersaBlock. Они позволяют реализовать три типа соединений
1. Связи между таблицами преобразования (LUT), триггерами и глав­ной трассировочной матрицей (ГТМ).
2. Внутренние обратные связи КЛБ, которые создают высокоскорост­ные связи с таблицами преобразования в рамках одного КЛБ и позволяют соединять их в виде цепочек с минимальными задержками распростране­ния сигналов.
3. Прямые трассы, которые создают высокоскоростные соединения с соседними по горизонтали КЛБ, избегая при этом больших задержек, при­сущих трассам ГТМ.

4.4.2. Трассировочные ресурсы общего назначения
Большинство связей в кристаллах Virtex реализуются с помощью трас­сировочных ресурсов общего назначения, и, следовательно, большая часть ресурсов межсоединений связана с этим типом трассировочной иерархии. Трассировочные ресурсы общего назначения расположены в виде горизон­тальных и вертикальных трассировочных каналов и размещены в непосредственной близости от строк и столбцов матрицы, образованной блока­ми КЛБ. Ниже перечислены эти ресурсы
• Примыкающая к каждому КЛБ главная трассировочная матрица (ГТМ) — это матрица переключателей, с помощью которых комму­тируются горизонтальные и вертикальные трассы и посредством кото­рых блоки КЛБ получают доступ к трассировочным ресурсам общего назначения.
• ГТМ связана в каждом из четырех направлений с соседней ГТМ посредством 24 трасс одинарной длины.
• 96 буферизованных НЕХ-линий трассируют сигналы ГТМ к шести другим ГТМ в каждом из четырех направлений. НЕХ-линии органи­зованы в виде зигзагообразных линий. НЕХ-линии могут подклю­чаться к источникам сигнала только в своих конечных точках или се­рединных (три блока от источника). Одна третья часть НЕХ-линий является двунаправленными, в то время как остальные — однона­правленные.
• 12 длинных линий являются буферизированными, двунаправленными линиями, распространяющими сигналы в микросхеме быстро и эф­фективно. Вертикальные длинные линии имеют протяженность, равную полной высоте кристалла, а горизонтальные длинные линии — полной ширине.

4.4.3. Трассировочные ресурсы для блоков ввода-вывода
Кристалл Virtex имеет дополнительные трассировочные ресурсы, располо­женные по периферии всей микросхемы. Эти трассировочные ресурсы форми­руют добавочный интерфейс между КЛБ и БВВ. Эти дополнительные ресурсы, называемые VersaRing, улучшают возможности закрепления сигналов за кон­тактами и переназначения уже сделанного закрепления, если это требование на­кладывается расположением сигналов на печатной плате. При этом сокращает­ся время изготовления всего проекта, т. к. изготовление и проектирование печат­ной платы можно выполнять одновременно с проектированием FPGA.

4.4.4. Специальные трассировочные ресурсы
Некоторые классы сигналов требуют наличия специальных трассиро­вочных ресурсов для получения максимального быстродействия. В уст­ройстве Virtex специальные трассировочные ресурсы создавались для двух классов сигналов
• Горизонтальные трассировочные ресурсы создавались для реализа­ции микросхеме шин с тремя состояниями. Четыре разделенные ли­нии шин реализованы для каждой строки КЛБ, позволяя организовы­вать сразу несколько шин в пределах одной строки (Рис. 8).
• Две специальные линии для распространения сигналов быстрого пе­реноса к прилегающему КЛБ в вертикальном направлении.

4.4.5. Глобальные трассировочные ресурсы
Глобальные трассировочные ресурсы распределяют тактовые сигналы и другие сигналы с большим коэффициентом разветвления по выходу на всем пространстве кристалла. Кристалл Virtex имеет два типа глобальных трасси­ровочных ресурсовтназываемых соответственно первичными и вторичными
• Первичные глобальные трассировочные ресурсы представляют со­бой четыре специальные глобальные сети со специально выделенными входными контактами и связанными с ними глобальными буферами, спроектированными для распределения сигналов синхронизации с высоким коэффициентом разветвления и с минимальными разбегами фронтов. Каждая такая сеть может быть нагружена на входы синхро­низации всех КЛБ, БВВ и Block RAM — блоков микросхемы. Исто­чниками сигналов для этих сетей могут быть только глобальные бу­феры. Всего имеется четыре глобальных буфера — по одному для каждой глобальной сети.
• Вторичные глобальные трассировочные ресурсы состоят из 24 маги­стральных линий, 12 — вдоль верхней стороны кристалла и 12 — вдоль нижней. По этим связям может быть распространено до 12 уникальных сигналов на колонку по 12 длинным линиям данной колонки. Вторичные ресурсы являются более ‘гибкими, чем пер­вичные, т.к. эти сигналы, в отличие от первичных, могут трассиро­ваться не только до входов синхронизации.
4.5. Распределение сигналов синхронизации
Как было описано выше, Virtex имеет высокоскоростные, с малыми ис­кажениями трассировочные ресурсы для распределения сигналов синхро­низации на всем пространстве микросхемы. Типичное распределение це­пей синхронизации показано на Рис. 9.
В микросхему встроено четыре глобальных буфера, два — в середине верхней части микросхемы, два — в середине нижней части. Эти буферы через первичные глобальные сети могут подводить сигналы синхрониза­ции на любой тактовый вход.
Для каждого глобального буфера имеется соответствующий, примыка­ющий к нему контакт микросхемы. Сигнал на вход глобального буфера мо­жет подаваться как с этих контактов, так и от сигналов, трассируемых ре­сурсами общего назначения.

4.5.1. Модули автоподстройки задержки (DLL)
Полностью цифровая автоподстройка задержки (DLL), связанная с каждым глобальным буфером, может устранять перекос задержек между синхросигналом на входном контакте микросхемы и сигналами на тактовых входах внутренних схем устройства. Каждая DLL может быть нагружена на две глобальные цепи синхронизации. Схема DLL отслеживает сиг­нал синхронизации на входном контакте микросхемы и тактовый сигнал, распределяемый внутри кристалла, затем автоматически устанавливает необходимую задержку. Дополнительная задержка вводится таким обра­зом, что фронты сигналов синхронизации достигают внутренних тригге­ров в точности на один период синхронизации позже их прихода на вход­ной контакт. Эта система с обратной связью эффективно устраняет за­держку распределения сигналов синхронизации, гарантируя, что фронты синхросигналов на входе микросхемы и на внутренних тактовых входах с большой точностью синхронны.
Вдобавок, для устранения задержек, возникающих при распределении тактовых сигналов, DLL создает новые возможности управления функци­ями синхронизации. Модуль DLL может создавать четыре квадратурные фазы из исходного источника синхросигнала; удваивать частоту синхро­сигнала или делить эту частоту на 1.5, 2, 2.5, 3, 4, 5, 8 или 16.
Модуль DLL также функционирует как тактовое зеркало. Путем выво­да из микросхемы сигнала с выхода DLL и последующего ввода этого сиг­нала снова внутрь кристалла, схема DLL может устранить разбег фаз для тактовых сигналов на уровне печатной платы, при работе с несколькими устройствами Virtex.
Чтобы гарантировать, что системная синхронизация будет нормально функционировать до момента окончания конфигурирования системы и на­чала штатной работы, схема DLL имеет возможность задерживать процесс конфигурирования до нормальной синхронизации с системой.

4.6. Периферийное сканирование (ПС)
Микросхемы Virtex поддерживают команды периферийного сканирова­ния, приведенные в спецификации стандарта IEЕЕ 1149.1. Порт Test Access Port (TAP) и регистры реализованы для выполнения команд Extest, INTEST, Sample/Preload, Bypass, IDCODE, USERCODE и HIGHZ. Кроме того, порт ТАР поддерживает две внутренние сканирующие цепочки и поз­воляет загрузить/считать конфигурацию кристалла.
Порт ТАР использует предопределенные контакты микросхемы и LVTTL уровни сигналов. Для того чтобы выход TDO выдавал сигналы на уровнях LVTTL, на контакт второго банка должно быть подано на­пряжение 3.3 В. В противном случае напряжение на выходе ТDО будет ме­няться в пределах от нуля до .
Операции периферийного сканирования не зависят от конкретных кон­фигураций блоков ввода-вывода и типа корпуса. Все блоки ввода-вывода, включая неподключенные к контактам, рассматриваются как независимые двунаправленные контакты с тремя состояниями, в единой цепочке скани­рования. Сохранение возможности осуществлять двунаправленное тести­рование после конфигурирования облегчает тестирование внешних меж­соединений.
В Табл. 7 приведены команды периферийного сканирования, поддержи­ваемые кристаллами Virtex. Внутренние сигналы могут быть проанализи­рованы в процессе выполнения команды Extest посредством подключения их к неиспользуемым выходам блоков ввода-вывода, либо к блокам ввода-вывода, не присоединенным к контактам. Они могут быть также подсоеди­нены к неиспользуемым выходам блоков ввода-вывода, которые определе­ны как однонаправленные входные контакты.
Таблица 7. Инструкции периферийного сканирования

Команда
Двоичный код
Описание

EXTEST
00000
Разрешает операцию периферийного сканирования EXTEST

SAMPLE/PRELOAD
00001
Разрешает операцию периферийного сканирования SAMPLE/PRELOAD

USER1
00010
Доступ к определенному пользователем регистру 1

USER2
00011
Доступ к определенному пользователем регистру 2

CFG_OUT
00100
Доступ к конфигурационной шине для операций считывания

CFG_IN
00101
Доступ к конфигурационной шине для операций записи

INTEST
00111
Разрешает операцию периферийного сканирования INTEST

USERCODE
01000
Разрешает считывание пользовательского кода

IDCODE
01001
Разрешает считывание ID кода

HIGHZ
01010
Переводит выходы в третье состояние во время операции BYPASS

JSTART
01100
Активизирует вход TCK порта TAP

BYPASS
11111
Разрешает BYPASS

RESERVED
Любой другой
Зарезервированные инструкции

До конфигурации кристалла доступны все команды кроме USER1 и USER2. После конфигурации кристалла доступны все команды без исклю­чения. Во время конфигурации не рекомендуется использовать команды Extest, INtest и Sample/Preload.
В дополнение к описанным выше тестовым командам поддерживаются команды, позволяющие загрузить/считать конфигурацию кристалла.
На Рис. 10 показана логика периферийного сканирования кристаллов серии Virtex. Логика периферийного сканирования состоит из 3-разрядно­го регистра данных на один БВВ, контроллера порта ТАР и регистра ко­манд с декодированием.

4.6.1. Регистры данных
Первичный регистр данных является регистром периферийного скани­рования. Для каждого вывода микросхемы, связанного с программируе­мым БВВ, регистр данных ПС содержит три разряда сдвигового регистра и три разряда регистра-защелки (для входа, выхода и управления третьим состоянием). Выводы, не доступные для программирования пользовате­лем, имеют только по одному разряду в регистре данных ПС (для входа или выхода).
Другим регистром данных является регистр BYPASS. Данный регистр осуществляет синхронизацию данных, проходящих через кристалл, в сле­дующее устройство с периферийным сканированием. В кристалле имеет­ся только один такой регистр.
Кристалл семейства Virtex содержит две дополнительные внутренние цепи сканирования, которые могут быть задействованы использованием в проекте макромодуля BSCAN. Выводы SEL1 и SEL2 макромодуля BSCAN переводятся в логическую единицу при командах USER1 и USER2 соот­ветственно, задействуя эти цепи. Данные с выхода ТОО считываются вхо­дами TDO1 или TDO2 макромодуля BSCAN. Макромодуль BSCAN также имеет раздельные тактовые входы DRCK1 и DRCK2 для каждого пользо­вательского регистра ПС, общий вход TDI и общие выходы RESET, SHIFT и UPDATE, отражающие состояние контроллера порта ТАР.

4.6.2. Порядок битов регистра данных ПС
Порядок в каждом БВВ Вход, Выход, Высокий импеданс. Только входные контакты представлены одним битом, а только выходные -всеми тремя.
Если смотреть на кристалл, как он представлен в программном обеспе­чении проектирования (модуль FPGA EDITOR), то последовательность битов в регистре данных ПС будет определяться, как на Рис. 11.

Бит 0 (крайний TDO) Бит 1 Бит 2 (Крайний к TDI)
Правая половина верхнего края БВВ (справа-налево) GCLK2 GCLK3 Левая половина верхнего края БВВ (спрва-налево) Левый край БВВ (сверху-вниз) М1 М0 М2 Левая половина нижнего края БВВ (слева-направо) GCLK1 GCLK2 Правая половина нижнего края БВВ (слева-направо) DONE PROG Правый край БВВ (снизу-вверх) CCLK

Рис. 11. Последовательность битов ПС.
4.6.3. Идентификационные регистры
Имеются два идентификационных регистра IDCODE-регистр и USER-CODE-регистр. IDCODE позволяет определить микросхему, подсоединен­ную к JTAG-nopry.
IDCODE имеет следующий двоичный формат
vvvv ffff fffa aaaa аааа сссс сссс ссс1,
где v — код корпуса, f— код семейства кристаллов (03h для семейства Virtex), а — число строк матрицы КЛБ (от 010h для XCV50 до 040h для XCV1000), с — код компании производителя (49h для фирмы «Xilinx»)
В Табл. 8 приведены идентификационные коды (IDCODEs), присвоен­ные кристаллам серии Virtex.
Используя USERCODE, пользователь может записать и считать свой идентификационный номер для данного проекта. Пользовательский иденти­фикационный код включается в конфигурационный файл во время его созда­ния. USERCODE может быть считан только после конфигурации кристалла.
Таблица 8. Идентификационные коды (IDCODEs), присвоенные кристаллам серии Virtex

Кристалл
IDCODE

XCV50
v0610093h

XCV100
v0614093h

XCV150
v0618093h

XCV200
v061C093h

XCV300
v0620093h

XCV400
v0628093h

XCV600
v0630093h

XCV800
v0638093h

XCV1000
v0640093h

4.6.4. Включение ПС в проект
Так как все контакты, необходимые для ПС, предопределены в каждом кристалле, то не нужно включать в проект дополнительных элементов, ес­ли не будут использоваться пользовательские регистры (USER1 и USER2). Для задействования этих регистров в проект необходимо включить эле­мент BSCAN и соединить соответствующие выводы.

5. Система проектирования
Разработка кристаллов Virtex осуществляется программным обеспече­нием проектирования Xilinx Foundation и/или Xilinx Alliance. Процесс про­ектирования включает ввод проекта, размещение в кристалл и верификацию. Для ввода проекта могут применяться стандартные электронные САПР, таких фирм, как «Aldec», «Cadence», «Simplicity», «Mentor Graphics» или «Synopsys». Для размещения в кристалл и верифи­кации используются специализированные под архитектуру САПР, выпус­каемые только фирмой «Xilinx».
Система проектирования фирмы «Xilinx» интегрирована в управляю­щую программу, называемую Xilinx Design Manager (XDM), которая обеспе­чивает доступ к общему пользовательскому интерфейсу, независимо от вы­бора вида программы ввода или верификации. Программа XDM упрощает выбор настроек, необходимых для выполнения проекта, благодаря наличию разветвленного меню и легко доступной справочной системе (on-line help).
Прикладные программы, начиная от создания схемы (schematic cap­ture), до размещения и трассировки (Placement and Routing — PAR), до­ступны из программы XDM. Цепочка команд, определяющих последова­тельность обрабатывающих процессов, генерируется до начала их испол­нения и запоминается для последующего документирования.
Несколько расширенных свойств программного обеспечения облегчает проектирование микросхем Virtex. Например, схемные относительно рас­положенные макросы (Relationally Placed Macros — RPMs), в которых со­держится информация о принудительной взаимной ориентации составных частей элементов проекта, дают необходимую информацию для их реаль­ного размещения на кристалле. Они помогают обеспечить оптимальное выполнение стандартных логических функций.
Для ввода проектов с помощью языков описания аппаратных средств (Hardware Description Language — HDL), система проектирования Xilinx Foundation предоставляет интерфейсы к синтезаторам следующих фирм
— «Synopsis» (FPGA Compiler, FPGA Express);
— «Exemplar» (Spectrum);
— «Symplicity» (Symplify).
Для схемного ввода проектов системы проектирования Xilinx Foundation и Alliance предоставляют интерфейсы к следующим системам создания схем
— Mentor Graphics V8 (Design Architect Quick Sim II);
— Innoveda (Viewdraw).
Существует множество других производителей, которые предлагают аналогичные по функциям системы ввода проекта.
Для упрощения взаимодействия различных САПР существует стан­дартный формат файлов (EDIF), который поддерживается всеми произво­дителями САПР.
САПР для Virtex включает унифицированную библиотеку стандартных функций. Эта библиотека содержит свыше 400 примитивов и макросов, от двухвходовых вентилей И, до 16-битовых аккумуляторов и включает арифметические функции, компараторы, счетчики, регистры данных, де­шифраторы, шифраторы, функции ввода-вывода, защелки, булевы функ­ции, мультиплексоры и сдвигающие регистры.
Часть библиотеки, содержащей детальные описания общих логических функций, реализованных в виде «нежестких» макросов (soft macro), не со­держит никакой информации о разбиении этих функций на реальные физи­ческие блоки и об их размещении в кристалле. Быстродействие данных макросов зависит, таким образом, от этих двух процедур, которые реализуют­ся на этапе размещения проекта в кристалл. В то же время относительно расположенные макросы (RPMs) содержат в себе предварительно опреде­ленную информацию о разбиении на физические блоки и о размещении, ко­торая дает возможность для оптимального выполнения этих функций. Пользователи могут создать свою собственную библиотеку «нежестких» макросов и RPM из примитивов и макросов стандартной библиотеки.
Среда проектирования поддерживает ввод иерархических проектов, в которых схемы верхнего уровня содержат основные функциональные бло­ки, в то время как системы нижнего уровня определяют логические функ­ции этих блоков. Данные элементы иерархического проекта автоматичес­ки объединяются соответствующими средствами на этапе размещения в кристалл. При иерархической реализации могут объединяться различные средства ввода проекта, давая возможность каждую из частей вводить на­иболее подходящим для нее методом.

5.1. Размещение проекта в кристалл
Программное средство размещения и трассировки (place and route — PAR) обеспечивает автоматическое протекание процесса размещения проекта в кристалл, которое описывается ниже. Процедура разбиения на физические блоки получает исходную информацию о проекте в виде перечня связей фор­мата EDIF и осуществляет привязку абстрактных логических элементов к ре­альным физическим ресурсам архитектуры FPGA (БВВ, КЛБ). Затем проце­дура размещения определяет наилучшее место для их размещения, руковод­ствуясь информацией о межсоединениях и желаемом быстродействии. В за­вершении, процедура трассировки выполняет соединения между блоками.
Алгоритмы программы PAR поддерживают автоматическое выполне­ние большинства проектов. Тем не менее, в некоторых приложениях поль­зователь при необходимости может осуществлять контроль и управление процессом. Ни этапе ввода проекта пользователь может задавать свою ин­формацию для разбиения, размещения и трассировки.
В программное обеспечение встроено средство Timing Wizard, управля­ющее процессом размещения и трассировки с учетом требований к време­нам распространения сигналов. При вводе проекта пользователь задает эту информацию в виде временных ограничений для определенных цепей. Процедуры анализа временных параметров связей анализируют эти, за­данные пользователем, требования и пытаются удовлетворить им.
Временные требования вводятся в схему в виде непосредственных си­стемных ограничений, таких, как минимально допустимая частота синхро­низации, или максимально допустимая задержка между двумя регистрами. При таком подходе результирующее быстродействие системы с учетом суммарной протяженности путей автоматически подгоняется под требова­ния пользователя. Таким образом, задание временных ограничений для от­дельных цепей становится не нужным.

5.2. Верификация проекта
В дополнение к обычному программному моделированию FPGA, поль­зователь может использовать метод непосредственной отладки реальных цепей. Благодаря неограниченному количеству циклов перепрограммиро­вания кристаллов FPGA, работоспособность проектов можно проверить в реальном масштабе времени, вместо того чтобы использовать большой на­бор тестовых векторов, необходимых при программном моделировании.
Система проектирования устройств Virtex поддерживает и программное моделирование и метод отладки непосредственно аппаратных цепей. Для выполнения моделирования система извлекает временную информацию, полученную после размещения из базы данных проекта, и вводит ее в сете­вой перечень. Пользователь может и сам проверить критичные по времени части проекта, используя статический временной анализатор TRACE.
Для непосредственной отладки цепей к системе проектирования по­ставляется кабель для загрузки конфигурационных данных и обратного считывания данных из микросхемы. Этот кабель соединяет персональный компьютер или рабочую станцию с микросхемой FPGA, установленной в законченное устройство. После загрузки проекта в FPGA, пользователь может выполнить один шаг изменения логического состояния схемы, за­тем выполнить обратное считывание состояния триггеров в компьютер и проанализировать правильность работы схемы. Простейшие модификации проекта при этом можно осуществлять в считанные минуты.

6. Конфигурирование кристалла в устройстве
Микросхемы Virtex конфигурируются путем загрузки конфигурационных данных во внутреннюю конфигурационную память. Часть специальных кон­тактов, которые при этом используются, не могут применяться для других целей, в то же время некоторые из них могут после завершения конфигурирования служить в качестве контактов ввода-вывода общего назначения.
К специальным контактам конфигурирования относятся следующие
— контакты режима конфигурирования (М2, Ml, М0);
— контакт синхронизации процесса конфигурирования (CCLK);
— контакт ;
— контакт DONE;
— контакты порта периферийного сканирования (TDI, ТОО,
TMS, ТСК).
В зависимости от выбранного режима конфигурирования контакт CCLK может быть либо источником сигнала синхронизации, либо наобо­рот — приемником сигнала от внешнего генератора синхросигналов.

6.1. Режимы конфигурирования
Virtex поддерживает следующие четыре режима конфигурирования
— подчиненный последовательный режим (Slave-serial);
— ведущий последовательный режим (Master-serial);
— режим SelectMap;
— режим периферийного сканирования (Boundary Scan — JTAG).
Комбинация кодов на специальных входных контактах (М2, Ml, М0) позволяет выбрать один из режимов конфигурирования, при этом четыре из восьми кодов соответствуют «подтянутому» (pull-up) состоянию входов блоков ввода-вывода до начала процедуры конфигурирования, и еще четы­ре комбинации состоянию неопределенного потенциала блоков ввода-вы­вода. Соответствие этих кодов необходимому режиму приведено в Табл. 9.
Таблица 9. Конфигурационные коды.

Режим
М2
М1
М0
CCLK
Разрядность данных
Последовательный выход DOUT
Контакты «подтянуты»

Master-serial
0
0
0
Выход
1
Есть
Нет

Boundary-scan
1
0
1

1
Нет
Нет

SelectMAP
1
1
0
Вход
8
Нет
Нет

Slave-serial
1
1
1
Вход
1
Есть
Нет

Master-serial
1
0
0
Выход
1
Есть
Да

Boundary-scan
0
0
1

1
Нет
Да

SelectMAP
0
1
0
Вход
8
Нет
Да

Slave-serial
0
1
1
Вход
1
Есть
Да

Конфигурирование микросхемы FPGA через порт периферийного ска­нирования доступно всегда, независимо от значения этого кода. Задание кода отключает другие режимы. Все три контакта режима конфигурирова­ния имеют внутренние «подтягивающие» резисторы и по умолчанию задают, таким образом, состояния высокого логического уровня, если отсутствуют внешние подключения.

6.1.1. Подчиненный последовательный резким
В этом режиме FPGA принимает конфигурационные данные в последо­вательной форме от последовательного ПЗУ или от другого источника по­следовательных конфигурационных данных.
Данные последовательного битового потока (bitstream) должны быть установлены на входе DIN незадолго до появления нарастающего фронта сигнала, генерируемого внешним источником и подаваемого на вход CCLK.
Несколько микросхем FPGA могут быть соединены в цепочку для кон­фигурирования от единого внешнего источника конфигурационных дан­ных. После того как одна из микросхем сконфигурирована, данные для следующей появляются на выходе DOUT. Изменение данных на выходе DOUT происходит после нарастающего фронта сигнала на входе CCLK.
Процесс стробирования данных, подаваемых на вход DIN по нарастаю­щему фронту CCLK, отличается от аналогичного процесса в старых се­мействах микросхем FPGA, но это не приводит к возникновению проблем для смешанных конфигурационных цепочек. Такое изменение сделано для увеличения скоростей последовательного конфигурирования цепочек FPGA, состоящих только из микросхем Virtex.
На Рис. 12 изображена полная схема, совмещающая подчиненные ре­жимы и ведущий режим. FPGA Virtex, конфигурируемые в подчиненном режиме, должны быть подключены так же, как устройство, изображенное третьим слева.
Подчиненный последовательный режим выбирается заданием кода <111> на входах режима конфигурирования (М2, Ml, М0). Внутрен­ние высокоомные резисторы на режимных контактах «подтягивают» данные входы в состояние высокого логического уровня и, таким об­разом, задают этот режим по умолчанию, если выходы не имеют внешних подключений. На Рис. 13 изображена временная диаграмма для данного режима.

В Табл. 10 содержится более подробная информация для величин, при­веденных на Рис. 13. Для FPGA, соединенных в цепочку, процесс конфи­гурирования должен быть задержан до тех пор, пока на контактах всех микросхем цепочки не появится высокий логический уровень.
Таблица 10. Параметры сигналов подчиненного и ведущего режимов

Параметр
Обозначение
Значение

min
max

Предустановка/удержание входного сигнала DIN, подчиненный режим
1/2*

5.0 нс/0 нс

Предустановка/удержание входного сигнала DIN, ведущий режим
1/2*

5.0 нс/0 нс

Задержка сигнала DOUT
3*

12 нс

Длительность высокого уровня
4*

5.0 нс

Длительность низкого уровня
5*

5.0 нс

Частота

66 МГц

*См. рис. 13.

6.1.2. Ведущий последовательный резким
В ведущем последовательном режиме с выхода CCLK FPGA сигнал по­дается на соответствующий вход микросхемы ППЗУ, которая передает данные на DIN-вход той же микросхемы FPGA. Прием данных в FPGA осуществляется по каждому нарастающему фронту сигнала CCLK. После полного конфигурирования микросхемы, данные для следующих уст­ройств, соединенных цепочкой, появляются на выходе DOUT после каж­дого нарастающего фронта сигнала CCLK. Данные конфигурирования, по­ступающие на все микросхемы FPGA, соединенные в цепочку, обязатель­но начинаются с блока, называемого преамбулой.
Интерфейс, поддерживающий этот режим, идентичен интерфейсу под­чиненного режима, за исключением того, что для генерации синхросигна­ла конфигурирования используется внутренний осциллятор FPGA. Часто­та для этого синхросигнала может быть выбрана из широкого диапазона значений, но по умолчанию всегда используется низкая частота. Переклю­чение на более высокую частоту происходит данными, которые распозна­ются микросхемой в самом конфигурационном потоке, после чего остав­шаяся часть потока загружается уже с новой скоростью. Переключение снова на более низкую частоту запрещается. Частота синхронизации CCLK устанавливается выбором ConfigRate в программе генерации кон­фигурационного потока. Максимальная частота CCLK, которая может быть выбрана — 60 МГц. Выбирая конкретную частоту CCLK, необходи­мо убедиться, что используемые ПЗУ и все соединенные в цепочку микро­схемы FPGA рассчитаны на конфигурирование в таком темпе.
После включения питания, частота CCLK равна 2.5 МГц. Эта частота ис­пользуется до момента загрузки битов ConfigRate, после чего частота меня­ется на новое значение, определенное этими битами. Если в проекте не за­дается другая частота, то используемая по умолчанию частота равна 4 МГц.
На Рис. 12 показана полная система, содержащая кристалл в ведущем и кристалл в подчиненном режимах. В этой схеме крайнее левое устройст­во работает в ведущем последовательном режиме. Остальные устройства работают в подчиненном последовательном режиме. На вход микросхемы ППЗУ подается сигнал с контактов микросхемы FPGA. Аналогично, на вход — с выхода DONE. При этом в зависимости от выбранной стартовой последовательности существует конфликт потенци­алов на контакте DONE.
Для последовательного конфигурирования микросхем FPGA необходимо использовать последовательность, изображенную в виде алгоритма на Рис. 14.
Временная диаграмма для ведущего последовательного режима показа­на на Рис. 15. Данный режим выбирается заданием кода <000> или <100> на входах М2, Ml, М0. Необходимую временную информацию для этого режима содержит Табл. 10.
Время нарастания напряжения питания от уровня 1 В до мини­мально допустимого значения не должно превышать 50 мс, в против­ном случае необходимо удерживать сигнал в состоянии низко­го логического уровня до момента достижения допустимого уровня .

6.1.3. Режим SelectMAP
SelectMAP — самый быстрый режим конфигурирования. В этом режи­ме данные записываются в FPGA побайтно с использованием флага BUSY, управляющего потоком данных.
Внешний источник создаёт байтовый поток данных и сигналы CCLK, выбор кристалла (Chip Select — ), запись (). Если установлен высокий логический уровень сигнала BUSY, данные должны удерживать­ся до тех пор, пока BUSY не будет переведен в состояние низкого уровня.
Используя этот режим можно считать данные. Если сигнал не установлен (т.е. находится в состоянии высокого логического уровня), кон­фигурационные данные читаются обратно из FPGA, как часть операции обратного считывания.
После окончания конфигурирования контакты порта SelectMAP могут использоваться как дополнительные пользовательские входы-выходы.

Можно использовать этот порт для быстрого 8-битового обратного считы­вания конфигурационных данных.
Сохранение такой возможности после конфигурирования реализует­ся на этапе создания битового потока. Для сохранения такой возможно­сти необходимо использовать ограничения типа PROHIBIT, предохра­няющие контакты порта SelectMAP от использования в качестве поль­зовательских.
Несколько FPGA Virtex могут конфигурироваться в режиме SelectMAP, и далее одновременно запускаться для штатного функционирования. Для кон­фигурирования нескольких устройств таким способом, необходимо соеди­нить параллельно индивидуальные сигналы отдельных микросхем CCLK, Data, и BUSY. Конкретные микросхемы конфигурируются по очере­ди за счет поочередной подачи активного сигнала на контакт выборки () этой FPGA и записи соответствующих ей данных. В Табл. 11 представлены временные параметры сигналов режима SelectMAP.

Запись
Процедура записи посылает пакеты конфигурационных данных в FPGA. Необходимо отметить, что конфигурационный пакет можно расще­пить на несколько таких последовательностей. Пакет не должен быть за­кончен за время одной активизации сигнала , изображенной на Рис. 16.
Последовательность операций
1. Установить сигналы и в состояние низкого логическо­го уровня. Отметим, что если сигнал активизируется во время уже функционирующего сигнала CCLK, сигнал должен оставаться неизменным. В противном случае, как описано далее, будет инициирова­но преждевременное прекращение процедуры.
Таблица 11. Параметры сигналов режима SelectMAP.

Параметр
Обозначение
Значение

min
max

Предустановка/удержание входных сигналов D0-D7
1/2*

5.0 нс/0 нс

Предустановка/удержание входного сигнала
3/4*

7.0 нс/0 нс

Предустановка/удержание входного сигнала
5/6*

7.0 нс/0 нс

Задержка распространения сигнала
7*

12.0 нс

Частота

66 МГц

Частота без подтверждения получения данных

50 МГц

*См. рис. 16.

2. Данные подать на вход D[7 0]. Отметим, что для избежания кон­фликта между данными от различных источников, информация не должна выдаваться во время, когда сигнал имеет значение ‘0’, a — значение ‘1’. Также нельзя активизировать больше одного CS, в то вре­мя когда сигнал WRITE имеет значение ‘1’.
3. Данные принимаются по нарастающему фронту CCLK при усло­вии, что сигнал BUSY при этом имеет значение ‘0’. В случае, если сиг­нал BUSY имел значение ‘1’ от предыдущей записи, данные не прини­маются. Данные снова будут приниматься по первому же нарастающему фронту CCLK после перехода BUSY в состояние ‘0’; при этом данные должны удерживаться до этого события.
4. Повторять шаги 2 и 3 до тех пор, пока не будут переданы все данные.
5. Перевести сигналы и в неактивное состояние.
Алгоритм процедуры записи показан на Рис. 17. Отметим, что если сигнал CCLK медленнее, чем , FPGA не будет выставлять сигнал BUSY, в этом случае обмен подтверждениями готовности после реального приема данных не нужен, и данные могут просто вводиться в FPGA по каждому циклу сигнала CCLK.

Преждевременное прекращение процедуры
После установки активного уровня сигнала , пользователь не может переключаться с записи на чтение или наоборот. В противном случае такое действие приведет к преждевременному прекращению текущей пакетной команды. Устройство будет оставаться в состоянии BUSY (занято) до тех пор, пока прерванная процедура будет завершена. После прекращения процедуры, для продолжения приема пакета, необходимо повторить пере­дачу того слова, которое было прервано не на границе слова.
Для того чтобы инициировать преждевременное прекращение проце­дуры записи, необходимо перевести сигнал в неактивное состоя­ние. Как показано на Рис. 18, прекращение процедуры начнется с прихо­дом нарастающего фронта CCLK.

6.1.4. Использование резкима периферийного сканирования для конфигурирования Virtex
Для конфигурирования в режиме периферийного сканирования исполь­зуются только специальные контакты порта тестового доступа (Test Access Port — ТАР) в соответствии со стандартом IEEE 1149.1.
Конфигурирование через порт ТАР выполняется с помощью специаль­ной команды CFG_IN. Эта команда позволяет преобразовать входные дан­ные, поступающие на вход TDI, в пакет данных для внутренней шины кон­фигурирования.
Для конфигурирования FPGA через порт периферийного сканирования необходимо выполнить следующие действия
1. Загрузить команду CFG_IN во внутренний регистр команд (instruction register — IR).
2. Ввести состояние Shift-DR (SDR).
3. Выдать стандартный конфигурационный bitstream на TDI.
4. Возвратиться к состоянию Run-Test-Idle (RTI).
5. Загрузить в регистр IR команду JSTART.
6. Ввести состояние SDR.
7. Выдать ТСК для длины последовательности (длина программируемая).
8. Возвратиться к состоянию RT1.
Как отмечалось ранее, конфигурирование и обратное считывание все­гда доступно в режиме периферийного сканирования. Для выборки режи­ма необходимо подать код <101> или <001> на контакты М2, Ml, М0.

6.2. Последовательность конфигурации
Конфигурирование устройств Virtex — процесс, состоящий из трех фаз. В первой фазе конфигурирования очищается память. Следующая фа­за — загрузка данных в конфигурационную память. Наконец, активизиру­ется логика (фаза Start-Up).
Обычно процесс конфигурирования запускается автоматически после подачи напряжения питания, однако, как будет описано далее, он может быть задержан пользователем. Конфигурационный процесс может также быть инициирован установкой активного уровня сигнала . Пе­реход сигнала в состояние ‘1’ означает окончание фазы очистки па­мяти, а установка активного уровня сигнала DONE (‘1’) означает оконча­ние процесса в целом.
Временная диаграмма для конфигурационных сигналов после подачи напряжения питания показана на Рис. 19, а соответствующие временные характеристики — в Табл. 12.

6.2.1. Задержка конфигурирования
Конфигурирование FPGA может быть задержано удержанием сигнала на контакте в, состоянии низкого логического уровня до мо­мента готовности системы к конфигурированию. На протяжении фазы очистки конфигурационной памяти последовательность операций состоит из повторения цикла очистки памяти по всем адресам. Эти операции про­должаются до окончания одного полного цикла очистки памяти по всем адресам после установки сигнала на входе в состояние ‘1’. Та­ким образом, задержка процесса конфигурирования равнозначна продол­жению фазы очистки памяти.

Таблица 12. Значения временных параметров при подаче питания.

Параметр
Значение

min
max

2.0 мс

100 мкс

0.5 мкс
4.0 мкс

300 нс

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

6.2.2. Последовательность вхождения в штатный режим работы
При выполнении вхождения в штатный режим работы по умолчанию глобальный сигнал управления третьим состоянием (global tristate — GTS) активизируется через один цикл CCLK после перехода сигнала DONE в состояние ‘1’. Это позволяет выходам FPGA включиться надле­жащим образом.
Одним циклом CCLK позже активизируются сигнал глобальной уста­новки/сброса (Global Set/Reset — GSR) и глобального разрешения записи (Global Write Enable — GWE). Это создает условия для начала нормальной работы внутренних запоминающих элементов.
Временная диаграмма для этих событий может быть изменена. Кроме того, события GTS, GSR и GWE могут активизироваться после перехода всех выходов DONE в высокое состояние при конфигурировании множе­ственных устройств FPGA, что позволяет начинать их работу в штатном режиме синхронно. Во время выполнения последовательности допускает­ся включение на любой фазе паузы до момента нормального захвата сле­дящей системы схемы автоподстройки задержки (DLL).

6.3. Формат потока конфигурационных данных
Кристаллы Virtex конфигурируются последовательной загрузкой в них фреймов данных, которые объединены в двоичный поток (bitstream). В Табл. 13 представлены объемы конфигурационной последовательности для кристаллов Virtex.
Таблица 13. Размер конфигурационной последовательности для различных микросхем семейства Virtex

Кристалл
Конфигурационные биты

XCV50
559 200

XCV100
781 216

XCV150
1 040 096

XCV200
1 335 840

XCV300
1 751 808

XCV400
2 546 048

XCV600
3 607 968

XCV800
4 715 616

XCV1000
6 127 744

7. Обратное считывание
Конфигурационные данные, записанные в конфигурационной памяти FPGA, могут быть считаны обратно для выполнения верификации. Наряду с этими данными возможно обратное считывание содержимого всех триггеров/защелок, LUTRAMs, BlockRAMs. Эта возможность используется для выполнения отладки проектов в реальном масштабе времени.

8. Характеристики микросхем семейства Virtex по постоянному току
В Табл. 14 приведены максимально допустимые значения параметров микросхем семейства Virtex по постоянному току.
Таблица 14. Диапазон максимально допустимых значений параметров микросхем семейства Virtex по постоянному току

Обозна-чение
Описание
Значение
Единица измерения

Напряжение питания ядра относительно GND
-0.5…3.0
В

Напряжение питания выходных каскадов относительно GND
-0.5…4.0
В

Входное опорное напряжение
-0.5…3.6
В

Напряжение входного сиг-нала относительно GND
Используя
-0.5…3.6
В

Не используя
-0.5…5.5
В

Напряжение, прикладываемое к 3-стабильному выходу
-0.5…5.5
В

Максимальное время нарастания напряжения питания от 1 до 2.375 В
50
мс

Температура хранения (окружающей среды)
-65…+150
°C

Максимальная температура припоя
+260
°C

Максимальная рабочая температура контактов
+125
°C

Внимание! Превышение максимальных значений ведет к повреждению кристалла.
В Табл. 15 приведены рекомендуемые значения параметров микросхем семейства Virtex по постоянному току.
Таблица 15. Рекомендуемые значения

Обозна-чение
Описание
Значения
Единица измерения

min
max

Напряжение питания ядра при =0…+85 °C (коммерческое исполнение)
2.5 — 5%
2.5 + 5%
В

Напряжение питания ядра при =0…+85 °C (промышленное исполнение)
2.5 – 5%
2.5 + 5%
В

Напряжение питания выходных каскадов при =0…+85 °C (коммерческое исполнение)
1.4
3.6
В

Напряжение питания выходных каскадов при =0…+85 °C (промышленное исполнение)
1.4
3.6
В

Время передачи входного сигнала

250
нс

9. Корпуса
В Табл. 16 приведены комбинации кристалл Virtex — корпус, и число пользовательских выводов для каждой комбинации.
Таблица 16. Корпуса.

Корпус
Максимальное число пользовательских контактов

XCV50
XCV100
XCV150
XCV200
XCV300
XCV400
XCV600
XCV800
XCV1000

CS-144
94
94

TQ-144
98
98

PQ-240
166
166
166
166
166

HQ-240

166
166
166

BG-256
180
180
180
180

BG-352

260
260
260

BG-432

316
316
316
316

BG-560

404
404
404
404

FG-256
176
176
176
176

FG-456

260
284
312

FG-676

404
444
444

FG-680

512
512
512

10. Обозначение микросхем семейства Virtex
Способ обозначения микросхем семейства Virtex показан на Рис. 20.

«