Особенности
• Высокопроизводительные, большой емкости, программируемые пользователем логические интегральные схемы с архитектурой 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%-ное фабричное тестирование.
Описание
Семейство 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 предоставляет разработчику широкие возможности реализации быстродействующих, большой логической емкости цифровых устройств, при значительном снижении времени разработки.
Быстродействие
Кристаллы Virtex обеспечивают более высокую производительность, чем предыдущие поколения FPGA. Проекты могут работать на системных частотах до 200 МГц, включая блоки ввода-вывода. Блоки ввода-вывода Virtex полностью соответствуют спецификациям PCI-шины, поэтому кристалл позволяет реализовывать интерфейсные схемы, работающие на частоте 33 МГц или 66 МГц. В дополнение к этому кристаллы Virtex удовлетворяют требованию «hot-swap» для Compact PCI.
К настоящему времени кристаллы полностью протестированы на «эталонных» схемах. На основе тестов выявлено, что хотя производительность сильно зависит от конкретного проекта, большинство проектов работают на частотах превышающих 100 МГц и могут достигать системных частот до 200 МГц. В Табл. 2 представлены производительности некоторых стандартных функций, реализованных на кристаллах с градацией быстродействия '6'.
В отличие от предыдущих семейств ПЛИС фирмы «Xilinx», в сериях Virtex™ и Spartan™ градация по быстродействию обозначается классом, а не задержкой на логическую ячейку. Соответственно, в семействах Virtex™ и Spartan™ чем больше класс, тем выше быстродействие.
Описание архитектуры
Матрица Virtex
Программируемая пользователем вентильная матрицу серии Virtex показана на Рис. I . Соединение между КЛБ осуществляется с помощью главных трассировочных матриц — ГТМ. ГТМ — это матрица программируемых транзисторных двунаправленных переключателей, расположенных на пересечении горизонтальных и вертикальных линий связи. Каждый КЛБ окружен локальными линиями связи (VersaBlock™), которые позволяют осуществить соединения с матрицей ГТМ.
Таблица 2. Производительность стандартных функций Virtex-6
Функция | Разрядность [бит] | Производительность |
Внутрисистемная производительность | ||
Сумматор
Конвейерный умножитель
Декодер адреса
Схема контроля по четности
Versa Ring
Блоки ввода-вывода (БВВ)
Versa Ring
Versa Ring
Блоки ввода-вывода (БВВ)
DLL
Рис. 1. Структура архитектуры Virtex.
Интерфейс ввода-вывода VersaRing создает дополнительные трассировочные ресурсы по периферии кристалла. Эти трассы улучшают общую «трассируемость» устройства и возможности трассировки после закрепления электрических цепей к конкретным контактам.
Архитектура Virtex также включает следующие элементы, которые соединяются с матрицей ГТМ:
• Специальные блоки памяти (BRAMs) размером 4096 бит каждый.
• Четыре модуля автоподстройки задержек (DLL), предназначенных для компенсации задержек тактовых сигналов, а также деления, умножения и сдвига фазы тактовых частот.
• Буферы с тремя состояниями (BUFT), которые расположены вблизи каждого КЛБ и управляют горизонтальными сегментированными трассами.
Коды, записанные в ячейки статической памяти, управляют настройкой логических элементов и коммутаторами трасс, осуществляющих соединения в схеме. Эти коды загружаются в ячейки после включения питания и могут перезагружаться в процессе работы, если необходимо изменить реализуемые микросхемой функции.
Блок ввода-вывода
Основным отличительным свойством 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 периферийного сканирования.
Ввод сигнала
Входной сигнал БВВ может быть протрассирован либо непосредственно к блокам внутренней логики, либо через входной триггер.
Кроме того, между выходом буфера и D-входом триггера может быть подключен элемент задержки, исключающий время удержания для случая контакт-контакт. Данная задержка согласована с внутренней задержкой распределения сигнала тактирования FPGA, что гарантирует нулевое время удержания для распределения сигналов контакт-контакт.
Каждый входной буфер может быть сконфигурирован таким образом, чтобы удовлетворять одному из низковольтных сигнальных стандартов, поддерживаемых устройством. В некоторых из этих стандартов входной буфер использует напряжение порогового уровня ( ), формируемое пользователем. Использование напряжений позволяет ввести в устройство принудительные опорные величины для различных, близких по используемым логическим уровням стандартов (см. также «Банки ввода-вывода»).
К каждому входу после окончания процесса конфигурирования могут быть, по выбору, подключены внутренние резисторы (либо pull-up, либо pull-down). Сопротивление этих резисторов лежит в пределах 50... 150 кОм.
Вывод сигнала
Выходной сигнал проходит через буфер с тремя состояниями, выход которого соединен непосредственно с выводом микросхемы. Сигнал может быть протрассирован на вход буфера с тремя состояниями, либо непосредственно от внутренней логической структуры, либо через выходной триггер блока ввода-вывода.
Управление буфером с тремя состояниями также может осуществляться либо непосредственно от внутренней логической структуры, либо через специальный триггер БВВ, который позволяет создать синхронное управление сигналом разрешения и запрещения для буфера с тремя состояниями. Каждый такой выходной каскад рассчитан на втекающий ток до 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 пары банков, расположенные на одной стороне, внутренне соединены, обеспечивая, таким образом, возможность выбора только четырех возможных значений напряжения для . Контакты остаются внутренне соединенными в рамках каждого из восьми банков и могут использоваться, как было описано выше.
Таблица 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> |
Таблица 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. Последовательность битов ПС.
Идентификационные регистры
Имеются два идентификационных регистра: 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 |
Включение ПС в проект
Так как все контакты, необходимые для ПС, предопределены в каждом кристалле, то не нужно включать в проект дополнительных элементов, если не будут использоваться пользовательские регистры (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 capture), до размещения и трассировки (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 из примитивов и макросов стандартной библиотеки".
Среда проектирования поддерживает ввод иерархических проектов, в которых схемы верхнего уровня содержат основные функциональные блоки, в то время как системы нижнего уровня определяют логические функции этих блоков. Данные элементы иерархического проекта автоматически объединяются соответствующими средствами на этапе размещения в кристалл. При иерархической реализации могут объединяться различные средства ввода проекта, давая возможность каждую из частей вводить наиболее подходящим для нее методом.
Верификация проекта
В дополнение к обычному программному моделированию FPGA, пользователь может использовать метод непосредственной отладки реальных цепей. Благодаря неограниченному количеству циклов перепрограммирования кристаллов FPGA, работоспособность проектов можно проверить в реальном масштабе времени, вместо того чтобы использовать большой набор тестовых векторов, необходимых при программном моделировании.
Система проектирования устройств Virtex поддерживает и программное моделирование и метод отладки непосредственно аппаратных цепей. Для выполнения моделирования система извлекает временную информацию, полученную после размещения из базы данных проекта, и вводит ее в сетевой :перечень. Пользователь может и сам проверить критичные по времени части проекта, используя статический временной анализатор TRACE .
Для непосредственной отладки цепей к системе проектирования поставляется кабель для загрузки конфигурационных данных и обратного считывания данных из микросхемы. Этот кабель соединяет персональный компьютер или рабочую станцию с микросхемой FPGA, установленной в законченное устройство. После загрузки проекта в FPGA, пользователь может выполнить один шаг изменения логического состояния схемы, затем выполнить обратное считывание состояния триггеров в компьютер и проанализировать правильность работы схемы. Простейшие модификации проекта при этом можно осуществлять в считанные минуты.
Режимы конфигурирования
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 через порт периферийного сканирования доступно всегда, независимо от значения этого кода. Задание кода отключает другие режимы. Все три контакта режима конфигурирования имеют внутренние «подтягивающие» резисторы и по умолчанию задают, таким образом, состояния высокого логического уровня, если отсутствуют внешние подключения.
Таблица 10. Параметры сигналов подчиненного и ведущего режимов
Параметр
Обозначение
Значение
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.
Параметр
Обозначение
Значение
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.
Задержка конфигурирования
Конфигурирование FPGA может быть задержано удержанием сигнала на контакте в, состоянии низкого логического уровня до момента готовности системы к конфигурированию. На протяжении фазы очистки конфигурационной памяти последовательность операций состоит из повторения цикла очистки памяти по всем адресам. Эти операции продолжаются до окончания одного полного цикла очистки памяти по всем адресам после установки сигнала на входе в состояние ‘1’. Таким образом, задержка процесса конфигурирования равнозначна продолжению фазы очистки памяти.
Таблица 12. Значения временных параметров при подаче питания.
Параметр
Значение
Другой вариант — подача от источника с открытым стоком сигнала низкого уровня на вход . Источник сигнала с открытым стоком необходим потому, что контакт — двунаправленный и работает как выход, имеющий низкий логический уровень во время фазы очистки памяти. Увеличение времени удержания низкого логического уровня на этом контакте приводит, к тому, что конфигурационный автомат продолжает выполнять фазу очистки памяти. Таким образом, процесс конфигурирования задерживается, не входя в фазу загрузки данных.
Обратное считывание
Конфигурационные данные, записанные в конфигурационной памяти FPGA, могут быть считаны обратно для выполнения верификации. Наряду с этими данными возможно обратное считывание содержимого всех триггеров/защелок, LUTRAMs, BlockRAMs. Эта возможность используется для выполнения отладки проектов в реальном масштабе времени.
Таблица 15. Рекомендуемые значения
Обозна-чение
Описание
Значения
Единица измерения
Корпуса
В Табл. 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 |
Особенности
• Высокопроизводительные, большой емкости, программируемые пользователем логические интегральные схемы с архитектурой 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%-ное фабричное тестирование.
Описание
Семейство 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 предоставляет разработчику широкие возможности реализации быстродействующих, большой логической емкости цифровых устройств, при значительном снижении времени разработки.
Обзор архитектуры семейства Virtex
Основными особенностями архитектуры кристаллов семейства Virtex являются гибкость и регулярность. Кристаллы состоят из матрицы КЛБ (Конфигурируемый Логический Блок), которая окружена программируемыми блоками ввода-вывода (БВВ). Все соединения между основными элементами (КЛБ, БВВ) осуществляются с помощью набора иерархических высокоскоростных программируемых трассировочных ресурсов. Изобилие таких ресурсов позволяет реализовывать на кристалле семейства Virtex даже самые громоздкие и сложные проекты.
Кристаллы семейства Virtex производятся на основе статического ОЗУ (Static Random Access Memory — SRAM), поэтому функционирование кристаллов определяется загружаемыми во внутренние ячейки памяти конфигурационными данными. Конфигурационные данные могут загружаться в кристалл несколькими способами. В ведущем последовательном режиме (Master Serial) загрузка осуществляется из внешнего ОЗУ и полностью управляется самой FPGA Virtex. В других режимах управление загрузкой осуществляется внешними устройствами (режимы Select-MAP™, подчиненный-последовательный (Slave Serial и JTAG).
Конфигурационные данные создаются пользователем при помощи программного обеспечения проектирования Xilinx Foundation и Alliance Series . Программное обеспечение включает в себя схемный и текстовый ввод, моделирование, автоматическое и ручное размещение и трассировку, создание, загрузку и верификацию загрузочных данных.
Быстродействие
Кристаллы Virtex обеспечивают более высокую производительность, чем предыдущие поколения FPGA. Проекты могут работать на системных частотах до 200 МГц, включая блоки ввода-вывода. Блоки ввода-вывода Virtex полностью соответствуют спецификациям PCI-шины, поэтому кристалл позволяет реализовывать интерфейсные схемы, работающие на частоте 33 МГц или 66 МГц. В дополнение к этому кристаллы Virtex удовлетворяют требованию «hot-swap» для Compact PCI.
К настоящему времени кристаллы полностью протестированы на «эталонных» схемах. На основе тестов выявлено, что хотя производительность сильно зависит от конкретного проекта, большинство проектов работают на частотах превышающих 100 МГц и могут достигать системных частот до 200 МГц. В Табл. 2 представлены производительности некоторых стандартных функций, реализованных на кристаллах с градацией быстродействия '6'.
В отличие от предыдущих семейств ПЛИС фирмы «Xilinx», в сериях Virtex™ и Spartan™ градация по быстродействию обозначается классом, а не задержкой на логическую ячейку. Соответственно, в семействах Virtex™ и Spartan™ чем больше класс, тем выше быстродействие.
Описание архитектуры
Матрица Virtex
Программируемая пользователем вентильная матрицу серии Virtex показана на Рис. I . Соединение между КЛБ осуществляется с помощью главных трассировочных матриц — ГТМ. ГТМ — это матрица программируемых транзисторных двунаправленных переключателей, расположенных на пересечении горизонтальных и вертикальных линий связи. Каждый КЛБ окружен локальными линиями связи (VersaBlock™), которые позволяют осуществить соединения с матрицей ГТМ.
Таблица 2. Производительность стандартных функций Virtex-6
Функция | Разрядность [бит] | Производительность |
Внутрисистемная производительность | ||
Сумматор
Конвейерный умножитель
Декодер адреса
Схема контроля по четности
Дата: 2019-12-10, просмотров: 239.