Esercizi risolti Elettronica Digitale, Esercizi di Elettronica Digitale
bluesman94
bluesman94

Esercizi risolti Elettronica Digitale, Esercizi di Elettronica Digitale

461 pagine
22Numero di download
1000+Numero di visite
100%su 1 votiNumero di voti
Descrizione
Esercizi risolti Elettronica Digitale
40 punti
Punti download necessari per scaricare
questo documento
Scarica il documento
Anteprima3 pagine / 461
Questa è solo un'anteprima
3 pagine mostrate su 461 totali
Questa è solo un'anteprima
3 pagine mostrate su 461 totali
Questa è solo un'anteprima
3 pagine mostrate su 461 totali
Questa è solo un'anteprima
3 pagine mostrate su 461 totali
Esercitazioni_ESD.dvi

Esercitazioni

di

Elettronica dei Sistemi Digitali

Selezione e risoluzione esercizi

a cura del Prof. Maurizio Zamboni

Traduzione, impaginazione e traccia con l’aiuto degli studenti coadiutori:

Marco Druetta, Andrea Maria Milazzo,

Salvatore Ganci, Matteo Frittelli,

Gabriele Brancaleoni, Antonio Fattore, Antonio Maniscalco

Documento realizzato in LATEX

28 gennaio 2013

Indice

1 Algebra Booleana - Circuiti Combinatori di base 7 1.1 Copertura mappe di Karnough . . . . . . . . . . . . . . . . . . . 7 1.2 Copertura mappe di Karnough . . . . . . . . . . . . . . . . . . . 8 1.3 Copertura con Sum of Product (SoP) . . . . . . . . . . . . . . . . 9 1.4 Copertura con Sum of Product . . . . . . . . . . . . . . . . . . . 10 1.5 Sintesi con porte NAND . . . . . . . . . . . . . . . . . . . . . . 12 1.6 Sintesi con porte NOR . . . . . . . . . . . . . . . . . . . . . . . 13

2 Sintesi dei Circuiti Combinatori di Base 15 2.1 Sintesi con porte NAND . . . . . . . . . . . . . . . . . . . . . . 15 2.2 Multiplexer 2-to-1 . . . . . . . . . . . . . . . . . . . . . . . . . . 16 2.3 Multiplexer 4-to-1 . . . . . . . . . . . . . . . . . . . . . . . . . . 18 2.4 Multiplexer in cascata . . . . . . . . . . . . . . . . . . . . . . . . 19 2.5 Espansione di Shannon . . . . . . . . . . . . . . . . . . . . . . . 21 2.6 Espansione di Shannon . . . . . . . . . . . . . . . . . . . . . . . 23 2.7 Sintesi con Decoder . . . . . . . . . . . . . . . . . . . . . . . . . 24 2.8 Sintesi multiuscite con Decoder . . . . . . . . . . . . . . . . . . 24 2.9 Sintesi con LUT a due ingressi . . . . . . . . . . . . . . . . . . . 26 2.10 Sintesi con LUT a tre ingressi . . . . . . . . . . . . . . . . . . . 27 2.11 Sintesi con Blocchi MPX-based . . . . . . . . . . . . . . . . . . 28

3 Fondamenti di VHDL 31 3.1 VHDL - Descrizione di funzioni booleane . . . . . . . . . . . . . 31 3.2 VHDL - Sintesi con porte NAND . . . . . . . . . . . . . . . . . . 32 3.3 VHDL - Sintesi con PoS . . . . . . . . . . . . . . . . . . . . . . 35 3.4 VHDL - Encoder 8-to-3 . . . . . . . . . . . . . . . . . . . . . . . 36 3.5 VHDL - Decoder BCD 7 segmenti . . . . . . . . . . . . . . . . . 37

4 FPGA 39 4.1 PLA di tipo NOR-NOR - SoP . . . . . . . . . . . . . . . . . . . 39 4.2 PLA di tipo NOR-NOR - PoS . . . . . . . . . . . . . . . . . . . 41

1

4.3 PLA nMOS-LIKE . . . . . . . . . . . . . . . . . . . . . . . . . . 42 4.4 PLA con LUT . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43

5 Blocchi Aritmetici 46 5.1 Decimali Senza segno . . . . . . . . . . . . . . . . . . . . . . . . 46 5.2 Complemento a 1 . . . . . . . . . . . . . . . . . . . . . . . . . . 47 5.3 Complemento a 2 . . . . . . . . . . . . . . . . . . . . . . . . . . 47 5.4 Complemento a 1 e complemento a 2 . . . . . . . . . . . . . . . . 48 5.5 XOR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48 5.6 Operatore XOR . . . . . . . . . . . . . . . . . . . . . . . . . . . 48 5.7 Sottrazioni UNSIGNED . . . . . . . . . . . . . . . . . . . . . . 49 5.8 Sottrazioni SIGNED . . . . . . . . . . . . . . . . . . . . . . . . 50 5.9 Convertitore in Complemento a 2 . . . . . . . . . . . . . . . . . . 51 5.10 Overflow . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53 5.11 Carry-out . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54 5.12 Addizioni e sottrazioni con segno . . . . . . . . . . . . . . . . . . 55 5.13 Somme/Sottrazioni binarie con segno . . . . . . . . . . . . . . . 56 5.14 Somma e sottrazione in modulo e segno . . . . . . . . . . . . . . 57 5.15 Somma di 3 numeri di 4 bit . . . . . . . . . . . . . . . . . . . . . 60 5.16 Incrementatore e Decrementatore per 2 . . . . . . . . . . . . . . . 60 5.17 Complemento a 9 di un digit BCD . . . . . . . . . . . . . . . . . 62 5.18 Addizione BCD e VHDL . . . . . . . . . . . . . . . . . . . . . . 63 5.19 Sottrazione BCD . . . . . . . . . . . . . . . . . . . . . . . . . . 66 5.20 Interpretazione grafica di un numero BCD a 3 digit con segno . . 67 5.21 Half-adder ternario . . . . . . . . . . . . . . . . . . . . . . . . . 68 5.22 Full-adder ternario . . . . . . . . . . . . . . . . . . . . . . . . . 70 5.23 Sottrattore decimale . . . . . . . . . . . . . . . . . . . . . . . . . 71 5.24 Sommatore binario 2-bit . . . . . . . . . . . . . . . . . . . . . . 72 5.25 Sommatore 4-bit . . . . . . . . . . . . . . . . . . . . . . . . . . 74 5.26 Somme algebriche in Complemento a 2 . . . . . . . . . . . . . . 74 5.27 Sommatore con una costante . . . . . . . . . . . . . . . . . . . . 75 5.28 Conta numero di 1 presenti in ingresso . . . . . . . . . . . . . . . 75 5.29 Comparatore >=< . . . . . . . . . . . . . . . . . . . . . . . . 78 5.30 Comparatore di uguaglianza di due numeri senza segno su 4 bit . . 80 5.31 Comparatore su 4-bit . . . . . . . . . . . . . . . . . . . . . . . . 81 5.32 Comparatore su 4-bit modulare . . . . . . . . . . . . . . . . . . . 82 5.33 Comparatore su 4-bit realizzato con un sottrattore a 4 bit . . . . . 83 5.34 Comparatore di uguaglianza e maggioranza su 4-bit modulare . . 84 5.35 Sommatore Ripple-Carry . . . . . . . . . . . . . . . . . . . . . . 85 5.36 Carry-Lookahead Gerarchico . . . . . . . . . . . . . . . . . . . . 86 5.37 Codice VHDL ignoto . . . . . . . . . . . . . . . . . . . . . . . . 87

2

5.38 Percorso critico di un moltiplicatore . . . . . . . . . . . . . . . . 88 5.39 VHDL di un moltiplicatore . . . . . . . . . . . . . . . . . . . . . 90

6 Circuiti sequenziali 94 6.1 Flip-flop SR sincrono con flip-flop di tipo D . . . . . . . . . . . . 94 6.2 Latch SR Set- Dominant . . . . . . . . . . . . . . . . . . . . . . 96 6.3 Flip flop MS a set dominante . . . . . . . . . . . . . . . . . . . . 96 6.4 Flip flop MS a Set dominante - verifica . . . . . . . . . . . . . . . 98 6.5 Flip flop di tipi diversi . . . . . . . . . . . . . . . . . . . . . . . 100 6.6 Latch SR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100 6.7 Latch Nand-Nand . . . . . . . . . . . . . . . . . . . . . . . . . . 101 6.8 Latch SR gated . . . . . . . . . . . . . . . . . . . . . . . . . . . 102 6.9 Divisore di frequenza . . . . . . . . . . . . . . . . . . . . . . . . 102 6.10 JK con flip flop T . . . . . . . . . . . . . . . . . . . . . . . . . . 103 6.11 JK negative-edge-triggered . . . . . . . . . . . . . . . . . . . . . 104 6.12 Confronto tra circuiti con flip flop . . . . . . . . . . . . . . . . . 105 6.13 Flip flop D negative edge triggered . . . . . . . . . . . . . . . . 106 6.14 Flip-flop di tipo D . . . . . . . . . . . . . . . . . . . . . . . . . . 107 6.15 Confronto tra diversi tipi di flip-flop D e latch . . . . . . . . . . . 108 6.16 Flip-flop SR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109 6.17 Flip Flop LH . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110 6.18 Latch D gated . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112 6.19 Bidirectional shift . . . . . . . . . . . . . . . . . . . . . . . . . . 113 6.20 Up/Down counter . . . . . . . . . . . . . . . . . . . . . . . . . . 115 6.21 Derivazione tabella e diagramma degli stati . . . . . . . . . . . . 118 6.22 Derivazione tabella e diagramma degli stati (2) . . . . . . . . . . 120 6.23 Derivazione tabella e diagramma degli stati (3) . . . . . . . . . . 121 6.24 Diagramma a stati . . . . . . . . . . . . . . . . . . . . . . . . . . 123 6.25 Generazione sequenza di verifica . . . . . . . . . . . . . . . . . . 124 6.26 Progetto FSM e simulazione . . . . . . . . . . . . . . . . . . . . 125 6.27 Tabella e diagramma degli stati . . . . . . . . . . . . . . . . . . . 126 6.28 Progetto FSM . . . . . . . . . . . . . . . . . . . . . . . . . . . . 128 6.29 Progetto FSM (2) . . . . . . . . . . . . . . . . . . . . . . . . . . 129 6.30 Simulazione Progetto FSM (2) . . . . . . . . . . . . . . . . . . . 131 6.31 Progetto FSM (3) . . . . . . . . . . . . . . . . . . . . . . . . . . 132 6.32 Ottimizzazione di FSM . . . . . . . . . . . . . . . . . . . . . . . 135 6.33 Start, Stop e Run . . . . . . . . . . . . . . . . . . . . . . . . . . 137 6.34 Complementatore a 2 seriale . . . . . . . . . . . . . . . . . . . . 140 6.35 NRZI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 143 6.36 Conversione NRZI - standard . . . . . . . . . . . . . . . . . . . . 144 6.37 Contatore da 11 a 233 . . . . . . . . . . . . . . . . . . . . . . . . 146

3

6.38 Generatore di sequenze per USB . . . . . . . . . . . . . . . . . . 147 6.39 Generatore di sequenza . . . . . . . . . . . . . . . . . . . . . . . 149 6.40 Generatore di sequenza - Zero Insertion . . . . . . . . . . . . . . 150 6.41 Rilevatore del primo uno in una sequenza . . . . . . . . . . . . . 153 6.42 Lucchetto Elettronico . . . . . . . . . . . . . . . . . . . . . . . . 154 6.43 Controllore di Handshake . . . . . . . . . . . . . . . . . . . . . . 157 6.44 Progetto FSM con tecnica One-Hot . . . . . . . . . . . . . . . . . 159 6.45 Contatore ad anello a 3 bit . . . . . . . . . . . . . . . . . . . . . 161 6.46 FSM equivalenti . . . . . . . . . . . . . . . . . . . . . . . . . . . 163 6.47 FSM distributore automatico . . . . . . . . . . . . . . . . . . . . 164 6.48 FSM distributore automatico (2) . . . . . . . . . . . . . . . . . . 167 6.49 Distributore di bibite . . . . . . . . . . . . . . . . . . . . . . . . 168 6.50 Sintesi di un JK . . . . . . . . . . . . . . . . . . . . . . . . . . . 169 6.51 Contatore a 4 bit con T flip flop . . . . . . . . . . . . . . . . . . . 169 6.52 Up/Down counter con flip flop T . . . . . . . . . . . . . . . . . . 170 6.53 Up/Down counter con flip flop D . . . . . . . . . . . . . . . . . 171 6.54 Contatore . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 171 6.55 Ring Oscillator . . . . . . . . . . . . . . . . . . . . . . . . . . . 172 6.56 Progetto di un circuito generatore di impulsi . . . . . . . . . . . . 174 6.57 Calcolo delay massimo e frequenza massima . . . . . . . . . . . 174 6.58 Massima frequenza di funzionamento - contatore . . . . . . . . . 177 6.59 Massima frequenza di funzionamento - Bus con registri . . . . . . 178

7 VHDL per circuiti sequenziali 180 7.1 VHDL - Flip flop T . . . . . . . . . . . . . . . . . . . . . . . . . 180 7.2 VHDL - Flip flop JK . . . . . . . . . . . . . . . . . . . . . . . . 181 7.3 Derivazione circuitale da VHDL . . . . . . . . . . . . . . . . . . 182 7.4 VHDL - Riconoscitore di sequenza . . . . . . . . . . . . . . . . . 183 7.5 VHDL - Riconoscimento di 2 ingressi uguali per 4 colpi di clock . 186 7.6 VHDL - Parità su 3 bit consecutivi . . . . . . . . . . . . . . . . . 188 7.7 VHDL - Shift bidirezionale . . . . . . . . . . . . . . . . . . . . 191 7.8 VHDL - Up/Down counter a 24 bit . . . . . . . . . . . . . . . . . 192 7.9 VHDL - Up/Down counter a 24 bit parametrico . . . . . . . . . . 193 7.10 VHDL - Contatore up a 12 bit . . . . . . . . . . . . . . . . . . . 194 7.11 VHDL - Descrizione gerarchica . . . . . . . . . . . . . . . . . . 195 7.12 VHDL - Johnson counter . . . . . . . . . . . . . . . . . . . . . . 198 7.13 VHDL - Ring Counter . . . . . . . . . . . . . . . . . . . . . . . 199 7.14 VHDL - Descrizione comportamentale . . . . . . . . . . . . . . . 201 7.15 Simulazione e sintesi CAD . . . . . . . . . . . . . . . . . . . . . 202 7.16 Simulazione e sintesi CAD (2) . . . . . . . . . . . . . . . . . . . 203 7.17 Simulazione e sintesi CAD (3) . . . . . . . . . . . . . . . . . . . 204

4

7.18 VHDL - Contatore BCD a 4 digit . . . . . . . . . . . . . . . . . . 205

8 Progettazione di sistemi digitali 208 8.1 Divisore per sottrazioni ripetute . . . . . . . . . . . . . . . . . . 208 8.2 Logaritmo in base 2 . . . . . . . . . . . . . . . . . . . . . . . . . 213 8.3 Scambio a 3 registri - progetto . . . . . . . . . . . . . . . . . . . 218 8.4 Scambio a 3 registri - ASM chart . . . . . . . . . . . . . . . . . . 220 8.5 Scambio a 3 registri - ASM chart (2) . . . . . . . . . . . . . . . . 221 8.6 Ordinamento - Sorting . . . . . . . . . . . . . . . . . . . . . . . 225 8.7 Shift register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 234 8.8 Counter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 235 8.9 Moltiplicatore somma/shift . . . . . . . . . . . . . . . . . . . . . 239 8.10 Divisore - Codice VHDL . . . . . . . . . . . . . . . . . . . . . . 246 8.11 ASM chart equivalente . . . . . . . . . . . . . . . . . . . . . . . 250 8.12 ASM chart equivalente - Codice VHDL . . . . . . . . . . . . . . 250 8.13 Trasformazioni di ASM chart . . . . . . . . . . . . . . . . . . . 253 8.14 Pseudo-codice per il sorting . . . . . . . . . . . . . . . . . . . . 253 8.15 Ordinamento con buffer 3-state . . . . . . . . . . . . . . . . . . . 261 8.16 Ordinamento - Uso moduli memoria lpm . . . . . . . . . . . . . . 262 8.17 Media . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 269 8.18 Media (2) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 274 8.19 Media (2) - Codice VHDL . . . . . . . . . . . . . . . . . . . . . 276 8.20 Pseudo-codice per un sorter . . . . . . . . . . . . . . . . . . . . . 284 8.21 VHDL di un sorter . . . . . . . . . . . . . . . . . . . . . . . . . 286 8.22 Processore . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 292 8.23 Processore (2) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 294 8.24 Semaforo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 298 8.25 Anti-rimbalzo . . . . . . . . . . . . . . . . . . . . . . . . . . . . 302

9 Memorie 305 9.1 Linee indirizzo e linee input-output . . . . . . . . . . . . . . . . . 305 9.2 Decoder . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 306 9.3 Decoder (2) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 307 9.4 DRAM - Locazioni . . . . . . . . . . . . . . . . . . . . . . . . . 308 9.5 DRAM - Pin di indirizzo . . . . . . . . . . . . . . . . . . . . . . 309 9.6 DRAM - Refresh . . . . . . . . . . . . . . . . . . . . . . . . . . 309 9.7 Struttura memoria . . . . . . . . . . . . . . . . . . . . . . . . . . 310 9.8 Struttura memoria (2) . . . . . . . . . . . . . . . . . . . . . . . . 311

5

10 Esercizi Riepilogativi - tracce di tesi d’esame 313 10.1 Prova d’esame del 30-04-2009 . . . . . . . . . . . . . . . . . . . 313 10.2 Prova d’esame del 03-07-2009 . . . . . . . . . . . . . . . . . . . 328 10.3 Prova d’esame del 07-09-2009 . . . . . . . . . . . . . . . . . . . 342

11 Esercizi Ulteriori sulle FSM Complesse - Materiale non rivisto e cor- retto - 355 11.1 FSM complesse 1 . . . . . . . . . . . . . . . . . . . . . . . . . . 355 11.2 FSM complesse 2 . . . . . . . . . . . . . . . . . . . . . . . . . . 367 11.3 FSM complesse 3 . . . . . . . . . . . . . . . . . . . . . . . . . . 379 11.4 FSM complesse 4 . . . . . . . . . . . . . . . . . . . . . . . . . . 389 11.5 FSM complesse 5 . . . . . . . . . . . . . . . . . . . . . . . . . . 398 11.6 FSM complesse 6 . . . . . . . . . . . . . . . . . . . . . . . . . . 410 11.7 FSM complesse 7 . . . . . . . . . . . . . . . . . . . . . . . . . . 421 11.8 FSM complesse 8 . . . . . . . . . . . . . . . . . . . . . . . . . . 434 11.9 FSM complesse 9 . . . . . . . . . . . . . . . . . . . . . . . . . . 449

6

Capitolo 1

Algebra Booleana - Circuiti Combinatori di base

1.1 Copertura mappe di Karnough

Progettare un circuito digitale che abbia tre ingressi, x1, x2 e x3 e che produca come uscita il valore 1 se due o più variabili d’ingresso assumono il valore 1; in caso contrario l’uscita deve essere a 0.

Soluzione

La tabella di verità della funzione f che rappresenta l’uscita del circuito pro- posto è riportata nella tabella seguente insieme alla mappa di Karnough:

x1 x2 x3 f 0 0 0 0 0 0 1 0 0 1 0 0 0 1 1 1 1 0 0 0 1 0 1 1 1 1 0 1 1 1 1 1

7

x1 , x2 0 0 0 1 1 1 1 0

x3 0 0 0 1 0 1 0 1 1 1

La funzione booleana f risultante è

f = x1x2 + x1x3 + x2x3

1.2 Copertura mappe di Karnough

Determinare la funzione logica f di un circuito che abbia tre ingressi, x1, x2 e x3 e che produca come uscita il valore 1 se esattamente una o due variabili in ingresso assumono il valore 1; in caso contrario l’uscita deve essere a 0. Si calcoli la funzione sia nella forma Prodotto di Somme (Product of Sums - PoS) sia nella forma Somma di Prodotti (Sum of Products - SoP).

Soluzione

La tabella di verità della funzione proposta è riportata nella tabella seguente insieme alla mappa di Karnough:

x1 x2 x3 f 0 0 0 0 0 0 1 1 0 1 0 1 0 1 1 1 1 0 0 1 1 0 1 1 1 1 0 1 1 1 1 0

x1 , x2 0 0 0 1 1 1 1 0

x3 0 0 1 1 1 1 1 1 0 1

La funzione nella forma Prodotto di Somme (PoS) deve coprire gli zeri della mappa di Karnough e vale

8

PoS: f = (x1 + x2 + x3)(x1 + x2 + x3)

invece la forma Somma di Prodotti (SoP) copre gli uni nella tabella e vale

SoP: f = x1x3 + x2x3 + x1x2

1.3 Copertura con Sum of Product (SoP)

Dalla figura seguente (fig. 1.1) che rappresenta il comportamento nel tempo del circuito combinatorio da analizzare, sintetizzare la funzione f (x1,x2,x3) nella forma “SoP”.

0

1 x

0

1 x

0

1 x

Time

0

1 f

1

2

3

Figura 1.1:

Soluzione

Dalla forma d’onda proposta che rappresenta il comportamento del circuito, supposto combinatorio, si deriva in modo esaustivo la seguente tabella di verità:

9

x1 x2 x3 f 0 0 0 1 0 0 1 0 0 1 0 0 0 1 1 1 1 0 0 0 1 0 1 1 1 1 0 1 1 1 1 0

La mappa di Karnaugh relativa è riportata nella seguente tabella:

x1 , x2 0 0 0 1 1 1 1 0

x3 0 1 0 1 0 1 0 1 0 1

La copertura della mappa nella forma SoP e’:

f = x1x2x3 + x1x2x3 + x1x2x3 + x1x2x3

Tale funziona può essere coperta anche mediante gli operatori booleani EX- OR dando origine alla seguente forma sintetizzata:

f = x1 +©x2 +©x3

1.4 Copertura con Sum of Product

Si consideri il diagramma temporale riportato in figura 1.2 e si sintetizzi la fun- zione f (x1,x2,x3) nella forma più semplice di Somme di Prodotti “SoP”.

Soluzione

Dalla forma d’onda riportata in figura 1.2 si deriva la tabella di verità:

10

x 0

1

x 0

1

x 0

1

Time

0

1 f

1

2

3

Figura 1.2:

x1 x2 x3 f 0 0 0 0 0 0 1 1 0 1 0 1 0 1 1 1 1 0 0 1 1 0 1 0 1 1 0 0 1 1 1 1

nonché la mappa di Karnaugh

x1 , x2 0 0 0 1 1 1 1 0

x3 0 0 1 0 1 1 1 1 1 0

La funzione f vale dunque

f = x1x3 + x1x2 + x2x3 + x1x2x3

11

1.5 Sintesi con porte NAND

Data la funzione f (x1,x2,x3) = Σ m(1,3,4,6,7), disegnare il circuito più ele- mentare che la implementi utilizzando solo porte NAND.

Soluzione

La tabella di verità è riportata nella tabella seguente:

x1 x2 x3 f 0 0 0 0 0 0 1 1 0 1 0 0 0 1 1 1 1 0 0 1 1 0 1 0 1 1 0 1 1 1 1 1

mentre la mappa di Karnaugh è

x1 , x2 0 0 0 1 1 1 1 0

x3 0 0 0 1 1 1 1 1 1 0

x

x

x 3

2

1

f

Figura 1.3:

12

La funzione booleana f risultante è

f = x1x3 + x1x2 + x1x3

x 1

x 2

x 3

f

Figura 1.4:

La sintesi della funzione logica f nella forma SoP è riportata in figura 1.3:

Se si utilizza la tecnica di sintesi con solo porte NAND si deve ricordare che l’OR del primo livello e’ realizzabile con una NAND, come pure le funzioni AND di secondo livello (vedi teoria). In questo caso la realizzazione è quella riportata in figura 1.4

1.6 Sintesi con porte NOR

Ripetere l’esercizio precedente utilizzando solo porte NOR.

Soluzione

In questo caso per derivare automaticamente il circuito facendo uso solo di porte NOR occorre esprimere la funzione booleana nella forma Product od Sums:

f = (x1 + x3)(x1 + x2 + x3)

13

La soluzione tradizionale prevede un AND di termini OR di secondo livello, come riportato in figura 1.5:

1 x

x 2

3 x

f

Figura 1.5:

f

x

x

x

3

2

1

Figura 1.6:

Utilizzando la sintesi con solo porte NOR si deve considerare che l’AND di primo livello è realizzabile con un NOR come pure le porte OR di secondo livello (vedi teoria); la soluzione è riportata in figura 1.6:

14

Capitolo 2

Sintesi dei Circuiti Combinatori di Base

2.1 Sintesi con porte NAND

Mappare unicamente con blocchi logici di tipo NAND il circuito riportato nella fi- gura 2.1 usando il metodo delle trasformazioni supponendo di avere a disposizione solo inverter e NAND a 2, 3 e 4 ingressi.

f

F

E

B A

D C

Figura 2.1:

Soluzione

Il metodo delle trasformazioni richiede, nel caso proposto, di trasformare dap- prima le porte logiche di tipo OR in porte NAND con gli ingressi negati (logica-

15

mente equivalenti) mentre le porte AND si trasformano in NAND seguiti da un inverter. Se ne deduce che il circuito può essere trasformato come in figura 2.2.

f

A

B

D C

E

F

Figura 2.2:

Successivamente si eliminano le serie di due inverter non inglobabili nelle porte NAND, ottenendo il circuito di figura 2.3:

2.2 Multiplexer 2-to-1

Data la funzione f = w1w3 +w2w3 +w1w2 derivare un circuito per f che utilizzi un multiplexer a due vie (MPX 2-to-1).

Soluzione

La prima cosa da fare è derivare la tabella di verità della funzione:

16

A

F

D

E

C

B

f

Figura 2.3:

w1 w2 w3 f 0 0 0 1 0 0 1 0 0 1 0 1 0 1 1 1 1 0 0 0 1 0 1 0 1 1 0 1 1 1 1 0

Dalla tabella di verità si determina la mappa di Karnaugh della funzione che si cercherà di coprire mediante l’uso di multiplexer.

w1 , w2 0 0 0 1 1 1 1 0

w3 0 1 1 1 0 1 0 1 0 0

La scelta della copertura mediante multiplexer richiede di definire una varia- bile (se si usano MPX 2-to-1) di controllo o selezione del multiplexer e definire le funzioni logiche relative agli ingressi del multiplexer stesso.

17

Dall’analisi della tabella di verità conviene scegliere w1 come linea si selezio- ne perchè si nota come per le prime 4 linee con w1 a 0 l’uscita sia esprimibile come m = w2 +w3 mentre per le ultime 4 linee con w1 a 1 l’uscita è definita dalla funzione n = w2w3.

Ne consegue che il circuito finale, riportato in figura, 2.4 sarà composto dal MPX a due vie e dalle porte logiche che realizzano le due sotto-funzioni m e n.

0

1w3

w2

f

w1

Figura 2.4:

2.3 Multiplexer 4-to-1

Implementare la funzione F(A,B,C,D) = Σ m(1,3,4,11,12,13,14,15) con un MPX 4-to-1 e porte logiche elementari. Collegare A e B alle linee di selezione del MPX.

Soluzione

Come al solito la prima cosa da fare è predisporre la tabella di verità della funzione F:

18

A B C D F 0 0 0 0 0

F1 = D 0 0 0 1 1 0 0 1 0 0 0 0 1 1 1 0 1 0 0 1

F2 = CD 0 1 0 1 0 0 1 1 0 0 0 1 1 1 1 1 0 0 0 0

F3 = CD 1 0 0 1 0 1 0 1 0 0 1 0 1 1 1 1 1 0 0 1

F4 = 1 1 1 0 1 1 1 1 1 0 1 1 1 1 1 1

Il testo del problema richiede di usare A e B come variabili di selezione del multiplexer a 4 vie (MPX 4-to-1), per cui occorre definire le funzioni logiche aggiuntive Fi da realizzare sui 4 ingressi del MPX nelle varie combinazioni delle variabili di selezione. Le variabili da considerare sono ovviamente C e D per cui definiamo nei 4 casi la funzione Fi, funzione delle variabili C e D. Queste funzioni devono essere implementate con porte logiche esterne. Il circuito risultante è in figura 2.5.

2.4 Multiplexer in cascata

Costruire un multiplexer a 15 vie che selezioni uno tra i quindici dati di ingresso Di utilizzando due multiplexer 8-to-1 collegati opportunamente ai bit di selezione A0..A3 Interconnettere i due MPX in modo da minimizzare la logica richiesta per la selezione dei dati da 0000 a 1110.

Soluzione

La tabella di verità prevede che l’indirizzo A3 discrimini quando far passare i dati D0 ... D7 (A3 = 0) dai dati D8 ... D14 (A3 = 1).

19

2

B

11

10

01

00

F

C

D

DDV

A

1 SS

Figura 2.5:

A3 0 D0

* . . . . . . 0 D7 1 D8

# . . . . . . 1 D14

Se A3 = 0 passa in uscita * mentre se A3 = 1 passa #; occorre quindi usare due multiplexer a 8 vie (MPX 8-to-1).

La soluzione migliore consiste nel collegare al primo MPX (MPX1) i primi 8 dati (D0..D7), mentre i restanti 7 dati (D8..D14) sono collegati al secondo MPX (MPX2) che ha ancora un ingresso di dato libero che sarà collegato all’uscita di MPX1.

La selezione di MPX1 è affidata ai bit meno significativi dell’indirizzo di sele- zione A0 ..A2 , mentre la selezione di MPX2 deve considerare, oltre agli stessi tre bit di indirizzo, anche A3 per discriminare tra gli ingressi Di e l’uscita di MPX1.

Il circuito risultante è riportato in figura 2.6.

20

7

6

S2 S1 S0

MPX2

D8

D14

f

0

0

S1

7

S2

S0

MPX1

D0

A0

A1

A2

D7

A1 _ A3

A0 _ A3

A2 _ A3

Figura 2.6:

2.5 Espansione di Shannon

Data la funzione f (w1,w2,w3) = Σ m(0,2,3,6), utilizzare il teorema dell’espan- sione di Shannon per derivare un circuito con un multiplexer a due vie ed altre porte logiche.

Soluzione

La funzione f da sintetizzare vale

f (w1,w2,w3) = w1w2w3 +w1w2w3 +w1w2w3 +w1w2w3

Utilizzando il teorema di espansione di Shannon si deve dapprima identificare la variabile di riferimento e definire successivamente i due cofattori relativi.

Ipotizziamo di selezionare w1 come variabile di riferimento. In questo caso, dato che in tutti e 4 i minterm della funzione sono presenti tutte le variabili boo- leane, la scelta non è particolarmente critica; in caso differente, occorre valutare

21

la complessità dei cofattori per ogni variabile di riferimento per la scelta della soluzione a costo minimo.

Con la scelta di w1, la funzione f diventa:

f = f

w1(1,w2,w3)w1 + f

w1(0,w2,w3)w1

con

f

w1(1,w2,w3) = w2w3

e con

f

w1(0,w2,w3) = w2w3 +w2w3 +w2w3 = w3 +w2w3 = (w2 +w3)

Il risultato dell’espansione è quindi:

f = w1(w2w3)+w1(w2 +w3)

L’uso del teorema di Shannon permette di sintetizzare la funzione con un multiplexer, dove la variabile di riferimento è usata come selezione.

Il circuito risultante è in figura 2.7.

f

1w

w2

w3

0

1

Figura 2.7:

22

2.6 Espansione di Shannon

Ripetere l’esercizio precedente per realizzare la funzione f (w1,w2,w3) = Σ m(0,4,6,7).

Soluzione

La funzione f da sintetizzare è

f = w1w2w3 +w1w2w3 +w1w2w3 +w1w2w3

Per la scelta della variabile di riferimento, calcoliamo tutti i cofattori relativi ad ogni variabile per poter scegliere la soluzione a costo minimo:

w1 f ′ (1,w2,w3) = w2w2 +w2w3 +w2w3

f ′ (0,w2,w3) = w2w3

w2 f ′ (w1,1,w3) = w1w3 +w1w3 = w1

f ′ (w1,0,w3) = w1w3 +w1w3 = w3

w3 f ′ (w1,w2,1) = w1w2

f ′ (w1,w2,0) = w1w2 +w1w2 +w1w2 = w2 +w1w2 = w2 +w1

La soluzione a costo minore si ottiene usando w2 come variabile di riferimento e di selezione del MPX.

Il circuito è in figura 2.8

f

1

3

1

0

w2

w

w

Figura 2.8:

23

2.7 Sintesi con Decoder

Mostrare come la funzione f (w1,w2,w3) = Σ m(0,2,3,4,5,7) possa essere im- plementata utilizzando un decoder binario 3-to-8 e porte logiche OR.

Soluzione

La soluzione con decoder richiede che le variabili wi siano usate come variabili di ingresso del decoder, che nel nostro caso sarà sempre abilitato (E = 1).

La copertura della funzione booleana si ottiene semplicemente mettendo in OR le uscite del decoder in tutte le combinazioni degli ingressi per cui la funzione deve valere 1.

Il circuito finale è riportato in figura 2.9.

7

6

5

4

3

2

1

0

w

w

w

1

1

2

3

f

A

A

A

1

0

2

EN

Figura 2.9:

2.8 Sintesi multiuscite con Decoder

Un circuito combinatorio è definito dalle tre seguenti funzioni Booleane:

F1 = X +Z +XYZ F2 = X +Z +XY Z F3 = XYZ +X +Z

24

non sono stati rilasciati commenti
Questa è solo un'anteprima
3 pagine mostrate su 461 totali