Contemporary Logic Design Logica progr. e ad interruttori Capitolo 4: Logica programmabile e ad interruttori Reti Logiche Contemporary Logic Design Randy H. Katz University of California, Berkeley May 1993 Trasparenze tradotte da: Luciano Lavagno Universita’ di Udine Settembre 1998 © R.H. Katz 4-1 Sommario Contemporary Logic Design Logica progr. e ad interruttori • PAL e PLA • Logica che non usa le porte Logica ad interruttori Multiplexer/selettori/decodificatori Porte Tri-State/Open Collector ROM • Problemi di progetto di logica combinatoria Decodificatore display a sette segmenti Controllore linea di produzione Unita’ funzionale logica Barrel Shifter © R.H. Katz 4-2 Contemporary Logic Design Logica progr. e ad interruttori PAL e PLA Blocco funzionale con molte porte AND/OR (o NAND/NAND) prefabbricate ”Personalizzate" creando o eliminando connessioni tra le porte Schema a blocchi di matrice logica programmabile in forma AND/OR Ingressi Matrice compatta di porte AND Termini prodotto Matrice compatta di porte OR Uscite © R.H. Katz 4-3 Contemporary Logic Design PAL e PLA Logica progr. e ad interruttori Aspetto essenziale: condivisione di termini prodotto Equazioni: Esempio: F0 = A + B' C' F1 = A C' + A B F2 = B' C' + A B F3 = B' C + A Matrice di personalita’ Termine prodotto AB BC AC BC A Ingr. Uscite A B C F0 F1 F2 F3 0 1 1 0 1 1 - 0 1 0 0 0 1 1 - 0 0 1 0 0 - 0 0 1 0 1 0 1 0 0 1 1 - - Lato ingressi (AND): 1 = presente positivo 0 = presente negato - = assente Lato uscite (OR): Riutilizzo 1 = termine connesso in uscita 0 = termine non connesso di (non vuole dire che la termini funzione vale 0!!) © R.H. Katz 4-4 PAL e PLA Contemporary Logic Design Logica progr. e ad interruttori Esempio Tutte le possibili connessioni sono disponibili prima della programmazione © R.H. Katz 4-5 PAL e PLA Contemporary Logic Design Logica progr. e ad interruttori Esempio Le connessioni non volute sono eliminate Nota: alcune tecnologie creano le connessioni invece di eliminarle © R.H. Katz 4-6 Contemporary Logic Design PAL e PLA Logica progr. e ad interruttori Rappresentazioni alternative per strutture ad elevato fan-in Notazione abbreviata per non disegnare tutti i fili! Notazione per realizzare F0 = A B + A' B' F1 = C D' + C' D © R.H. Katz 4-7 PAL e PLA Esempio di progetto Contemporary Logic Design Logica progr. e ad interruttori Varie funzioni di A, B, C F1 = A B C F2 = A + B + C F3 = A B C F4 = A + B + C F5 = A xor B xor C F6 = A xnor B xnor C © R.H. Katz 4-8 Contemporary Logic Design Logica progr. e ad interruttori PAL e PLA Qual’e’ la differenza tra Programmable Array Logic (PAL) e Programmable Logic Array (PLA)? PAL realizzata con una memoria integrata la topologia del piano OR e’ limitata Una colonna del piano OR puo’ essere collegata solo ad alcuni termini prodotto PLA usa una topologia generale (tutte le connessioni possibili) sia nel piano AND sia nel piano OR © R.H. Katz 4-9 Contemporary Logic Design Logica progr. e ad interruttori PAL e PLA Esempio di progetto: convertitore BCD-Gray Tabella di verita’ A 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 B 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 C 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 D 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 W 0 0 0 0 0 1 1 1 1 1 X X X X X X X 0 0 0 0 1 1 0 0 0 0 X X X X X X Y 0 0 1 1 1 1 1 1 0 0 X X X X X X Z 0 1 1 0 0 0 0 1 1 0 X X X X X X Mappe di Karnaugh A AB 00 01 11 10 00 0 0 X 1 01 0 1 X 1 CD A AB 00 01 11 10 00 0 1 X 0 01 0 1 X 0 CD D 11 0 1 X D X C 11 0 0 X X 10 0 0 X X C 10 0 1 X X B B W A AB C W=A+BD+BC X = B C' Y=B+C Z = A'B'C'D + B C D + A D' + B' C D' A AB 00 01 11 10 00 0 1 X 0 01 0 1 X 0 11 1 1 X X 10 1 1 X X CD Funzioni minimizzate: X 00 01 11 10 00 0 0 X 1 01 1 0 X 0 11 0 1 X X 10 1 0 X X CD D D C B B Y Z © R.H. Katz 4-10 PAL e PLA Contemporary Logic Design Logica progr. e ad interruttori PAL programmata: Servono 4 termini prodotto per porta OR © R.H. Katz 4-11 Contemporary Logic Design Logica progr. e ad interruttori PAL e PLA Realizzazione a porte del convertitore A \A 1 B D 2 B C 3 \A \B \C D W B C D 2 3 4 4 A D B C 22 1 1 1 X \C B 2 1 \B Y 4 Z 5 \D \B C \D 1: 2,5: 3: 4: 3 7404 7400 7410 7420 hex inverters quad 2-input NAND tri 3-input NAND dual 4-input NAND 4 integrati SSI rispetto ad 1 integrato PLA/PAL! © R.H. Katz 4-12 Contemporary Logic Design Logica progr. e ad interruttori PAL e PLA Un altro esempio: comparatore A AB 00 01 11 10 00 1 0 0 0 01 0 1 0 0 CD A AB 00 01 11 10 00 0 1 1 1 01 1 0 1 1 CD D 11 0 0 1 D 0 C 11 1 1 0 1 10 1 1 1 0 C 10 0 0 0 1 B B EQ NE A AB 00 01 11 10 00 0 0 0 0 01 1 0 0 0 11 1 1 0 1 CD A AB 00 01 11 10 00 0 1 1 1 01 0 0 1 1 11 0 0 0 0 10 0 0 1 0 CD D C D C 10 1 1 0 0 B B LT GT © R.H. Katz 4-13 Contemporary Logic Design Logica progr. e ad interruttori Logica non a porte Introduzione AND-OR-Invert PAL/PLA Blocchi funzionali generalizzati piu’ complessi delle porte base Tipi di "Logica non a porte": • circuiti a interruttori CMOS (“transmission gates”) • funzioni multiplexer/selettore • funzioni demultiplexer/decodificatore • porte tri-state ed open collector • memorie a sola lettura (ROM) © R.H. Katz 4-14 Contemporary Logic Design Logica progr. e ad interruttori Logica ad interruttori Interruttori controllati in tensione Gate Canale Ossido (SiO2) Source Drain Substrato Si di tipo n Si di tipo p "MOS a canale n" “Sandwich” di metallo (gate), ossido (isolante) e silicio Regioni di diffusione: Si drogato con ioni negativi Substrato di Si drogato con ioni positivi “Attraendo” ioni negativi verso la superficie del substrato si forma un “canale” conduttore © R.H. Katz 4-15 Logica ad interruttori Interruttori controllati in tensione Contemporary Logic Design Logica progr. e ad interruttori Gate Source Drain 1 logico sul gate, Source e Drain connessi nMOS Transistor Gate Source 0 logico sul gate, Source e Drain connessi Drain pMOS Transistor © R.H. Katz 4-16 Contemporary Logic Design Logica progr. e ad interruttori Logica ad interruttori Porte logiche a partire da interruttori +5V A B A +5V A B +5V AB A A+ B Inverter NAND NOR Rete di pull-up formata da transistor pMOS Rete di pull-down formata da transistor nMOS © R.H. Katz 4-17 Contemporary Logic Design Logica progr. e ad interruttori Logica ad interruttori Funzionamento dell’inverter +5V "1" +5V "0" Ingresso ad 1 Pull-up non conduce Pull-down conduce Uscita collegata a GND "0" "1" Ingresso a 0 Pull-up conduce Pull-down non conduce Uscita connessa a VDD © R.H. Katz 4-18 Contemporary Logic Design Logica progr. e ad interruttori Logica ad interruttori Funzionamento della porta NAND "1" "0" "1" +5V "1" +5V "0" A = 1, B = 1 Pull-up non conduce Pull-down conduce Uscita connessa a GND "1" A = 0, B = 1 Pull-up conduce Pull-down non conduce Uscita connessa a VDD © R.H. Katz 4-19 Contemporary Logic Design Logica progr. e ad interruttori Logica ad interruttori Funzionamento porta NOR "0" +5V "1" "0" "0" +5V "1" A = 0, B = 0 Pull-up conduce Pull-down non conduce Uscita connessa a VDD "0" A = 1, B = 0 Pull-up non conduce Pull-down conduce Uscita connessa a GND © R.H. Katz 4-20 Contemporary Logic Design Logica progr. e ad interruttori Logica ad interruttori “Transmission Gate” CMOS nMOS vanno bene a trasmettere 0 e male a trasmettere 1 pMOS vanno bene a trasmettere 1 e male a trasmettere 0 un “interruttore ideale” li usa in parallelo Control Control In Out Control Interruttori In Control Out Control Transistor In Out Control Transmission gate (“farfalla”) © R.H. Katz 4-21 Contemporary Logic Design Logica ad interruttori Logica progr. e ad interruttori Selettore/demultiplexer usando transmission gate S Selettore (multiplexer): Sceglie I0 se S = 0 Sceglie I1 se S = 1 I 0 S I Z S 1 S S Demultiplexer: I passa a Z0 se S = 0 I passa a Z1 se S = 1 Z0 I S S Z1 S © R.H. Katz 4-22 Logica ad interruttori Contemporary Logic Design Logica progr. e ad interruttori Uso di multiplexer/demultiplexer in sistemi digitali A Demultiplexers Y Multiplex ers B Z A Y Demultiplexers Multiplex ers B Z Finora abbiamo visto solo connessioni da punto a punto Mux/Demux possono essere usati per realizzare connessioni multiple variabili © R.H. Katz 4-23 Contemporary Logic Design Logica progr. e ad interruttori Logica ad interruttori Reti ad interruttori ben formate Problema con la realizzazione del demux: molte uscite, ma solo una connessa all’ingresso! S Z0 S "0" I S S Z1 S "0" S Rimedio: logica aggiuntiva per pilotare ogni uscita ad un valore noto (in questo caso 0) Non lasciare mai uscite “fluttuanti”!! © R.H. Katz 4-24 Contemporary Logic Design Logica progr. e ad interruttori Logica ad interruttori Esempio complesso logica ad interruttori Circuito conta-1 ad N ingressi I 1 0 1 I1 Zero 1 0 Uno 0 1 I1 “diretto” I1 "0" Zero Uno "0" Uno "1" Zero “diagonale” "0" Uno Logica a porte nel caso ad 1 ingresso "1" Zero "0" Realizzazione ad interruttori © R.H. Katz 4-25 Logica ad interruttori Esempio complesso logica ad interruttori Contemporary Logic Design Logica progr. e ad interruttori Funzionamento del conta-1 ad 1 ingresso "0" "0" One "0" "0" One "1" Zero "0" "1" Zero "0" Ingresso a 0, interruttori diretti chiusi © R.H. Katz 4-26 Contemporary Logic Design Logica progr. e ad interruttori Logica ad interruttori Esempio complesso logica ad interruttori Funzionamento del conta-1 ad 1 ingresso "1" "0" "1" One Zero "1" "0" One "1" Zero "0" "0" Ingresso ad 1, interruttori diagonali chiusi © R.H. Katz 4-27 Logica ad interruttori Esempio complesso logica ad interruttori Contemporary Logic Design Logica progr. e ad interruttori Estensione al caso a 2 ingressi I 1 I2 0 0 1 1 0 1 0 1 Zero Uno 1 0 0 0 0 1 1 0 Due 0 0 0 1 I1 I2 Zero Uno Due Realizzazione con logica tradizionale © R.H. Katz 4-28 Contemporary Logic Design Logica progr. e ad interruttori Logica ad interruttori Esempio complesso logica ad interruttori Realizzazione ad interruttori del conta-1 a 2 ingressi I2 I2 I1 "0" Due "0" "1" "0" "0" Uno Zero Due Uno Zero "0" I1 "0" Uno Uno Due circuiti ad 1 ingresso in cascata! "1" "0" Zero Zero "0" © R.H. Katz 4-29 Logica ad interruttori Esempio complesso logica ad interruttori Funzionamento del circuito a 2 ingressi "0" "0" "0" "0" "1" "0" "0" One "1" "0" "0" Zero "1" "0" "1" "0" "0" "1" "0" "0" "1" "0" "0" One Zero "0" Contemporary Logic Design Logica progr. e ad interruttori "0" One Zero "0" "1" "0" "0" "1" "0" "1" "1" "0" "0" "1" "0" "0" One Zero "1" "0" "0" "0" © R.H. Katz 4-30 Contemporary Logic Design Logica progr. e ad interruttori Multiplexer/selettori Uso di multiplexer/selettori Connessioni multi-punto A0 Sa A1 B0 B1 MUX MUX A B Molti ingressi Sb Sum Ss DEMUX S0 Molte destinazioni S1 © R.H. Katz 4-31 Contemporary Logic Design Logica progr. e ad interruttori Multiplexer/selettori Idea generale 2 n ingressi di dato, n ingressi di controllo, 1 uscita n Usati per collegare 2n punti ad un singolo punto I segnali di controllo sono l’indice binario dell’ingresso selezionato Z = A' I 0 + A I 1 A 0 1 Forma funzionale Forma logica Z I0 I1 I1 0 0 0 0 1 1 1 1 I0 0 0 1 1 0 0 1 1 A 0 1 0 1 0 1 0 1 Z 0 0 1 0 0 1 1 1 Due forme alternative per la tabella di verita’ di un Mux 2:1 © R.H. Katz 4-32 Contemporary Logic Design Logica progr. e ad interruttori Multiplexer/selettori I0 2:1 mux I1 Z = A' I 0 + A I 1 Z A I0 I1 I2 I3 4:1 mux A I0 I1 I2 I3 Z B 8:1 mux I4 I5 I6 I7 Z = A' B' I0 + A' B I1 + A B' I2 + A B I3 Z Z = A' B' C' I0 + A' B' C I1 + A' B C' I2 + A' B C I3 + A B' C' I4 + A B' C I5 + A B C' I6 + A B C I7 In generale, A B C z k 0 m k i k 2 n 1 in notazione a mintermini per un Mux 2n :1 © R.H. Katz 4-33 Contemporary Logic Design Logica progr. e ad interruttori Multiplexer/selettori Realizzazioni alternative A B I0 Z I1 I2 I3 Realizzazione a porte di mux 4:1 trentasei transistor Realizzazione a transmission gate di mux 4:1 venti transistor © R.H. Katz 4-34 Contemporary Logic Design Multiplexer/Selector Logica progr. e ad interruttori Multiplexer grandi realizzati con molti mux piccoli in cascata I0 I1 I2 I3 0 4:1 1 mux 2 3S S I4 I5 I6 I7 0 4:1 1 mux 2 3 S1 S0 1 B I segnali di controllo B e C scelgono uno di I0-I3 e I4-I7 8:1 mux 0 2:1 mux 1 S 0 Z Il segnale di controllo A sceglie quale mux (in alto o in basso) controlla Z I0 0 I1 1 S C C A I2 0 I3 1 S 0 1 Realizzazioni diverse di un mux 8:1 C I4 0 I5 1 S Z 2 3 S0 C I6 0 I7 1 S A S1 B C © R.H. Katz 4-35 Contemporary Logic Design Logica progr. e ad interruttori Multiplexer/Selector Multiplexer/selettori come blocchi logici di uso generale Un multiplexer 2 n-1 :1 puo’ realizzare qualsiasi funzione di n variabili n-1 variabili di controllo; l’ultima e’ usata come ingresso al mux Esempio: F(A,B,C) = m0 + m2 + m6 + m7 = A' B' C' + A' B C' + A B C' + A B C = A' B' (C') + A' B (C') + A B' (0) + A B (1) 1 0 1 0 0 0 1 1 0 1 2 3 4 5 6 7 F 8:1 MUX S2 S1 S0 A B C A 0 0 0 0 1 1 1 1 B 0 0 1 1 0 0 1 1 C 0 1 0 1 0 1 0 1 F 1 0 1 0 0 0 1 1 C C 0 C C 0 1 0 1 2 3 F 4:1 MUX S1 S0 A B 1 "Lookup Table" © R.H. Katz 4-36 Contemporary Logic Design Logica progr. e ad interruttori Multiplexer/Selector Generalizzazione I 1 I 2 … In n-1 variabili di controllo una variabile di dato … 0 1 F 0 0 0 1 1 0 1 1 Quattro possibili configurazioni delle righe della tabella di verita’ 0 In In 1 Possono essere espresse in funzione di In, 0, 1 Esempio: G(A,B,C,D) puo’ essere realizzata da un mux 8:1: Mappa di Karnaugh con A,B,C come controllo Realizzazione a multiplexer Riduce il numero di integrati (non di porte) 1 D 0 1 D D D D 0 1 2 3 4 5 6 7 G 8:1 mux S2 A S1 S0 B C © R.H. Katz 4-37 Contemporary Logic Design Logica progr. e ad interruttori Decodificatori/Demultiplexer Decodificatore: un ingresso di dato, n ingressi di controllo, 2n uscite Ingressi di controllo (selezione S) rappresentano l’indice binario dell’uscita a cui l’ingresso e’ collegato L’ingresso di dato di solito si chiama "enable" (G) Decodificatore 1:2 : O0 = G • S; O1 = G • S Decodificatore 2:4 : O0 = G • S0 • S1 Decodificatore 3:8 : O0 = G • S0 • S1 • S2 O1 = G • S0 • S1 • S2 O2 = G • S0 • S1 • S2 O1 = G • S0 • S1 O3 = G • S0 • S1 • S2 O2 = G • S0 • S1 O4 = G • S0 • S1 • S2 O3 = G • S0 • S1 O5 = G • S0 • S1 • S2 O6 = G • S0 • S1 • S2 O7 = G • S0 • S1 • S2 © R.H. Katz 4-38 Contemporary Logic Design Logica progr. e ad interruttori Decodificatori/Demultiplexer Realizzazioni altrnative G Select /G Output0 Select Output0 Output1 Output1 Decodificatore 1:2, Enable attivo alto Decodificatore 1:2, Enable attivo basso /G G Select0 Output0 Output0 Output1 Output1 Output2 Output2 Output3 Output3 Select1 Decodificatore 2:4, Enable attivo alto Select0 Select1 Decodificatore 2:4, Enable attivo basso © R.H. Katz 4-39 Contemporary Logic Design Logica progr. e ad interruttori Decodificatori/Demultiplexer Realizzazioni ad interruttori Select Select G G Output 0 Select Select Output 0 Select Select "0" Select Output 1 Select Select Output 1 Select Realizzazione sbagliata Select Non tutte le uscite sono sempre pilotate "0" Select Realizzazione corretta del decodificatore 1:2 © R.H. Katz 4-40 Contemporary Logic Design Logica progr. e ad interruttori Decodificatori/Demultiplexer Realizzazione ad interruttori del decodificatore 2:4 Select G 0 Select 1 Output 0 Funzionamento del decodificatore 2:4 "0" S0 = 0, S1 = 0 "0" G Output 1 "0" un cammino diretto tre cammini diagonali "0" G Output 2 "0" "0" G Output 3 "0" "0" © R.H. Katz 4-41 Decodificatore/Demultiplexer Decodificatore come blocco logico funzionale Enb 3:8 dec S2 A S1 B S0 0 1 2 3 4 5 6 7 ABC ABC ABC ABC ABC ABC ABC ABC Contemporary Logic Design Logica progr. e ad interruttori Il decodificatore genera il mintermine appropriato dati i segnali di controllo C Esempio: F1 = A' B C' D + A' B' C D + A B C D F2 = A B C' D' + A B C F3 = (A' + B' + C' + D') © R.H. Katz 4-42 Decodificatore/Demultiplexer Contemporary Logic Design Logica progr. e ad interruttori Decodificatore come blocco logico funzionale Enb 4:16 dec S3 S2 S1 S0 A B C D 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 A B CD A B CD A B CD A B CD A B CD A B CD A B CD A B CD A B CD A B CD A B CD A B CD A B CD A B CD A B CD A B CD F1 F2 F3 Se enable e’ attivo basso, usate porte NAND! © R.H. Katz 4-43 Contemporary Logic Design Logica progr. e ad interruttori Multiplexer/Decodificatori Realizzazioni alternative di mux 32:1 I7 I6 I5 I4 I3 I2 I1 I0 C D E EN I31 7 151 EN 1 6 5 1 Y5 I23 7 151 41 4 6 3 W 6 EN 1 5 52 2 1 3 5 1 I15 7 151 41 4 40Y 6 1 52 3 W EN 1 6 5 2 3 3 1 Y 19 1 5C 7 151 41 4 B 4 0W 1 6A 6 5 3 0 22 5 9 1 3 1 Y 15 C 4 4 0 1 6B 13 W0 A 2 9 1 1 1 C B 0 1A S2 0 1 S1 S0 1 1G 1Y 3 1391Y 2 A 3 1B 1Y 1 2 1A 1Y 0 B 15 2G 2Y 3 2Y 2 13 2B 2Y 1 14 2A 2Y 0 1 GA 3 A3 4 A2 5 A1 6 A0 13 12 11 10 1 5 153 YA 7 B3 B2 YB 9 B1 B0 GBS1 SO 2 14 A B Solo con multiplexer F(A, B, C, D, E) 7 6 5 4 9 10 11 12 7 EN 146 5 154 I31 7 151 1 3 6 7 EN 22 I5 145 31 Y 5 154 I23 7 I4151 40 3 7 EN 146 I3 1 W 6 I5 5 I2 2 2 9C 154 I1 3 1 Y 10 5B I15 7 I4151 3 I0 4 0 W 116A 7 EN 146 I3 1 I5 5 I2 22 C 9 C S2 154 I1 31Y 10 5B I7 7 I4151 S1 1 4 D I0 0 I6 6 I3 3 W 116A I5 5 I2 2 2 C 9C S2 E S0 5B I4 4 I1 3 1 Y 10 S1 4 D I3 3 I0 0 W 116A I2 2 C 9 S2 E S0 I1 1 10C B S1 D I0 0 11A C S2E S0 D S1 E S0 F(A, B, C, D, E) Multiplexer + Decodificatore © R.H. Katz 4-44 Contemporary Logic Design Logica progr. e ad interruttori Multiplexer/Decodificatori Decodificatore 5:32 \EN S4 S3 \EN \Y31 Decodificatore . 5:32 . . 1G 1Y 3 139 1Y 2 1B 1Y 1 1A 1Y 0 2G 2Y 3 2Y 2 2B 2Y 1 2A 2Y 0 S2 S1 S0 G1 G2A G2B Y7 Y6 Y5 Y4 138 Y 3 Y2 C Y1 B Y0 A \Y 31 \Y 30 \Y 29 \Y 28 \Y 27 \Y 26 \Y 25 \Y 24 Y7 Y6 Y5 Y4 138 Y 3 Y2 C Y1 B Y0 A \Y 23 \Y 22 \Y 21 \Y 20 \Y 19 \Y 18 \Y 17 \Y 16 Y7 G1 G2A Y 6 G2B Y 5 138 Y 4 Y3 C Y2 B Y1 A Y0 \Y 15 \Y 14 \Y 13 \Y 12 \Y 11 \Y 10 \Y 9 \Y 8 G1 Y 7 G2A Y 6 G2B Y 5 138 Y 4 Y3 Y2 C Y1 B Y0 A \Y 7 \Y 6 \Y 5 \Y 4 \Y 3 \Y 2 \Y 1 \Y 0 G1 G2A G2B S2 S1 S0 \Y0 S4 S3 S2 S1 S0 S2 S1 S0 S2 S1 S0 © R.H. Katz 4-45 Contemporary Logic Design Tri-State ed Open-Collector Logica progr. e ad interruttori Il terzo stato Stati logici: "0", "1" Stato Don't Care/Don't Know: "X" (ha un valore definito nel circuito!) Terzo stato: "Z" — alta impedenza — resistenza infinita, non connesso Porte tri-state: valori di uscita "0", "1", and "Z" ingresso di abilitazione (Output Enable, OE) A OE F X 0 Z 0 1 0 1 1 1 Quando OE e’ alto, la porta e’ un "buffer” non invertente Quando OE e’ basso, e’ come se la porta si staccasse dall’uscita! Permette di connettere piu’ di una porta ad un solo filo di uscita, purche’ una sola abbia l’abilitazione attiva in un dato momento 100 Forma d’onda del buffer non invertente A OE F "Z" "Z" © R.H. Katz 4-46 Contemporary Logic Design Logica progr. e ad interruttori Tri-state ed Open Collector Come usare porte tri-state per realizzare un multiplexer economico: Input F 0 OE Input 1 OE Quando SelectInput e’ ad 1, Input1 e’ collegato ad F Quando SelectInput e’ a 0, Input0 e’ collegato ad F Si comporta come un mux 2:1 SelectInput © R.H. Katz 4-47 Contemporary Logic Design Logica progr. e ad interruttori Tri-state ed Open Collector Esempio differente di tri-state Input F 0 OE Input Tri-state con abilitazione attiva bassa e buffer invertenti 1 1 OE SelectInput F I OE Realizzazione ad interruttori di una porta tri-state 0 © R.H. Katz 4-48 Tri-State ed Open Collector Un’altra realizzazione del multiplexer 4:1 \EN 1 S1 S0 1G 1Y 3 1Y 2 3 139 1B 1Y 1 2 1A 1Y 0 15 7 6 5 4 Contemporary Logic Design Logica progr. e ad interruttori D3 9 2G 2Y 3 10 2Y 2 13 2B 2Y 1 11 14 2A 2Y 0 12 D2 D1 D0 Decodificatore + 4 porte tri-state © R.H. Katz 4-49 Tri-state ed Open Collector Contemporary Logic Design Logica progr. e ad interruttori Open Collector Un altro modo di collegare molte porte ad uno stesso filo La porta puo’ solo pilotare verso lo 0 la sua uscita, non puo’ pilotarla ad 1 Il valore 1 e’ ottenuto usando una resistenza (“pull up”) +5 V Pull-up resistor Open-c ollector NAND gate F 0V A B Porte NAND OC Wired AND: Se A e B sono chiusi, l’uscita e’ pilotata a 0 Se C e D sono chiusi, l’uscita e’ pilotata a 0 Se una porta e’ a 0 e l’altra ad 1, lo 0 vince Se entrambe le porte hanno un interruttore aperto, l’uscita e’ portata ad 1 dalla resistenza Quindi le due funzioni NAND sono in “AND”! © R.H. Katz 4-50 Contemporary Logic Design Logica progr. e ad interruttori Tri-state ed Open Collector Multiplexer 4:1 \EN 1 Y3 G 139 Y 2 3 Y1 S1 B 2 A Y0 S0 +5V 7 6 5 4 \I3 OR \I2 OR \I1 OR \I0 OR F Decodificatore + 4 porte Open Collector © R.H. Katz 4-51 Contemporary Logic Design Logica progr. e ad interruttori Memorie a sola lettura Read Only Memory (ROM): matrice bidimensionale di 0 ed 1 Una riga e’ chiamata “parola” (word), l’indice e’ chiamato “indirizzo” La “larghezza di parola” e’ anche detta numero di bit o wordsize L’indirizzo e’ l’ingresso, la parola selezionata e’ l’uscita +5V +5V +5V +5V n 2 -1 Dec i Word Line 0011 j Word Line 1010 0 0 n-1 Indirizzo Bit Lines Organizzazione interna © R.H. Katz 4-52 Contemporary Logic Design Logica progr. e ad interruttori Memorie a sola lettura Esempio: realizzazione di logica combinatoria F0 = A' B' C + A B' C' + A B' C F1 = A' B' C + A' B C' + A B C F2 = A' B' C' + A' B' C + A B' C' F3 = A' B C + A B' C' + A B C' A 0 0 0 0 1 1 1 1 Indirizzo ROM 8 parole di ¥ 4 bit A B C Indirizzo F0 F1 F2 B 0 0 1 1 0 0 1 1 C 0 1 0 1 0 1 0 1 F0 0 1 0 0 1 1 0 0 F1 0 1 1 0 0 0 0 1 F2 1 1 0 0 1 0 0 0 F3 0 0 0 1 1 0 1 0 Contenuto di una parola F3 Uscite © R.H. Katz 4-53 Contemporary Logic Design Logica progr. e ad interruttori Memorie a sola lettura Simili ad una PLA con piano AND completamente decodificato (mintermini)! Matrice di memoria Decodificatore 2n word line n ingressi di indirizzo 2n parole di m bit m uscite ROM o PLA? ROM va bene quando (1) c’e’ poco tempo per progettare (non c’e’ tempo per minimizzare) (2) servono quasi tutte le combinazioni di ingresso (convertitori di codice) (3) non c’e’ molta condivisione di termini tra le uscite Problemi della ROM: dimensione raddoppia ad ogni ingresso in piu’, non usa i don’t care PLA/PAL va bene quando (1) si puo’ usare un programma CAD come espresso (2) ci sono pochi mintermini ad 1 (3) molti mintermini sono condivisi tra le uscite Problema della PAL: vincolo sugli ingressi nel piano OR © R.H. Katz 4-54 Contemporary Logic Design Logica progr. e ad interruttori Memorie a sola lettura 2764 EPROM 8K x 8 2764 VPP PGM A12 A11 A10 O7 A9 O6 A8 O5 A7 O4 A6 O3 A5 O2 A4 O1 A3 O0 A2 A1 A0 CS OE 2764 VPP PGM A12 A11 A10 O7 A9 O6 A8 O5 A7 O4 A6 O3 A5 O2 A4 O1 A3 O0 A2 A1 A0 CS U3 OE + A13 /OE A12:A0 D15:D8 D7:D0 + 2764 VPP PGM A12 A11 A10 O7 A9 O6 A8 O5 A7 O4 A6 O3 A5 O2 A4 O1 A3 O0 A2 A1 A0 CS U1 OE 2764 VPP PGM A12 A11 A10 O7 A9 O6 A8 O5 A7 O4 A6 O3 A5 O2 A4 O1 A3 O0 A2 A1 A0 CS U2 OE + + 2764 VPP PGM A12 A11 A10 O7 A9 O6 A8 O5 A7 O4 A6 O3 A5 O2 A4 O1 A3 O0 A2 A1 A0 CS U0 OE Sottosistema 16K x 16 © R.H. Katz 4-55 Specifiche informali di reti combinatorie Contemporary Logic Design Logica progr. e ad interruttori Metodo generale di progetto 1. Capire il problema che cosa deve fare il circuito? scrivere gli ingressi (dati, controllo) e le uscite disegnare uno schema a blocchi 2. Formulare il problema con una tabella di verita’ o un’altra rappresentazione opportuna (diagramma con forme d’onda) 3. Scegliere la tecnologia di realizzazione ROM, PAL, PLA, Mux, Decodificatore + OR, porte logiche 4. Usare il metodo opportuno di realizzazione mappe di Karnaugh, espresso, misII © R.H. Katz 4-56 Specifiche informali di reti combinatorie Controllo di linea di produzione Contemporary Logic Design Logica progr. e ad interruttori Descrizione del problema Barre di lunghezza variabile (+/-10%) su nastro trasportatore Braccio meccanico spinge barre accettabili (+/-5%) da un lato Un secondo braccio spinge quelle troppo lunghe dall’altro Le barre troppo corte rimangono sul nastro 3 sensori di luce (lampadina + fotocellula) Progettare la rete logica combinatoria che controlla i bracci Capire il problema Ingressi: 3 sensori, uscite: 2 segnali di controllo dei bracci Supponiamo che i sensori producano “1” quando sono bloccati, altrimenti “0” Chiamare i sensori A, B, C Disegnare una figura! © R.H. Katz 4-57 Specifiche informali di reti combinatorie Controllo di linea di produzione Contemporary Logic Design Logica progr. e ad interruttori +10% + 5% + 5% Spec Spec Spec - 5% - 5% - 10% barra troppo lunga barra accettabile barra troppo corta Dove mettere i sensori A, B, e C per distinguere i tre casi? Supponiamo che A identifichi il lato anteriore della barra sul nastro trasportatore © R.H. Katz 4-58 Contemporary Logic Design Logica progr. e ad interruttori Specifiche informali di reti combinatorie Controllo di linea di produzione A Specifica - 5% accettabile lunga corta Specifica + 5% B C A e B ad una distanza pari alla specifica - 5% A e C ad una distanza pari alla specifica +5% © R.H. Katz 4-59 Specifiche informali di reti combinatorie Controllo di linea di produzione A 0 0 0 0 1 1 1 1 B 0 0 1 1 0 0 1 1 C 0 1 0 1 0 1 0 1 Funzione X X X X corta X accettabile lunga Contemporary Logic Design Logica progr. e ad interruttori Tabella di verita’ e realizzazione logica adesso sono facili ”troppo lunga" = A B C (3 sensori bloccati) ”accettabile" = A B C' (primi 2 sensori bloccati) © R.H. Katz 4-60 Contemporary Logic Design Logica progr. e ad interruttori Specifiche informali di reti combinatorie Controllo display a 7 segmenti in BCD Capire il problema: ingressi: cifra BCD a 4 bit uscite: segnali di controllo del display 4 ingressi A, B, C, D 7 uscite C0 — C6 C0 C1 C2 C3 C4 C5 C6 C0 C5 C6 C4 C3 7-Segment dis play C1 C2 BCD-to-7-s egment c ontrol s ignal dec oder C C C C C C C 0 1 2 3 4 5 6 A B C D Schema a blocchi © R.H. Katz 4-61 Specifiche informali di reti combinatorie Controllo display a 7 segmenti in BCD Contemporary Logic Design Logica progr. e ad interruttori Formulare il problema come tabella di verita’ Scegliere la tecnologia di realizzazione se ROM, basta la tabella di verita’ i don't care implicano che una PAL/PLA puo’ essere meglio Seguire la tecnica di progetto: mappa di Karnaugh a mano oppure espresso © R.H. Katz 4-62 Contemporary Logic Design Logica progr. e ad interruttori Specifiche informali di reti combinatorie Controllo display a 7 segmenti in BCD A AB 00 01 11 10 00 1 0 X 1 01 0 1 X 1 CD A AB 00 01 11 10 00 1 1 X 1 01 1 0 X 1 CD D 11 1 1 X 11 1 1 X 1 1 X X 00 1 1 X 1 01 1 1 X 1 11 1 1 X X 10 0 1 X X C 10 1 0 X X B K-map for C0 K-map for C1 K-map for C2 A A AB 01 11 10 00 1 0 X 1 01 0 1 X 0 11 1 0 X X 00 01 11 10 00 1 0 X 1 01 0 0 X 0 11 0 0 X X CD C X X 00 01 11 10 00 1 1 X 1 01 0 1 X 1 11 0 0 X X CD 1 1 X X 00 01 11 10 00 0 1 X 1 01 0 1 X 1 11 1 0 X X 10 1 1 X X CD D D C 10 A AB D C 1 A AB D 1 10 B 00 10 11 B AB CD 01 D X C 10 00 CD D X C A AB C 10 0 1 X X B B B B K-map for C3 K-map for C 4 K-map for C5 K-map for C6 C0 = A + B D + C + B' D' C1 = A + C' D' + C D + B' C2 = A + B + C' + D 14 termini prodotto distinti C3 = B' D' + C D' + B C' D + B' C C4 = B' D' + C D C5 = A + C' D' + B D' + B C' C6 = A + C D' + B C' + B' C © R.H. Katz 4-63 Specifiche informali di reti combinatorie Controllo display a 7 segmenti in BCD Contemporary Logic Design Logica progr. e ad interruttori Incr ement 1 0 First fuse number s 4 8 12 16 20 24 28 0 32 64 96 128 160 192 224 19 256 288 320 352 384 416 448 480 18 512 544 576 608 640 672 704 736 17 768 800 832 864 896 928 960 992 16 1024 1056 1088 1120 1152 1184 1216 1248 15 1280 1312 1344 1376 1408 1440 1472 1504 14 1536 1568 1600 1632 1664 1696 1728 1760 13 1792 1824 1856 1888 1920 1952 1984 2016 12 2 3 16H8PAL basta per realizzare le funzioni 4 5 6 7 8 9 11 Note: Fuse number = first fuse number + incr ement © R.H. Katz 4-64 Contemporary Logic Design Logica progr. e ad interruttori Specifiche informali di reti combinatorie Controllo display a 7 segmenti in BCD Increment 012 3 4 8 10 12 14 16 18 20 24 27 1 2 Fir st fuse numbers 14H8PAL non basta per realizzare le funzioni 23 0 28 56 84 22 1 112 140 21 168 196 20 224 252 19 280 308 18 336 364 17 392 420 16 448 476 504 532 15 3 4 5 6 7 8 9 10 14 11 13 N ote: Fuse number = fir st fuse number + i ncrement © R.H. Katz 4-65 Specifiche informali di reti combinatorie Controllo display a 7 segmenti in BCD .i 4 .o 7 .ilb a b c d .ob c0 c1 c2 c3 c4 c5 c6 .p 16 0000 1111110 0001 0110000 0010 1101101 0011 1111001 0100 0110011 0101 1011011 0110 1011111 0111 1110000 1000 1111111 1001 1110011 1010 ------1011 ------1100 ------1101 ------1110 ------1111 ------.e .i 4 .o 7 .ilb a b c d .ob c0 c1 c2 c3 c4 c5 c6 .p 9 -10- 0000001 -01- 0001001 C0 -0-1 0110000 -101 1011010 C1 --00 0110010 C2 --11 1110000 C3 -0-0 1101100 C4 1--- 1000011 -110 1011111 C5 .e C6 uscita di espresso Contemporary Logic Design Logica progr. e ad interruttori = B C' D + C D + B' D' + B C D' + A = B' D + C' D' + C D + B' D' = B' D + B C' D + C' D' + C D + B C D' = B C' D + B' D + B' D' + B C D' = B' D' + B C D' = B C' D + C' D' + A + B C D' = B' C + B C' + B C D' + A 9 termini prodotto distinti! 63 letterali, 20 porte ingresso di espresso © R.H. Katz 4-66 Specifiche informali di reti combinatorie Controllo display a 7 segmenti in BCD Contemporary Logic Design Logica progr. e ad interruttori Realizzazione a PLA © R.H. Katz 4-67 Specifiche informali di reti combinatorie Controllo display a 7 segmenti in BCD Contemporary Logic Design Logica progr. e ad interruttori Realizzazione multi-livello X = C' + D' Y = B' C' C0 = C3 + A' B X' + A D Y C1 = Y + A' C5' + C' D' C6 C2 = C5 + A' B' D + A' C D C3 = C4 + B D C5 + A' B' X' 52 letterali 33 porte Abbiamo usato male i don’t care C4 = D' Y + A' C D' C5 = C' C4 + A Y + A' B X C6 = A C4 + C C5 + C4' C5 + A' B' C © R.H. Katz 4-68 Contemporary Logic Design Logica progr. e ad interruttori Specifiche informali di reti combinatorie Barrel shifter ad 8 ingressi Specifica: Ingressi: D7, D6, …, D0 Uscite: O7, O6, …, O0 Controlli: S2, S1, S0 Rotazione (“shift”) a destra del numero binario in ingresso per un numero specificato di posizioni Capire il problema: D7 D6 D5 D4 D3 D2 D1 D0 . . . O7 O6 O5 O4 O3 O2 O1 O0 S2, S1, S0 = 0 0 0 D7 D6 D5 D4 D3 D2 D1 D0 . . . O7 O6 O5 O4 O3 O2 O1 O0 S2, S1, S0 = 0 0 1 D7 D6 D5 D4 D3 D2 D1 D0 . . . O7 O6 O5 O4 O3 O2 O1 O0 S2, S1, S0 = 0 1 0 © R.H. Katz 4-69 Contemporary Logic Design Logica progr. e ad interruttori Specifiche informali di reti combinatorie Barrel shifter ad 8 ingressi Tabella funzionale Equazioni logiche S2 S1 S0 0 0 0 0 0 1 0 1 0 0 1 1 1 0 0 1 0 1 1 1 0 1 1 1 O7 D7 D6 D5 D4 D3 D2 D1 D0 O6 D6 D5 D4 D3 D2 D1 D0 D7 O5 D5 D4 D3 D2 D1 D0 D7 D6 O4 D4 D3 D2 D1 D0 D7 D6 D5 O3 D3 D2 D1 D0 D7 D6 D5 D4 O2 D2 D1 D0 D7 D6 D5 D4 D3 O1 D1 D0 D7 D6 D5 D4 D3 D2 O0 D0 D7 D6 D5 D4 D3 D2 D1 O7 = S2' S1' S0' D7 + S2' S1' S0 D6 + … + S2 S1 S0 D0 O6 = S2' S1' S0' D6 + S2' S1' S0 D5 + … + S2 S1 S0 D7 O5 = S2' S1' S0' D5 + S2' S1' S0 D4 + … + S2 S1 S0 D6 O4 = S2' S1' S0' D4 + S2' S1' S0 D3 + … + S2 S1 S0 D5 O3 = S2' S1' S0' D3 + S2' S1' S0 D2 + … + S2 S1 S0 D4 O2 = S2' S1' S0' D2 + S2' S1' S0 D1 + … + S2 S1 S0 D3 O1 = S2' S1' S0' D1 + S2' S1' S0 D0 + … + S2 S1 S0 D2 O0 = S2' S1' S0' D0 + S2' S1' S0 D7 + … + S2 S1 S0 D1 © R.H. Katz 4-70 Contemporary Logic Design Logica progr. e ad interruttori Specifiche informali di reti combinatorie Barrel shifter ad 8 ingressi Realizzazione molto semplice a porte logiche OPPURE 8 multiplexer 8:1 (troppi fili!) OPPURE Logica ad interruttori S000 O7 O6 O5 O4 O3 O2 O1 O0 S000 O6 O5 O4 O3 O2 O1 O0 D7 D7 S001 D6 O7 S001 S001 D6 S001 S010 S010 D5 D5 S011 D4 S011 D4 D3 S100 D3 S100 D2 S101 D2 S101 D1 S110 D1 S110 S111 S111 D0 D0 Interruttori agli incroci Barrel shifter con tutte le combinazioni possibili © R.H. Katz 4-71 Riassunto del capitolo Contemporary Logic Design Logica progr. e ad interruttori • Blocchi logici complessi: PAL/PLA Multiplexer/selettori Decodificatori/demultiplexer ROM Tri-state, Open Collector • Specifiche informali di problemi logici: Capire il problema Formularlo come tabella di verita’ Scegliere la tecnologia di realizzazione Realizzare usando la procedura opportuna © R.H. Katz 4-72