ПЛИС семейства 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 |16x24 |1 728 |180 |32 768 |24 576 |
|XCV100 |108 904 |20x30 |2 700 |180 |40 960 |38 400 |
|XCV150 |164 676 |24x36 |3 888 |260 |49 152 |55 296 |
|XCV200 |236 666 |28x42 |5 292 |284 |57 344 |75 264 |
|XCV300 |322 970 |32x48 |6 912 |316 |65 536 |98 304 |
|XCV400 |468 252 |40x60 |10 800 |404 |81 920 |153 600 |
|XCV600 |661 111 |48x72 |15 552 |512 |98 304 |221 184 |
|XCV800 |888 439 |56x84 |21 168 |512 |114 688 |301 056 |
|XCV1000 |1 124 022 |64x96 |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 | |Блоки|
|ввода| | | |ввода|
|-выво| | | |-выво|
|да | | | |да |
|(БВВ)| | | |(БВВ)|
| |Ver|Бло|Матрица КЛБ |Бло|Ver| |
| |sa |чна| |чна|sa | |
| |Rin|я | |я |Rin| |
| |g |пам| |пам|g | |
| | |ять| |ять| | |
| | |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 & |1.5 |3.3 |1.5 |нет |
|II | | | | |
|SSTL2 Class I & |1.25 |2.5 |1.25 |нет |
|II | | | | |
|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 |DATA |
|2 |2048 |ADDR |DATA |
|4 |1024 |ADDR |DATA |
|8 |512 |ADDR |DATA |
|16 |256 |ADDR |DATA |
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. Логика периферийного сканиров