lab4 (774795), страница 3
Текст из файла (страница 3)
П
осле формирования цепей, предназначенных для соединений с другими схемами и контактами кристалла, и присвоения им соответствующих названий необходимо установить маркеры, определяющие назначение этих цепей и направление передачи данных по ним. Маркер присоединяется к свободной конечной точке цепи. Для
включения режима ввода маркеров цепей следует нажать кнопку
на панели инструментов или выполнить команду I/O Marker из
выпадающего меню Add, после чего к курсору привязывается изображение маркера. Его тип (входной, выходной или двунаправленный) указывается с помощью группы кнопок с зависимой фиксацией, расположенных на странице Options панели дополнительных параметров.
Для внесения в схему дополнительной информации, которая впоследствии используется различными программами пакета WebPACK ISE, в схемотехническом редакторе применяются атрибуты. Различают следующие основные группы атрибутов в редакторе ECS: атрибуты компонентов, цепей и контактов. Для их определения и редактирования в выпадающем меню Edit предусмотрена строка Object Properties, открывающая диалоговую панель.
Для удобства работы со схемой и отчетами о выполнении последующих этапов проектирования рекомендуется задать позиционные обозначения (имена) для компонентов схемы. Режим ввода позиционных обозначений компонентов включается при выборе команды Instance Name из выпадающего меню Add или нажатии кнопки
на панели инструментов. Далее необходимо в поле редактирования Name, расположенном на странице Options панели дополнительных параметров, ввести с клавиатуры текст обозначения компонента. После этого нужно расположить курсор на изображении соответствующего компонента и щелкнуть левой кнопкой мыши.
Также можно изменить имя компонента, если дважды щелкнуть по нему левой клавишей мышки и в открывшейся панели изменить его имя.
После завершения чертежа схемы необходимо выполнить ее проверку. Часть возможных ошибок обнаруживается уже в процессе создания схемы. Но полный контроль может быть выполнен только для законченной схемы. Для проверки разработанной схемы предназначена команда Check Schematic, которая располагается в
в
ыпадающем меню Tools, а также кнопка на инструментальной панели схемотехнического редактора.
В процессе верификации осуществляется контроль целостности схемы и выполнения правил электрических соединений. На этом этапе выявляются такие ошибки, как неподключенные цепи, контакты и отводы шины, а также ошибки, возникающие при соединении выходов нескольких компонентов. После выполнения проверки открывается окно отчета. В этом окне отображаются сообщения об ошибках и предупреждения с указанием цепи или компонента, с которым они связаны.
Примечание
Иногда при проверке выдается сообщение что цепm номер x не подключена к “пинам” или входу-выходу. При этом ни одна цепь не выделяется другим цветом и при переборе всех цепей выясняется, что цепь с именем x отсутствует. Возможен вариант, что эта цепь была переименована и подключена ко входу, но редактор “считает”, что она не изменялась. Выход – сохранить схему и перезапустить редактор.
Рис14. Результат схемотехнического описания 5 разрядного сдвигающего на 2 разряда вправо регистра на D триггерах
4. Модуль временных и топологических ограничений для проектов реализуемых на базе семейства плис CPLD
4.1 Подготовка модуля
Дополнительная информация для программ синтеза, размещения и трассировки может располагаться непосредственно в модулях исходного описания проекта в форме атрибутов или вынесена в файл временных и топологических ограничений User Constraints File (UCF). Использование файла UCF является наиболее предпочтительным, так как при этом сохраняется универсальность модулей исходного описания, которые могут использоваться в других проектах. Кроме того, чтобы внести коррективы в параметры ограничений, например, при изменении типа ПЛИС, не требуется редактировать различные модули исходного описания, а достаточно скорректировать содержимое файла UCF. Файл временных и топологических ограничений проекта имеет текстовый формат, каждая строка которого представляет собой выражение, описывающее соответствующий параметр. Для внесения информации в файл UCF можно использовать встроенный HDL-редактор или специальную программу Constraints Editor пакета WebPACK ISE, которая на основании данных, указанных разработчиком в диалоговом режиме, автоматически формирует соответствующие выражения для описания ограничений проекта.
Процедура создания нового файла UCF стартует при нажатии кнопки
оперативной панели или выборе командой New Source из раздела Project основного меню Навигатора проекта. При этом в открывшейся диалоговой панели следует выделить строку Implementation Constraints File. После задания необходимых атрибутов, процедура завершается нажатием кнопки Next, а затем, если данные введены правильно – кнопкой finish.
Чтобы приступить к редактированию файла UCF, необходимо в окне исходных модулей Навигатора проекта щелчком левой кнопки мыши выделить строку с его названием, после чего в окне процессов развернуть строку "User Constraints"
Рис15.
Для изменения файла UCF во встроенном текстовом редакторе следует дважды щелкнуть левой кнопкой мыши на строке Edit Constraints (Text), в результате чего открывается новое окно редактирования. Ввод выражений временных и топологических ограничений осуществляется с помощью клавиатуры. При этом рекомендуется использовать шаблоны HDL-редактора, представленные в папке UCF.
4.2 Редактирование модуля
Рассмотрим форматы выражений, описывающих наиболее часто используемые временные и топологические ограничения. Параметр LOC позволяет осуществить закрепление выводов перед трассировкой, а также явно указать функциональный блок для реализации элементов проекта. Для привязки "внешних" цепей проекта (подключаемых к контактам кристалла) к требуемым выводам ПЛИС используется следующий формат выражения:
NET LОС=;
например:
NET C LOC=P8;
-привязывает выход цепи “с” к выходу P8
Можно просмотреть графическое изображение, для этого нужно дважды нажать на Assign Package Pin. При этом откроется окно программы Xilinx PACE. В окне формы Package Pins изображается графически кристалл со всеми выводами. Выводы, которые задействованы помечаются цветом.
Рис16.
После применения команды NET C LOC=P8; картинка примет вид:
Рис17.
Чтобы определить функциональный блок, внутри которого требуется разместить цепь или элемент проекта, следует воспользоваться командами:
NET LOС=FВ;
INST LOС=FВ;
Временные ограничения могут устанавливаться как для отдельных элементов схемы (например, цепей), так и для совокупности элементов определенного типа. Такие совокупности называются временными группами.
Максимальное значение периода сигнала синхронизации для соответствующей цепи проекта задается с помощью параметра PERIOD. Полный формат выражения ограничения имеет вид
NET РЕRIОD= [] [{HIGH | LOW}[[]]];,
где значение HIGH или LOW указывает логический уровень сигнала в первой фазе периода. По умолчанию установлены в качестве единиц измерения длительности нc (ns) и одинаковая продолжительность состояний высокого и низкого уровней периода синхросигнала, в результате чего получается сокращенный формат записи
NET PERIOD = ; например:
NET clock PERIOD=20ns;
Таким образом, значение параметра PERIOD накладывает ограничение на время распространения сигналов по цепям и логике, подключенных между выходом одного и входом другого синхронного элемента (триггера, регистра или ОЗУ), которые тактируются одним и тем же сигналом синхронизации. Рис. 18. иллюстрирует применение параметра PERIOD.
Рис.18 Временные ограничения, устанавливаемые с помощью параметра PERIOD
Параметр 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 = PERIOD [] [{HIGH | LOW}[[] ]];
Идентификатор временной спецификации всегда должен начинаться с TS, например, TIMESPEC TS_syn = PERIOD SYNGROUP 50 HIGH 35;.
Вторая конструкция предназначена для установки значений временных соотношений
между элементами сформированных или предопределенных временных групп.
TIMESPEC = FROM ТО [];,
например, TIMESPEC TS_del = FROM FFGROUP TO PADGROUP 30 ns;.
Кроме временных и топологических ограничений файл UCF может содержать выражения инициализации триггеров и регистров. Для этой цели используется параметр INIT Формат выражения инициализации имеет следующий вид
INST INIT={1 | 0 | S | R};
















