Какой смысл команды "create_clock" в дизайне FPGA?

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

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

Также, скажем, у меня есть основные часы "CLK" и некоторые другие часы, которые я генерирую в HDL. Нужно ли использовать "create_clock" для всех второстепенных часов в XDC?

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

Спасибо

1 ответ

Решение

Ограничения дизайна, как следует из названия, используются для определения дополнительных ограничений вашего дизайна, которые не могут быть зафиксированы из описания HDL.

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

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

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

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

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

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

Другие вопросы по тегам