Sei sulla pagina 1di 21

Obiettivi

Universit Roma Tre Facolt di Ingegneria


n

CALCOLATORI ELETTRONICI 1 (Informatici - 1 canale) Reti Logiche

Panoramica sui componenti elementari di un calcolatore, che consentono di controllare la memorizzazione e il trasferimento delle informazioni binarie. Livello di astrazione sui simboli grafici (non ci occupiamo dei dettagli implementativi). Argomenti u Porte Logiche u Registri u Bus u Reti logiche combinatorie u Reti logiche sequenziali

(esercizi e complementi 1)

Algebra Booleana
n

Porte Logiche (Gate)


n

I calcolatori elettronici sono realizzati con circuiti elementari caratterizzati da 2 stati di funzionamento (tesione, corrente, circuito aperto/chiuso). Per lanalisi e la sintesi di questi circuiti si usa lalgebra di Boole su un insieme costituito da 2 elementi (algebra binaria o di commutazione), approccio pensato da C.Shannon. Principio di dualit: ogni identit e ogni propriet dellalgebra booleana resta valida se scambiano tra di loro gli operatori AND e OR e gli elementi 0 e 1. Ad esempio:

Porta logica: dispositivo N ingressi 1 uscita che realizza un legame tra valori logici presenti in ingresso e valore in uscita. Ingressi e uscite assumono solo 2 valori: vero e falso, o 1 e 0 (in pratica saranno 2 livelli di tensione diversi, e.g. 0v, +5v).
simbolo grafico che corrisponde alla funzione logica:

A B AND OR NAND NOR XOR 0 0 0 1 1 0 1 1 0 0 0 1 0 1 1 1 1 1 1 0 1 0 0 0 0 1 1 0

A NOT 0 1 0

X + X =1 XX = 0

Porte Logiche
n

Algebra di Boole
n

Porte principali AND: normalmente hanno 2..4 ingressi e sono usate in Integrated Circuit (IC) package di 14 o 16 pins (con 4 AND da 2 ingressi, 3 da 3, 2 da 4). Y = Ag B Y = A+ B OR: stesse considerazioni AND. NOT: (n.b. la presenza del cerchio lo differenzia dallamplificatore). Y=A Porte derivate NAND: stesse considerazioni AND. Y = A B NOR: stesse considerazioni AND. Y = A + B XOR: solo 2 ingressi; IC package da 14 pins e 4 porte. Y = A B

Se A, B e C sono variabili booleane, vale:

A 1 = A; A 0 = 0; A A = A; A A = 0; A = A A + 1 = 1; A + 0 = A; A + A = A; A + A = 1
n

n n

Sono valide le propriet: commutativa, associativa e distributiva:

A B = B A; A + B = B+ A A (B C) = (A B) C; A + (B+ C) = (A+ B)+ C A (B+ C) = A B+ A C; A + (B C) = (A+ B) (A+ C)


n

n n n

Altre propriet:

A + A B = A; A + A B = A + B A (A+ B) = A; A B + A C + B C = A C + B C
n

Legge di De Morgan:

A + B = A B; A + B = A B A B = A + B; A B = A + B

Porte Logiche
n

Porte Logiche
n n

Porte derivate: esempio XOR

Porte derivate: esempio XOR (segue) La prima realizzazione usava 3 porte (AND, OR, NOT). Facciamo una realizzazione con sole NAND :

Y = A B = = Ag B + Ag B =
n

distributiva De Morgan De Morgan

= B g( A + B) + Ag( A + B) =
svantaggi: occorrono 3 porte (AND, OR, NOT)... prova a trasformare la XOR con le sole NAND (per via analitica)...

= B g A g B + Ag Ag B =

= B g Ag B g Ag Ag B

Porte Logiche
n

Porte Logiche
n

Alcune porte possono essere ottenute usando sequenze di altre porte. Vedi NAND = AND + NOT e NOR = OR + NOT. Inoltre per il principio di dualit si possono usare solo 2 porte: OR e NOT, oppure, AND e NOT. La AND importante perch viene usata spesso per consentire o meno il trasferimento di un bit. Ma se in uscita presente il valore nullo, non si capisce la differenza tra informazione e inibizione porta. Buffer tri-state
C 0 0 1 1 X 0 1 0 1 Y n.v. n.v. 0 1 non vincolato

Con la tri-state possibile mettere in parallelo pi uscite di porte logiche, purch in ogni istante solo una di esse abilitata; e come se si facesse un OR dei valori delle uscite (wired-or).
collegamento wired-or di due buffer tri-state

Unaltra porta che permette collegamenti wired-or (anche con pi porte abilitate) la open collector, dove la presenza del valore in uscita vincolato da una particolare configurazione degli ingressi.
esempio porta nand open collector A 0 0 1 1 B 0 1 0 1 Y n.v. n.v. n.v. 0

attenzione a non confonderlo con la NOT

Porte Logiche
n

Registri
n

Le connessioni open collector permettono a pi porte di essere abilitate contemporaneamente, a differenza della tri-state.

pull-up resistor

Un registro un elemento in grado di conservare nel tempo (memorizzare) un valore logico (o 1 o 0). I circuiti elettronici che realizzano questa funzione sono i latch o i flip-flop. Schematizzazione di un registro da 1 bit:
Latch D

1) quando w=1 il valore X viene memorizzato

2) il valore viene letto, anche quando w=0

Registri
n

BUS
n

Il termine word si riferisce alle informazioni immagazzinate; il registro il dispositivo fisico che immagazzina la word. Un sistema digitale pu sempre essere realizzato con registri e circuiti di tipo combinatorio. Un registro formato da tanti elementi di memoria quanti sono i bit della word immagazzinata. Un registro a n bit (lunghezza) costituito da n latch o flip-flop (celle). La capacit del registro il numero 2n di parole diverse che pu contenere. Sul registro si possono effettuare le seguenti operazioni: u scrittura: introduzione di una parola; u lettura: la rilevazione della parola scritta; u cancellazione: azzeramento delle celle.

Permette il trasferimento dei bit tra le varie parti di un calcolatore. E solitamente fatto di n linee che trasmettono n bit in parallelo. Occorre per considerare un opportuno sistema di arbitraggio per laccesso tra i dispositivi.

trasferimento di 1 bit tra il registro R1 e R2 simboli grafici di un bus con n linee

Nota: attenzione al termine word (le dimensioni di un registro)! che non sempre corrisponde a 2 byte.

Reti logiche combinatorie


(combinational logic circuits)
n

Codificatori/Decodificatori
n

I valori prodotti nelle uscite sono determinati unicamente dai valori presenti agli ingressi nello stesso istante (senza memoria). Rappresentazioni reti logiche: schema grafico, notazione algebrica, tabella di verit. Esempio decodificatore:
u

Esempio: N=3, uso tutte le configurazioni di ingresso, perci le uscite sono 2N=8. N=3
X2X1X0 F0 F1 F2 F3 F4 F5 F6 F7 0 0 0 0 1 1 1 1 0 0 1 1 0 0 1 1 0 1 0 1 0 1 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1

il numero delle uscite eguaglia il numero delle parole significative del codice dingresso, cio ad ogni uscita corrisponde una sola configurazione dingresso. Se ho N ingressi, le uscite sono 2N (ma alcune configurazioni in ingresso possono essere inutilizzate e perci uso meno uscite) Usati nei sistemi digitali per comandare organi duscita che vanno individuati singolarmente (caratteri stampante, cifre display, etc) il codicatore effettua la funzione opposta.

Esempio: decodificatore N=4, 10 uscite; per convertire codice BCD in decimale.

Multiplexer/Demultiplexer
n

Multiplexer/Demultiplexer
n

Multiplexer: invia alluscita il valore logico presente nelliesimo dei suoi 2N ingressi dati, selezionato dal valore i codificato negli N ingressi di controllo. Tipicamente usato per combinare 2 o pi segnali digitali su una singola linea, ordinandoli in sequenza (time-division multiplexing). Nei computer viene usato come data selector. Demultiplexer: invia alli-esima delle sue 2N uscite il valore logico presente al suo ingresso per i dati, in funzione del valore i codificato negli N ingressi di controllo.

Dal punto di vista logico, un multiplexer pu essere ottenuto con 2N porte AND e una porta OR. Ogni AND ha N+1 ingressi. La OR ha 2N ingressi. Ad esempio se N=2, si hanno 4 porte AND, e si pu rappresentare con la seguente espressione:

Y = C1 C2 S0 + C1 C2 S1 + C1C2 S 2 + C1C2 S3
n

Prova a realizzare lo schema logico corrispondente:

segnali (o dati)

controllo

Multiplexer/Demultiplexer
n

Reti logiche combinatorie


n

Il demultiplexer si pu realizzare a un solo livello, ad esempio con sole porte AND (avendo a disposizione anche i segnali di controllo logicamente invertiti). Prova a realizzare un possibile schema logico per 2N=4 uscite (e N=2 segnali di controllo):

Analisi: schema grafico tabella verit (o notazione algebrica). Si determina luscita di ciascuna porta in corrispondenza di ogni combinazione di valori dingresso. Si parte dalle porte di livello pi elevato, procedendo verso la porta a livello 1 (a valle) lungo tutti i possibili itinerari. La funzione di uscita di ogni porta va usata come ingresso della porta successiva. Esempio:

A 0 0 1 1

B XOR 0 0 1 1 0 1 1 0

Reti logiche combinatorie


n

Reti logiche combinatorie


Sintesi con PLA
n

Sintesi: tabella verit schema grafico. Solitamente si ricava la notazione algebrica (somma di prodotti o prodotti di somme) che si traduce in simbolo grafico (N.B. solitamente non c un unico schema corrispondente).
A 0 0 1 1 B 0 1 0 1 E 1 0 0 1

La sintesi con somme di prodotti pu essere abbinata ad un PLA (Programmable Logic Array), un componente con i ingressi e o uscite, costituito da un insieme di p porte AND con i ingressi e da un insieme di o porte OR con p ingressi. I collegamenti tra input/porte AND e tra porte AND/OR sono impostabili durante la produzione o dal progettista. non rappresentato
perch luscita 0 A B 0 0 0 0 0 1 0 1 1 0 1 0 1 1 1 1 C D 0 0 1 1 0 1 1 1 0 1 1 1 0 1 1 1 E 0 0 0 1 0 1 1 0 F 0 0 0 0 0 0 0 1

E = A B + A B

E = ( A + B ) ( A + B)

Reti logiche combinatorie


Sintesi con ROM
n

Reti logiche combinatorie


Sintesi PLA vs ROM
n

ROM (Read Only Memory): insieme ordinato di registri in cui sono memorizzati valori binari che fanno riferimento ad uno specifico indirizzo. Se ho i variabili di ingresso X1,...,Xi e il valore di uscita Y, prendo una ROM di 2i bit e memorizzo luscita Y per ogni configurazione X1,...,Xi che pu essere interpretata come lindirizzo della ROM. Svantaggi rispetto alla PLA: pi componenti.

La sintesi con ROM utile quando si ha a che fare con funzioni difficilmente minimizzabili (ovvero trattabili algebricamente) come: convertitori di codice (e.g. da codice ASCII a codice EBCDIC), generatori di caratteri per terminali video e i circuiti di elezione di unit periferiche connesse ad un P. La sintesi ROM rispetto alla PLA molto semplice ma comporta un grande spreco di memoria in quanto occorre memorizzare tutta la tabella di verit della funzione, mentre nella sintesi PLA vengono realizzati solo i termini prodotto necessari a coprire tutti gli 1 della funzione.

uso un multiplexer per estrarre dalla ROM il valore della funzione

Sommatori
n

Sommatori
n

Half-adder: somma S di due bit A e B con rappresentazione del riporto C.

Half-adder: (segue) Lo schema precedente ha NOT, AND e OR. Prova a usare solo NAND.

S ' = A G = Ag B + Ag B C ' = Ag B
n

A B S C 0 0 0 0 0 1 1 0 1 0 1 0 1 1 0 1

Qual lo schema logico corrispondente?


n

n n

Basta esprimere la funzione XOR con la NAND (lo abbiamo gi visto) Come fare per ottenere il carry non negato? Basta far passare il carry negato nei due ingressi di una NAND:

Ag B = Ag B g Ag B

Sommatori
n

Sommatori
n

Full-adder: somma S di due bit A e B pi il riporto C.

C = AgBgC''+ AgBgC''+ AgBgC'' + AgBgC''


n

S = AgBgC''+ AgBgC'' + AgBgC'' + AgBgC''

Trattando lespressioni booleane otteniamo:

A B C S 0 0 0 0 0 0 1 1 0 1 0 1 0 1 1 0 1 0 0 1 1 0 1 0 1 1 0 0 1 1 1 1

C 0 0 0 1 0 1 1 1

Sommatore binario (binary adder): permette di sommare operandi di n bit. E realizzato mediante una sequenza di full-adder. Esempio: sommatore binario da 4 bit.

S = S ' C '' C = S 'gC ''+ C '


n

Trova lo schema logico corrispondente:

Reti logiche sequenziali


(sequential logic circuits)
n

Reti logiche sequenziali


n

I valori delle uscite sono funzione dei valori degli ingressi e dello stato in cui si trova il sistema. Si usano latch e flip-flop per memorizzare le informazioni. I flip-flop cambiano stato solo quando il clock ha un fronte (fronte di salita: 01, di discesa: 10), mentre i latch, o dipendono solo dal valore attuale del clock (1, 0) oppure sono indipendenti da esso. Esempio: Svantaggi: non abbiamo un input per modificare lo stato logico corrente. Rimpiazziamo gli inverter con NAND e NOR.

Latch R-S (Reset-Set) NOR:


u

normalmente ingressi a 0, se metto a 1 un solo ingresso, va a 0 luscita corrispondente, lo 0 va in ingresso allaltra porta che va ad 1, che infine va in ingresso alla 1a porta che perci mantiene il valore anche quando lingresso iniziale va a 0. se rimetto a 1 lo stesso ingresso non succede niente. se metto a 1 laltro ingresso, accade la stessa cosa sullaltra porta. R=S=1 le uscite vanno a 0 (indipendentemente dai loro valori), non c feedback; si ripristina quando una delle 2 va a 0.

A 0 0 1 1

NOR B Y 0 1 1 0 0 0 1 0

R 0 0 1 1

S 0 1 0 1

Q P Not P Not Q 0 1 1 0 0 0

da evitare

non varia

Q= R+P P = S +Q

Reti logiche sequenziali


n

Reti logiche sequenziali


n

Latch R-S (Reset-Set) NAND:


u

Latch R-S con clock:


u

come la versione NOR ma la commutazione avviene quando gli ingressi sono a 0. se S=1 allora Q=0 anche dopo che S passa a 0 se R=1 allora Q=1 anche dopo che R passa a 0

R 0 0 1 1

S 0 1 0 1

P Q 1 1 1 0 0 1 Not P Not Q

il clock serve per sincronizzare il latch con gli altri nel circuito. lo stato pu cambiare solo quando C=1
C 0 1 R ? 0 0 1 1 S ? 0 1 0 1 Q P Not P Not Q Not P Not Q 1 0 0 0 1 0

da evitare

Q = S gP P = R gQ

1 1 1

da evitare

attenzione: gli ingressi S e R sono invertiti rispetto alla versione NOR

Reti logiche sequenziali


n

Reti logiche sequenziali


n

Latch D (Data latch): come R-S con clock ma evita la configurazione R=S=1.
u

Latch J-K:
u

u u

quando C=1 il bit D (che prende il posto del Set) viene memorizzato e trasferito su Q quando C=0 il bit su Q viene mantenuto il NOT sullingresso della AND evita configurazioni non corrette.

se K e J non sono ambedue a 1 si ha un latch RS con clock. (RK, SJ). se K=J=1 (e C=1) si ha instabilit (race condition): se Q=1, si attiva la prima AND e si ha un reset (perci Q0; e NotQ1) si attiva la seconda AND, si ha un set e perci Q1;...

C D Q !Q 0 ? Q !Q 1 0 0 1 1 1 1 0

(R)

C K (R) J (S) Q 0 ? ? Q 1 0 0 Q 1 0 1 1 1 1 0 0 1 1 1 ?

!Q !Q !Q 0 1 ?

(S)

instabilit determinata dai tempi di commutazione

Reti logiche sequenziali


n

Reti logiche sequenziali


n

Flip-flop T Trigger (1a versione): un latch J-K con il solo clock come ingresso.
u

Flip-flop D (Delay): due latch D in configurazione Master-Slave.


u

per cambiare lo stato si sfrutta la race condition tramite impulsi di durata opportuna. cambia stato nei fronti di salita del clock.

in ogni istante solo uno dei latch pu cambiare stato;


1. 2.

si memorizza il valore D0 su M con C=1; quando C=0 il valore viene trasferito su S e su Q0.

traduce i fronti di salita in impulsi

Master Slave

1)

diagramma temporale:
mostra landamento nel tempo di una o pi grandezze relative al circuito, e permette di capire le dipendenze tra le stesse. E utile nei circuiti sequenziali dove luscita dipende dallingresso e dallo stato, ovvero dai valori assunti dalle grandezze nel passato.

2)

diagramma temporale

Reti logiche sequenziali


n

Reti logiche sequenziali


n

Flip-flop J-K: due latch J-K in configurazione Master-Slave


u u 1.

Flip-flop J-K (segue):

2. 3.

4.

evita le linstabilit del latch JK lo stato delluscita cambia nei fronti di discesa set del master: quando Q=1 e K=C=1 allora Q0 (e Q1) reset dello slave: quando Q=1 e C=0 allora Q0. reset del master: quando Q=0 e J=C=1 allora Q0 (e Q1) set dello slave: quando Q=0 e C=0 allora Q1.

(S) (R)

(S) 1) 2) 3) 4)

1.

(R)

2. 3. 4.

set del master: quando Q=1 e K=C=1 allora Q0 (e Q1) reset dello slave: quando Q=1 e C=0 allora Q0. reset del master: quando Q=0 e J=C=1 allora Q0 (e Q1) set dello slave: quando Q=0 e C=0 allora Q1.

Master

Slave

Reti logiche sequenziali


n

Reti logiche sequenziali


n

Flip-flop T Trigger (2a versione): u Flip-flop J-K con i due ingressi JK rimossi u Commuta in corrispondenza dei fronti di discesa del segnale di clock.

Registro a scorrimento (shift register):


u u u

memorizzano n bit ritardano di n periodi di clock un flusso di informazioni formati da n flip-flop in serie; ad ogni impulso di clock, il contenuto del flip-flop imo viene trasferito all(i+1)mo.

Possibile realizzazione con flip-flop D:


u

il master M1 pu assumere, al tempo tk, il valore del flipflop precedente Q0(tk-1), senza che luscita Q1 venga modificata, consentendo quindi di trasferire a M2 il valore Q1(tk-1) ...

Reti logiche
n

Per approfondimenti:
u u u

Congiu S., Calcolatori Elettronici, (2 cap) http://www.play-hookey.com/digital/ http://www.tt.rim.or.jp/~kazz/simcir/ (simulatore di circuiti logici in Java)