mecanismo de retardo VHDL

0

Tengo dificultades para entender cómo funciona el mecanismo de retardo (principalmente retardo de inercia: DESPUÉS) en VHDL. Comenzaré con esto:

target <= waveform AFTER 3 NS;

Mientras que waveform sea un pulso más largo que 3ns, solo se retrasará 3ns, de lo contrario no aparecerá nada en target . Pero eso es solo el resultado de cómo VHDL interpreta la asignación de señal anterior. ¡Quiero saber qué sucede exactamente allí! Por ejemplo, qué sucede si tenemos una asignación condicional que define waveform en sí, como esto:

waveform <= '1' AFTER 2 NS WHEN (waveform = '0' AND NOW < 10 NS)
                           ELSE '0' AFTER 5 NS;

(¡Me dejé llevar un poco al escribir la condición!), lo que quiero decir es qué time y el valor para waveform se tienen en cuenta al evaluar la condición para asignar waveform a target . O simplemente se evalúa (dibuja) waveform para obtener una WAVEFORM real y luego se aplica a target como dije anteriormente (menos de 3ns se tira, de lo contrario simplemente se desplaza 3ns); [Sé que obviamente no es la segunda forma, solo quería hacer mi punto.]

    
pregunta mahdi

1 respuesta

1

VHDL tiene dos mecanismos de retardo: mecanismos de transporte y retardo inercial.

delay_mechanism ⇐ transporte | [rechazar time_expression] inercial

Si simplemente escribes:

delay_mechanism < = time_expression

El traductor VHDL asumirá que es un mecanismo de retardo "inercial".

El mecanismo de retardo de transporte se usa para modelar un dispositivo ideal con respuesta de frecuencia infinita, qué en qué. La forma de onda solo se retrasa, no importa lo cortos que sean los pulsos de entrada.

El mecanismo de retardo inercial imita al mundo real. En realidad, la mayoría de los circuitos electrónicos no tienen una respuesta de frecuencia infinita, por lo que modelarlos usando el 'mecanismo de retardo de transporte' puede no ser apropiado. Solo imagine un filtro RC, si su pulso de entrada es muy corto, es posible que no vea el pulso de la salida. Entonces, el retraso inercial es el mecanismo usado por defecto en una asignación de señal. Su primer modelo 'filtrará' cualquier pulso más corto que 3ns. Para pulsos más anchos que 3ns, los retrasará.

En el segundo modelo, si "forma de onda" está en la lista de sensibilidad de su proceso, cada vez que "forma de onda" tiene un evento de cambio, se programará una nueva transacción y la salida cambiará después del tiempo de demora. Es justo cuando cambia la 'forma de onda', se programa un nuevo cambio.

    
respondido por el diverger

Lea otras preguntas en las etiquetas