Как буферизовать высокочастотные часы на Spartan 6?

Я пытаюсь создать высокоскоростные часы на моей плате Spartan 6 Atlys . Встроенная частота составляет 100 МГц. Я пытаюсь использовать на чипе PLL, чтобы получить более быстрые часы. Я использую IP-адрес мастера синхронизации для генерации часов с более высокой скоростью.

Все работает нормально, пока мои тактовые частоты ниже 400 МГц. Если я попытаюсь запустить выходные часы быстрее, я увижу предупреждение -

«Частота CLK_OUT1 требует, чтобы эти выходные часы управляли BUFFPLL»

В техническом описании мастера синхронизации указано, что

Если для вывода часов требуются специальные буферы, такие как BUFPLL, которые мастер не создает в проекте, предупреждающие сообщения помечаются для пользователя. Обратная связь для примитива может управляться пользователем или может быть предоставлена ​​мастеру для автоматического подключения. Если выбрана автоматическая обратная связь, путь обратной связи соответствует времени для CLK_OUT1.

В руководстве по тактированию Spartan 6 BUFPLL упоминается как примитив. Я никогда не делал таких дизайнов. Как мне поступить. Как мне создать BUFPLL в моем дизайне? Это просто выходит за рамки возможностей Spartan 6 или моей доски?

Ответы (3)

Я специально не использовал Spartan6, но у вас должна быть возможность создать экземпляр примитива BUFPLL (стр. 52) и передать в него вывод всего, что сгенерировано мастером.

На странице 80 Руководства по библиотекам Xilinx Spartan-6 для проектов HDL будет информация, необходимая для создания экземпляра.

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

Для достижения более высоких тактовых частот вам нужны более быстрые FPGA (серия Kintex и т. д.)

Похоже, ваша проблема заключается в маршрутизации высокоскоростных часов на io-logic для передачи их на внешнее периферийное устройство. Если это так, вам действительно нужен bufpll для доступа к io-банкам. вы можете найти шаблон создания экземпляров для bufpll в вашей среде ise (желтая лампочка) в верхней части панели управления ise. Вы можете найти его среди других полезных вещей, таких как plls и dcms, под вкладкой синхронизации. скопируйте это в исходный код hdl.

не забудьте включить библиотеку unisim и что bufpll может управляться только через порт clk0 или clk1 вашего pll. возможны частоты до 1 ГГц в качестве io-clk. хотя вам также может понадобиться нечетный примитив, который также можно найти в упомянутой библиотеке.