23 / 37 · Concepto
Instantes de muestreo y causalidad en las formas de onda
Separe estabilización combinacional, captura de reloj y orden de eventos al leer ondas.
Las lecciones se pueden leer gratis. Inscríbete para guardar el progreso.
Dentro de una marca temporal también hay orden
Que varias señales parezcan cambiar en el mismo instante no elimina la causalidad. En simulación RTL por eventos, los valores se estabilizan tras procesar eventos activos y actualizaciones no bloqueantesAsignación no bloqueante Asignación escrita con <= en RTL secuencial. Evalúa el lado derecho y programa la actualización, permitiendo que los registros del mismo flanco calculen a partir del estado anterior. Más información. El hardware cambia tras clock-to-Q y propagación combinacionalRetardo de propagación Tiempo desde un cambio de entrada hasta que la salida se estabiliza en el valor correcto. La equivalencia lógica y el comportamiento temporal son propiedades distintas. Más información. Distinga ambos modelos.
Prepare la predicción como aplicación de entrada → evaluación combinacional → captura en flanco ascendenteFlanco ascendente Instante en que el reloj pasa de 0 a 1. Se distingue del nivel alto, que abarca todo el intervalo con CLK=1. Más información → actualización de estado. Confirme cuándo la herramienta aplica entradas y registra resultados.
Hay que comprobar el planificador real del simulador. Las cuatro etapas siguientes separan conceptos de la tabla de predicción; no representan cuatro ciclos de reloj.
- Aplique entradas: Cambie a, b y sel
- Evaluación combinacional: y = sel ? b : a
- Flanco ascendente: Capture y justo antes del flanco
- Observe tras la actualización: Compare sampled_y
Calcule primero una referencia independiente
Calcule y para cada conjunto de entradas y separe la columna del flanco que lo captura en q. La primera fila donde difieren referencia y resultado permite localizar el problema en aplicación de estímulos, selección o almacenamiento.
Distinga transición y estado estable
Si los datos son iguales al cambiar sel, la salida final debe coincidir, aunque diferencias de retardo interno pueden crear un pulso espurio breve. Tampoco debe llamarse glitch a toda transición normal hacia un resultado distinto. Comparación lógica de ondas y análisis temporal físico responden preguntas diferentes.
Un banco de pruebas que cambia estímulos y lee inmediatamente en el mismo flanco que el DUT puede crear una carrera. Separe excitación y observación o use una sincronización explícita, como clocking blocks. La práctica DDS proporcionada usa JSON y las reglas de un solo reloj de la herramienta; no añada un banco arbitrario con #delay.
Inténtalo tú
Si los valores finales de y y sampled_y son ambos 1, ¿puede concluirse que los ciclos intermedios fueron correctos?
Leer la explicación
No. Invertir la selección o capturar un ciclo tarde puede dar el mismo final si a=b=1 al terminar. Compare cada flanco con su referencia e incluya cambios de sel con a y b distintos.