Advertencia de diseño de implementación de reloj en Spartan 3E

0

Estoy trabajando con un SPARTAN 3E-FT256 en Xilinx 14.1, y tengo que generar un reloj de 25 MHz a partir del reloj de a bordo de 50MHz. Lo estoy logrando con un Digital Clock Manager.

Estas son mis designaciones de UCF:

NET "CLK_50MHZ" LOC = "C8" | IOSTANDARD = LVCMOS33 ;   //GCLK 10
NET "CLK_50MHZ" PERIOD = 20.0ns HIGH 40%;              //DCM_X0Y1

Creación de instancias de DCM:

wire clk_ibufg;
wire clock;
wire CLK0_OUT;

IBUFG clk_ibufg_inst ( .I(CLK_50MHZ) , .O(clk_ibufg) );
BUFG  clk_bufg_inst  ( .I(clock) , .O(clk));

ClockManager1 clock_converter (
.CLKIN_IN(clk_ibufg), 
.CLKFX_OUT(clock), 
.CLK0_OUT(CLK0_OUT)
);

No estoy seguro del uso de IBUFG y BUFG, pero la hoja de datos parece preferir las conexiones --- IBUFG a DCM a BUFG ---- por desviación mínima.

La advertencia que recibo:

"Las siguientes señales de reloj no se enrutan en el dedicado    recursos de enrutamiento de reloj global. Esto usualmente resultará en    retrasos más largos y mayor sesgo para los pines de carga del reloj. Esto podría    Ser el resultado de la colocación incorrecta del reloj, más de 8 relojes.    lógica de alimentación en un solo cuadrante del dispositivo, o incorrecto    partición lógica en el cuadrante (s). Compruebe el informe de tiempo    Para verificar el retraso y sesgo de esta red. Nombre de red: reloj "

¿Hay alguna manera de especificar qué BUFG o IBUFG usar? ¿Por qué recibo esta advertencia?

    
pregunta Ahmed Ali Abbasi

1 respuesta

0

Debido a que está utilizando el asistente CoreGenerator, la mayoría de las cosas de bajo nivel se pueden seleccionar como parte del asistente, lo que significa que no necesita crearlas manualmente.

Para las salidas, como ha seleccionado automático, no necesita agregar un BUFG. De lo contrario, el DCM probablemente creará una instancia de un BUFG para la salida, que luego tendrá que alimentar su BUFG (es decir, dos en una fila). Dos búferes de reloj global no deben colocarse en una fila, en primer lugar porque no hay necesidad de hacerlo, y en segundo lugar porque significa que la señal tiene que abandonar la red de reloj global en la que está encendido desde el primer BUFG para llegar a la entrada del segundo BUFG, de ahí tu advertencia.

También debería poder seleccionar que se utilice un IBUFG en el asistente de DCM para la entrada, lo que significa que, una vez más, no es necesario crear una instancia manualmente.

De los comentarios, también mencionas una advertencia acerca de CLK0_OUT que no se ha utilizado. Usted ha conectado esta salida a un cable, y solo puedo asumir que no lo está conectando en ningún lugar. CLK0 se utiliza para comentarios como usted dice, pero de acuerdo con la Nota de la aplicación de Xilinx XAPP462 ( pg10) no necesita comentarios si usa solo el puerto de salida CLKFX, que en su caso es verdadero.

  

"Sin comentarios. Se permite si se usan solo las salidas CLKFX o CLKFX180".

    
respondido por el Tom Carpenter

Lea otras preguntas en las etiquetas