El puerto del reloj y cualquier otro puerto de un registro no deben ser controlados por la misma fuente de señal

-1

Recibo esta advertencia de Altera Design Assistant para lo siguiente:

El puerto del reloj y cualquier otro puerto de un registro no deben ser controlados por el misma fuente de señal

Advertencia crítica (308012): Nodo "App_Logic: inst1 | LGVCtrl: inst1 | i_Skal: inst | s_clk"

Anteriormente hice algunos cambios para cumplir con los requisitos de tiempo. yo Intenté conducir solo un '1' en lugar de conducir el sys_clk a v_clk. Pero Los requisitos de tiempo no se cumplen cuando lo hago. ¿Alguna sugerencia?

    
pregunta Alex Krish

1 respuesta

2

No he intentado entender qué intenta hacer tu código aquí, pero tu error muestra un malentendido de uno de los fundamentos de cómo se ejecutará tu código:

v_clk := sys_clk; -- '1';

Has asumido que debido a que tu proceso funciona desde el borde ascendente de sys_clk , que cuando tu código llegue a este punto, sys_clk tendrá el valor de '1' . Esto será cierto en la simulación, pero en el hardware real, no hay forma de que este valor de '1' haga el tiempo de configuración para el registro que ha descrito. Esto se agrava debido a que la ruta desde la red del reloj de su FPGA para sys_clk al registro es más corta que al pin de datos. Además, es una mala práctica usar un reloj como datos, y esto en sí mismo es propenso a problemas de tiempo.

Pasando a la funcionalidad real, la única asignación a v_clk es la línea de arriba, ¿por qué esta señal no es simplemente '1' ?

Creo que si entiendes estos problemas y revisas tu diseño, tu problema probablemente desaparecerá.

    
respondido por el scary_jeff

Lea otras preguntas en las etiquetas