Vai al contenuto
ELECTRONICS ENGINEERINGelectronics-engineering.com
Consigliata dall'autore Elettronica dei Sistemi Digitali

Porte logiche a BJT: RTL, DTL, TTL 7400, Schottky ed ECL

Il transistor come interruttore e la saturazione, NOR RTL e fan-out dimostrato, DTL, la NAND TTL 7400 stato per stato con totem-pole, livelli, margini di rumore e picco di corrente simulati con SPICE, TTL Schottky, ECL che non satura mai, confronto con il CMOS.

https://www.electronics-engineering.com/porte-logiche-bjt-rtl-dtl-ttl-ecl

Nessun voto ancora: sii il primo a votare questa pagina.

Prima del CMOS, la logica digitale era fatta di transistor bipolari. Le famiglie RTL, DTL, TTL ed ECL hanno costruito i calcolatori dagli anni Sessanta agli Ottanta (il calcolatore di guida delle missioni Apollo era fatto interamente di porte NOR in RTL), e la TTL ha fissato i livelli logici a 5 V e le convenzioni che si usano ancora oggi. Questa lezione mostra come funzionano, con i conti a mano e le simulazioni SPICE: il transistor come interruttore e il problema della saturazione, la porta NOR RTL e il suo fan-out, la DTL, la NAND TTL 7400 con lo stadio d’uscita totem-pole, le varianti Schottky, la ECL che non satura mai, e il confronto con il CMOS.

L’idea in parole semplici

In una porta logica il transistor non amplifica: fa da interruttore. Spento, lascia l’uscita alta; acceso, la tira verso massa. Le famiglie logiche bipolari sono modi diversi di comandare questi interruttori e di collegare le porte tra loro. I problemi sono sempre gli stessi tre: quante porte può pilotare un’uscita (il fan-out), quanto disturbo sopporta un ingresso senza sbagliare (il margine di rumore), e quanto in fretta l’interruttore si apre e si chiude (il ritardo di propagazione), pagando in cambio un certo consumo. Ogni nuova famiglia ha migliorato uno di questi aspetti; la ECL, per essere velocissima, ha rinunciato a spegnere davvero i transistor.

Il transistor come interruttore

Il BJT ha due stati utili per la logica: interdetto (V_{BE} \lt  0{,}5 V circa, nessuna corrente, uscita alta) e saturo (base e collettore entrambi polarizzati in diretta, V_{CE,sat} tra 0,1 e 0,2 V, uscita bassa). Per saturare il transistor la corrente di base deve superare quella che servirebbe in zona attiva: \beta I_B \gt  I_{C,sat} = (V_{CC} - V_{CE,sat})/R_C. Il rapporto tra le due si chiama sovrapilotaggio.

La saturazione ha un costo: la base si riempie di cariche in eccesso, e quando la si vuole spegnere bisogna prima toglierle. Il tempo di immagazzinamento (storage time) che ne risulta è spesso il termine più lungo del ritardo di una porta satura: per questo le famiglie veloci evitano la saturazione (Schottky, ECL).

La RTL

Porta NOR in logica RTL
Due transistor con i collettori uniti sulla stessa resistenza R_C verso l’alimentazione; ciascun ingresso, A e B, arriva in base attraverso la resistenza R_B. L’uscita Y è il nodo dei collettori.

La Resistor-Transistor Logic è la più semplice: ogni ingresso comanda un transistor attraverso una resistenza di base, e i collettori sono in parallelo su una resistenza comune (figura). Se almeno un ingresso è alto, il suo transistor satura e l’uscita va bassa; l’uscita è alta solo se tutti gli ingressi sono bassi: è una NOR. Valori tipici della famiglia: V_{CC} = 3{,}6 V, R_B = 450 Ω, R_C = 640 Ω.

Il punto debole è il livello alto. Quando l’uscita è alta, la resistenza R_C deve fornire la corrente di base a tutte le porte collegate, e ciascun carico è una resistenza R_B in serie a una giunzione base-emettitore (circa 0,75 V).

Teorema. Con N carichi uguali la tensione d’uscita alta della porta RTL vale

    \[ V_{OH} = V_{BE} + (V_{CC} - V_{BE})\,\frac{R_B/N}{R_B/N + R_C} \]

Dimostrazione. Le N resistenze di base dei carichi sono in parallelo (R_B/N) e terminano tutte sulla tensione V_{BE} delle giunzioni. Con il transistor della porta interdetto, R_C e R_B/N formano un partitore tra V_{CC} e V_{BE}. ∎

carichi NV_OH calcolataV_OH con SPICEmargine sopra 0,75 V
11,93 V1,94 V1,18 V
21,49 V1,51 V0,74 V
51,10 V1,11 V0,35 V
100,94 V0,95 V0,19 V

Con dieci carichi il livello alto è a meno di 0,2 V dalla soglia: basta un piccolo disturbo per sbagliare. Il fan-out pratico della RTL è di 4 o 5 porte, e i margini di rumore sono piccoli in ogni caso.

La DTL

La Diode-Transistor Logic sposta la funzione logica sui diodi. Ogni ingresso è il catodo di un diodo; gli anodi sono uniti e alimentati da una resistenza; da quel nodo, attraverso due diodi in serie, si comanda la base del transistor d’uscita. Se un ingresso è basso, il suo diodo conduce e tiene il nodo a circa 0,9 V: i due diodi in serie e la base non bastano a condurre (servirebbero 3 \times 0{,}7 = 2{,}1 V), il transistor è spento e l’uscita alta. Solo se tutti gli ingressi sono alti la corrente va in base, il transistor satura e l’uscita va bassa: è una NAND.

Due vantaggi rispetto alla RTL: i diodi in serie alzano la soglia d’ingresso a circa 1,4 V, migliorando il margine di rumore; e un’uscita alta non deve fornire quasi corrente ai carichi (i loro diodi d’ingresso sono interdetti), quindi il livello alto non crolla con il fan-out. Un’uscita bassa invece deve assorbire la corrente che esce da ogni ingresso basso: il fan-out è limitato dalla corrente che il transistor saturo può assorbire.

La TTL: la NAND 7400

Porta NAND TTL della serie 7400
Q1 è il transistor d’ingresso a due emettitori, A e B, con la base alimentata da R1 = 4 kΩ. Il suo collettore comanda Q2, lo sfasatore, con R2 = 1,6 kΩ sul collettore e R3 = 1 kΩ sull’emettitore. Lo stadio d’uscita totem-pole è fatto da Q3 con R4 = 130 Ω e il diodo D verso l’uscita Y, e da Q4 verso massa.

La Transistor-Transistor Logic sostituisce i diodi d’ingresso con un transistor a più emettitori (Q1) e aggiunge uno stadio d’uscita attivo. Vale la pena seguirla stato per stato.

Un ingresso basso (0,2 V). La giunzione base-emettitore di Q1 su quell’ingresso conduce: la base di Q1 sta a 0,9 V e da R1 escono (5 - 0{,}9)/4\text{ k}\Omega \approx 1{,}0 mA, che lasciano la porta dall’ingresso (è la corrente I_{IL} che chi pilota deve assorbire). Q1 è saturo e tiene la base di Q2 a circa 0,3 V: Q2 e Q4 sono spenti. R2 porta la base di Q3 verso l’alimentazione, e Q3 con il diodo D tira su l’uscita: V_{OH} \approx 5 - V_{BE3} - V_D \approx 3{,}6 V.

Tutti gli ingressi alti. Le giunzioni d’ingresso di Q1 sono interdette; la corrente di R1 passa dalla giunzione base-collettore di Q1 (che lavora “al contrario”) nella base di Q2. Q2 satura, la corrente del suo emettitore accende Q4, che satura e tira l’uscita a V_{OL} tra 0,1 e 0,3 V.

Teorema. Con l’uscita bassa, il diodo D garantisce che Q3 sia spento.

Dimostrazione. La base di Q3 è il collettore di Q2 saturo: V_{B3} = V_{CE2,sat} + V_{BE4} \approx 0{,}2 + 0{,}7 = 0{,}9 V. Perché Q3 conduca, la sua base dovrebbe stare almeno a V_{OL} + V_D + V_{BE3} \approx 0{,}2 + 0{,}7 + 0{,}7 = 1{,}6 V. Poiché 0,9 V < 1,6 V, Q3 è interdetto. Senza il diodo la soglia sarebbe V_{OL} + V_{BE3} = 0{,}9 V, proprio uguale alla tensione di base: Q3 condurrebbe e una corrente limitata solo da R4 passerebbe dall’alimentazione a massa attraverso Q3 e Q4. ∎

Lo stadio totem-pole. In alto un inseguitore di emettitore (Q3), in basso un interruttore saturo (Q4): l’uscita ha bassa resistenza in tutti e due gli stati. Questo è il grande vantaggio della TTL: le capacità di carico vengono caricate e scaricate in fretta in entrambe le direzioni, mentre nella RTL e nella DTL il fronte di salita passa attraverso una resistenza.

Caratteristica di trasferimento e corrente di alimentazione della NAND TTL (SPICE)
A sinistra la tensione d’uscita in funzione di quella d’ingresso, con l’altro ingresso alto e dieci porte di carico: alta a 3,61 V fino a 0,59 V, poi una discesa con pendenza circa −1,4 mentre Q2 entra in zona attiva, e la caduta brusca a 1,5 V quando si accende Q4, fino a 0,31 V. Le linee rosse sono i punti a pendenza −1, V_IL e V_IH; le verdi i livelli d’uscita. A destra la corrente assorbita dalla porta in milliampere: 1,4 mA con l’uscita alta, 3,1 mA con l’uscita bassa e un picco di 16,5 mA durante la commutazione.

La caratteristica di trasferimento (figura, a sinistra) ha tre tratti. Fino a circa 0,6 V Q2 è spento e l’uscita è alta. Tra 0,6 e 1,4 V Q2 conduce in zona attiva ma Q4 è ancora spento: Q2 è un amplificatore a emettitore comune con guadagno circa -R_2/R_3 = -1{,}6 (SPICE dà −1,44, con l’inseguitore Q3 e il carico). A circa 1,4 V, quando la tensione sull’emettitore di Q2 arriva alla V_{BE} di Q4, Q4 si accende e l’uscita crolla. La soglia logica (dove l’uscita passa per 1,5 V) è a 1,43 V.

Il picco di corrente (figura, a destra). Durante la commutazione Q3 e Q4 conducono insieme per un attimo, e dall’alimentazione a massa passa una corrente limitata solo da R4 = 130 Ω: nella simulazione 16,5 mA, cinque volte la corrente a riposo. A ogni commutazione, quindi, ogni porta chiede all’alimentazione un impulso di corrente di pochi nanosecondi. È il motivo per cui nei circuiti TTL si mette un condensatore di disaccoppiamento da 100 nF accanto a ogni integrato.

I livelli garantiti. Il foglio tecnico della serie 74 garantisce V_{OH} \ge 2{,}4 V, V_{OL} \le 0{,}4 V, e che un ingresso venga letto alto sopra V_{IH} = 2{,}0 V e basso sotto V_{IL} = 0{,}8 V. I margini di rumore garantiti sono quindi NM_L = V_{IL} - V_{OL} = 0{,}4 V e NM_H = V_{OH} - V_{IH} = 0{,}4 V. I valori tipici sono migliori: nella simulazione l’uscita alta è a 3,61 V e quella bassa a 0,31 V, e con 0,8 V all’ingresso l’uscita è ancora a 3,28 V, ben sopra i 2,4 V garantiti.

Il fan-out. Un’uscita bassa garantisce di assorbire I_{OL} = 16 mA, e ogni ingresso basso ne fornisce al massimo I_{IL} = 1{,}6 mA (il valore peggiore, con le tolleranze; nella simulazione 1,05 mA); un’uscita alta fornisce 400 µA e ogni ingresso alto ne assorbe al massimo 40 µA. In entrambi i casi il rapporto è 10: fan-out 10.

Velocità e consumo. Con dieci carichi e 15 pF la simulazione dà ritardi di 9,2 ns (uscita che scende) e 7,6 ns (uscita che sale), dello stesso ordine dei 10 ns del foglio tecnico. La corrente di alimentazione vale 1,4 mA con l’uscita alta e 3,1 mA con l’uscita bassa: in media 11 mW a porta. Il prodotto ritardo-potenza (l’energia spesa per commutazione, un indice di qualità della tecnologia) è circa 100 pJ.

Le uscite speciali. Due porte totem-pole non si possono collegare tra loro: se una tira su e l’altra giù, passa una corrente distruttiva. Per i bus esistono le uscite open collector (senza Q3, con una resistenza di pull-up esterna comune: le uscite collegate fanno un AND cablato) e tri-state (un ingresso di abilitazione spegne sia Q3 sia Q4, e l’uscita diventa un circuito aperto).

La TTL Schottky

Il transistor saturo della TTL deve smaltire la carica immagazzinata prima di spegnersi. La soluzione è un diodo Schottky tra base e collettore: conduce con 0,3 o 0,4 V, meno della giunzione base-collettore, e devia la corrente di base in eccesso nel collettore prima che il transistor saturi. Il transistor resta al limite della zona attiva e si spegne subito. La serie 74S ha ritardi di 3 ns (con 19 mW), la 74LS (Low-power Schottky) ritardi simili alla 74 standard con un quinto della potenza, 2 mW: un prodotto ritardo-potenza di 19 pJ, cinque volte meglio. La 74LS è stata per vent’anni la logica di base delle schede elettroniche; seguirono le 74ALS e 74F.

La ECL

Porta ECL con uscite OR e NOR
Al centro una coppia differenziale: Q1 riceve l’ingresso A, l’altro transistor la tensione di riferimento V_R, e gli emettitori uniti vanno verso V_EE attraverso R_E, che fissa la corrente. Le resistenze R_C1 e R_C2 sono verso massa, che qui è il riferimento positivo. Due inseguitori di emettitore portano le tensioni dei collettori alle uscite NOR (a sinistra) e OR (a destra), terminate con R_T verso V_TT.

La Emitter-Coupled Logic è costruita intorno a una coppia differenziale. La corrente fissata da R_E passa o nel transistor d’ingresso o in quello di riferimento, a seconda che l’ingresso sia sopra o sotto V_R = -1{,}29 V: è un commutatore di corrente. Gli inseguitori d’uscita riportano i livelli giusti per pilotare altre porte, e danno insieme le due uscite complementari OR e NOR. Valori della serie 10K: V_{EE} = -5{,}2 V, massa come alimentazione positiva (così i disturbi dell’alimentazione arrivano meno sulle uscite), R_E = 779 Ω, R_{C1} = 220 Ω, R_{C2} = 245 Ω, uscite su resistenze da 50 Ω verso V_{TT} = -2 V, che sono anche la terminazione delle linee di trasmissione.

I livelli. Con l’ingresso basso conduce il transistor di riferimento: l’emettitore comune sta a V_R - V_{BE} \approx -2{,}04 V e la corrente vale (-2{,}04 + 5{,}2)/779 = 4{,}06 mA. L’uscita OR (dal collettore di destra) è bassa: -4{,}06\text{ mA} \cdot 245\ \Omega - V_{BE} \approx -1{,}79 V. L’uscita alta è una V_{BE} sotto la massa: circa −0,9 V. La simulazione dà −0,91 e −1,79 V, con i punti a pendenza unitaria a V_{IL} = -1{,}38 V e V_{IH} = -1{,}20 V: margini di rumore di 0,29 V (alto) e 0,41 V (basso). L’escursione logica è di soli 0,9 V.

Caratteristica di trasferimento della porta ECL (SPICE)
Le uscite OR (rossa) e NOR (blu, tratteggiata) in funzione dell’ingresso. Le due curve si incrociano alla tensione di riferimento V_R = −1,29 V; i livelli sono circa −0,91 V (alto) e −1,79 V (basso). L’uscita NOR bassa scende ancora un po’ quando l’ingresso cresce, perché con l’ingresso alto la corrente della coppia aumenta.

Teorema. Nella porta ECL nessun transistor della coppia satura.

Dimostrazione. La base del transistor d’ingresso sta al massimo a V_{OH} \approx -0{,}9 V. Il suo collettore scende al massimo di I_{max} R_{C1}, con I_{max} = (-0{,}9 - 0{,}75 + 5{,}2)/779 = 4{,}6 mA (SPICE: 4,9 mA con il modello completo), cioè fino a circa −1,0/−1,1 V. La giunzione base-collettore è quindi al più leggermente in diretta, di 0,1 o 0,2 V, molto meno dei 0,5 V circa necessari perché conduca: il transistor resta in zona attiva. Lo stesso vale per il transistor di riferimento, la cui base è fissa a −1,29 V e il cui collettore non scende sotto −1,0 V. ∎

Non saturando, e con escursioni piccole, la ECL è la famiglia bipolare più veloce: ritardi di 2 ns per la serie 10K e meno di un nanosecondo per la 100K (nella simulazione senza carico, 0,5 e 0,6 ns). Il prezzo è il consumo: la coppia assorbe 4 mA da 5,2 V (21 mW) e le terminazioni delle uscite altrettanto, sempre, anche a riposo. La ECL è stata usata nei supercalcolatori (Cray) e nei mainframe; oggi la stessa idea sopravvive nella CML (Current-Mode Logic) dei collegamenti seriali a decine di gigabit al secondo.

Il confronto

famigliaritardo tipicopotenza per portaritardo × potenza
RTL12 ns12 mW140 pJ
DTL30 ns8 mW240 pJ
TTL 7410 ns10 mW100 pJ
TTL 74S3 ns19 mW57 pJ
TTL 74LS9,5 ns2 mW19 pJ
ECL 10K2 ns25 mW50 pJ
CMOS 74HC8 nsquasi zero a riposodipende dalla frequenza

Le famiglie bipolari consumano anche a riposo, perché in uno dei due stati c’è sempre una corrente che scorre in una resistenza. Il CMOS (lezione sulla logica CMOS) consuma solo quando commuta, per caricare le capacità, e ha margini di rumore vicini a metà dell’alimentazione; con la miniaturizzazione è diventato anche più veloce. Per questo ha sostituito quasi tutta la logica bipolare. Restano la ECL/CML per le velocità estreme e il BiCMOS, che mette insieme transistor bipolari e MOS sullo stesso integrato.

In sintesi

  • Nelle porte logiche il transistor è un interruttore tra interdizione e saturazione; la saturazione rallenta lo spegnimento per la carica immagazzinata.
  • RTL: NOR con resistenze di base; il livello alto scende con il fan-out (0,94 V con dieci carichi).
  • DTL: NAND con diodi, soglia più alta e livello alto indipendente dal fan-out.
  • TTL 7400: transistor a più emettitori, sfasatore e uscita totem-pole; livelli garantiti 2,4/0,4 V in uscita e 2,0/0,8 V in ingresso, margini di 0,4 V, fan-out 10, 10 ns e 10 mW; il diodo D tiene spento Q3 con l’uscita bassa; il picco di corrente in commutazione richiede i condensatori di disaccoppiamento.
  • Schottky: un diodo base-collettore impedisce la saturazione (74S veloce, 74LS a basso consumo).
  • ECL: commutatore di corrente che non satura mai, livelli −0,9/−1,8 V, la più veloce e la più energivora.

Il codice

# Porte logiche a BJT: conti a mano dei livelli, del fan-out e dei margini di rumore

# RTL (VCC 3.6 V, RB 450, RC 640): uscita alta caricata da N ingressi in parallelo
VCC, RB, RC, VBE, VCEsat, beta = 3.6, 450.0, 640.0, 0.75, 0.1, 50
for N in (1, 2, 5, 10):
    # la resistenza di collettore e le N resistenze di base in parallelo formano un partitore verso VBE
    VOH = VBE + (VCC - VBE) * (RB / N) / (RB / N + RC)
    IB = (VOH - VBE) / RB                       # corrente di base di ciascun carico
    sat = beta * IB > (VCC - VCEsat) / RC       # il carico è saturo se beta IB supera la corrente di saturazione
    print(f"RTL, N = {N:2d}: VOH = {VOH:.2f} V, margine alto {VOH - VBE:.2f} V, carichi saturi: {sat}")

# TTL 7400 (VCC 5 V): corrente d'ingresso basso, livello alto, fan-out e margini garantiti
VCC, R1 = 5.0, 4e3
IIL = (VCC - (0.2 + 0.7)) / R1                  # ingresso a 0.2 V: la base di Q1 sta 0.7 V sopra
print(f"TTL: corrente d'ingresso basso {1e3 * IIL:.2f} mA, uscita alta a vuoto circa {VCC - 0.7 - 0.7:.1f} V")
IOL, IILmax, IOH, IIHmax = 16e-3, 1.6e-3, 0.4e-3, 40e-6
print(f"TTL: fan-out = min({IOL / IILmax:.0f}, {IOH / IIHmax:.0f})")
VOL, VOH, VIL, VIH = 0.4, 2.4, 0.8, 2.0
print(f"TTL: margini garantiti NML = {VIL - VOL:.1f} V, NMH = {VOH - VIH:.1f} V")
# dalla simulazione: livelli tipici e soglie dove la pendenza vale -1
vol, voh, vil, vih = 0.31, 3.61, 0.59, 1.50
print(f"TTL simulata con fan-out 10: NML = {vil - vol:.2f} V, NMH = {voh - vih:.2f} V")
icch, iccl, tp = 1.40e-3, 3.14e-3, 8.4e-9
P = VCC * (icch + iccl) / 2
print(f"TTL: potenza media {1e3 * P:.1f} mW, prodotto potenza-ritardo {1e12 * P * tp:.0f} pJ")

# ECL (VEE -5.2 V, riferimento -1.29 V, RE 779, RC 220/245): corrente di coda e livelli
VEE, VR, RE, RC2, VBEf = -5.2, -1.29, 779.0, 245.0, 0.8
I = (VR - 0.75 - VEE) / RE
print(f"ECL: corrente di coda {1e3 * I:.2f} mA, VOL = {-I * RC2 - VBEf:.2f} V, VOH circa {-VBEf - 0.1:.2f} V")
print(f"ECL: potenza della porta {1e3 * abs(VEE) * I:.0f} mW, più le terminazioni d'uscita")

Il programma stampa la tabella della RTL (1,93, 1,49, 1,10 e 0,94 V), la corrente d’ingresso della TTL (1,02 mA), il fan-out 10, i margini garantiti (0,4 V) e quelli della simulazione (0,28 e 2,11 V, misurati però nei punti a pendenza −1, un criterio più severo di quello del foglio tecnico), la potenza media di 11,3 mW con un prodotto di 95 pJ, e per la ECL la corrente di 4,06 mA con il livello basso a −1,79 V.

La netlist della NAND TTL per ngspice, con l’uscita caricata da dieci porte uguali:

* NAND TTL 7400: caratteristica di trasferimento e ritardi con fan-out 10
.subckt nand a bb out vcc
R1 vcc b1 4k
Q1a c1 b1 a QN
Q1b c1 b1 bb QN
R2 vcc c2 1.6k
Q2 c2 c1 e2 QN
R3 e2 0 1k
R4 vcc c3 130
Q3 c3 c2 e3 QN
D1 e3 out DN
Q4 out e2 0 QN
.ends
VCC vcc 0 5
VCC0 vcc0 0 5
VA a 0 dc 0 pulse(0.2 3.4 20n 3n 3n 60n 120n)
X0 a vcc out vcc0 nand
X1 out vcc o1 vcc nand
X2 out vcc o2 vcc nand
X3 out vcc o3 vcc nand
X4 out vcc o4 vcc nand
X5 out vcc o5 vcc nand
X6 out vcc o6 vcc nand
X7 out vcc o7 vcc nand
X8 out vcc o8 vcc nand
X9 out vcc o9 vcc nand
X10 out vcc o10 vcc nand
CL out 0 15p
.model QN NPN(IS=1e-15 BF=50 BR=0.1 VAF=50 RB=50 RC=20 CJE=1.5p CJC=1p CJS=2p TF=0.25n TR=15n)
.model DN D(IS=1e-15 CJO=1p RS=10)
.control
dc VA 0 2.5 0.005
let dv = deriv(v(out))
meas dc vil when dv=-1 fall=1
meas dc vih when dv=-1 rise=1
meas dc vt when v(out)=1.5 fall=1
let icc = -i(vcc0)
meas dc icc_pk max icc
tran 0.05n 200n
meas tran tphl trig v(a) val=1.5 rise=1 targ v(out) val=1.5 fall=1
meas tran tplh trig v(a) val=1.5 fall=1 targ v(out) val=1.5 rise=1
.endc
.end

Stampa i punti a pendenza −1 (0,59 e 1,50 V), la soglia di 1,43 V, il picco di corrente di 16,5 mA e i ritardi di 9,2 e 7,6 ns.

Iscriviti
Notificami
guest
1 commento
Vecchi
Più recenti Le più votate
1
0
Esprimete la vostra opinione commentando.x