2_1 (774785), страница 3
Текст из файла (страница 3)
Результат схемотехнического описания 5-разрядного сдвигающего на 2 разряда вправо регистра на D-триггерах приведен на рис.1.14.
Рис.1.14
Рис.1.14
1.5. Установка временных и топологических ограничений для проектов, реализуемых на базе ПЛИС структуры CPLD
Дополнительная информация для программ синтеза, размещения и трассировки может располагаться непосредственно в модулях исходного описания проекта в форме атрибутов или вынесена в файл временных и топологических ограничений User Constraints File (UCF). Использование файла UCF является наиболее предпочтительным, так как при этом сохраняется универсальность модулей исходного описания, которые могут использоваться в других проектах. Кроме того, чтобы внести коррективы в параметры ограничений, например, при изменении типа ПЛИС, не требуется редактировать различные модули исходного описания, а достаточно скорректировать содержимое файла UCF. Файл временных и топологических ограничений проекта имеет текстовый формат, каждая строка которого представляет собой выражение, описывающее соответствующий параметр. Для внесения информации в файл UCF можно использовать встроенный HDL-редактор или специальную программу Constraints Editor пакета Web PACK ISE, которая на основании данных, указанных разработчиком в диалоговом режиме, автоматически формирует соответствующие выражения для описания ограничений проекта.
П
роцедура создания нового файла UCF стартует при нажатии кнопки оперативной панели или выборе командой New Source из раздела Project основного меню Навигатора проекта. При этом в открывшейся диалоговой панели следует выделить строку Implementation Constraints File. После задания имени файла, например UCF, нажимаем кнопку Далее 2 раза, а затем, если данные введены правильно – кнопкой Готово. В иерархии модулей появится модуль UCF.ucf (рис.1.15).
Чтобы приступить к редактированию файла UCF, необходимо в окне исходных модулей Навигатора проекта щелчком левой кнопки мыши выделить строку с его названием, после чего в окне процессов развернуть строку User Constraints (рис.1.15).
Для изменения файла UCF следует дважды щелкнуть левой кнопкой мыши на строке Edit Constraints (Text), в результате чего открывается новое окно редактирования. Ввод выражений временных и топологических ограничений осуществляется с помощью клавиатуры. При этом рекомендуется использовать шаблоны HDL-редактора, представленные в папке UCF.
Рассмотрим форматы выражений, описывающих наиболее часто используемые временные и топологические ограничения. Параметр LOC позволяет осуществить закрепление выводов перед трассировкой, а также явно указать функциональный блок для реализации элементов проекта. Для привязки "внешних" цепей проекта (подключаемых к контактам кристалла) к требуемым выводам ПЛИС используется следующий формат выражения: NET <название цепи> LОС=<номер вывода ПЛИС>; например: NET C LOC=P8; привязывает выход цепи “с” к выходу P8.
Рис.1.15
Если цепь является шиной, то для каждого ее разряда указывается свой выход (или вход): NET <имя шины><<номер разряда>> LOC=<номер вывода ПЛИС>; например, NET CLR LOC=P8;
NET CLR LOC=P10;
Необходимо сохранить содержимое файла путем нажатия на графическое изображение дискеты
.
Можно просмотреть графическое изображение. Для этого нужно дважды нажать (рис.1.15) на Assign Package Pin (тогда уже автоматически выполнится синтез проекта). При этом откроется окно программы Xilinx PACE. В окне формы Package Pins изображается графически кристалл со всеми выводами (рис.1.16). Выводы, которые задействованы, помечаются цветом.
После применения команды NET C LOC=P8; картинка примет вид, представленный на рис.1.17.
Рис.1.16
Рис.1.17
Чтобы определить функциональный блок, внутри которого требуется разместить цепь или элемент проекта, следует воспользоваться командами:
NET <название цепи> LOС=FВ<номер функционального 6лока ПЛИС>; INST <обозначение элемента> LOС=FВ<номер функционального 6лока ПЛИС>;
Временные ограничения могут устанавливаться как для отдельных элементов схемы (например, цепей), так и для совокупности элементов определенного типа. Такие совокупности называются временными группами.
Максимальное значение периода сигнала синхронизации для соответствующей цепи проекта задается с помощью параметра PERIOD. Полный формат выражения ограничения имеет вид:
NET РЕRIОD=[][{HIGH|LOW}[[]]];,
где HIGH или LOW означает высокий или низкий логический уровень сигнала в первой фазе периода. По умолчанию установлены в качестве единиц измерения длительности наноcекунды (нс, ns) и одинаковая продолжительность состояний высокого и низкого уровней периода синхросигнала, в результате чего получается сокращенный формат записи: NET PERIOD=; например: NET clock PERIOD=20ns;
Таким образом, значение параметра PERIOD накладывает ограничение на время распространения сигналов по цепям и логике, подключенных между выходом одного и входом другого синхронного элемента (триггера, регистра или ОЗУ), которые тактируются одним и тем же сигналом синхронизации. Рис.1.18 иллюстрирует применение параметра PERIOD.
Рис.1.18
Параметр OFFSET позволяет установить предельные временные соотношения между тактовым сигналом и связанными с ним сигналами входных и выходных цепей, подключаемых к выводам кристалла. Синтаксис соответствующего выражения ограничения выглядит следующим образом: NET OFFSET = {IN|OUT} []{BEFORE|AFTER} ; например, NET datinput OFFSET = IN 35 BEFORE clock; задает максимальное время установления сигнала для входной цепи datinput по отношению к тактовому сигналу clock равным 35 нc;
NET datoutput OFFSET = OUT 25 AFTER clocksys;
устанавливает максимальное значение задержки выходного сигнала datoutput по отношению к тактовому сигналу clocksys - 25 нc.
Временные группы могут создаваться различными способами. Наиболее универсальным является использование параметра TIMEGRP. В общем случае используется следующий формат выражения: TIMEGRP =[()] [EXCEPT ()]; например,
-
выражение TIMEGRP FF1= RISING FFS формирует временную группу FF1, объединяющую все триггеры, тактируемые фронтом сигнала синхронизации;
-
выражение TIMEGRP FF2 = FFS EXCEPT FFS("D2") создает временную группу FF2, в которую входят все триггеры за исключением D2.
Примерами предопределенных групп являются: FFS - триггеры, RAMS - синхронные ОЗУ, LATCHES - защелки, PADS - выводы (контакты) кристалла.
Ограничения для временных групп записываются с помощью ключевого слова TIMESPEC. Наиболее часто используются следующие конструкции групповых временных ограничений. Первая синтаксическая конструкция устанавливает значение параметра PERIOD, рассмотренного выше, для указанной временной группы.
TIMESPEC ТS< идентификатор спецификации> = PERIOD [] [{HIGH | LOW}[[] ]];
Идентификатор временной спецификации всегда должен начинаться с TS, например, TIMESPEC TS_syn = PERIOD SYNGROUP 50 HIGH 35;
Вторая конструкция предназначена для установки значений временных соотношений между элементами сформированных или предопределенных временных групп.
TIMESPEC ТS <идентификатор спецификации>=FROM<название временной группы1>ТО<название временной группы2><длительность задержки> [<единицы измерения>];,например, TIMESPEC TS_del = FROM FFGROUP TO PADGROUP 30 ns;.
Кроме временных и топологических ограничений файл UCF может содержать выражения инициализации триггеров и регистров. Для этой цели используется параметр INIT. Формат выражения инициализации имеет следующий вид: INST <позиционное обозначение триггера или регистра> INIT={1 | 0 | S | R}; где S - соответствует режиму установки, a R - режиму сброса, например, INST ddl INIT=1;.
В
ременные ограничения можно задавать с помощью специальной формы, для этого не обязательно знать специальные команды. Чтобы открыть редактор временных ограничений, нужно дважды нажать на Create Timing Constraints в окне процессов. При этом откроется рабочее окно программы Constraints Editor (рис.1.19).
Рис.1.19
1.6. Синтез проектов, реализуемых на базе ПЛИС
структуры CPLD фирмы Xilinx
Чтобы получить доступ к интерактивному списку основных этапов процесса разработки цифрового устройства на базе ПЛИС фирмы Xilinx, следует в окне исходных модулей Навигатора проекта выделить строку с названием файла описания верхнего уровня иерархии проекта, поместив на нее курсор и щелкнув левой кнопкой мыши. При этом в окне процессов отображается маршрут проектирования, соответствующий выбранному типу ПЛИС и средств синтеза (рис.1.20).
Рис.1.20
В процессе синтеза из файлов HDL-описаний проектируемого устройства формируется файл списка соединений (netlist) в формате EDIF (Electronic Data Interchange Format). Синтезированный файл представляет собой текстовое (ASCII) описание проекта, но на более низком логическом уровне в формате, воспринимаемом программами трассировки Xilinx. Если исходные описания проекта представлены в графической, в частности, схемотехнической, то автоматически выполняется их преобразование в требуемый HDL-формат.
Прежде чем непосредственно активизировать процесс синтеза, следует проконтролировать и при необходимости установить требуемые значения его параметров. Для этого нужно в окне процессов (рис.1.20) щелчком левой кнопки мыши выделить строку Synthesize-XST, нажать кнопку
, расположенную на оперативной панели Навигатора проекта, или воспользоваться командой Properties контекстно-зависимого всплывающего меню, которое выводится при щелчке правой кнопки мыши. Тогда появится окно с диалоговой панелью (рис.1.21), содержащей три страницы, снабженные закладками с их названиями: Synthesis options, HDL options и Xilinx Specific options. Каждая из этих страниц содержит группу параметров, представленных в виде таблицы.
Рис.1.21
Страница Synthesis options объединяет параметры, управляющие оптимизацией процесса синтеза. Параметр Optimization Goal позволяет выбрать критерий оптимизации и может принимать одно из двух значений: Speed и Area. Значение Speed устанавливает стратегию оптимизации, ориентированную на достижение максимального быстродействия проектируемого устройства. При выборе значения Area оптимизация выполняется с целью минимизации используемой области (ресурсов) кристалла.
Параметр Optimization Effort определяет уровень производимой оптимизации и имеет два возможных значения: Normal и High. Если задано значение Normal, то используются стандартные алгоритмы оптимизации. При выборе значения High выполняется дополнительная оптимизация с учетом особенностей архитектуры выбранного кристалла ПЛИС, что позволяет достигнуть более высоких результатов, но приводит к увеличению времени вычислений.
Параметр Synthesis Constraints File предназначен для определения названия файла ограничений, используемого в процессе синтеза. Файл ограничений синтеза (не путать с файлом ограничений проекта UCF) может содержать информацию о параметрах синтеза, которые определяются в рассматриваемой диалоговой панели глобально для проекта в целом, а также о временных и топологических ограничениях, используемых программами трассировки. Учитывая, что ограничения для программы трассировки указываются в файле UCF, а собственно ограничения процесса синтеза чаще всего устанавливаются одинаковыми для всех элементов проекта с помощью диалоговой панели параметров синтеза, можно не указывать значение параметра Synthesis Constraints File.















