Esercitazioni di Reti Logiche Lezione 4
Transcript
Esercitazioni di Reti Logiche Lezione 4
Esercitazioni di Reti Logiche Lezione 4 Progettazione dei circuiti logici combinatori Zeynep KIZILTAN [email protected] Argomenti • • • Procedura di analisi dei circuiti combinatori. Procedura di sintesi dei circuiti combinatori. Alcuni blocchi logici di base & loro uso nei circuiti: – – – – Sommatore (Adder) Decodificatore (Decoder) Multiplexer PLA (Array logica programmabile) Procedura di analisi • L’obiettivo dell’analisi è determinare la funzione che un circuito implementa. • A partire dallo schema circuitale, il processo di analisi individua: – le funzioni booleane; – opp. una tabella di verità direttamente dal circuito; – eventualmente una descrizione del funzionamento del circuito. Procedura di analisi Per eseguire l’analisi: 1. Accertarsi che il circuito è combinatorio: – ovv, senza percorsi di retroazione o elementi di memoria. 2. Determinare le funzioni booleane: 1. dividere il circuito in piccoli blocchi con una sola uscita. 2. etichettare tutte le uscite. 3. individuare le corrispondenti funzioni booleane. ! una funzione può dipendere da un’altra. 4. ottenere un’espressione delle uscite del circuito solo in termini di variabili di ingresso. Procedura di analisi ! Se il circuito è progettato gerarchicamente, occorre cominciare dal livello più basso, proseguire nell’ordine a quello successivo. 3. Semplificare le funzione delle uscite mediante manipolazioni algebriche o tramite le mappe di Karnaugh. Esercitazione 1 • Analizzare il circuito seguente. Determinare le espressioni booleane per le uscite F e G in funzione dei quattro ingressi A, B, C, e D. A B C D F G T3 A B C F T4 T1 T2 G D 1. Il circuito è combinatorio: • non ci sono percorsi di retroazione/elementi di memoria 2. Etichettiamo le uscite. 3. Determiniamo le corrispondenti funzioni: – – – – T1 = BC T2 = (A’D)’ T3 = (A’T2)’ T4 = (A’+T1) T3 A B C F T4 T1 T2 G D 4. Determiniamo le funzioni delle uscite in forma di somma di prodotti, sostituendo le funzioni intermedie con le loro espressioni: F = T3T4 = (A’T2)’ (A’+T1) = [A’ (A’D)’]’(A’+BC) = [A+(A’D)] (A’+BC) = (A+D)(A’+BC) = ABC + BCD + A’D T3 A B C F T4 T1 T2 G D 4. Determiniamo le funzioni delle uscite in forma di somma di prodotti, sostituendo le funzione intermedie con le loro espressioni: G = T4T2 = (A’+T1)[(A’D)’] = (A’+BC)[(A’D)’] = (A’+BC)(A+D’) = A’D’ + BCD’ + ABC 5. Semplifichiamo le funzioni delle uscite tramite le mappe di Karnaugh. F = ABC + BCD + A’D C CD 00 01 11 10 00 0 1 1 0 01 0 1 1 0 AB B 11 0 0 1 1 10 0 0 0 0 A D F = ABC + A’D 5. Semplifichiamo le funzioni delle uscite tramite le mappe di Karnaugh. G = ABC + BCD’ + A’D’ C CD 00 01 11 10 00 1 0 0 1 01 1 0 0 1 AB B 11 0 0 1 1 10 0 0 0 0 A D G = ABC + A’D’ Procedura di analisi • Per determinare la tabella di verità direttamente: 1. costruire la tabella, elencando tutte le combinazioni dei valori delle n variabili di ingresso (2n righe). 2. eseguire i primi 3 passaggi della procedura per determinare le funzioni booleane. 3. indicare nella tabella i valori di tutte le funzioni intermedie. 4. indicare nella tabella i valori di tutte le uscite del circuito. Procedura di sintesi • L’obiettivo della sintesi è determinare il circuito che implementa un funzionamento. • A partire dalla descrizione verbale, il processo di sintesi individua: – un diagramma logico; – opp. un insieme di equazioni booleane dalle quali il diagramma può essere ricavato. Procedura di sintesi 1. 2. 3. 4. Per eseguire la sintesi: Identificare il numero di ingressi e uscite. Costruire la tabella di verità, interpretando la specifica verbale. Determinare le funzioni booleane semplificate delle uscite come funzione delle variabili di ingresso (utilizzando le mappe di Karnaugh). Disegnare il diagramma logico. Esercitazione 2 • Progettare un circuito combinatorio per convertire un codice BCD in un codice excess-3. Codice BCD • I calcolatori hanno bisogno di memorizzare un numero decimale per convertirlo nel sistema binario. • Poiché i calcolatori possono gestire soltanto 0 e 1, bisogna codificare le cifre decimali soltanto con i simboli 0 e 1. • Il codice binario decimale (BCD) è un sistema per codificare i numeri decimali: – associa ogni cifra decimale 0,1,2,..9 a un numero binario di 4 bit. • Un numero con n cifre decimali codificato in BCD richiede 4n bit: – ciascun gruppo di quattro bit rappresenta una cifra decimale. • (185)10 = (0001 1000 0101) BCD ≠ (10111001)2 1 8 5 Codice excess-3 • Cambiando il numero binario di 4 bit associato a ciascun decimale, altri sistemi di codificazione possono essere ottenuti. • Excess-3 è un sistema per codificare i numeri decimali: – associa ogni cifra decimale al numero binario di BCD aumentato di 3 unità. • (185)10 = (0001 1000 0101) BCD = (0100 1011 1000) E-3 0100 = 0001 + 0011 1011 = 1000 + 0011 1000 = 0101 + 0011 Convertitore di codice 1. Il numero di ingressi e uscite – tutti e due i codici utilizzano 4 bit. → ci sono 4 variabili A,B,C,D di ingresso e 4 variabili W,X,Y,Z di uscita. Convertitore di codice 2. La tabella di verità – – Il codice E-3 è ottenuto aggiungendo (0011)2 = 310 al codice BCD. solo 10 righe: • le altri 6 combinazioni dei valori non sono usate. → esse possono essere trattate come condizioni di non-specificazione nelle mappe. 3. Funzioni booleane – ciascuna mappa rappresenta una delle 4 uscite. 4. Il diagramma logico • Nella implementazione, le espressioni possono essere manipolate algebricamente per condividere le porte. = A + B(C+D) = B’(C+D)+BC’D’ = CD+C’D’ = D’ Sommatore (Adder) • Un sommatore binario è un circuito combinatorio che dà in uscita la somma aritmetica di 2 numeri di n bit: X1 X2 …. Xn Y1 Y2 …. Yn Z1 Z2 …. Zn • 2 blocchi logici di base permettono la realizzazione di un sommatore: – Half adder – Full adder } Riguardano la somma in una colonna Half adder • Un circuito aritmetico che somma due numeri binari a 1 bit: – X+Y – S: il bit di somma – C: il bit di riporto Half adder • Le funzioni booleane: –S=X ⊕Y – C = XY →il circuito può essere implementato utilizzando una porta XOR e una porta AND. Full adder • Un circuito aritmetico che somma 3 numeri binari a 1 bit: – X+Y+Z – Z: il riporto che viene dalla colonna precedente – S: il bit di somma – C: il bit di riporto Full adder • Le funzioni booleane: – S = X ⊕Y ⊕Z – C = XY+Z(X⊕Y) →il circuito può essere implementato utilizzando 2 half-adder e una porta OR. ⊕⊕ Sommatore binario parallelo • Un circuito che utilizza n full adder in parallelo. • I full adder sono connessi in cascata: – l’uscita riporto dell’uno è connessa all’ingresso riporto del successivo. • Ogni full adder ha come ingressi Ai e Bi (le variabili della colonna i-esima della somma). • Il riporto in ingresso al primo adder è fissato a 0. • La somma è ottenuta dalla sequenza CnS(n-1)…S0. Esercitazione 3 • Realizzare un circuito per la sottrazione tra 2 numeri binari di 4 bit (senza segno) utilizzando un sommatore binario parallelo a 4 bit. Sottrattore • Lezione 1: – La sottrazione A-B dei 2 numeri binari (senza segno) può essere eseguita con il sommare il complemento a 2 del sottraendo B al minuendo A. – Il complemento a 2 può essere ottenuto sommando 1 al complemento a 1 del numero considerato. → A-B = A + (il complemento a 1 di B) + 1 ! Il complemento a 1 di un numero può essere calcolato complementando, uno a uno, i bit del numero. Sommatore/Sottrattore • B ⊕ 1 = B’ B ⊕0=B • S=0 → A+B • S=1 → A + (il complemento a 1 di B) + 1 ⊕ Decodificatore (Decoder) • Un circuito combinatorio che genera 2n mintermini di n variabili. Decodificatore • Un decoder può utilizzare un ingresso di abilitazione (enable). Decodificatore • I decodificatori sono molto utili nella progettazione dei circuiti: – qualunque funzione booleana è esprimibile come somma di mintermini (Lezione 2). Esercitazione 4 • Un circuito combinatorio è definito dalle tre funzioni booleane seguenti: F1(X,Y,Z) = X’ Y’ Z’ + X Z F2(X,Y,Z) = X Y’ Z’ + X’Y F3(X,Y,Z) = X’ Y’ Z + X Y Progettare il circuito utilizzando un decodificatore e porte esterne. Esercitazione 4 D0 = X’ Y’ Z’ D1 = X’ Y’ Z D2 = X’ Y Z’ D3 = X’ Y Z D4 = X Y’ Z’ D5 = X Y’ Z D6 = X Y Z’ D7 = X Y Z F1(X,Y,Z) = X’ Y’ Z’ + X Z = ∑ m(0,5,7) Y X F2(X,Y,Z) = X Y’ Z’ + X’Y = ∑ m(2,3,4) Y YZ 00 X 0 01 11 10 1 0 0 0 1 0 1 1 0 YZ 00 X 0 01 11 10 0 0 1 1 1 1 0 0 0 X Y Z Z Y X YZ 00 X 0 01 11 10 0 1 0 0 1 0 0 1 1 Z F3(X,Y,Z) = X’ Y’ Z + X Y = ∑ m(1,6,7) Esercitazione 4 F1 = ∑ m(0,5,7) F2 = ∑ m(2,3,4) F3 = ∑ m(1,6,7) Multiplexer • Un circuito combinatorio che seleziona segnali binari e li dirige a una singola linea di uscita. • La selezione è controllata da un insieme di altre variabili di ingresso (variabili di selezione). 4 x 1 MUX Multiplexer • La funzionalità di selezione di un multiplexer è molto utile nella progettazione dei circuiti combinatori. Esercitazione 5 • Implementare la funzione booleana seguente con un multiplexer 8-1 e un singolo invertitore: F(A,B,C,D)= ∑ m(1,3,4,11,12,13,14,15) Esercitazione 5 ! Un 8x1 MUX ha 3 variabili di selezione. ! Abbiamo 4 variabili di ingresso. Esercitazione 5 • Applicando le prime 3 variabili alle linee di selezione S2, S1, e S0, la funzione può essere definita in termini dell’ultima variabile. PLA: Array logico programmabile • Un circuito costituto da: – un array (matrice) di porte AND che può essere programmato per generare alcuni termini di prodotto delle variabili di ingresso. – e un array di porte OR che può essere programmato per sommare selettivamente i termini. • L’obiettivo è progettare, in forma di somma di mintermini, qualunque funzione. Esercitazione 6 • Implementare con un PLA le funzioni booleane: F1(A,B,C)= AB’ + AC + A’BC’ F2(A,B,C)= (AC+BC)’ PLA F1(A,B,C)= AB’ + AC + A’BC F2(A,B,C)= (AC+BC)’ termine attivato somma attivata Complementazione PLA • La mappa può essere specificata in forma di tabella.