Часть библиотеки, содержащей детальные описания общих логических функций, реализованных в виде «нежестких» макросов (softmacro), не содержит никакой информации о разбиении этих функций на реальные физические блоки и об их размещении в кристалле. Быстродействие данных макросов зависит, таким образом, от этих двух процедур, которые реализуются на этапе размещения проекта в кристалл. В то же время относительно расположенные макросы (RPMs) содержат в себе предварительно определенную информацию о разбиении на физические блоки и о размещении, которая дает возможность для оптимального выполнения этих функций. Пользователи могут создать свою собственную библиотеку «нежестких» макросов и RPM из примитивов и макросов стандартной библиотеки".
Среда проектирования поддерживает ввод иерархических проектов, в которых схемы верхнего уровня содержат основные функциональные блоки, в то время как системы нижнего уровня определяют логические функции этих блоков. Данные элементы иерархического проекта автоматически объединяются соответствующими средствами на этапе размещения в кристалл. При иерархической реализации могут объединяться различные средства ввода проекта, давая возможность каждую из частей вводить наиболее подходящим для нее методом.
5.1. Размещение проекта в кристалл
Программное средство размещения и трассировки (placeandroute — PAR) обеспечивает автоматическое протекание процесса размещения проекта в кристалл, которое описывается ниже. Процедура разбиения на физические блоки получает исходную информацию о проекте в виде перечня связей формата EDIF и осуществляет привязку абстрактных логических элементов к реальным физическим ресурсам архитектуры FPGA (БВВ, КЛБ). Затем процедура размещения определяет наилучшее место для их размещения, руководствуясь информацией о межсоединениях и желаемом быстродействии. В завершении, процедура трассировки выполняет соединения между блоками.
Алгоритмы программы PARподдерживают автоматическое выполнение большинства проектов. Тем не менее, в некоторых приложениях пользователь при необходимости может осуществлять контроль и управление процессом. Ни этапе ввода проекта пользователь может задавать свою информацию для разбиения, размещения и трассировки.
В программное обеспечение встроено средство TimingWizard, управляющее процессом размещения и трассировки с учетом требований к временам распространения сигналов. При вводе проекта пользователь задает эту информацию в виде временных ограничений для определенных цепей. Процедуры анализа временных параметров связей анализируют эти, заданные пользователем, требования и пытаются удовлетворить им.
Временные требования вводятся в схему в виде непосредственных системных ограничений, таких, как минимально допустимая частота синхронизации, или максимально допустимая задержка между двумя регистрами. При таком подходе результирующее быстродействие системы с учетом суммарной протяженности путей автоматически подгоняется под требования пользователя. Таким образом, задание временных ограничений для отдельных цепей становится не нужным.
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 | 0 | 0 | 0 | Выход | 1 | Есть | Нет |
Boundary-scan | 1 | 0 | 1 | 1 | Нет | Нет | |
SelectMAP | 1 | 1 | 0 | Вход | 8 | Нет | Нет |
Slave-serial | 1 | 1 | 1 | Вход | 1 | Есть | Нет |
Master-serial | 1 | 0 | 0 | Выход | 1 | Есть | Да |
Boundary-scan | 0 | 0 | 1 | 1 | Нет | Да | |
SelectMAP | 0 | 1 | 0 | Вход | 8 | Нет | Да |
Slave-serial | 0 | 1 | 1 | Вход | 1 | Есть | Да |
Конфигурирование микросхемы FPGA через порт периферийного сканирования доступно всегда, независимо от значения этого кода. Задание кода отключает другие режимы. Все три контакта режима конфигурирования имеют внутренние «подтягивающие» резисторы и по умолчанию задают, таким образом, состояния высокого логического уровня, если отсутствуют внешние подключения.
6.1.1. Подчиненный последовательный резким
В этом режиме FPGA принимает конфигурационные данные в последовательной форме от последовательного ПЗУ или от другого источника последовательных конфигурационных данных.
Данные последовательного битового потока (bitstream) должны быть установлены на входе DIN незадолго до появления нарастающего фронта сигнала, генерируемого внешним источником и подаваемого на вход CCLK.
Несколько микросхем FPGA могут быть соединены в цепочку для конфигурирования от единого внешнего источника конфигурационных данных. После того как одна из микросхем сконфигурирована, данные для следующей появляются на выходе DOUT. Изменение данных на выходе DOUT происходит после нарастающего фронта сигнала на входе CCLK.
Процесс стробирования данных, подаваемых на вход DIN по нарастающему фронту CCLK, отличается от аналогичного процесса в старых семействах микросхем FPGA, но это не приводит к возникновению проблем для смешанных конфигурационных цепочек. Такое изменение сделано для увеличения скоростей последовательного конфигурирования цепочек FPGA, состоящих только из микросхем Virtex.
На Рис. 12 изображена полная схема, совмещающая подчиненные режимы и ведущий режим. FPGAVirtex, конфигурируемые в подчиненном режиме, должны быть подключены так же, как устройство, изображенное третьим слева.
Подчиненный последовательный режим выбирается заданием кода <111> на входах режима конфигурирования (М2, Ml, М0). Внутренние высокоомные резисторы на режимных контактах «подтягивают» данные входы в состояние высокого логического уровня и, таким образом, задают этот режим по умолчанию, если выходы не имеют внешних подключений. На Рис. 13 изображена временная диаграмма для данного режима.
В Табл. 10 содержится более подробная информация для величин, приведенных на Рис. 13. Для FPGA, соединенных в цепочку, процесс конфигурирования должен быть задержан до тех пор, пока на контактах
всех микросхем цепочки не появится высокий логический уровень.