¿Problemas para entender las simulaciones de tiempo en Quartus?

-2

He probado mi ALU en la simulación funcional y obtengo las formas de onda correctas. Sin embargo, estoy confundido acerca de cómo interpretar las simulaciones de tiempo.

¿Qué causa las ondulaciones en el carry_out y las señales de cero? Además, ¿qué causa los retrasos en el resultado?

    
pregunta J.Doe

2 respuestas

0

Desde la forma de onda parece que está haciendo una simulación de nivel de puerta. Si es así, lo que está viendo es el retraso de la señal a través de las puertas. En cuanto al acarreo, es por eso que se denomina "acarreo por ondulación". El acarreo de cada etapa depende del acarreo de todas las etapas anteriores.

Supongamos que agrega: 1111 con 0001.

Etapa 0 = > 1 + 1 = 0 para llevar = 1

Etapa 1 = > 1 + 0 + llevar
Pero la inicialización de la etapa es cero, por lo que la primera etapa produce:
     1 + 0 + 0 = 1 finalización = 0
En algún momento, 'DELTA' más tarde, el acarreo de la etapa 0 llega y la etapa 1 ahora hace:
     1 + 0 + 1 = 0 para llevar = 1

Etapa 2 = > 1 + 0 + llevar
Nuevamente, la carga inicial en la etapa es cero, por lo que la segunda etapa produce:      1 + 0 + 0 = 1 finalización = 0
Dos veces 'DELTA' más tarde, el acarreo de la etapa 1 llega y la etapa 2 ahora lo hace:
     1 + 0 + 1 = 0 para llevar = 1

Etapa 3 = > 1 + 0 + llevar
Pero la inicialización en la etapa es cero, por lo que la tercera etapa produce primero:
     1 + 0 + 0 = 1 finalización = 0
Tres veces 'DELTA' más tarde, el acarreo de la etapa 2 llega y la etapa 3 ahora lo hace:
     1 + 0 + 1 = 0 para llevar = 1

Este efecto 'ripple' es válido para cualquier cono de lógica. Incluso un sumador de anticipación necesita algo de tiempo para establecerse y, mientras tanto, puede cambiar de valor varias veces.

Su imagen también muestra maravillosamente por qué no puede reducir el período de reloj de forma arbitraria. Tiene que esperar a que la última señal (la más lenta) se haya asentado, de lo contrario, registra un valor incorrecto y cambiante.

    
respondido por el Oldfart
0

Quartus II genera una lista de red de tiempos para realizar simulaciones de tiempos. Hay elementos lógicos en esta lista de redes, por lo que esta es una simulación de nivel de puerta de entrada.

Las simulaciones a nivel de puerta imitan el mundo real y dos caminos nunca pueden tener el mismo retardo, incluso si nuestros simuladores a veces muestran lo mismo debido a una precisión limitada.

En su circuito, cada bit de señal result se establece en diferentes momentos. Es muy normal ver picos hasta que todos los bits se asientan. El objetivo de tiempo más importante aquí es liquidar todos los bits dentro de un período de reloj (o hasta el siguiente borde activo del reloj).

Su período de reloj parece 100ns y la señal result se estabiliza en menos tiempo. Esto es bueno. Las otras señales ( zero , carry_out ) se generan a partir de la señal result .

Mientras que result rebota, se convierte en cero y no en cero. Esto hace que zero signal 0 y 1 durante este tiempo. Dado que se vuelve estable dentro del período de reloj, no hay problema de nuevo.

    
respondido por el ahmedus

Lea otras preguntas en las etiquetas