Perché questo è uno standard per porte AND
quando invece potrebbe essere realizzato con due FET e un resistore?
Perché questo è uno standard per porte AND
quando invece potrebbe essere realizzato con due FET e un resistore?
Risposte:
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:
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à).
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 .
Un motivo per cui non credo che nessuno abbia ancora menzionato: Vincoli tecnologici:
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.
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.
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).
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.
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.
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.
I vantaggi dell'utilizzo di un design CMOS sono molti:
Quindi una porta NAND seguita da un inverter viene utilizzata per progettare una porta AND.
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.
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".