Tiempo de conmutación de la lógica de la puerta CMOS en función de los vectores de entrada

0

Mi pregunta es sobre el tiempo de conmutación de las puertas lógicas CMOS en función de la entrada.

Diga que tengo una puerta NAND y mis vectores de entrada son:

00 | 1
01 | 1
11 | 0
10 | 1

Por lo tanto, la salida no está cambiando en el caso de los primeros 2 vectores e interruptores para el resto.

Me gustaría saber si la puerta perderá temporalmente su estado de Lógica 1 y en el proceso se agregará al tiempo de cálculo cuando la entrada cambie de:

00 ---> 01

Necesito saber esto ya que he construido un simulador de netlist (verilog) de nivel de puerta que se agrega al tiempo de cálculo solo cuando la salida cambia. Necesito saber si mi enfoque debería mirar los valores de entrada en su lugar.

    
pregunta sanjay

2 respuestas

1

@sanjay: una compuerta CMOS NAND estándar tiene dos dispositivos PMOS en paralelo para tirar de la salida (para suministrar) y dos compuertas NAND de la serie para bajar la salida (a tierra). Si cualquiera de las entradas es cero, entonces al menos un PMOS está activando la salida y al menos uno de los FET de NMOS de la serie está apagado, lo que evita que la salida disminuya.

Por lo tanto, la salida no "perderá su estado". Es posible que se observen pequeños fallos en la tensión de salida cuando la entrada cambia de 0 a 1 debido a la capacitancia de la superposición de la puerta en los FET, pero cualquier error como este debe ser lo suficientemente pequeño como para que la próxima puerta o etapa no vea una cambio en la salida NAND.

Tenga en cuenta que normalmente no consideramos que una puerta lógica combinacional tenga un "estado". En el diseño digital, un "estado" implica algún tipo de memoria o condición de bloqueo como en un flip-flop o pestillo.

    
respondido por el mixed_signal
1

Las puertas lógicas como AND, OR, NOT, etc., no están discretizadas en el tiempo, no manejan el tiempo en pasos. En cada momento, reflejan la entrada en algún momento anterior (hace unos nanosegundos, por lo general). Por varias razones, las señales pueden demorarse por un pequeño momento de tiempo (longitud de línea, capacitancia, etc.) y como resultado por períodos de tiempo igualmente pequeños, su salida podría reflejar un estado donde una entrada ha cambiado y otra no (todavía). Estos se conocen como peligros .

Si los peligros serán un problema en su salida, necesita diseñar alrededor de ellos. Para contar, por ejemplo, considere usar código gris que recorre todos los valores y solo cambia un bit a la vez (pero es un poco difícil crear hardware, el software no tiene problemas).

Como alternativa, comience a usar relojes y chanclas y deje que el tiempo se estabilice. No seas demasiado cauteloso. A menudo, los sistemas de puertas muy grandes (por ejemplo, una ALU completa) se pueden activar simultáneamente y se pueden generar todo tipo de riesgos. Siempre que se permita el tiempo suficiente para que el valor se establezca antes de engancharse en un flip-flop, entonces no hay problema.

El problema es similar al rebote en los interruptores y las carreras en el software. Siempre elimine los peligros de las salidas que accionan los dispositivos de potencia: es una manera fácil de atornillar lo que esté conectado a la salida. Enganche la salida con un flip-flop cronometrado o use un condensador para eliminar los peligros en este caso.

    
respondido por el Dan Sheppard

Lea otras preguntas en las etiquetas