Altifigence Academy

13 / 63 · Concetto

DEMUX e decoder: inviare dati sul percorso selezionato

Confrontare direzioni e ruoli di MUX, DEMUX e decoder e verificare le condizioni one-hot e «al massimo un 1».

MUX raccoglie, DEMUX distribuisce

Un MUXMultiplexer Circuito combinatorio che collega un ingresso all’uscita secondo la selezione. Va specificata la corrispondenza fra bit di selezione e ingressi. Approfondisci porta all'uscita uno fra più ingressi dati. Un DEMUXDEMUX Invia un dato all’uscita indicata dalla selezione. Vanno specificati anche i valori delle uscite non selezionate. porta l'unico ingresso d all'uscita selezionata e mantiene le altre a 0. Per un DEMUX 1-to-4 con indirizzo s1s0s_1s_0:

y0=ds1‾s0‾,y1=ds1‾s0,y2=ds1s0‾,y3=ds1s0y_0=d\overline{s_1}\overline{s_0},\quad y_1=d\overline{s_1}s_0,\quad y_2=ds_1\overline{s_0},\quad y_3=ds_1s_0

La stessa funzione come decoder con enable

Nella figura leggete a1 e a0 come indirizzo di selezione e enable come dato d. Le uscite d0–d3 corrispondono a y0–y3 delle formule. Una stessa funzione combinatoria può avere nomi diversi secondo il contesto.

Interpretando enable come ingresso dati si ottiene un DEMUX

d[i] = enable AND (2 × a1 + a0 = i)

Con indirizzo 10 e dato 1, solo y2 vale 1. Con dato 0, anche l'uscita selezionata è 0, quindi lo sono tutte. La condizione one-hotOne-hot Rappresentazione con esattamente un bit a 1. La condizione che ammette anche tutti 0 si chiama one-hot-or-zero. Approfondisci «sempre esattamente un 1» è dunque errata; per l'intero funzionamento vale «al massimo un 1».

Distinguere la selezione dall'evento di scrittura

Per scrivere in uno di quattro registriRegistro Memorizza uno stato di più bit. I registri sincroni del corso acquisiscono gli ingressi specificati al fronte di clock. Approfondisci si può usare write_en come d e l'indirizzo per la selezione. Il decoderDecoder Attiva la linea corrispondente a un codice binario. Con enable disattivato può portare tutte le uscite a 0. Approfondisci però non memorizza nulla. Il registro acquisisce write enable e dati al fronte di clock. Cambiare una selezione combinatoria non modifica subito il valore memorizzato.

Selezione e memorizzazione sono due fasi
  1. Indirizzo + write_en: Definire dove scrivere e se scrivere
  2. Decodificatore: Generare enable per il solo registro selezionato
  3. Fronte di clock: Il registro selezionato memorizza i dati

Verificate non solo il valore dell'uscita selezionata, ma anche che tutte le altre siano 0. Le quattro combinazioni con d=0 e le quattro con d=1 danno otto casi. Questa verifica funzionale non garantisce l'assenza di glitch durante i cambi d'indirizzo.

Prova tu

Calcolate y3y2y1y0 per s1s0=01 con d=1 e d=0. Quando fallisce un controllo che richiede esattamente un enable attivo fra quattro registri?

Leggi la spiegazione

I risultati sono 0010 e 0000. Con d o write_en a 0 è corretto che nessuna uscita sia attiva. Esattamente un 1 è richiesto solo con d=1.

La scelta vale per questo browser. Puoi modificarla in qualsiasi momento dal piè di pagina.