Как умножить базовые системные часы, используя ограничения .xdc в Vivado

введите описание изображения здесьЭтот вопрос может быть смехотворно рудиментарным, но я просматривал доступные руководства и видео Xilinx, вырывая себе волосы ... моя проблема просто в следующем: я хочу использовать базовую тактовую частоту 100 МГц на моей плате nexys4 DDR и умножить ее на 2. Могу это может быть просто достигнуто с помощью файла ограничений .xdc? Я попытался использовать IP-адрес мастера синхронизации, но, возможно, я просто не понимаю, как создать экземпляр часов по отношению к моему исходному дизайну. Я приложил несколько соответствующих снимков, чтобы лучше объяснить мою проблему. Любая помощь по этому вопросу будет принята с благодарностью.

Ответы (2)

Нет, ты не можешь.

.xdc не управляет дизайном, он информирует инструмент о физической реальности платы. Установка часов на 100 МГц или 200 МГц никоим образом не меняет дизайн, инструмент всегда будет проверять, работает ли ваш дизайн с введенным вами ограничением. Если вы забудете ввести ограничение или введете неправильное ограничение, вы окажетесь в ситуации, когда инструмент говорит вам, что дизайн работает, хотя это не так (или наоборот).

Вы должны использовать мастер синхронизации. Входные часы для мастера синхронизации поступают от генератора на плате (или других часов, сгенерированных мастером синхронизации), в вашем случае часы генератора 100 МГц. Вы устанавливаете параметр мастера для желаемой выходной тактовой частоты (удвоенное время ввода тактовой частоты), и вуаля!

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

Спасибо за ваш ответ. На самом деле я сделал немного больше, чем просто изменил .xdc с помощью команд create_clock. Мой процесс был следующим: 1) Создайте собственный IP-адрес простого контроллера SVGA. 2) Используйте дизайн блока, чтобы связать мастер синхронизации с блоком SVGA и подключить внешние контакты к соответствующим контактам, на которые я ссылался в .xdc. 3) создать .v из экстраполированного шаблона создания экземпляра. из RTL 4) обновить иерархию и, наконец, скомпилировать. Все это проходит и говорит, что ведет нагрузку с правильной скоростью, но на самом деле ничего не происходит.
Вы симулировали это?
Нет, я еще не сделал, кажется вероятным следующим шагом. Я напишу тестбенч и посмотрю, что смогу. Спасибо за ваш ответ
Блок SVGA довольно сложен, ваша проблема может быть где угодно. Если вы не уверены в своих часах, изолируйте проблему. Например, вы можете сделать счетчик, который переключает светодиод каждые 200e6 тактов, или просто выводить часы и измерять их частоту на осциллографе. Если Xilinx сообщает о рабочих частотах как 200 МГц, это означает, что вы, вероятно, правильно подключили структуру синхронизации.

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