Corso di Calcolatori Elettronici I Macchine combinatorie: encoder/decoder e multiplexer/demultiplexer Prof. Roberto Canonico Università degli Studi di Napoli Federico II Dipartimento di Ingegneria Elettrica e delle Tecnologie dell’Informazione Corso di Laurea in Ingegneria Informatica Corso di Laurea in Ingegneria dell’Automazione Decodificatore (decoder) 1 su m • Un decodificatore è una macchina che riceve in ingresso una parola codice (C) su n bit e presenta in uscita la sua rappresentazione decodificata (linee U0, … UN-1) su m=2n bit Co U0 Cn-1 Um-1 Decoder 1 su 4 U0 = B . A Esempio: decoder 1:4 U1 = B. A B A U0 U1 U2 U3 1 2 3 4 0 0 1 1 0 1 0 1 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 U2 = B . A U3 = B . A A B Composizione modulare di decoder: decoder 4:16 con decoder 2:4 DEC 2:4 1 C D A B U0 DEC U1 2:4 U2 U3 DEC 2:4 DEC 2:4 DEC 2:4 U0 U1 U2 U3 U0 U1 U2 U3 U0 U1 U2 U3 U0 U1 U2 U3 U0 U1 U2 U3 U4 U5 U6 U7 U8 U9 U10 U11 U12 U13 U14 U15 Encoder o codificatore • Un codificatore riceve in ingresso una rappresentazione decodificata (linee x0, … xm-1) e fornisce in uscita una rappresentazione con un codice a lunghezza fissa di n bit • L’uscita è la parola codice associata a xi x0 se xi=1 zo ed α=1 (abilitazione) • Vincolo su ingressi: xi⋅ xj = 0 per i≠j zm-1 xN-1 α Codificatore a 4 ingressi da: G. Bucci. Calcolatori Elettronici – Architettura e organizzazione. © McGraw-Hill, 2009 Codificatore 8-4-2-1 • • • • z3= x8+x9 z2= x4+x5+ x6+x7 z1= x2+x3+ x6+x7 z0= x1+x3+ x5+x7+x9 C O D IC E D E C IM cifra 0 1 2 3 4 5 6 7 8 9 8 -4 -2 -1 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 Arbitro di priorità Un codificatore può essere preceduto da una “rete a priorità” che, in caso di più ingressi contemporaneamente alti, filtra quello con priorità assegnata maggiore • Rete a priorità – n ingressi Xi – n uscite corrispondenti Fi, che rappresentano gli ingressi del codificatore – fra gli ingressi è definita una priorità, ad esempio: • per fissare le idee «Xi è prioritario su Xj se i < j» – L'uscita Yi è alta se e solo se Xi è alto e tutti gli altri ingressi prioritari su Xi sono bassi. F1 = X 1 F2 = X 2 X 1 KK Fn = X n X n −1 K X 1 Arbitro di priorità a 4 ingressi da: G. Bucci. Calcolatori Elettronici – Architettura e organizzazione. © McGraw-Hill, 2009 Multiplexer lineare • Un Multiplexer lineare (ML) è una macchina con: – n ingressi-dati (A0,…,An-1) – n segnali binari di selezione (α0,…, α n-1), dei quali al più uno è attivo – una uscita-dati B, che assume • valore Ai se è attivo α i • neutro se nessuna delle selezioni è attiva A0 B MUXL An-1 • utilizzata quando più linee devono essere convogliate verso un’unica linea di uscita (bus) α0 αn-1 Multiplexer binario • Se i dati Ai e B sono semplici bit si parla di multiplexer binario A0 B MUXL An-1 α0 αn-1 Multiplexer binario - realizzazioni • B = A0 α0 + A1α1 + ... + An-1αn-1 n=4 – Realizzazione I • Con porte AND e OR – Realizzazione II • Con porte 3-state A 0 0 1 1 S 0 1 0 1 – S=1, restituisce il valore di A – S=0, restituisce un’alta Uscita impedenza (apre il circuito) z 0 z 1 Multiplexer (indirizzabile) • Multiplexer Lineare i cui segnali di abilitazione sono collegati con le uscite di un decodificatore A0 MUXL B AN-1 α0 αN-1 C Demultiplexer lineare • Un Demultiplexer Lineare è una macchina con: – 1 ingresso-dati B – n segnali binari di selezione (α0,…, αn-1), dei quali al più uno è attivo – n uscite-dati (A0,…,An-1), B con • Ai=B se è attivo αi • neutro se nessuna delle selezioni è attiva A0 DMUXL A n-1 α0 αn-1 Demultiplexer (indirizzabile) • Demultiplexer Lineare i cui segnali di abilitazione sono collegati con le uscite di un decodificatore A0 B DEMUX AN-1 α0 αN-1 C Muxl/Dmuxl: un esempio • Supponiamo di avere un “centralino telefonico” in cui n utenti sorgente vogliono parlare con m utenti destinazione – vincolo: l’utente di destinazione abilitato deve sentire solo l’utente sorgente abilitato A0 A1 B0 B1 … MUXL DMUXL … An-1 Bm-1 … 0 1 0.. 0 … 0 0 0..0 1 Linee di sel. Linee di sel. utente sorgente utente destinaz. L’utente A1 è abilitato a parlare con l’utente Bm-1