2013-07-03 3 views
1

В программировании FPGA какой смысл использовать команду create_clock в файле XDC (или UCF)? Предположим, у меня есть CLK с часами, который назначается физическому выводу (который является моим часом) в файле XDC (или UCF). Почему я не могу просто пойти и использовать этот CLK-контакт в моем HDL верхнего уровня? Почему мне нужно добавить что-то вроде этого:Что такое команда «create_clock» в проекте FPGA?

create_clock -name sys_clk_pin -period "XXX" [get_ports "CLK"] 

Кроме того, предположим, что у меня есть главный тактовый «CLK» и некоторые другие часы, которые я произвожу в HDL. Должен ли я использовать «create_clock» для всех второстепенных часов в XDC?

Я не получаю эту вещь «create_clock». Любая помощь или руководство очень ценится.

Благодаря

ответ

8

конструктивных ограничений, как следует из названия, используются для того, чтобы определить дополнительные ограничения вашего дизайна, которые не могут быть захвачены из описания HDL. В качестве примера приводится команда create_clock. Вы указали булавку синхронизации в своем описании HDL, почему этого недостаточно? Причина в том, что тактовый сигнал не является обычным сигналом - он используется как опорный сигнал синхронной логикой (триггерами).

Я полагаю, что вы знакомы с концепцией «задержка распространения» (через логические ворота). Вы хотите, чтобы все сигналы, возникающие на одном флопе и сэмплированные на другом, могли распространяться в течение одного тактового цикла. Теперь, полная задержка распространения, которую вы можете знать сразу после синтеза, потому что каждый логический вентиль в FPGA имеет связанную задержку распространения (просто подведите итог). Но как ваши инструменты анализа знают, что такое максимальная допустимая задержка распространения? Вы не указываете эти ограничения в HDL, верно? Это один из случаев, когда будет использоваться частота, указанная с помощью команды create_clock, - она ​​будет преобразована в период, и инструмент анализа предупредит вас, если какой-либо из комбинаторных путей в вашем дизайне займет больше времени, чем для периода времени.

В приведенном выше примере описано одно из действий, выполняемых инструментами статистического анализа времени (STA), в которых используются «конструктивные ограничения».

Другие виды инструментов, которые широко используют конструктивные ограничения, - это инструменты для обработки доменных имен (CDC). Эти инструменты используются в конструкциях, содержащих более одного такта. Концепции CDC описаны блестяще. here

Если вы берете один такт и генерируете еще один из него (например, делитель часов), вы хотите, чтобы инструмент CDC знал об этом, потому что тот факт, что эти часы связаны, важен. Ваш способ сообщить CDC-инструменту, что связанные часы связаны с ограничением create_generated_clock.

ПРИМЕЧАНИЕ: приведенные выше примеры являются базовыми и отнюдь не всеобъемлющими.

+0

Большое спасибо! Отличное объяснение. – Arash

Смежные вопросы