Abbiamo ragione, diciamo che costruiamo un gruppo di queste otto grandi banche che si registrano e
le useremo come memoria.
Stiamo andando a memorizzare un sacco di numeri.
Abbiamo un bus di otto byte a otto bit che invia una cifra a 8 bit a tutte le posizioni di memoria.
Lo chiameremo bus dati perché sta trasmettendo i dati.
Vogliamo conservare.
Ora deve essere in grado di consegnare i dati a tutti i banchi di memoria in modo che siano
collegati a ciascuno di essi.
Il problema è che abbiamo una serie di numeri, quindi vogliamo memorizzare il primo numero nel primo
byte una memoria il secondo numero nel secondo byte una memoria il terzo e il terzo byte ecc.
Non vogliamo memorizzare diciamo 256 copie del primo numero in tutte le 256 posizioni.
Che spreco.
Quindi il problema è come accendere o spegnere i banchi di memoria in modo che solo uno di essi
memorizzi effettivamente il numero che scende dal bus.
Lo facciamo usando un secondo bus a 8 bit che chiameremo il bus indirizzo e daremo
un indirizzo univoco a ciascuna di quelle posizioni di memoria.
Controlleremo le posizioni di memoria usando una funzione chiamata D multiplexing.
Diciamo che volevamo inviare il nostro primo numero al nostro primo morso di dati nella
posizione di memoria con l'indirizzo decimale di uno.
Questo è in realtà abbastanza facile da multiplexare un indirizzo decimale di uno sarebbe un alto sulla binario di
una riga e tutte le altre linee sarebbe zero.
Quindi inseriamo un'intera serie di porte org nei sette bit superiori dell'indirizzo
e le catene daisy metteranno un nodo fuori da un bit e lo faranno anche nella catena a margherita.
L'ultimo cancello della catena sarà un cancello NOR che si alimenta nell'orologio del banco di memoria.
Guarda cosa succede.
Se uno qualsiasi di questi sette bit superiori è alto Questi sono tutti irrigati invierà un high al Norgate finale
che emetterà un valore basso e quindi il nostro banco di memoria non verrà attivato se la prima offerta è bassa
quindi il gate NOT convertirà ad un livello alto che innesca il finale, né porta ad un basso spegnimento
del banco di memoria.
C'è solo una combinazione che innescherà un high sull'output del finale, né gate se tutti i sette
bit superiori sono bassi.
Poi tutti questi o Gates mettono un basso.
Se il primo bit è alto, allora il Gate non è invertito a un valore basso.
Tutti gli input sulla nostra intera catena di cancelli di lavoro a margherita e gli input sul Norgate finale
sono bassi.
Quindi l'uscita andrà alta impostando la linea di clock sul banco di memoria.
Ciao.
E quel banco di memoria registrerà quindi tutto ciò che sta arrivando sul bus dati.
Chiamiamo questo processo d multiplexing che viene spesso mostrato come deam mux in breve.
Diamo un'occhiata ad un altro esempio in modo rapido.
Ora volevo mostrarvi un esempio usando lo standard comune per inserire le porte sul multiplex, ma ricordate
che potete ottenere porte logiche con più ingressi o persino costruire un gate logico usando i
transistor e avere tanti ingressi su di esso come volete.
Puoi anche fare il multiplex in diversi modi usando diverse porte.
Quindi se ti capita di avere un intero casino e mangiare patatine puoi usarle se necessario.
Quindi accendiamo i circuiti in esadecimale.
Indirizzo 1 8 0 0 0 1 1 0 1 0 in binario.
Quindi vogliamo un massimo sull'output del nostro multiplexer d solo quando queste tre linee sono alte.
Quindi usiamo un ingresso e un gate a tre che quando queste linee diventano alte.
Boom otteniamo un high sull'output o il gate di fine tutto il check out.
Qualsiasi numero binario che capita di avere queste tre linee alte innescherebbe anche il circuito 255 che
innescherebbe il multiplexer ad esempio.
Quindi dobbiamo escludere tutti gli altri numeri che cosa dobbiamo controllare.
Dobbiamo controllare tutte le altre righe di zeri.
Puoi farlo con un Norgate se qualcuna di quelle linee è alta.
Otterremo uno zero sull'output del nostro Norgate.
Possiamo quindi combinare il segnale dal gate con il segnale da e gate.
Quindi fintanto che entrambe le porte stanno emettendo una finale e il cancello ne metterà anche uno
che innesca il nostro circuito bersaglio.
Diciamo che hai avuto accesso a diversi chip di gate NOT e chip di gate di fine.
Un altro modo per farlo è quello di slop A Not gate di un inverter su ogni riga che
deve essere pari a 0 e daisy chain a tutto e Gates in questo modo tutti gli zeri verranno invertiti a quelli che
in ultima analisi innescano uno in uscita qualsiasi high su qualsiasi delle altre linee viene convertito in zero e la finale
e la porta non vengono mai attivate.
L'intero processo di multiplexing nell'indirizzamento avviene molto di solito dietro le quinte, come
vedrai.
Ma è importante capire cosa sta succedendo e come farlo perché occasionalmente potresti aver bisogno di
fare alcuni indirizzi esterni.
Per esempio più avanti, quando usiamo i microprocessori, potresti aggiungere qualche tipo di memoria
esterna e dovrai sapere come indirizzare quella memoria.
Il punto principale è che vuoi attivare qualcosa con un numero specifico su un bus e lo fai
con porte logiche.
Quindi esercita la tua nuova abilità con alcuni indirizzi di esempio e progetta alcuni array multiplexing
per i seguenti indirizzi esadecimali.
1 1 A F F F 3 5.
Ora ricorda che il tuo multiplexer dovrebbe emettere solo un massimo quando quel numero specifico è visto sul bus
degli indirizzi.
Quindi basta cancellarlo sulla carta.
E sfortunatamente questo è un esercizio mentale.
Dovrai controllare il tuo lavoro per la semplice ragione che ci sono diversi modi
per costruire un multiplexer in ogni istanza.
Sentiti libero di pubblicare il tuo circuito nei commenti e altri o io stesso posso darti un feedback per
vedere se funziona.