Perché le porte NAND vengono utilizzate per creare porte AND nei computer?


41

Perché questo è uno standard per porte AND

inserisci qui la descrizione dell'immagine

quando invece potrebbe essere realizzato con due FET e un resistore?

inserisci qui la descrizione dell'immagine


21
NAND (e NOR) sono funzionalmente completi , il che significa che qualsiasi funzione logica può essere implementata usando solo NAND (o NOR). Il che lo rende un blocco di costruzione uniforme molto conveniente per qualsiasi cosa. Non sono sicuro che sia l'unica (e la principale) ragione.
Eugene Sh.

1
Potresti tecnicamente fare ciò che stai proponendo se tieni presente che (output high) sarà ridotto di circa una tensione di soglia di un MOSFET. Immagina di tenerlo a mente con 1 miliardo di transistor ... - Devi tenerlo a mente in modo da non incatenarli. VOH
Harry Svensson,

26
Nel contesto della progettazione di circuiti integrati, i resistori sono fisicamente più grandi dei transistor. E la dissipazione sostenuta dai resistori, durante la progettazione di circuiti integrati ad alta densità, rende i resistori molto indesiderabili come componenti della porta logica.
mkeith,


4
Sembra che ci siano due domande qui. "Perché non utilizziamo resistori pull down invece dei due transistor extra, ad esempio in una porta nand?" E "Perché utilizziamo due transistor extra per invertire, invece di creare una porta non invertente nella prima posto? ”
ctrl-alt-delor

Risposte:


67

Per ottenere un'operazione non invertente per la logica (ad es. AND o OR rispetto a NAND o NOR), è necessario utilizzare i transistor in modalità drain comune, nota anche come modalità "source follower".

Tra i problemi con questa modalità per la logica:

  • Non c'è guadagno di tensione. Dopo più di alcune fasi, il segnale non scende a nulla.
  • Esiste un offset significativo (chiamato soglia di tensione) tra ingressi e uscite. Un'uscita di alto livello sarà inferiore all'ingresso di alto livello corrispondente.

Insieme, questi problemi indicano che non è possibile collegare l'output di questo gate agli input di un'altra copia di se stesso. Questo lo rende piuttosto inutile per la costruzione di circuiti più complessi.

Questo è il motivo per cui tutte le famiglie logiche di successo 1 sono costruite usando transistor in modalità common-source (o common-emitter), che ha un guadagno di tensione significativo e nessun offset cumulativo tra ingressi e uscite - ma l'uscita è invertita rispetto all'ingresso. Pertanto, le funzioni di base includono un'inversione: NAND o NOR.

Come bonus, le porte NAND e NOR sono "funzionalmente complete", il che significa che è possibile creare qualsiasi funzione logica (compresi elementi di memorizzazione come chiavistelli e infradito) da tutte le porte NAND o tutte le porte NOR.


1 Per essere specifici, famiglie logiche che usano tensioni come stati logici. Ciò include RTL, DTL, TTL, PMOS, NMOS e CMOS. Le famiglie logiche in modalità corrente come ECL usano effettivamente una combinazione di follower di emettitori e transistor di base comune per raggiungere gli stessi fini evitando la saturazione (per la velocità).


2
Una domanda secondaria interessante sarebbe perché non usiamo questo per ogni altro cancello.
Giosuè,

2
@Joshua: Non sono sicuro di cosa si riferisca a "questo", ma se si tratta della logica della modalità corrente, ha molto a che fare con il consumo relativamente elevato di energia allo stato stazionario per gate.
Dave Tweed

@DaveTweed Credo che Joshua intendesse questo: facendo ciò che OP propone, avendo 2 NMOS come follower di tensione (nessun guadagno di tensione), e nella fase successiva di qualsiasi logica che viene implementata, usi un guadagno di alta tensione. Quindi si alternano "follower di tensione" / "qualche inverter da qualche parte". - La domanda di Joshua è perché quel progetto (alternatore follower / inverter) non viene utilizzato nello specifico. - Forse il tuo commento è mirato a quello, sto avendo difficoltà a capire / ragionare con la tua risposta.
Harry Svensson,

@HarrySvensson: potresti avere ragione. Inoltre, non ero sicuro di cosa intendesse Joshua per "ogni altro cancello", ma ho deciso di fare una pugnalata nel buio. Dato che non è mai tornato per chiarire, non lo sapremo mai con certezza.
Dave Tweed

2
@HarrySvensson L'hai fatto e DaveTweed ha già detto cosa c'è che non va.
Giosuè,

24

Quello che stai descrivendo è la logica PMOS . Ha alcuni svantaggi significativi rispetto a CMOS:

  • Se il valore del resistore è basso, il gate consumerà una quantità significativa di energia statica quando il gate è attivo. I cancelli CMOS non consumano essenzialmente energia quando non cambiano attivamente.

  • Se il valore del resistore è alto, il gate si spegne lentamente perché la capacità di tutti i gate pilotati dall'uscita deve essere scaricata attraverso il resistore. Inoltre, un resistore di alto valore consumerà probabilmente più area di una serie di transistor complementari.

  • Per motivi legati al processo, PMOS è meno efficiente della logica inversa - NMOS .


4
No, l'OP mostra transistor a canale N. Non riesce per un motivo completamente diverso.
Dave Tweed

3
@DaveTweed Stavo lavorando supponendo che la parte fosse un errore di disegno. Se desideri spiegare cosa hanno sbagliato in una risposta separata, potrebbe essere utile anche questo.
duskwuff,

5
Avrebbe dovuto essere ancora ovvio: se quelli fossero transistor a canale P, implementerebbe una funzione NOR, non AND.
Dave Tweed

4
Il numero di voti espressi da questa risposta mi confonde molto.
Harry Svensson,

3
Forse la sindrome di Hot-Network-Question di @HarrySvensson. Un'ondata di utenti a livello di sito con 101 rappresentanti che hanno una scarsa conoscenza del dominio e possono solo votare , non ridimensionare. Inclina molto le statistiche su un piccolo sito come questo.
pipe

22

Un motivo per cui non credo che nessuno abbia ancora menzionato: Vincoli tecnologici:

  1. I resistori su chip sono enormi rispetto ai transistor. Per ottenere un valore decente, stiamo parlando di ordini di grandezza più grandi dei transistor più piccoli. In altre parole, accanto a tutti gli altri vantaggi che si ottengono con il corretto CMOS (corrente statica, livelli di azionamento, oscillazione dell'uscita), è anche molto più economico.

  2. Patterning: i transistor sulla logica possono essere così piccoli perché sono modellati in modo ripetitivo. Ciò consente inoltre di ottenere rendimenti più elevati e prestazioni più coerenti. Lanciare resistori rovinerebbe tutto questo.

  3. Capacità: la limitazione della velocità in un sistema logico è la capacità della fase successiva. Più capacità significa più lento (meno prestazioni) o più forza di azionamento necessaria (transistor più grandi, più area, più corrente statica, più consumo di energia, più capacità presentata allo stadio precedente). Un grande resistore probabilmente ti darà molta capacità per caricarti mentre occupa un'area fisicamente grande. Ciò potrebbe danneggiare le prestazioni.

Questo a volte viene fatto su tecnologie più specializzate in cui potresti non avere buoni transistor logici (per applicazioni analogiche / RF).


8

La logica dei resistori a transistor è un campo di conoscenza. Le proprietà delle porte logiche che si basano su resistori sono molto diverse rispetto alle proprietà di quelle che utilizzano transistor. Per uno, i resistori di pulldown che sono mantenuti nello stato alto dissipano continuamente potenza. Questo può essere un problema per i progetti alimentati a batteria o ad alta densità. Lo stesso vale al contrario (per i pulldown tenuti bassi).

Un'altra area in cui c'è una grande differenza è in velocità e forza motrice. La struttura di uscita push-pull utilizzata in CMOS può cambiare rapidamente senza dissipare energia quando statica.

Nota che il circuito che hai disegnato non funzionerà affatto. Non è possibile inserire NMOS nel ramo superiore a meno che la tensione di ingresso sia superiore a VCC. Se l'uscita ha molto carico, il tuo circuito non sarà in grado di guidare da nessuna parte vicino a VCC. Potrebbe anche non essere abbastanza alto da essere riconosciuto come "alto" da alcune porte logiche.

Questo non è solo uno scherzo. A quanto pare, è molto difficile costruire qualcosa che cambi rail-to-rail in uno stadio a meno che non si inverta in natura (come lo sono NAND e NOR). E questo è il vero motivo per cui le porte AND usano NAND seguita da NOT (inverter). Nessuno al mondo conosce un modo per realizzare una porta CMOS AND per scopi generici con meno di 6 transistor. Lo stesso vale per OR.


Non è raro nei dispositivi NMOS a 5 volt commutare segnali high-side utilizzando transistor NMOS senza una sorgente di polarizzazione del gate sopra VDD. La soglia di commutazione è inferiore a 2,4 volt, quindi si potrebbe permettersi di avere un pull-up debole che solleva un nodo a 4 volt, e quindi usarlo per far funzionare il gate di un transistor di passaggio. I registri a scorrimento dinamico contenuti nel chip TIA dell'Atari 2600 sono implementati in questo modo.
Supercat,

Grazie, @supercat. Non lo sapevo. Ovviamente ci sono molti limiti, comunque. E non cambia il fatto che il circuito dell'OP non è un gate AND per scopi generali praticabile. Tuttavia, potrebbe funzionare per carichi che non necessitano dell'ingresso vicino a VCC.
mkeith,

6

Un motivo importante nella logica TTL, e suggerirei nella maggior parte delle famiglie di logici, è che l'elemento guadagno si sta invertendo. Per avere un'uscita non invertente con buone caratteristiche di azionamento è necessario un inverter aggiuntivo.

Questo inverter è una cosa negativa.

  • Usa il potere
  • Rallenta la funzione logica
  • Di solito, non ti interessa l'inversione e a volte ne hai bisogno.

Dato che di solito stiamo combattendo la velocità con cancelli discreti (o lo eravamo quando erano l'unica scelta), invertire i cancelli ha dominato la giornata. Erano disponibili porte non invertenti (confronta il 7400 con il 7408).

Il principale esempio di ciò è il cancello and-or-inverti . Per i tipici numeri TTL, il ritardo di propagazione è lo stesso di NAND e NOR, ma include due livelli di logica.


6

I vantaggi dell'utilizzo di un design CMOS sono molti:

  1. Nella logica NMOS che hai descritto, se l'uscita è alta (entrambi gli ingressi sono alti), esiste un percorso diretto (resistivo) per il flusso di corrente. Quindi, in quel caso, il gate consumerà una grande quantità di energia (V ^ 2 / R) anche nello stato stazionario. Nella CMOS, tuttavia, la corrente può fluire solo quando tutti e 4 i transistor sono attivi (ovvero: quando il gate sta cambiando).
  2. In genere le resistenze sono molto difficili da ottenere sul silicio e occupano molto spazio nel chip. Anche valori precisi di resistenza non sono praticamente raggiungibili.
  3. Nella logica NMOS, la tensione di uscita non può raggiungere il suo valore massimo (+ 5 V) perché dopo che è stato raggiunto un valore minimo, i transistor iniziano a spegnersi (quindi disattivando il ramo di carica). Questo si traduce direttamente in margini di rumore ridotti.
  4. La logica CMOS può essere utilizzata molto facilmente per realizzare qualsiasi circuito con pochissimo numero di transistor, consumando bassa potenza e per operare ad alte velocità. In quanto tale, rendere parte del circuito come NMOS (con carico resistivo) è molto ingombrante e inefficiente.

Quindi una porta NAND seguita da un inverter viene utilizzata per progettare una porta AND.


Il punto n. 1 mostra bene perché NMOS ha bisogno di più potenza di CMOS.
Camille Goudeseune,

4

La creazione di un AND da una NAND consente di utilizzare dimensioni di gate minime per la logica e le dimensioni dei due (e solo due) transistor nell'inverter per guidare la linea. Ciò massimizza la velocità e minimizza la perdita di potenza a scapito di un po 'più di area utilizzata per i transistor aggiuntivi (tenendo conto delle dimensioni del resistore necessario per pilotare la linea nell'applicazione prevista).

Inoltre, per condividere un po 'di saggezza che ho imparato al college (molto tempo fa in una galassia molto, molto lontana ...): Una volta ci siamo goduti una presentazione sulla logica gate-array. Alla fine, uno studente ha chiesto perché un ingegnere dovrebbe preoccuparsi di ridurre al minimo il numero di porte NAND utilizzate quando tutte quelle porte NAND erano sul chip in primo luogo? La risposta del presentatore è rimasta con me per 30 anni: perché se non lo facciamo, lo faranno i nostri concorrenti.

Se il tuo concorrente è in grado di realizzare un circuito più veloce e più efficiente dal punto di vista energetico senza alcuna differenza apprezzabile in termini di costi, l'utilizzo del resistore è un errore commerciale, non solo un errore di progettazione.


2

Un segnale logico che passa attraverso un gate non amplificante finirà per essere significativamente più debole di quanto non fosse inizialmente. Mentre uno potrebbe includere un gate AND non invertente all'interno di un chip, i gate alimentati dall'uscita debole probabilmente passerebbero molto più lentamente rispetto ai gate alimentati da gate alimentati da un'uscita forte che il tempo necessario per passare un segnale attraverso una NAND, inverter , e un altro gate, sarebbe probabilmente inferiore rispetto alla sostituzione della NAND e dell'inverter con un AND di uscita debole.

Si noti che anche se si dispone di transistor NMOS e PMOS disponibili e si desidera costruire un gate AND con uscita debole, si dovrebbe costruire il gate in modo simile a un gate NOR CMOS, ma invertendo i transistor NMOS e PMOS, in modo da evitare dissipazione di potenza statica. I resistori sono molto costosi, quindi si dovrebbe evitare di usarli a meno che non siano assolutamente necessari.

Un punto che non è stato menzionato in altre risposte, tuttavia, è che una porta di inversione può contenere una combinazione di uscite in serie e parallele. Ad esempio, si potrebbe avere un gate complesso pratico che calcola "non ((X e Y) o (X e Z) o (Y e Z))" utilizzando solo un livello di inversione. Sebbene non sia pratico avere un "AND" che alimenta la sua uscita in più punti di un circuito, si può includere un gate "AND" su uno o più ingressi di un gate "NOR" o un gate "OR" su uno o più ingressi di un cancello "NAND".

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.