Problema con el cálculo del retardo de propagación

1

Necesito calcular el retardo de propagación para este circuito. Estoy confundido porque debo tomar todas las combinaciones necesarias de entradas y salidas o debo tomar la ruta más larga de entrada a salida al decidir tomar la ruta que ¿Tiene el número máximo de puertas lógicas? gracias por cualquier consejo

    
pregunta shadi helf

2 respuestas

1

El modelo más simple es que cada compuerta lógica tiene un valor fijo de retardo de propagación, y si está utilizando compuertas lógicas discretas y no está operando a una frecuencia muy alta, entonces esto es probablemente lo suficientemente bueno. Luego, todo lo que debe hacer es agregar los retrasos de cada compuerta lógica a lo largo de una ruta desde la entrada hasta la salida. Tendrá múltiples rutas de entrada a salida, por lo que necesita encontrar la ruta más lenta, ya que esto determinará la velocidad máxima a la que puede correr el circuito.

Ahora, si está implementando el circuito lógico, por ejemplo, un ASIC, los retrasos de propagación de las puertas lógicas son mucho más bajos que los dispositivos lógicos discretos y, en esta situación, el retraso de propagación es mucho más dependiente de la 1) la número de otras entradas de la puerta lógica a la que está conectada la salida de la puerta anterior, 2) capacitancia del enrutamiento interno ('cableado').

Para una implementación de ASIC, no sabe cuál será la capacidad del enrutamiento interno ya que no ha realizado un diseño y enrutamiento del dispositivo, por lo que se utilizan los valores estimados. Cuando el chip se coloca, coloca y enruta, se extraen los valores reales reales de capacitancia de la disposición física y esto puede realimentarse en un simulador lógico para volver a simular el diseño lógico, y la diferencia entre la disposición previa y la posterior. Las simulaciones de lógica de diseño del circuito pueden ser significativamente diferentes.

Y a menudo hay dos retardos de propagación para cada elemento lógico: un valor de retraso para una señal de entrada ascendente y otro valor para una señal de entrada descendente.

Para los chips de arseniuro de galio, el modelado del retardo de propagación puede ser aún más complejo y puede tener en cuenta (para algunos fabricantes de ASIC) la tasa de variación (el tiempo de subida) de la salida de la puerta lógica anterior.

Si está implementando el diseño en algo como la serie CMOS 4000, 74xx seriest, entonces un simple retraso de propagación fijo para cada compuerta lógica debería ser suficiente, si está implementando en otro tipo de tecnología (con retrasos de menos de nanosegundos). ), es posible que deba utilizar un cálculo de retardo de propagación más complejo.

    
respondido por el Dean
1

Como las señales toman muchos caminos de entradas a salidas en un circuito combinatorio, el retardo de propagación es el camino más largo; es decir, cuando la salida permanecerá estática después de un cambio en las entradas.

Diferentes puertas tienen diferentes retrasos. Por ejemplo, 2 inversores en serie pueden tener el mismo retardo que una sola puerta NAND de 4 entradas con capacidad de accionamiento similar.

Suponiendo que está implementando esto en un CMOS IC, una manera muy fácil de entender qué ruta es la más larga (en general, no solo su ejemplo), es usar el método de Esfuerzo Lógico .

En Esfuerzo lógico básicamente modelas el retraso como $$ d = gh + p $$ donde

  1. d es el retraso (en unidades comparativas);
  2. g es el esfuerzo lógico: la relación de la capacitancia de entrada de una puerta a un inversor capaz de suministrar la misma corriente de salida;
  3. h es el esfuerzo eléctrico: la relación de capacitancia de entrada a carga de la puerta
  4. p es el retraso parasitario

Por ejemplo ( de Wikipedia ): El retraso normalizado total de un inversor que maneja un inversor equivalente es

d = gh + p = (1)(1) + 1 = 2 

El retraso normalizado de una compuerta NAND de dos entradas que conduce una copia idéntica de sí misma (de modo que el esfuerzo eléctrico es 1) es

d = gh + p = (4/3)(1) + 2 = 10/3 
    
respondido por el akellyirl

Lea otras preguntas en las etiquetas