• Non ci sono risultati.

Procedura di analisi

N/A
N/A
Protected

Academic year: 2021

Condividi "Procedura di analisi"

Copied!
46
0
0

Testo completo

(1)

Esercitazioni di Reti Logiche Lezione 4

Progettazione dei

circuiti logici combinatori

Zeynep KIZILTAN zkiziltan@deis.unibo.it

(2)

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)

(3)

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.

(4)

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.

(5)

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.

(6)

A

B C D

F

G

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.

(7)

A

B C D

F

G T1

T2

T3

T4

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)

(8)

A

B C D

F

G T1

T2

T3

T4

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

(9)

A

B C D

F

G T1

T2

T3

T4

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

(10)

D

C AB

CD00 01 11 10 00

01 11

10

B A

5. Semplifichiamo le funzioni delle uscite tramite le mappe di Karnaugh.

F = ABC + BCD + A’D

0 0 0 0

1 1

0 0

1 1 1 0

0 0 1 0

F = ABC + A’D

(11)

D

C AB

CD00 01 11 10 00

01 11

10

B A

5. Semplifichiamo le funzioni delle uscite tramite le mappe di Karnaugh.

G = ABC + BCD’ + A’D’

1 1

0 0

0 0 0 0

0 0

0 1

1 1

0 1

G = ABC + A’D’

(12)

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.

(13)

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.

(14)

Procedura di sintesi

Per eseguire la sintesi:

1. Identificare il numero di ingressi e uscite.

2. Costruire la tabella di verità, interpretando la specifica verbale.

3. Determinare le funzioni booleane semplificate delle uscite come funzione delle variabili di

ingresso (utilizzando le mappe di Karnaugh).

4. Disegnare il diagramma logico.

(15)

Esercitazione 2

• Progettare un circuito combinatorio per convertire un codice BCD in un codice excess-3.

(16)

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

(17)

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

(18)

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.

(19)

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.

(20)

3. Funzioni booleane

ciascuna mappa rappresenta una delle 4 uscite.

(21)

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’

(22)

Sommatore (Adder)

• Un sommatore binario è un circuito

combinatorio che dà in uscita la somma aritmetica di 2 numeri di n bit:

• 2 blocchi logici di base permettono la realizzazione di un sommatore:

– Half adder – Full adder

X1 X2 …. Xn Y1 Y2 …. Yn Z1 Z2 …. Zn

}

Riguardano la somma in una colonna

(23)

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

(24)

Half adder

• Le funzioni booleane:

– S = X Y – C = XY

→il circuito può essere implementato utilizzando una porta XOR e una porta AND.

(25)

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

(26)

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.

(27)

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.

(28)

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.

(29)

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.

(30)

Sommatore/Sottrattore

B 1 = B’ B 0 = B

S=0 → A+B

S=1 → A + (il complemento a 1 di B) + 1

(31)

Decodificatore (Decoder)

• Un circuito combinatorio che genera 2n mintermini di n variabili.

(32)

Decodificatore

• Un decoder può utilizzare un ingresso di abilitazione (enable).

(33)

Decodificatore

• I decodificatori sono molto utili nella progettazione dei circuiti:

– qualunque funzione booleana è esprimibile come somma di mintermini (Lezione 2).

(34)

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.

(35)

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

(36)

1 XYZ

0 1

11

00 01 10

0 0 0

0 1 1 0

X

Z

Y

0 XYZ

0 1

11

00 01 10

0 1 1

1 0 0 0

X

Z

Y

Y F1(X,Y,Z) = X’ Y’ Z’ + X Z

= ∑ m(0,5,7) F2(X,Y,Z) = X Y’ Z’ + X’Y

= ∑ m(2,3,4)

F3(X,Y,Z) = X’ Y’ Z + X Y

= ∑ m(1,6,7) 0

XYZ 0 1

11

00 01 10

1 0 0

0 0 1 1

X

Z

Y

(37)

Esercitazione 4

F1 = ∑ m(0,5,7)

F2 = ∑ m(2,3,4)

F3 = ∑ m(1,6,7)

(38)

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).

Multiplexer

4 x 1 MUX

(39)

Multiplexer

• La funzionalità di selezione di un multiplexer è molto utile nella progettazione dei circuiti

combinatori.

(40)

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)

(41)

Esercitazione 5

! Un 8x1 MUX ha 3 variabili di selezione.

! Abbiamo 4 variabili di ingresso.

(42)

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.

(43)

• 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.

PLA: Array logico programmabile

(44)

Esercitazione 6

• Implementare con un PLA le funzioni booleane:

F1(A,B,C)= AB’ + AC + A’BC’

F2(A,B,C)= (AC+BC)’

(45)

PLA

termine attivato

somma attivata

Complementazione F1(A,B,C)= AB’ + AC + A’BC F2(A,B,C)= (AC+BC)’

(46)

PLA

• La mappa può essere specificata in forma di tabella.

Riferimenti

Documenti correlati

ii) The in vitro kinetic data showed that ureido 10c and amido derivatives 11a were the most potent inhibitors against the dominant cytosolic human isoform hCA II, in sub

La formula di Cauchy per funzioni di una variabile In questo paragrafo dimostriamo alcuni risultati della teoria delle fun- zioni di una variabile complessa che utilizzeremo

Teorema sulla condizione necessaria per l'esistenza di massimi e minimi relativi (dim).. Derivate parziali seconde e matrice hessiana, Teorema

Come per le funzioni ad una sola variabile si definisce DOMINIO DI UNA FUNZIONE A due VARIABILI l'insieme dei valori che possono essere attribuiti alle variabili indipendenti

Ciao a tutti, ecco i miei riassunti, ovviamente non posso garantire la correttezza (anzi garantisco la non totale correttezza) quindi se per caso trovate un errore se me le segnalate

Un sistema di disequazioni lineari in due variabili è un insieme di due o più disequazioni lineari in due variabili racchiuse da una parentesi graffa la cui

Vista la definizione di derivata parziale e il suo legame con la nozione di differenziale messa in evidenza precedentemente,. possiamo concludere che le regole di derivazione già

[r]