–PAGE_BREAK–
Созданное на основе опыта, приобретенного при разработках предыдущих серий FPGA, семейство Virtexявляется революционным шагом вперед, определяющим новые стандарты в производстве программируемой логики. Сочетая большое разнообразие новых системных свойств, иерархию высокоскоростных и гибких трассировочных ресурсов с передовой кремниевой технологией изготовления, семейство Virtexпредоставляет разработчику широкие возможности реализации быстродействующих, большой логической емкости цифровых устройств, при значительном снижении времени разработки.
3. Обзор архитектуры семейства
Virtex
Основными особенностями архитектуры кристаллов семейства Virtexявляются гибкость и регулярность. Кристаллы состоят из матрицы КЛБ (Конфигурируемый Логический Блок), которая окружена программируемыми блоками ввода-вывода (БВВ). Все соединения между основными элементами (КЛБ, БВВ) осуществляются с помощью набора иерархических высокоскоростных программируемых трассировочных ресурсов. Изобилие таких ресурсов позволяет реализовывать на кристалле семейства Virtexдаже самые громоздкие и сложные проекты.
Кристаллы семейства Virtexпроизводятся на основе статического ОЗУ (StaticRandomAccessMemory— SRAM), поэтому функционирование кристаллов определяется загружаемыми во внутренние ячейки памяти конфигурационными данными. Конфигурационные данные могут загружаться в кристалл несколькими способами. В ведущем последовательном режиме (MasterSerial) загрузка осуществляется из внешнего ОЗУ и полностью управляется самой FPGAVirtex. В других режимах управление загрузкой осуществляется внешними устройствами (режимы Select-MAP™, подчиненный-последовательный (SlaveSerialи 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 нс
Системная производительность
Стандарт HSTLClassIV
200МГц
Стандарт LVTTL
180МГц
продолжение
–PAGE_BREAK–
Рис. 1. Структура архитектуры Virtex.
Интерфейс ввода-вывода VersaRingсоздает дополнительные трассировочные ресурсы по периферии кристалла. Эти трассы улучшают общую «трассируемость» устройства и возможности трассировки после закрепления электрических цепей к конкретным контактам.
Архитектура Virtexтакже включает следующие элементы, которые соединяются с матрицей ГТМ:
• Специальные блоки памяти (BRAMs) размером 4096 бит каждый.
• Четыре модуля автоподстройки задержек (DLL), предназначенных для компенсации задержек тактовых сигналов, а также деления, умножения и сдвига фазы тактовых частот.
• Буферы с тремя состояниями (BUFT), которые расположены вблизи каждого КЛБ и управляют горизонтальными сегментированными трассами.
Коды, записанные в ячейки статической памяти, управляют настройкой логических элементов и коммутаторами трасс, осуществляющих соединения в схеме. Эти коды загружаются в ячейки после включения питания и могут перезагружаться в процессе работы, если необходимо изменить реализуемые микросхемой функции.
4.2. Блок ввода-вывода
Основным отличительным свойством EBBсемейства Virtexявляется поддержка широкого спектра стандартов сигналов ввода-вывода. На Рис. 2 представлена структурная схема БВВ. В Табл. 3 перечислены поддерживаемые стандарты.
Таблица 3. Поддерживаемые стандарты ввода-вывода.
продолжение
–PAGE_BREAK–
БВВ содержит три запоминающих элемента, функционирующих либо как D-тригтеры, либо как триггеры-защелки. Каждый БВВ имеет входной сигнал синхронизации (CLK), распределенный на три триггера и независимые для каждого триггера сигналы разрешения тактирования (ClockEnable— СЕ).
Кроме того, на все триггеры заведен сигнал сброса/установки (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совместимы со стандартом IEEE1149.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+ продолжение
–PAGE_BREAK–
Некоторые сигнальные стандарты требуют подачи соответствующих пороговых напряжений на входные каскады. При этом определенные БВВ автоматически конфигурируются как входы, соответствующие напряжению . Приблизительно один контакт из шести в каждом банке может выполнять эту роль.
Контакты в пределах одного банка внутренне между собой соединены, следовательно, только одно значение напряжения может быть использовано в рамках одного банка. Для правильной работы все контакты одного банка должны быть подсоединены к внешнему источнику напряжения.
В пределах одного банка можно одновременно использовать входы, которые требуют напряжения и входы, которые этого не требуют. В то же время, только одно значение напряжения может быть использовано в рамках одного банка. Входные буферы, которые используют , не совместимы с сигналами 5-В стандартов.
Контакты и для каждого банка приведены в таблицах и диаграммах под конкретный корпус и кристалл. На диаграммах также показано, к какому банку относится конкретный контакт ввода-вывода.
В рамках конкретного типа корпуса микросхемы число контактов и может меняться в зависимости от емкости кристалла. Чем больше кристалл по логической емкости, тем большее число контактов ввода-вывода преобразовано в контакты типа . Поскольку существует максимальный набор контактов для меньших кристаллов, имеется возможность проектирования печатной платы, позволяющей также использовать на ней и большие кристаллы с таким же типом корпуса. Все контакты , предполагаемые к использованию для больших кристаллов, при этом должны быть подсоединены к напряжению и не должны использоваться как контакты ввода-вывода.
В меньших кристаллах некоторые из контактов , используемые в больших кристаллах, не соединены внутри корпуса. Эти не присоединенные контакты могут быть оставлены не присоединенными вне микросхемы или быть подключены к напряжению при необходимости обеспечения совместимости разрабатываемой печатной платы с большими кристаллами.
В корпусах типа TQ-144 и PQ-240/HQ-240 все контакты соединены вместе внутри микросхемы и, следовательно, ко всем из них должно быть подключено одно и то же напряжение . В корпусе CS-144 пары банков, расположенные на одной стороне, внутренне соединены, обеспечивая, таким образом, возможность выбора только четырех возможных значений напряжения для . Контакты остаются внутренне соединенными в рамках каждого из восьми банков и могут использоваться, как было описано выше.
4.3. Конфигурируемый логический блок — КЛБ
Базовым элементом КЛБ является логическая ячейка — ЛЯ (LogicCell— LC). ЛЯ состоит из 4-входового функционального генератора, логики ускоренного переноса и запоминающего элемента. Выход каждого функционального генератора каждой логической ячейки подсоединен к выходу КЛБ и к D-входу триггера. Каждый КЛБ серии Virtexсодержит четыре логические ячейки, организованные в виде двух одинаковых секций (Рис. 4). На Рис. 5 представлено детальное изображение одной секции.
В дополнение к четырем базовым логическим ячейкам, КЛБ серии Virtexсодержит логику, которая позволяет комбинировать ресурсы функциональных генераторов для реализации функций от пяти или шести переменных. Таким образом, при оценке числа эквивалентных системных вентилей для микросхем семейства Virtex, каждый КЛБ приравнивается к 4.5 ЛЯ.
4.3.1. Таблица преобразования
Функциональные генераторы реализованы в виде 4-входовых таблиц преобразования (Look-UpTable— LUT). Кроме использования в качестве функциональных генераторов, каждый LUT-элемент может быть также использован как синхронное ОЗУ размерностью 16х1 бит. Более того, из двух LUT-элементов в рамках одной секции можно реализовать синхронное ОЗУ размерностью 16х2 бита или 32х1 бит, либо двухпортовое синхронное ОЗУ размерностью 16х1 бит.
На LUT-элементе микросхемы Virtexможет быть реализован 16-разрядный сдвиговый регистр, который идеально подходит для захвата высокоскоростных или пакетных потоков данных. Этот режим может также использоваться для запоминания данных в приложениях цифровой обработки сигналов.
4.3.2. Запоминающие элементы
Запоминающие элементы в каждой секции КЛБ Virtexмогут конфигурироваться как динамические триггеры (чувствительные к фронту сигнала) D-типа, либо как триггеры-защелки, чувствительные к уровню сигнала. D-вход триггера может управляться либо от функционального генератора в рамках той же секции КЛБ, либо непосредственно от входов данной секции КЛБ, минуя функциональные генераторы.
Кроме сигналов синхронизации (Clock) и разрешения синхронизации (ClockEnable— СЕ) в каждой секции КЛБ есть сигналы синхронной установки (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
)
В FPGAVirtexвстроена особая блочная память (BlockSelectRAM) большой емкости. Она создана в дополнение к распределенной памяти небольшой емкости (SelectRAM), реализованной на таблицах преобразования (LookUpTableRAM— LUTRAM).
Блоки памяти BlockSelectRAM+ организованы в виде столбцов. Все устройства 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
продолжение
–PAGE_BREAK–
Каждый блок памяти, как показано на Рис. 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имеет два типа глобальных трассировочных ресурсовтназываемых соответственно первичными и вторичными:
• Первичные глобальные трассировочные ресурсы представляют собой четыре специальные глобальные сети со специально выделенными входными контактами и связанными с ними глобальными буферами, спроектированными для распределения сигналов синхронизации с высоким коэффициентом разветвления и с минимальными разбегами фронтов. Каждая такая сеть может быть нагружена на входы синхронизации всех КЛБ, БВВ и BlockRAM— блоков микросхемы. Источниками сигналов для этих сетей могут быть только глобальные буферы. Всего имеется четыре глобальных буфера — по одному для каждой глобальной сети.
• Вторичные глобальные трассировочные ресурсы состоят из 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. Порт TestAccessPort(TAP) и регистры реализованы для выполнения команд Extest, INTEST, Sample/Preload, Bypass, IDCODE, USERCODEи HIGHZ. Кроме того, порт ТАР поддерживает две внутренние сканирующие цепочки и позволяет загрузить/считать конфигурацию кристалла.
Порт ТАР использует предопределенные контакты микросхемы и LVTTLуровни сигналов. Для того чтобы выход TDOвыдавал сигналы на уровнях LVTTL, на контакт второго банка должно быть подано напряжение 3.3 В. В противном случае напряжение на выходе ТDО будет меняться в пределах от нуля до .
Операции периферийного сканирования не зависят от конкретных конфигураций блоков ввода-вывода и типа корпуса. Все блоки ввода-вывода, включая неподключенные к контактам, рассматриваются как независимые двунаправленные контакты с тремя состояниями, в единой цепочке сканирования. Сохранение возможности осуществлять двунаправленное тестирование после конфигурирования облегчает тестирование внешних межсоединений.
В Табл. 7 приведены команды периферийного сканирования, поддерживаемые кристаллами Virtex. Внутренние сигналы могут быть проанализированы в процессе выполнения команды Extestпосредством подключения их к неиспользуемым выходам блоков ввода-вывода, либо к блокам ввода-вывода, не присоединенным к контактам. Они могут быть также подсоединены к неиспользуемым выходам блоков ввода-вывода, которые определены как однонаправленные входные контакты.
продолжение
–PAGE_BREAK–Таблица 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
Любой другой
Зарезервированные инструкции
продолжение
–PAGE_BREAK–
До конфигурации кристалла доступны все команды кроме 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. Порядок битов регистра данных ПС
Порядок в каждом БВВ: Вход, Выход, Высокий импеданс. Только входные контакты представлены одним битом, а только выходные -всеми тремя.
Если смотреть на кристалл, как он представлен в программном обеспечении проектирования (модуль FPGAEDITOR), то последовательность битов в регистре данных ПС будет определяться, как на Рис. 11.
Бит 0 (крайний TDO) Бит 1
Бит 2
(Крайний к TDI)
Правая половина верхнего края БВВ (справа-налево)
GCLK2
GCLK3
Левая половина верхнего края БВВ (спрва-налево)
Левый край БВВ (сверху-вниз)
М1
М0
М2
Левая половина нижнего края БВВ (слева-направо)
GCLK1
GCLK2
Правая половина нижнего края БВВ (слева-направо)
DONE
PROG
Правый край БВВ (снизу-вверх)
CCLK
продолжение
–PAGE_BREAK–
Рис. 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
продолжение
–PAGE_BREAK–
4.6.4. Включение ПС в проект
Так как все контакты, необходимые для ПС, предопределены в каждом кристалле, то не нужно включать в проект дополнительных элементов, если не будут использоваться пользовательские регистры (USER1 и USER2). Для задействования этих регистров в проект необходимо включить элемент BSCANи соединить соответствующие выводы.
5.
Система проектирования
Разработка кристаллов Virtexосуществляется программным обеспечением проектирования Xilinx
Foundation
и/или Xilinx
Alliance
. Процесс проектирования включает: ввод проекта, размещение в кристалл и верификацию. Для ввода проекта могут применяться стандартные электронные САПР, таких фирм, как «Aldec», «Cadence», «Simplicity», «MentorGraphics» или «Synopsys». Для размещения в кристалл и верификации используются специализированные под архитектуру САПР, выпускаемые только фирмой «Xilinx».
Система проектирования фирмы «Xilinx» интегрирована в управляющую программу, называемую Xilinx
Design
Manager
(
XDM
), которая обеспечивает доступ к общему пользовательскому интерфейсу, независимо от выбора вида программы ввода или верификации. Программа XDM
упрощает выбор настроек, необходимых для выполнения проекта, благодаря наличию разветвленного меню и легко доступной справочной системе (on-linehelp).
Прикладные программы, начиная от создания схемы (schematiccapture), до размещения и трассировки (PlacementandRouting— PAR), доступны из программы XDM
. Цепочка команд, определяющих последовательность обрабатывающих процессов, генерируется до начала их исполнения и запоминается для последующего документирования.
Несколько расширенных свойств программного обеспечения облегчает проектирование микросхем Virtex. Например, схемные относительно расположенные макросы (RelationallyPlacedMacros— RPMs), в которых содержится информация о принудительной взаимной ориентации составных частей элементов проекта, дают необходимую информацию для их реального размещения на кристалле. Они помогают обеспечить оптимальное выполнение стандартных логических функций.
Для ввода проектов с помощью языков описания аппаратных средств (HardwareDescriptionLanguage— 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-битовых аккумуляторов и включает арифметические функции, компараторы, счетчики, регистры данных, дешифраторы, шифраторы, функции ввода-вывода, защелки, булевы функции, мультиплексоры и сдвигающие регистры.
Часть библиотеки, содержащей детальные описания общих логических функций, реализованных в виде «нежестких» макросов (softmacro), не содержит никакой информации о разбиении этих функций на реальные физические блоки и об их размещении в кристалле. Быстродействие данных макросов зависит, таким образом, от этих двух процедур, которые реализуются на этапе размещения проекта в кристалл. В то же время относительно расположенные макросы (RPMs) содержат в себе предварительно определенную информацию о разбиении на физические блоки и о размещении, которая дает возможность для оптимального выполнения этих функций. Пользователи могут создать свою собственную библиотеку «нежестких» макросов и RPMиз примитивов и макросов стандартной библиотеки”.
Среда проектирования поддерживает ввод иерархических проектов, в которых схемы верхнего уровня содержат основные функциональные блоки, в то время как системы нижнего уровня определяют логические функции этих блоков. Данные элементы иерархического проекта автоматически объединяются соответствующими средствами на этапе размещения в кристалл. При иерархической реализации могут объединяться различные средства ввода проекта, давая возможность каждую из частей вводить наиболее подходящим для нее методом.
5.1. Размещение проекта в кристалл
Программное средство размещения и трассировки (placeandroute— 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;
— режим периферийного сканирования (BoundaryScan— JTAG).
Комбинация кодов на специальных входных контактах (М2, Ml, М0) позволяет выбрать один из режимов конфигурирования, при этом четыре из восьми кодов соответствуют «подтянутому» (pull-up) состоянию входов блоков ввода-вывода до начала процедуры конфигурирования, и еще четыре комбинации состоянию неопределенного потенциала блоков ввода-вывода. Соответствие этих кодов необходимому режиму приведено в Табл. 9.
Таблица 9. Конфигурационные коды.
Режим
М2
М1
М0
CCLK
Разрядность данных
Последовательный выход DOUT
Контакты «подтянуты»
Master-serial
Выход
1
Есть
Нет
Boundary-scan
1
1
1
Нет
Нет
SelectMAP
1
1
Вход
8
Нет
Нет
Slave-serial
1
1
1
Вход
1
Есть
Нет
Master-serial
1
Выход
1
Есть
Да
Boundary-scan
1
1
Нет
Да
SelectMAP
1
Вход
8
Нет
Да
Slave-serial
1
1
Вход
1
Есть
Да
продолжение
–PAGE_BREAK–
Конфигурирование микросхемы FPGAчерез порт периферийного сканирования доступно всегда, независимо от значения этого кода. Задание кода отключает другие режимы. Все три контакта режима конфигурирования имеют внутренние «подтягивающие» резисторы и по умолчанию задают, таким образом, состояния высокого логического уровня, если отсутствуют внешние подключения.
6.1.1. Подчиненный последовательный резким
В этом режиме FPGAпринимает конфигурационные данные в последовательной форме от последовательного ПЗУ или от другого источника последовательных конфигурационных данных.
Данные последовательного битового потока (bitstream) должны быть установлены на входе DINнезадолго до появления нарастающего фронта сигнала, генерируемого внешним источником и подаваемого на вход CCLK.
Несколько микросхем FPGAмогут быть соединены в цепочку для конфигурирования от единого внешнего источника конфигурационных данных. После того как одна из микросхем сконфигурирована, данные для следующей появляются на выходе DOUT. Изменение данных на выходе DOUTпроисходит после нарастающего фронта сигнала на входе CCLK.
Процесс стробирования данных, подаваемых на вход DINпо нарастающему фронту CCLK, отличается от аналогичного процесса в старых семействах микросхем FPGA, но это не приводит к возникновению проблем для смешанных конфигурационных цепочек. Такое изменение сделано для увеличения скоростей последовательного конфигурирования цепочек FPGA, состоящих только из микросхем Virtex.
На Рис. 12 изображена полная схема, совмещающая подчиненные режимы и ведущий режим. FPGAVirtex, конфигурируемые в подчиненном режиме, должны быть подключены так же, как устройство, изображенное третьим слева.
Подчиненный последовательный режим выбирается заданием кода на входах режима конфигурирования (М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.
продолжение
–PAGE_BREAK–
6.1.2. Ведущий последовательный резким
В ведущем последовательном режиме с выхода CCLKFPGAсигнал подается на соответствующий вход микросхемы ППЗУ, которая передает данные на 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. Данный режим выбирается заданием кода или на входах М2, Ml, М0. Необходимую временную информацию для этого режима содержит Табл. 10.
Время нарастания напряжения питания от уровня 1 В до минимально допустимого значения не должно превышать 50 мс, в противном случае необходимо удерживать сигнал в состоянии низкого логического уровня до момента достижения допустимого уровня .
6.1.3. Режим
SelectMAP
SelectMAP— самый быстрый режим конфигурирования. В этом режиме данные записываются в FPGAпобайтно с использованием флага BUSY, управляющего потоком данных.
Внешний источник создаёт байтовый поток данных и сигналы CCLK, выбор кристалла (ChipSelect— ), запись (). Если установлен высокий логический уровень сигнала BUSY, данные должны удерживаться до тех пор, пока BUSYне будет переведен в состояние низкого уровня.
Используя этот режим можно считать данные. Если сигнал не установлен (т.е. находится в состоянии высокого логического уровня), конфигурационные данные читаются обратно из FPGA, как часть операции обратного считывания.
После окончания конфигурирования контакты порта SelectMAPмогут использоваться как дополнительные пользовательские входы-выходы.
Можно использовать этот порт для быстрого 8-битового обратного считывания конфигурационных данных.
Сохранение такой возможности после конфигурирования реализуется на этапе создания битового потока. Для сохранения такой возможности необходимо использовать ограничения типа PROHIBIT, предохраняющие контакты порта SelectMAPот использования в качестве пользовательских.
Несколько FPGAVirtexмогут конфигурироваться в режиме 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.
продолжение
–PAGE_BREAK–
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
Для конфигурирования в режиме периферийного сканирования используются только специальные контакты порта тестового доступа (TestAccessPort— ТАР) в соответствии со стандартом IEEE1149.1.
Конфигурирование через порт ТАР выполняется с помощью специальной команды CFG_IN. Эта команда позволяет преобразовать входные данные, поступающие на вход TDI, в пакет данных для внутренней шины конфигурирования.
Для конфигурирования FPGAчерез порт периферийного сканирования необходимо выполнить следующие действия:
1. Загрузить команду CFG_IN во внутренний регистр команд (instructionregister— IR).
2. Ввести состояние Shift-DR(SDR).
3. Выдать стандартный конфигурационный bitstreamна TDI.
4. Возвратиться к состоянию Run-Test-Idle(RTI).
5. Загрузить в регистр IRкоманду JSTART.
6. Ввести состояние SDR.
7. Выдать ТСК для длины последовательности (длина программируемая).
8. Возвратиться к состоянию RT1.
Как отмечалось ранее, конфигурирование и обратное считывание всегда доступно в режиме периферийного сканирования. Для выборки режима необходимо подать код или на контакты М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 нс
продолжение
–PAGE_BREAK–