La lectura del cursor (forma de onda) no es la misma que la de la ventana de transcripción

He ejecutado una simulación de un banco de pruebas de código Verilog. Lo ejecuté en ModelSim, pero ¿por qué la lectura que obtuve simplemente usando el cursor en la forma de onda es diferente de la de la ventana de transcripción?

Mientras está en el cursor, los valores de WDIG_OUT se compensan 1 paso hacia atrás, lo que hace que 111 wDIG_OUT coincida con 2181 rANALOG_IN. (al igual que en el caso de "a" aquí).

No puedo proceder a la autocomprobación porque hay un desfase. Por favor ayuda.

ingrese la descripción de la imagen aquí

Respuestas (1)

Eso parece correcto. Los valores en la ventana de transcripción son los niveles de señal que "conducen" al borde del reloj. Esto constituye un tiempo de configuración ideal. Con el cursor colocado directamente en el borde de un reloj, los valores del lado izquierdo serán las 'entradas' y los valores del lado derecho serán las 'salidas'. Esto representa un retraso de propagación ideal de cero, un tiempo de configuración de un período de reloj y un tiempo de espera de cero. Deberá retrasar la entrada por el retraso de propagación de la lógica (en este caso, un ciclo de reloj) si tiene que compararlo directamente con la salida registrada.

¿Puedes enseñarme o darme una pista sobre cómo obtener el valor de la "entrada anterior" para poder compararlo con la salida? Ahora estoy en el proceso de hacer un "marcador" (no sé si lo llamo bien.
Simplemente agregue un bloque siempre que almacenará el valor de la señal en cuestión en cada borde de reloj del reloj correspondiente, luego use este valor almacenado para comparar.
muchas gracias. ahora lo sé, nada está mal con mi simulación. nada de qué preocuparse por la "discrepancia" en los datos.