¿Por qué se usan las puertas NAND para hacer puertas AND en las computadoras?

¿Por qué es este un estándar para puertas AND?

ingrese la descripción de la imagen aquí

¿cuándo podría hacerse con dos FET y una resistencia en su lugar?ingrese la descripción de la imagen aquí

NAND (y NOR) son funcionalmente completos , lo que significa que cualquier función lógica se puede implementar usando solo NAND (o NOR). Lo que lo convierte en un bloque de construcción uniforme muy conveniente para cualquier cosa. Sin embargo, no estoy seguro de que sea la única (y la principal) razón.
Técnicamente podría hacer lo que está proponiendo si tiene en cuenta que el V O H (salida alta) se reducirá en aproximadamente un voltaje de umbral de un MOSFET. Imagínese teniendo eso en cuenta con mil millones de transistores... - Debe tener eso en cuenta para no encadenarlos.
En el contexto del diseño de circuitos integrados, las resistencias son físicamente más grandes que los transistores. Y la disipación en la que incurren las resistencias, al diseñar circuitos integrados de alta densidad, hace que las resistencias sean muy indeseables como componentes de puertas lógicas.
@EugeneSh. No creo que la integridad funcional por sí sola sea una razón para seguir la ruta NAND: si los transistores adicionales fueran un costo significativo, entonces valdría la pena adoptar un enfoque menos uniforme pero mejor ajustado. Sin embargo, de hecho, es bastante práctico usar NAND / NOR: a menudo simplemente no necesita los inversores para obtener la lógica AND; simplemente De Morgan: cambie el significado de lo que 1 y 0 son para la siguiente puerta.
Desequilibrio de velocidad entre subir y bajar
Parece que hay dos preguntas aquí. "¿Por qué no usamos resistencias desplegables en lugar de los dos transistores adicionales en, por ejemplo, una puerta nand?" y "¿Por qué usamos dos transistores adicionales para invertir, en lugar de crear una puerta no inversora en primer lugar?"
Porque la disipación de energía estática es horrible. Es por eso que esta (lógica proporcional) fue abandonada en la década de 1970. Entonces imagínelo en un circuito integrado de mil millones de transistores.
@smci: sería posible reemplazar la carga en la parte inferior con un par de PFET en paralelo. Eso resolvería el problema de la disipación estática, pero la salida del AND sería más débil que las entradas.

Respuestas (8)

Para obtener una operación sin inversión para la lógica (es decir, AND u OR frente a NAND o NOR), debe operar los transistores en modo de drenaje común, también conocido como modo "seguidor de fuente".

Entre los problemas con este modo para la lógica:

  • No hay ganancia de voltaje. Después de más de unas pocas etapas, la señal se reduce a nada.
  • Hay una compensación significativa (llamada voltaje de umbral) entre las entradas y las salidas. Una salida de alto nivel será más baja que la correspondiente entrada de alto nivel.

Juntos, estos problemas significan que no puede conectar la salida de esta puerta a las entradas de otra copia de sí misma. Esto lo hace bastante inútil para construir circuitos más complejos.

Esta es la razón por la que todas las familias lógicas exitosas 1 se construyen utilizando transistores en modo de fuente común (o emisor común), que tiene una ganancia de voltaje significativa y no hay compensaciones acumulativas entre entradas y salidas, pero la salida está invertida con respecto a la entrada. Por lo tanto, las funciones básicas incluyen una inversión: ya sea NAND o NOR.

Como beneficio adicional, las puertas NAND y NOR están "funcionalmente completas", lo que significa que puede construir cualquier función lógica (incluidos elementos de almacenamiento como pestillos y flip-flops) a partir de todas las puertas NAND o todas las puertas NOR.


1 Para ser específicos, familias lógicas que usan voltajes como estados lógicos. Esto incluye RTL, DTL, TTL, PMOS, NMOS y CMOS. Las familias lógicas de modo actual, como ECL , utilizan una combinación de seguidores de emisor y transistores de base común para lograr los mismos fines y evitar la saturación (para la velocidad).

Una pregunta secundaria interesante sería por qué no usamos esto para cualquier otra puerta.
@Joshua: No estoy seguro de a qué se refiere "esto", pero si se trata de una lógica de modo actual, tiene mucho que ver con el consumo de energía de estado estable por puerta relativamente alto.
@DaveTweed Creo que Joshua quiso decir esto: hacer lo que OP propone, tener 2 NMOS como seguidor de voltaje (sin ganancia de voltaje), y en la siguiente etapa de cualquier lógica que se esté implementando, usa una ganancia de alto voltaje. Entonces alternas entre "seguidor de voltaje" / "algún inversor en alguna parte". - La pregunta de Joshua es por qué ese diseño (seguidor/inversor alterno) específicamente no se usa. - Quizás tu comentario está dirigido contra eso, tengo dificultades para entender/razonar tu respuesta.
@HarrySvensson: Puede que tengas razón. Tampoco estaba seguro de lo que Joshua quiso decir con "cualquier otra puerta", pero decidí intentarlo en la oscuridad. Como nunca volvió a aclarar, nunca lo sabremos con seguridad.
@Joshua ¿Traduje correctamente tu comentario?
@HarrySvensson Lo hiciste y DaveTweed ya dijo qué tiene de malo.

Lo que estás describiendo es la lógica PMOS . Tiene algunas desventajas significativas sobre CMOS:

  • Si el valor de la resistencia es bajo, la puerta consumirá una cantidad significativa de energía estática cuando la puerta esté activa. Las puertas CMOS esencialmente no consumen energía cuando no están cambiando activamente.

  • Si el valor de la resistencia es alto, la compuerta tarda en apagarse, porque la capacitancia de cualquier compuerta impulsada por la salida debe descargarse a través de la resistencia. Además, una resistencia de alto valor probablemente consumirá más área que un conjunto de transistores complementarios.

  • Por razones relacionadas con el proceso, PMOS es menos eficiente que la lógica inversa: NMOS .

No, el OP muestra transistores de canal N. Falla por una razón completamente diferente.
@DaveTweed Estaba trabajando bajo el supuesto de que parte era un error de redacción. Si desea explicar en qué se equivocaron en una respuesta separada, eso también podría ser útil.
Todavía debería haber sido obvio: si esos fueran transistores de canal P, implementaría una función NOR, no AND.
Una pequeña molestia solo porque soy obsesivo, está más relacionado con la física que con el proceso, la movilidad de los agujeros es más baja que la movilidad de los electrones.
La cantidad de votos positivos que tiene esta respuesta me confunde mucho.
Síndrome de @HarrySvensson Hot-Network-Question quizás. Una avalancha de usuarios de todo el sitio con 101 representantes que tienen poco conocimiento del dominio y solo pueden votar a favor , no en contra. Sesga mucho las estadísticas en un sitio pequeño como este.

Una razón que no creo que nadie haya mencionado todavía: Restricciones tecnológicas:

  1. Las resistencias en el chip son masivas en comparación con los transistores. Para obtener un valor decente, estamos hablando de órdenes de magnitud más grandes que los transistores más pequeños. En otras palabras, además de todas las demás ventajas que obtiene con un CMOS adecuado (corriente estática, niveles de transmisión, oscilación de salida), también es mucho más económico.

  2. Patrones: los transistores en la lógica pueden ser tan pequeños porque están modelados de manera repetitiva. Esto también les permite obtener mayores rendimientos y un rendimiento más consistente. Lanzar resistencias arruinaría esto.

  3. Capacitancia: La limitación de velocidad en un sistema lógico es la capacitancia de la siguiente etapa. Más capacitancia significa más lento (menos rendimiento) o se necesita más fuerza de accionamiento (transistores más grandes, más área, más corriente estática, más consumo de energía, más capacitancia presentada a la etapa anterior). Una resistencia grande probablemente le dará mucha capacidad para cargar, ya que ocupa un área físicamente grande. Esto podría dañar el rendimiento.

Esto a veces se hace en tecnologías más especializadas en las que es posible que no tenga buenos transistores lógicos (para aplicaciones analógicas/RF).

La lógica de resistencias de transistores es un campo de conocimiento. Las propiedades de las puertas lógicas que se basan en resistencias son muy diferentes a las propiedades de las que usan transistores. Por un lado, las resistencias desplegables que se mantienen en estado alto disipan energía continuamente. Esto puede ser un problema para los diseños alimentados por batería o de alta densidad. Lo mismo se aplica al revés (para pulldowns mantenidos bajos).

Otra área en la que hay una gran diferencia es en la velocidad y la fuerza de conducción. La estructura de salida push-pull utilizada en CMOS puede cambiar rápidamente sin disipar energía cuando está estática.

Tenga en cuenta que el circuito que dibujó no funcionará en absoluto. No puede colocar NMOS en la rama superior a menos que el voltaje de entrada sea mayor que VCC. Si la salida tiene mucha carga, su circuito no podrá conducir cerca de VCC. Es posible que ni siquiera sea lo suficientemente alto como para que algunas puertas lógicas lo reconozcan como "alto".

Esto no es solo un detalle. Resulta que es muy difícil construir algo que cambie de riel a riel en una etapa a menos que sea de naturaleza inversora (como lo son NAND y NOR). Y esta es la verdadera razón por la cual las puertas AND usan NAND seguido de NOT (inversor). Nadie en el mundo conoce una manera de hacer una puerta CMOS AND de uso general con menos de 6 transistores. Lo mismo se aplica a OR.

No es raro que los dispositivos NMOS de 5 voltios cambien las señales del lado alto usando transistores NMOS sin una fuente de polarización de puerta por encima de VDD. El umbral de conmutación está por debajo de 2,4 voltios, por lo que uno podría permitirse tener un pull-up débil que eleve un nodo a 4 voltios y luego usarlo para operar la puerta de un transistor de paso. Los registros de desplazamiento dinámico contenidos en el chip TIA del Atari 2600 se implementan de esa manera.
Gracias, @supercat. no sabia eso Sin embargo, obviamente hay muchas limitaciones. Y no cambia el hecho de que el circuito del OP no es una compuerta AND de propósito general viable. Sin embargo, podría funcionar para cargas que no necesitan la entrada cerca de VCC.

Las ventajas de usar un diseño CMOS son muchas:

  1. En la lógica NMOS que ha descrito, si la salida es alta (ambas entradas son altas), hay una ruta directa (resistiva) para el flujo de corriente. Entonces, en ese caso, la puerta consumirá una gran cantidad de energía (V ^ 2 / R) incluso en estado estable. Sin embargo, en CMOS, la corriente solo puede fluir cuando los 4 transistores están encendidos (es decir, cuando la puerta está cambiando).
  2. Por lo general, las resistencias son muy difíciles de lograr en el silicio y ocupan una gran cantidad de espacio en el chip. Además, los valores precisos de resistencia no son alcanzables en la práctica.
  3. En la lógica NMOS, el voltaje de salida no puede alcanzar su valor máximo (+5 V) porque después de alcanzar un valor mínimo, los transistores comenzarán a apagarse (por lo tanto, apagarán la rama de carga). Esto se traduce directamente en márgenes de ruido reducidos.
  4. La lógica CMOS se puede usar muy fácilmente para hacer posiblemente cualquier circuito con muy pocos transistores, que consuma poca energía y funcione a altas velocidades. Como tal, hacer una parte del circuito como NMOS (con carga resistiva) es muy engorroso e ineficiente.

Entonces, se usa una puerta NAND seguida de un inversor para diseñar una puerta AND.

El punto #1 muestra muy bien por qué NMOS necesita más potencia que CMOS.

Una razón importante en la lógica TTL, y sugeriría en la mayoría de las familias lógicas, es que el elemento de ganancia se está invirtiendo. Para tener una salida no inversora con buenas características de accionamiento, se requiere un inversor adicional.

Este inversor es una cosa mala.

  • usa poder
  • Ralentiza la función lógica.
  • Por lo general, no le importa la inversión y, a veces, la necesita.

Dado que generalmente luchamos contra la velocidad con puertas discretas (o lo estábamos cuando eran la única opción), las puertas invertidas dominaron el día. Había puertas no inversoras disponibles (compare el 7400 con el 7408).

El principal ejemplo de esto es la puerta and-or-invert . Para números TTL típicos, el retraso de propagación es el mismo que el de NAND y NOR, pero incluye dos niveles de lógica.

Construir un AND a partir de una NAND permite usar tamaños de puerta mínimos para la lógica y dimensionar los dos (y solo dos) transistores en el inversor para controlar la línea. Esto maximiza la velocidad y minimiza la pérdida de energía a expensas de solo un poco más de área utilizada para los transistores adicionales (teniendo en cuenta el tamaño de la resistencia necesaria para impulsar la línea en la aplicación prevista).

Además, para compartir algo de la sabiduría que aprendí en la universidad (hace mucho tiempo en una galaxia muy, muy lejana...): Una vez disfrutamos de una presentación sobre lógica de matriz de puertas. Al final, un estudiante preguntó por qué un ingeniero debería molestarse en minimizar la cantidad de compuertas NAND utilizadas cuando todas esas compuertas NAND estaban en el chip en primer lugar. La respuesta del presentador se me quedó grabada durante 30 años: porque si no lo hacemos nosotros, lo hará nuestra competencia.

Si su competidor puede hacer un circuito más rápido y con mayor eficiencia energética sin una diferencia apreciable en el costo, entonces usar la resistencia es un error comercial, no solo un error de ingeniería.

Una señal lógica que pasa a través de una puerta no amplificadora terminará siendo significativamente más débil de lo que era al principio. Si bien se podría incluir una compuerta AND no inversora dentro de un chip, las compuertas alimentadas por la salida débil probablemente cambiarían mucho más lentamente que las compuertas alimentadas por compuertas alimentadas por una salida fuerte que el tiempo requerido para pasar una señal a través de un NAND, inversor , y otra compuerta, probablemente sería menor que si la NAND y el inversor fueran reemplazados por un AND de salida débil.

Tenga en cuenta que incluso si tiene transistores NMOS y PMOS disponibles y desea construir una compuerta AND de salida débil, debe construir la compuerta de manera similar a una compuerta NOR CMOS, pero invirtiendo los transistores NMOS y PMOS, para evitar disipación de energía estática. Las resistencias son muy costosas, por lo que se debe evitar usarlas a menos que sea absolutamente necesario.

Sin embargo, un punto que no se ha mencionado en otras respuestas es que una puerta inversora puede contener una combinación de salidas en serie y en paralelo. Por ejemplo, uno podría tener una puerta compleja práctica que calcula "no ((X e Y) o (X y Z) o (Y y Z))" utilizando solo un nivel de inversión. Aunque no es práctico tener un "Y" que alimente su salida a múltiples lugares en un circuito, uno puede incluir una puerta "Y" en una o más entradas de una puerta "NOR", o una puerta "O" en uno o más entradas de una puerta "NAND".