Perché dobbiamo usare i transistor quando costruiamo un OR
cancello? Non saremmo in grado di ottenere lo stesso risultato senza transistor, solo unendo i due ingressi e leggendo l'uscita?
Perché dobbiamo usare i transistor quando costruiamo un OR
cancello? Non saremmo in grado di ottenere lo stesso risultato senza transistor, solo unendo i due ingressi e leggendo l'uscita?
Risposte:
Quello che descrivi si chiama OR cablato . È possibile in alcune famiglie logiche, in particolare ECL (logica accoppiata a emettitore), ma non in quelle più comuni (TTL e CMOS).
In CMOS non è possibile perché quando un'uscita CMOS è bassa, crea un corto molto vicino dal pin di uscita attraverso il chip verso terra. E quando è alto, crea un corto molto vicino da VDD attraverso il chip al pin di uscita.
Quindi, se si collegano due uscite CMOS insieme e un'uscita alta mentre l'altra bassa, si otterrebbe un corto molto vicino da VDD a terra, il che assorbirebbe una grande corrente e probabilmente surriscalderebbe l'uno o l'altro dei due chip coinvolti.
Per TTL, c'è un problema simile, ma i "cortocircuiti" dal pin di uscita a VDD o ground non sono così corti come in CMOS.
Esiste uno stile di output variante, chiamato open drain per CMOS o open collector per TTL, che consente connessioni cablate AND anziché OR cablate. Queste uscite sono progettate per essere in grado di affondare la corrente a terra, non di essere in grado di produrre alcuna corrente di uscita quando sono nominalmente nello stato alto. Questi vengono normalmente utilizzati con una resistenza di pull-up esterna in modo che la tensione di uscita raggiunga effettivamente il livello di tensione "alta" quando richiesto.
Nota: Open collector o open drain possono essere utilizzati per cablati OPPURE se si utilizza la logica active-low (bassa tensione rappresenta la logica 1, alta tensione rappresenta la logica 0).
questo ti permette di "unire gli output"
simula questo circuito - Schema creato usando CircuitLab
this lets you "join the outputs" schematic
con un collegamento a circuitlab
Se colleghi semplicemente i fili, avresti la possibilità (abbastanza probabile) di uno 0 e un 1 insieme. Poiché uno 0 è gnd e un 1 è 5V (a seconda dei chip, ma è uno standard), avresti 5V e gnd collegati tra loro da fili. Il termine per questo è un corto circuito!
È possibile utilizzare diodi per un semplice gate OR. O persino resistori. I problemi si verificano quando si collega questo cancello ad altre porte, altri circuiti. È possibile costruire un gate AND da 2 diodi al contrario. Ma se provi a collegarne molti insieme, finirai con un circuito gigante che non funziona come piccole parti separate, ma come uno grande. Le connessioni che non sono nel tuo semplice piano di gate, potrebbero sorgere nella vita reale, rovinando ciò che vuoi che accada.
Un transistor consente di separare l'ingresso dall'uscita. L'output di un transistor non può essere alimentato all'indietro e influire sul suo input. Un relè sarebbe un'altra alternativa, sebbene più lenta. Poiché l'interruttore non può influenzare l'elettromagnete.
La logica iniziale era RTL o DTL, logica resistore-transistor o logica diodo-transistor. I resistori, inizialmente, poi i diodi successivi, sono stati usati per formare il gate, quindi un transistor ha agito per bufferizzare il risultato in modo che il gate successivo che hai usato non sia passato attraverso questo attraverso i suoi input.
Ora, poiché i transistor su chip sono praticamente gratuiti, finanziariamente cioè, abbiamo il lusso di tutto ciò che è adeguatamente bufferizzato e separato. Di solito è quello che vogliamo. Logica TTL!
Considera cosa succede se un ingresso è alto e uno è basso e colleghi i due ingressi. Dipende da come costruisci le tue porte logiche.
Se le tue porte logiche sono progettate in modo tale che un massimo sia davvero elevato e un minimo sia davvero basso (CMOS), allora questo è un corto circuito e qualcosa esploderà.
Se le tue porte logiche sono progettate in modo tale che un alto sia "debole" o alta resistenza (ad esempio NMOS), l'uscita sarà bassa, ma anche l'altro ingresso (che dovrebbe essere alto) sarà forzato ad essere basso anche se è dovrebbe essere alto, e questo avrà un effetto a catena su altre porte logiche che usano lo stesso input.
Esiste un approccio analogico:
combina un numero qualsiasi di ingressi (supponiamo che sia 0 o 5 volt) con resistori.
Se la tensione risultante è 0, tutti sono spenti.
Se la tensione del risultato è 5, allora tutti sono attivi.
Le tensioni intermedie indicano che alcuni sono accesi e altri spenti.
Esempio: se ci sono 4 ingressi, 2,5 volt significa che 2 sono accesi e 2 spenti.
risultato == 0: né
risultato gate == 5: e
risultato gate ! = 0: o
risultato gate ! = 5: nand gate
Non sono necessari transistor per gli ingressi, ma solo per controllare la tensione e ripristinare un risultato logico da 0 o 5 volt.
Questo potrebbe essere usato per un nodo di rete neurale analogico con una funzione di uscita non lineare che ha un risultato "morbido" che potrebbe non essere del tutto vero o falso.
Dopo aver pensato: i
resistori usati in questo modo possono rallentare la velocità logica poiché la capacità che segue i resistori deve essere caricata o scaricata quando gli ingressi cambiano. Inoltre, l'uso di transistor può ridurre notevolmente il consumo di energia. I resistori usati in questo modo possono sempre consumare energia con un mix di stati di input. Con i transistor, il consumo di energia può essere approssimativamente diviso per il guadagno dei transistor.
Con alcuni elementi logici (tutti gli interruttori della portiera della macchina illuminano la stessa lampada) questo è possibile, ma non per esempio con le porte CMOS in quanto sono costruite con transistor FET con canale P e N, quindi hanno bisogno di input definiti per alta e bassa tensione per fornire l'uscita , l'ingresso non può essere lasciato fluttuare. Il collegamento delle uscite CMOS insieme non funzionerebbe.