¿Cómo búfer un reloj de alta frecuencia en un Spartan 6?

Estoy tratando de crear un reloj de alta velocidad en mi Spartan 6 Atlys Board . El clonck integrado es de 100 MHz. Estoy tratando de usar un PLL en el chip para obtener un reloj más rápido. Estoy usando una IP del asistente de reloj para generar un reloj de mayor velocidad.

Las cosas funcionan bien siempre que mis frecuencias de reloj estén por debajo de 400MHz. Si trato de ejecutar los relojes de salida más rápido, veo la advertencia:

"La frecuencia CLK_OUT1 requiere que este reloj de salida maneje un BUFFPLL"

La hoja de datos del asistente de fichaje establece que

Si una salida de reloj requiere búferes especiales como BUFPLL que el asistente no genera en el diseño, los mensajes de alerta se marcan para el usuario. Los comentarios para la primitiva pueden ser controlados por el usuario o dejar que el asistente se conecte automáticamente. Si se selecciona la retroalimentación automática, la ruta de retroalimentación se hace coincidir con la temporización de CLK_OUT1.

La guía de cronometraje de Spartan 6 menciona BUFPLL como una primitiva. Nunca he hecho tales diseños. Como procedo. ¿Cómo creo un BUFPLL en mi diseño? ¿Es esto simplemente más allá de la capacidad de un Spartan 6 o de mi tablero?

Respuestas (3)

No he usado Spartan6 específicamente, pero debería poder instanciar una primitiva BUFPLL (página 52) y alimentar la salida de lo que sea generado por el asistente en eso.

La página 80 de Xilinx Spartan-6 Libraries Guide for HDL Designs tendrá la información que necesita sobre la creación de instancias.

Cualquier cosa superior a 300 MHz necesita un diseño y condiciones ambientales óptimos. Incluso si se observan frecuencias más altas que las que se observan en el osciloscopio, estarían atenuadas y no tendrían el nivel de voltaje correcto.

Para lograr velocidades de reloj más altas, necesita obtener FPGA más rápidos (serie Kintex, etc.)

Su problema parece ser enrutar un reloj de alta velocidad a io-logic para proporcionar esto a un periférico externo. Si ese es el caso, realmente necesita un bufpll para acceder a los io-banks. puede encontrar una plantilla de creación de instancias para bufplls en su entorno ise (bombilla amarilla) en la parte superior de su panel de control ise. puede encontrarlo entre otras cosas útiles como plls y dcms debajo de la pestaña de fichaje. copie esto en su código fuente hdl.

no olvide incluir la biblioteca unisim y que un bufpll solo puede ser manejado por el puerto clk0 o clk1 de su pll. son posibles frecuencias de hasta 1 ghz como io-clk. aunque es posible que también necesite un oddr primitv, que también se puede encontrar en la biblioteca que he mencionado.