Estoy intentando crear un simulador de circuito lógico simple. Tengo dificultades para descubrir cómo se comporta una puerta lógica con una entrada que cambia más rápido que su retraso de propagación.
Al intentar conectar un reloj de alta frecuencia a una puerta lógica inversora con un retraso de 1 segundo en un simulador, la salida permaneció igual durante 1 segundo y luego comenzó a seguir el patrón del reloj.
Parece como si la salida fuera una función siguiente: salida (t) = NO (entrada (t - retraso)). ¿Es esto cierto? Si es así, ¿por qué? Además, ¿cómo funcionaría esto con diferentes retrasos de subida y bajada?
Realmente depende de cómo se construya la puerta. Para una simulación completamente precisa, debe realizar una simulación analógica a nivel de transistor. Sin embargo, es posible extraer parámetros de temporización de una simulación a nivel de transistor y abstraerlos un poco. Los tiempos de subida y bajada de salida y los retrasos de propagación dependerán de los tiempos de subida y bajada de entrada, la capacitancia de carga de salida, la tensión de alimentación, la temperatura y el estado de las entradas. Sí, es posible que la misma entrada en transición tenga un retraso de propagación que depende del estado de las otras entradas. Estas técnicas se utilizan en los modelos de tiempo utilizados en el diseño de ASIC y FPGA tanto en el análisis de tiempo estático como en el lugar y la ruta controlados por tiempo.
Fundamentalmente, el retraso de propagación está determinado por el tiempo que tarda la salida en hacer la transición en respuesta a un cambio en la entrada. Esto depende exactamente de cómo se construya la puerta a nivel de transistor. Para un solo inversor CMOS de dos transistores, el retraso de propagación está determinado por las características eléctricas analógicas de los transistores y su capacitancia parásita. La entrada girará a cierta velocidad, luego, una vez que se alcance el umbral, la salida comenzará a girar. Si la entrada cambia antes de que la salida termine de moverse, entonces la salida comenzará a moverse hacia el otro lado y terminará con una salida altamente distorsionada. Entonces, para un solo inversor, la salida para un cambio más rápido que el retraso de propagación sería un nivel lógico no válido (es decir, x). Sin embargo, las "puertas" pueden ser mucho más complicadas que un solo inversor. Por ejemplo,
Lo que está describiendo se llama "retraso de transporte" en VHDL, a diferencia del "retraso inercial" en el que los eventos de menos de 1 segundo desaparecerían silenciosamente.
El "retraso de transporte" es útil para modelar líneas de retraso, cables muy largos, etc., pero el "retraso de inercia" es una simulación lógica más precisa.
Más información aquí
El retraso de propagación es simplemente "la cantidad de tiempo que tarda la cabeza de la señal en viajar desde el emisor hasta el receptor" (desde aquí ), no es el ancho de banda, que es la rapidez con la que el sistema puede responder a la entrada.
La salida se comportará como se esperaba, pero retrasada por el tiempo de retraso de propagación.
Con diferentes retrasos de propagación de subida y bajada, será más complicado, porque diferentes partes de la señal se retrasarán de manera diferente y el comportamiento no será tan obvio.
Por supuesto, todo esto es válido para sistemas simples (es decir, el inversor), el aumento de la complejidad conducirá a una mayor posibilidad de comportamiento impredecible. (es decir, la condición de carrera )
Incluso hay circuitos basados en el retraso de propagación, es decir, el oscilador en anillo
En términos generales, hay dos tipos de retraso, "inercial" y "transporte" (y combinaciones de ambos).
Los retrasos "inerciales" representan capacitancias (normalmente parásitas) que tardan en cargarse y descargarse. La mayoría de las puertas lógicas básicas entrarían en esta categoría, ya que las capacitancias de carga y descarga son la causa principal del retraso. Los retrasos pueden no ser simétricos y pueden depender de los estados de otras entradas. Si observa la salida en un osciloscopio, verá que sube/baja hasta su nivel final. Si la entrada cambia con demasiada frecuencia, nunca alcanzará los niveles que se supone que debe alcanzar y obtendrá una salida que sube y baja sin llegar realmente a sus objetivos.
Los retrasos de "transporte" representan cosas que retrasan una señal sin destruir su forma. Un ejemplo es una línea de transmisión debidamente terminada. Una larga cadena de puertas también puede parecerse mucho a un retraso en el transporte para algunas velocidades de conmutación, ya que las puertas individuales tienen tiempo suficiente para alcanzar sus voltajes objetivo, pero la información tarda un tiempo en funcionar en la cadena.
Andy alias