¿Por qué ISE / XLS está asignando una señal al reloj global GCK0?

0

He sintetizado un diseño para un CPLD Coolrunner II. Tengo la intención de usar el reloj interno del CPLD. Tengo una entrada llamada CLK. Miro el informe de ajuste y veo esto:

** Global Control Resources **

GCK         GSR         GTS         DGE
Used/Tot    Used/Tot    Used/Tot    Used/Tot
1/3         0/1         0/4         0/0

Signal 'CLK' mapped onto global clock net GCK0.

** 16 Inputs **

Signal                                    Bank Loc     Pin   Pin       Pin     I/O      I/O
Name                                                   No.   Type      Use     STD      
(snip)
CLK                                       1    FB2_7   43    GCK/I/O   GCK     LVCMOS18 KPR

Por supuesto, CLK es de hecho el nombre de la entrada que me gustaría asignar al reloj. Pero, ¿cómo supo hacer esto?

Un 'dame' es que CLK es un nombre estándar y XST hizo una buena suposición. Así que cambié el nombre de cada señal CLK en el diseño a 'XXX'.

He vuelto a sintetizar (?) y ahora el informe dice:

Signal 'XXX' mapped onto global clock net GCK0.

Entonces, ¿qué da aquí. ¿Cómo funciona esto?

Todo lo que se acepta, ¿será XXX el reloj del hardware o hay algún otro paso que deba tomar?

EDITAR: donde se usa XXX.

always@(posedge foo)    //create 1 and 2 pipe delays of inputs
begin
    aq2 <= aq1;
    aq1 <= aquad;
    bq2 <= bq1;
    bq1 <= bquad;
end

Esto está en un módulo de decodificación en cuadratura. XXX se pasa como un argumento. foo es XXX aquí. Por supuesto, esto es solo Verilog, no sé qué está haciendo debajo del capó.

Edición 2: se ha producido la iluminación.

He entendido mal lo que es GCK. Pensé que era una señal de reloj generada por e interna al CPLD. No lo es. El GC significa 'Control Global'. Es un mecanismo arquitectónico que permite que una señal se propague alrededor de las macrocélulas de la CPLD a un costo muy bajo y un sesgo bajo. Es una red , no un reloj. El CoolRunner II no tiene un reloj interno. Tendré que evocar un reloj y conectarlo al pin # 43 (el pin GCK) de mi CPLD xc2c64a.

    
pregunta Tony Ennis

1 respuesta

3

Sin saber más sobre su diseño, solo podemos adivinar.

Lo más probable es que haya conectado la señal CLK (o XXX ) a los pines del reloj de uno o más flip-flops.

Probablemente sea suficiente para que la herramienta lo reconozca como un reloj y lo enrute en el enrutamiento del reloj global.

En un comentario, agregas:

  

es difícil imaginar cómo un diseñador podría dar el salto de que cualquier pin CLK debería estar conectado a un reloj real.

No hay ningún requisito de que las señales en las redes GCK sean relojes "reales", es decir, señales periódicas con un ciclo de trabajo del 50%. Lo que distingue a las redes GCK es que tienen una gran cantidad de fan-out, en todo el chip (no solo una región), y tienen recursos de enrutamiento dedicados (switches) que pueden conectarlos a los pines del reloj de los biestables.

Entonces, cuando dirijas cualquier señal al pin del reloj de un flip-flop, la herramienta de síntesis lo verá como candidato para una red GCK. Si tiene menos redes conectadas a los pines del reloj flip-flop que las redes GCK disponibles, probablemente las enrutará a través de los recursos GCK. Si tiene más redes conectadas a los pines del reloj que redes GCK, probablemente dará prioridad a las que tengan el mayor abanico de salida.

La herramienta también puede preferir enrutar relojes en redes GCK, a fin de mantener otro enrutamiento disponible para señales lógicas que no pueden usar esos recursos.

Esto puede ser un problema en algunos diseños. Las redes GCK tienen los mejores retrasos de propagación para redes con un abanico muy alto. Pero si su señal en realidad tiene un abanico bajo, en realidad podría ser más rápido enrutarla en enrutamiento lógico regular o en una red de reloj regional (no he vuelto atrás y he buscado exactamente qué tipo de enrutamiento está disponible en Coolrunner-II). No obstante, la herramienta puede elegir enrutar señales de reloj en redes de reloj dedicadas. Una síntesis o lugar & la directiva de ruta puede ser necesaria para obtener el mejor rendimiento en estas situaciones.

Por supuesto, la herramienta de síntesis es extremadamente complicada y, a menudo, solo podemos adivinar qué está pasando debajo del capó. Es posible que pueda inventar una situación en la que la herramienta no reconozca un reloj y no use las redes GCK. Por ejemplo, si enruta una señal a ambos pines de reloj y a la lógica combinatoria, eso podría cambiar la comprensión de la herramienta de su función.

    
respondido por el The Photon

Lea otras preguntas en las etiquetas