Я пытаюсь создать высокоскоростные часы на моей плате Spartan 6 Atlys . Встроенная частота составляет 100 МГц. Я пытаюсь использовать на чипе PLL, чтобы получить более быстрые часы. Я использую IP-адрес мастера синхронизации для генерации часов с более высокой скоростью.
Все работает нормально, пока мои тактовые частоты ниже 400 МГц. Если я попытаюсь запустить выходные часы быстрее, я увижу предупреждение -
«Частота CLK_OUT1 требует, чтобы эти выходные часы управляли BUFFPLL»
В техническом описании мастера синхронизации указано, что
Если для вывода часов требуются специальные буферы, такие как BUFPLL, которые мастер не создает в проекте, предупреждающие сообщения помечаются для пользователя. Обратная связь для примитива может управляться пользователем или может быть предоставлена мастеру для автоматического подключения. Если выбрана автоматическая обратная связь, путь обратной связи соответствует времени для CLK_OUT1.
В руководстве по тактированию Spartan 6 BUFPLL упоминается как примитив. Я никогда не делал таких дизайнов. Как мне поступить. Как мне создать BUFPLL в моем дизайне? Это просто выходит за рамки возможностей Spartan 6 или моей доски?
Я специально не использовал 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. хотя вам также может понадобиться нечетный примитив, который также можно найти в упомянутой библиотеке.