SEGNALI  DIGITALI Prima di affrontare lo studio delle reti combinatorie si rende necessario  introdurre il concetto di segnali digitali.  Segnale analogico t v (t) Segnale campionato e moltiplicato per gradini SAMPLE & HOLD  t v (nT c ) T c   2T c  nT c
Il segnale campionato v(nT c ) si ottiene moltiplicando v(t) per un treno d’impulsi quello che si ottiene è una sequenza di valori campionati negli istanti nT c  con  n = 0, 1, 2  ......., N, tali valori continui  rappressentano l’altezza dei gradini di base T c . L’informazione associata al segnale compreso in un generico intervallo  [(  n-1  ) T c  ,  nT c   ]  viene completamente persa, rimane traccia dell’informazione originaria nella gradinata ottenuta con la procedura sample & hold. Segnale campionato t v (nT c ) T c   2T c  nT c SAMPLE & HOLD
QUANTIZZAZIONE La dinamica dei campioni v(nT c ) può assumere un’infinità di valori, per ridurre la complessità del sistema si può procedere alla discretizzazione dell’asse delle  ordinate imponendo un ulteriore vincolo sui campioni: la dinamica  di v(t) può assumere soltanto un numero finito di valori.  t v (nT c ) T c   2T c  nT c v (nT c )= v [n]+ e q [n] v (nT c ) segnale campionato v [n] segnale quantizzato e q [n] errore di quantizzazione v [n] T c  = periodo di campionamento F c  = 1/T c  frequenza di campionamento
Caratterizzazione Statistica dell’Errore di Quantizzazione  e q  2  2 N-1   -  -2  -2 N-1   0 Un qualsiasi campione del segnale che cade nell’intervallo [0,   ] verrà settato al valore di   per cui l’esursione dell’errore di quant. va da 0 a   .    passo di quantizzazione 2 N  livelli di quant.  1/  P(e q ) e q P(e q )= densità di probabilita di e q  uniformemente  distribuito tra 0 e   V.M. = valor medio =  /2 Potenza del rumore =  2 /12
Schema a blocchi di un sistema di conversione Analogico-Digitale F T Filtro antialiasing Sample & Hold Quantizz. Passo   Codificatore b bit u (t) û (t) û (nT c ) û [n] Sequenza di  b bit ADC ADC = Analogic Digital Converter N.B. Il filtro antialising serve per una corretta riconversione da digitale ad analogico
Codifica PCM Supponiamo che i livelli di quantizzazione siano 256 (128 per i valori positivi e  128 per quelli negativi) per codificare il segnale con la tecnica PCM (Pulse Code Modulation) occorrerano 8 bit (2 8 =256 configurazione distinte a cui  Corrisponderanno 256 livelli diversi del Quantizzatore)  Level 10 Level 15 Level 128 Level 256 Level 138 Level 143 Il I° campione pos. Codificato => 00001010 Il II° campione pos. Codificato=> 00001111 Il I° campione neg. Codificato => 10001010 Il II° campione neg. Codificato=> 10001111
0 0 0 0 0 1 1 0 0 0 0 1 1 1 1 Codifica PCM del segnale vocale t Supponiamo che il segnale vocale venga campionato con una frequenza F c  pari a 8kHz ( 8000 campioni al secondo T c = 1/8000 sec) se ogni campione viene  Codificato con la tecnica PCM (8 bit a campione ) la bit-rate,  velocità con  cui vengono trasmessi i bit (bit/sec), è 8bit  8000/sec=64Kbit/sec Quindi la durata di un impulso rettangolare ideale è T=1/64000 sec.
Rappresentazione reale di un impulso rettangolare t setup  t hold  T setup = il tempo nccessario affinchè il segnale si preapara a commutare T hold  = il tempo neccessario per stabilizzarsi = il tmpo neccssario per passare dal 10% al 90% dell’ ampiezza max del segnale  = T setup  +    + T hold  intervallo di tempo in  cui il segnale non è disponibile Le quattro linee tratteggiate individuano la maschera cioè 2 regioni in cui il segnale  vale 1 oppure 0 in maniera inequivocabile nell’intervallo    il segnale è in fase  di transizione (non disponibilità del segnale). 1 0 0
Considerazioni Tecnologiche  L’obiettivo è ridurre il    poichè si riducono i tempi di transizione (salita e discesa) Più il segnale è ripido più si sale in frequenza di conseguenza a parità di tempo  si incrementa la bit-rate cioè il numero di bit trasferibili nell’unità di tempo  (aumento della capacità di informazione trasferibile). Quindi il    è un parametro  di progetto e dipende dai processi tecnologici utlizzati dal costruttore. Nella teoria delle reti logiche non vengono trattati aspetti tecnologici ma  si assumerà   =0. 1 0 Segnale binario = asume solo 2 valori (High, Low)  { 0, 1 }
RETI  LOGICHE Le reti logiche si classificano in reti combinatorie e reti sequenziali  Le reti combinatorie (RC) ricevono in ingresso segnali elettrici (tensioni V o intensità di corrente I) li elaborano attraverso circuiti elettrici e producendo dei  segnali d’uscita rilevabile a valle del dispositivo elettrico. Per le reti RC i segnali  d’uscita dipendono esclusivamente dai segnali d’ingresso (reti senza memoria)  Rete Combinatoria x N x 1 z 1 z M (  x 1 , x 2 ,...., x N   )  segnali d’ingresso  (  z 1 , z 2 ,...., z M   )  segnali d’uscita
Funzioni Logiche  RC x 1 x 2 x N z 1 =f 1 (  x 1 , x 2 ,........,x N ) z 2 =f 2 (  x 1 , x 2 ,........,x N ) z M =f M (  x 1 , x 2 ,........,x N ) Il nostro obiettivo in generale sarà di progettare una rete combinatoria avente M  uscite espresse da M funzioni  f  logiche dipendenti da N variabili binarie Deascrizione a parole delle specifiche Modello funzioni logiche Scelta espressioni logiche di una funzione Schema logico Schema circuitale Realizzazione fisica Processo di Sintesi I step II step III step IV step VI step  VI step
AND, OR, NOT Somma logica OR Prodotto logico AND Negazione logica NOT Tabella della verità OR : x 1  +x 2  = z Simbolo logico x 1   x 2 z AND :  x 1  • x 2 = z   x 1  x 2 z   x z NOT :  x=z 1 1  1 1 1  0 1 0  1 0 0  0 z x 2   x 1 1 1  1 0 1  0 0 0  1 0 0  0 z x 2   x 1 1 0 0 1 z x
Forme sp e ps delle funzioni logiche Supponiamo ci venga fornita la T.V(tabella di verità). L’obiettivo sarà di trovare l’espresione della funzione corrispondende che la implementa.  Forma sp (somma di prodotti). Si evidenziano le uscite poste a 1 e si scrive il prodotto delle variabili corrispondenti alla configurazione d’ingresso. Forma ps ( prodotti di somme). Si evidenziano le uscite poste a 0 e si scrive la somma delle variabili negate corrispondenti alla configurazione d’ingresso. 0 111 1 110 1 101 0 100 0 011 1 010 1 001 0 000 z x 3 x 2 x 1
Forma SP Utilizzeremo la forma SP per implementare le funzioni logiche:  x 3 x 2 x 1 z NOT Schema logico L’insieme di operatori funzionalmente  {AND,OR, NOT} è completo, cioè con esso si possono implementare tutte le funzioni logiche. Si cercherà di trovare un insieme funzionale completo più piccolo
Legge di DE MORGAN Si traforma l’OR  in una configurazione AND NOT Si traforma l’AND  in una configurazione OR NOT x 1   x 2 z x 1  x 2 z   x 1  x 2 z   x 1   x 2 z Si è ridotta la complessità circuitale in quanto abbiamo eliminato uno tra l’AND o l’OR {AND, NOT} e {OR, NOT} sono insiemi di operatori funzionalmente completi.
NAND x 1  x 2 z   z=x 1    x 2 NOT  x x=x    x x { NAND }  operatore funz. completo x 1   x 2 z NOR z=x 1    x 2 x  x x=x    x NOT  { Nor }  operatore funz. completo 0 1  1 1 1  0 1 0  1 1 0  0 z x 2   x 1 0 1  1 0 1  0 0 0  1 1 0  0 z x 2   x 1
MULTIPLEXER (MUX) 2 n  ingressi Programmabili n ingressi di selezione o selettori Z uscita MUX n:2 n (1) (2) * * * (2 n ) x 0   x 1   x n-1 Principio di funzionamento In base alla configurazione delle variabili di selezione, uno solo degli ingressi verrà  selezionato e riportato in uscita (processo di multiplexing). Poichè il n° di selettori è n (n var binarie => 2 n  configuarazioni disinte ) il numero di ingressi programmabili del  Mux sarà 2 n
MUX 2:4 (0) (1) (2) (3) x 0  x 1 z 0 0 1 1 T.V. Il multiplexer realizza la funzione Logica rappresentata in T.V. (0) (1) (2) (3) x 0  x 1 0 0 1 1 (0) (1) (2) (3) z Un multiplexer n:2 n  composto da  2 n  AND ed un OR  MUX 2:4 1 1  1 1 1  0 0 0  1 0 0  0 z x 1   x 0
Multiplexer in cascata Data una f logica di n variabili per realizzarla fisicamente bisogna utilizzare un MUX n:2 n . Ci sono limiti strutturali per i MUX, in quanto il numero max di ingressi di selezione che  supporta un mux sono 5 o 6. Risoluzione del problema utilizzando più MUX in cascata.  MUX 3:8 => 2MUX 2:4 + MUX 1:2  (0) (1) (2) (3) (4) (5) (6) (7) x 2  x 1  x 0 z 3:8 MUX 1 1 0 1 0 0 1 0 (0) (1) (2) (3) (0) (1) (2) (3) 1 1 0 1 0 0 1 0 x 2  x 1 x 2  x 1 x 0 (0) (1) z 2:4 2:4 MUX MUX 1:2 MUX
Codifica 1/n Si utilizzano n  variabili binarie per codificare n valori decimali {  z 0  , z 1  ,...,z n  }  {0,1,2,3,.,n} poichè da n var. binarie si ottengono 2 n  configurazioni distinte, si considerano solo n config. e le rimanenti (2 n -n) nonverrano utilizzate per la codifica.  Enable x 1   x 0 0 1 2 3 0 1 2 3 Decoder 2:4 Dec x 0  x 1 (0) (1) (2) (3) Enable { x 0  x 1 }={0 0} (0) (1) (2) (3) Enable= {1} 1 0 0 0 Dec 0001 1  1 0010 1  0 0100 0  1 1000 0  0 z 1 z 2 z 3 z 4 x 1   x 0
Schema logico di una funzione utilizzando un Dec (0) (1) (2) (3) (4) (5) (6) (7) x 2  x 1  x 0 3:8 Dec Enable 0 111 1 110 1 101 0 100 0 011 1 010 1 001 0 000 z x 2 x 1 x 0
Decoder abilitato Se il segnale di Enable vale 0 il Dec è disabilito cioè tutte le uscite del Dec sono nulle, altrmenti Se vale 1 il Dec funziona correttamente. Vediamo come sfruttando il segnale di Enable come  possiamo ottenere un Dec 3:8 avendo a disposizione ad esmpio un Dec 1:2 e 2 Dec 2:4 0 1 2 3 2:4 Dec 0 1 2 3 2:4 Dec E E x 0 x 1  x 2 x 1  x 2 0 1 1:2 Dec 1 Uno dei due Dec 2:4 sarà sempre abilitato Grazie al Dec 1:2 che pilota  i due Dec in uscita
Espressione Minima  Fino adesso ci siamo impegnati a realizzare le reti logiche utilizzando la tabella della verità  realizzando forme SP canoniche utilizzando multiplexer e decoder senza tener presente  i costi realizzativi che sono proprzionali al numero delle porte logiche(AND, OR, NOT) utilizzate. Cercheremo una tecnica che permette di trovare la forma minima di una f logica  e di conseguenza l’utilizzo del numero minimo di porte logiche. Metodo grafico “Mappe di Karnaugh” x 2   x 1  x 0  f 0  0  0  1 0  0  1  0 0  1  0  1 0  1  1  0 1  0  0  1 1  0  1  0  1  1  0  0 1  1  1  0 x 0  x 1 x 2 00 01 11 10 0  1 1 1 1 0 0 0 0 0
x 0 x 1 0 1 0  1 x 0  x 1 x 2 00 01 11 10 00 01 11 10 00 01 11 10 x 0  x 1 x 2  x 3 00 01 11 10 00 01 11 10 x 0  x 1 x 2  x 3 00 01 11 10 00 01 11 10 x 0  x 1 x 2  x 3 x 4 = 0 x 4 = 1 2 var. 4 var. 3 var. 5 var. Mappe di Karnaugh
Mappe di Karnaugh Per ordinare l’etichettazione delle righe e delle colonne delle M. K. bisogna soddisfare  il vincolo che le righe (e le colonne) devono essere adiacenti cioè nel passare dall’una  all’altra riga (colonna) le configurazioni devono essere adiacenti o meglio la variazione  tra due righe (colonne) consecutive e di un solo bit questo vale anche per la prima e  l’ultima riga (colonna) che devono essere anch’esse adiacenti tra di loro. 00 01 11 10 00 01 11 10 x 0  x 1 x 2  x 3 La cella 0101 ha  quattro celle adiacenti 00 01 11 10 00 01 11 10 x 0  x 1 x 2  x 3 00 01 11 10 00 01 11 10 x 0  x 1 x 2  x 3 x 4 = 0 x 4 = 1 La cella 0101 ha  cinque celle adiacenti
Raggruppamenti Rettangolari R.R. DEF: Un R.R. Di ordine p è un insieme di 2 p  celle di una mappa di Karnaugh ed ogni cella del R.R. Ha p celle adiacenti ad essa. 00 01 11 10 00 01 11 10 x 0  x 1 x 2  x 3 p=2 p=2 p=1 p=0 00 01 11 10 00 01 11 10 x 0  x 1 x 2  x 3 00 01 11 10 00 01 11 10 x 0  x 1 x 2  x 3 x 4 = 0 x 4 = 1 5 var. p=3 p=2 p=1 L’obiettivo è quello di cercare raggruppamenti rettangolari di ordine max di soli 1 con i  quali ottenere una copertura della mappa di Karnaugh.
Esempi di copertura 00 01 11 10 00 01 11 10 x 0  x 1 x 2  x 3 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 00 01 11 10 00 01 11 10 x 0  x 1 x 2  x 3 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0
Comparatore Siano A= {a 1  , a 2 }2 B={b 1  , b 2 } due numeri binari un comparatore confronta le 2 n  (4)  Configurazioni, restitusce 1 se sono uguali  altrimenti 0.  a 1  a 2  b 1   b 2 0  0  0  0  1  0  1  0  1  1 0  1  0  1  1 1  1  1  1  1 f 0 1 2 3 0 1 2 3 a 1  a 2 b 1   b 2 f Dec 2:4 MUX 2:4
Comparatore di config. di n bit Prima di parlare di un comparatore a n bit introduciamo 2 nuove porte logiche: Ex-Or, Ex-Equivalence x 0 x 1 z x 0 x 1 z Ex-Or  x 0      x 1  =  z Ex-EQ  x 0      x 1  =  z x 1  x 0  Ex-or 00  0 01  1  10  1  11  0 x 1  x 0  Ex-eq 00  1 01  0  10  0  11  1 comparatore n bit n bit A B z a n b n a n-1 a n-1 a 1 a 1 z
SOMMATORE Progettiamo una rete combinatoria (R.C.) che in ingresso abbia 2 configurazione a 3bit e in uscita la somma  + A B S C A=(  a 2 , a 1 , a 0  ) B=(  b 2 , b 1 , b 0  ) S=(  s 2 , s 1 , s 0  ) 4 situazioni possibili Riporto per lo stadio  successivo s 0 Ex-Or  a 0      b 0  =  s 0 a 0  b 0  Ex-or 00  0 01  1  10  1  11  0 AND :  a 0  • b 0 = r 0   r 0 a 0 b 0 a 0 b 0
Half Adder L’Half Adder è il componente logico che mi da la somma di 2 bit s 0 a 0 b 0 r 0 HALF ADDER a 0 b 0 s 0 r 0 Componete logico che implementa  la somma più il riporto S 1 ’ =  a 1     b 1 r 1 ’ = a 1  b 1 S 1 =S 1 ’   r 0 r 1 ’’ = S 1 ’  r 0 r 1 =  r 1 ’  + r 1 ’’ Somma allo stadio successivo S 1 ’ a 1 b 1 r 0 s 1 r 1 ’’ r 1 ’ r 1 H.A H.A
FULL ADDER Half Adder Half Adder a 1 b 1 r 0 S 1 ’ r 1 ’ r 1 ’’ S 1 r 1 a 1 b 1 r 0 r 1 S 1 Full Adder Full Adder n- bit Adder: componente che esgue la somma di n bit C i = 0 a 1 b 1 S 1 r 1 Full Adder S 2 Full Adder S n Full Adder a 2 b 2 a n b n r n-1 C o =Carry out= riporto d’uscita  A B S C o N-bit ADDER C i =0 r 2
Schema per un addizionatore I 2 I 1 n n B A n 1 C o S C i 1 I 1 = {I 1,1 , I 1,2 ,....,I 1,n  }bit I 2 = {I 2,1 , I 2,2 ,....,I 2,n  }bit Unità base utilizzata per strutture più complesse I 2 I 1 n n B A n C o S C i 0  1 Mux x 0 Un Mux a n uscite non esiste, ma lo schematico  Sintetizza n Mux ognuno dei quali gestisce un solo  bit d’ingresso della sequenza I 2 0  1 Mux 0  1 Mux 0  1 Mux I 2,1 I 2,2 I 2,n b 1 b 2 b n x 0 n_bit Adder n_bit Adder
I 2 I 1 n n A n C o S C i 0  1 Mux x 0 B Analisi dello schematico x 0   C i  S 0  0  A+B 0  1  A+B+1 1  0  A+B 1  1  A+B+1  Se alla precedente analisi aggiungiamo il tipo  di codifica utilizzato le operazioni si trasformano Codifica complemento a 2 0=000 1=001 2=010 3=011 4=100 -1=111 -2=110 -3=101 -B=(B) 2 =B+1 x 0   C i  S 0  0  A+B  Add 0  1  A+B+1  Add+ 1  0  A-B-1  Diff- 1  1  A-B  Diff n_bit Adder
I 2 I 1 n n A n C o S C i 0  1 Mux x 0 B x 1 x 1 a 1 a 2 a n I 1,1 I 1,2 I 1,n N-And I segnali di controllo  x 0 ,x 1  e C i  determinano  Il tipo di operazione  Che effettua l’unità  Aritmetica U.A  x 0  x 1 C i C i x 0 x 1 A B S C o Unità Aritmetica U.A 8 operazioni n_bit Adder A-B -B A+B+1 B+1 1 A-B-1 -B-1 A+B B 0 11 10 01 00
Ulteriore evoluzione dell’U.A. I 2 I 1 n A n C o C i x 1 n_bit Adder n S n n B x 0 x 2 16 operazioni implementabili con 4  Segnali di controllo x 0 x 1 x 2 C i Unità Aritmetica A B x 0  x 1  x 2 M S C 0 C i U.A. M segnale di modalità cioè segnale di controllo che determina la modalità dell’UA o aritmetica o  logica A 0 A-B -B 11 A-1 -1 A-B-1 -B-1 10 A+B+1 B+1 A+1 1 01 A+B B A 0 00 11 10 01 00
Logica:  esiste solo un ordine dei bit e non un peso, le configurazionilogiche sono solo Un aggregato di variabili logiche Numerica:  l’ordine è importante, ogni bit ha un peso numerico.  C i = 0 a 1 b 1 S 1 r 1 Full Adder S 2 r 2 Full Adder S n Full Adder a 2 b 2 a n b n r n-1 M Codifica numerica decimale: M=1    unità aritmetica M=0    unità logica I 2 I 1 n A n C o C i x 1 n_bit Adder n S n n B x 0 x 2 M x 0 x 1 x 2 A 11.1 A  B B 1 A  B B A 00..0 0 11 10 01 00
I 2 I 1 n A n C o C i x 1 n_bit Adder n S n n B x 0 x 2 M S ’ x 3 x 0 x 1 x 2 x 3 =0 M=0 x 0 x 1 x 2 x 3 =1 M=1 A 11.1 A  B B 1 A  B B A 00..0 0 11 10 01 00 A+B 11.1 A  B A+B 1 A+B B A AB 0 11 10 01 00
ALU A B S FLAG C o X M C i ALU: Arithmetic Logic Unit ALU: è la parte del microprocessore di un pc che esegue le operazioni  impostate dai segnali di controllo. Flag: sono dei bit impostati a particolari  valori in relazione alle operazioni svolte e ai valori ottenuti. Sono una serie di informazioni utili forniti insieme al risultato

Reti Logic

  • 1.
    SEGNALI DIGITALIPrima di affrontare lo studio delle reti combinatorie si rende necessario introdurre il concetto di segnali digitali. Segnale analogico t v (t) Segnale campionato e moltiplicato per gradini SAMPLE & HOLD t v (nT c ) T c 2T c nT c
  • 2.
    Il segnale campionatov(nT c ) si ottiene moltiplicando v(t) per un treno d’impulsi quello che si ottiene è una sequenza di valori campionati negli istanti nT c con n = 0, 1, 2 ......., N, tali valori continui rappressentano l’altezza dei gradini di base T c . L’informazione associata al segnale compreso in un generico intervallo [( n-1 ) T c , nT c ] viene completamente persa, rimane traccia dell’informazione originaria nella gradinata ottenuta con la procedura sample & hold. Segnale campionato t v (nT c ) T c 2T c nT c SAMPLE & HOLD
  • 3.
    QUANTIZZAZIONE La dinamicadei campioni v(nT c ) può assumere un’infinità di valori, per ridurre la complessità del sistema si può procedere alla discretizzazione dell’asse delle ordinate imponendo un ulteriore vincolo sui campioni: la dinamica di v(t) può assumere soltanto un numero finito di valori. t v (nT c ) T c 2T c nT c v (nT c )= v [n]+ e q [n] v (nT c ) segnale campionato v [n] segnale quantizzato e q [n] errore di quantizzazione v [n] T c = periodo di campionamento F c = 1/T c frequenza di campionamento
  • 4.
    Caratterizzazione Statistica dell’Erroredi Quantizzazione e q  2  2 N-1  -  -2  -2 N-1  0 Un qualsiasi campione del segnale che cade nell’intervallo [0,  ] verrà settato al valore di  per cui l’esursione dell’errore di quant. va da 0 a  .  passo di quantizzazione 2 N livelli di quant.  1/  P(e q ) e q P(e q )= densità di probabilita di e q uniformemente distribuito tra 0 e  V.M. = valor medio =  /2 Potenza del rumore =  2 /12
  • 5.
    Schema a blocchidi un sistema di conversione Analogico-Digitale F T Filtro antialiasing Sample & Hold Quantizz. Passo  Codificatore b bit u (t) û (t) û (nT c ) û [n] Sequenza di b bit ADC ADC = Analogic Digital Converter N.B. Il filtro antialising serve per una corretta riconversione da digitale ad analogico
  • 6.
    Codifica PCM Supponiamoche i livelli di quantizzazione siano 256 (128 per i valori positivi e 128 per quelli negativi) per codificare il segnale con la tecnica PCM (Pulse Code Modulation) occorrerano 8 bit (2 8 =256 configurazione distinte a cui Corrisponderanno 256 livelli diversi del Quantizzatore) Level 10 Level 15 Level 128 Level 256 Level 138 Level 143 Il I° campione pos. Codificato => 00001010 Il II° campione pos. Codificato=> 00001111 Il I° campione neg. Codificato => 10001010 Il II° campione neg. Codificato=> 10001111
  • 7.
    0 0 00 0 1 1 0 0 0 0 1 1 1 1 Codifica PCM del segnale vocale t Supponiamo che il segnale vocale venga campionato con una frequenza F c pari a 8kHz ( 8000 campioni al secondo T c = 1/8000 sec) se ogni campione viene Codificato con la tecnica PCM (8 bit a campione ) la bit-rate, velocità con cui vengono trasmessi i bit (bit/sec), è 8bit  8000/sec=64Kbit/sec Quindi la durata di un impulso rettangolare ideale è T=1/64000 sec.
  • 8.
    Rappresentazione reale diun impulso rettangolare t setup  t hold  T setup = il tempo nccessario affinchè il segnale si preapara a commutare T hold = il tempo neccessario per stabilizzarsi = il tmpo neccssario per passare dal 10% al 90% dell’ ampiezza max del segnale  = T setup +  + T hold intervallo di tempo in cui il segnale non è disponibile Le quattro linee tratteggiate individuano la maschera cioè 2 regioni in cui il segnale vale 1 oppure 0 in maniera inequivocabile nell’intervallo  il segnale è in fase di transizione (non disponibilità del segnale). 1 0 0
  • 9.
    Considerazioni Tecnologiche L’obiettivo è ridurre il  poichè si riducono i tempi di transizione (salita e discesa) Più il segnale è ripido più si sale in frequenza di conseguenza a parità di tempo si incrementa la bit-rate cioè il numero di bit trasferibili nell’unità di tempo (aumento della capacità di informazione trasferibile). Quindi il  è un parametro di progetto e dipende dai processi tecnologici utlizzati dal costruttore. Nella teoria delle reti logiche non vengono trattati aspetti tecnologici ma si assumerà  =0. 1 0 Segnale binario = asume solo 2 valori (High, Low) { 0, 1 }
  • 10.
    RETI LOGICHELe reti logiche si classificano in reti combinatorie e reti sequenziali Le reti combinatorie (RC) ricevono in ingresso segnali elettrici (tensioni V o intensità di corrente I) li elaborano attraverso circuiti elettrici e producendo dei segnali d’uscita rilevabile a valle del dispositivo elettrico. Per le reti RC i segnali d’uscita dipendono esclusivamente dai segnali d’ingresso (reti senza memoria) Rete Combinatoria x N x 1 z 1 z M ( x 1 , x 2 ,...., x N ) segnali d’ingresso ( z 1 , z 2 ,...., z M ) segnali d’uscita
  • 11.
    Funzioni Logiche RC x 1 x 2 x N z 1 =f 1 ( x 1 , x 2 ,........,x N ) z 2 =f 2 ( x 1 , x 2 ,........,x N ) z M =f M ( x 1 , x 2 ,........,x N ) Il nostro obiettivo in generale sarà di progettare una rete combinatoria avente M uscite espresse da M funzioni f logiche dipendenti da N variabili binarie Deascrizione a parole delle specifiche Modello funzioni logiche Scelta espressioni logiche di una funzione Schema logico Schema circuitale Realizzazione fisica Processo di Sintesi I step II step III step IV step VI step VI step
  • 12.
    AND, OR, NOTSomma logica OR Prodotto logico AND Negazione logica NOT Tabella della verità OR : x 1 +x 2 = z Simbolo logico x 1 x 2 z AND : x 1 • x 2 = z x 1 x 2 z x z NOT : x=z 1 1 1 1 1 0 1 0 1 0 0 0 z x 2 x 1 1 1 1 0 1 0 0 0 1 0 0 0 z x 2 x 1 1 0 0 1 z x
  • 13.
    Forme sp eps delle funzioni logiche Supponiamo ci venga fornita la T.V(tabella di verità). L’obiettivo sarà di trovare l’espresione della funzione corrispondende che la implementa. Forma sp (somma di prodotti). Si evidenziano le uscite poste a 1 e si scrive il prodotto delle variabili corrispondenti alla configurazione d’ingresso. Forma ps ( prodotti di somme). Si evidenziano le uscite poste a 0 e si scrive la somma delle variabili negate corrispondenti alla configurazione d’ingresso. 0 111 1 110 1 101 0 100 0 011 1 010 1 001 0 000 z x 3 x 2 x 1
  • 14.
    Forma SP Utilizzeremola forma SP per implementare le funzioni logiche: x 3 x 2 x 1 z NOT Schema logico L’insieme di operatori funzionalmente {AND,OR, NOT} è completo, cioè con esso si possono implementare tutte le funzioni logiche. Si cercherà di trovare un insieme funzionale completo più piccolo
  • 15.
    Legge di DEMORGAN Si traforma l’OR in una configurazione AND NOT Si traforma l’AND in una configurazione OR NOT x 1 x 2 z x 1 x 2 z x 1 x 2 z x 1 x 2 z Si è ridotta la complessità circuitale in quanto abbiamo eliminato uno tra l’AND o l’OR {AND, NOT} e {OR, NOT} sono insiemi di operatori funzionalmente completi.
  • 16.
    NAND x 1 x 2 z z=x 1  x 2 NOT x x=x  x x { NAND } operatore funz. completo x 1 x 2 z NOR z=x 1  x 2 x x x=x  x NOT { Nor } operatore funz. completo 0 1 1 1 1 0 1 0 1 1 0 0 z x 2 x 1 0 1 1 0 1 0 0 0 1 1 0 0 z x 2 x 1
  • 17.
    MULTIPLEXER (MUX) 2n ingressi Programmabili n ingressi di selezione o selettori Z uscita MUX n:2 n (1) (2) * * * (2 n ) x 0 x 1 x n-1 Principio di funzionamento In base alla configurazione delle variabili di selezione, uno solo degli ingressi verrà selezionato e riportato in uscita (processo di multiplexing). Poichè il n° di selettori è n (n var binarie => 2 n configuarazioni disinte ) il numero di ingressi programmabili del Mux sarà 2 n
  • 18.
    MUX 2:4 (0)(1) (2) (3) x 0 x 1 z 0 0 1 1 T.V. Il multiplexer realizza la funzione Logica rappresentata in T.V. (0) (1) (2) (3) x 0 x 1 0 0 1 1 (0) (1) (2) (3) z Un multiplexer n:2 n composto da 2 n AND ed un OR MUX 2:4 1 1 1 1 1 0 0 0 1 0 0 0 z x 1 x 0
  • 19.
    Multiplexer in cascataData una f logica di n variabili per realizzarla fisicamente bisogna utilizzare un MUX n:2 n . Ci sono limiti strutturali per i MUX, in quanto il numero max di ingressi di selezione che supporta un mux sono 5 o 6. Risoluzione del problema utilizzando più MUX in cascata. MUX 3:8 => 2MUX 2:4 + MUX 1:2 (0) (1) (2) (3) (4) (5) (6) (7) x 2 x 1 x 0 z 3:8 MUX 1 1 0 1 0 0 1 0 (0) (1) (2) (3) (0) (1) (2) (3) 1 1 0 1 0 0 1 0 x 2 x 1 x 2 x 1 x 0 (0) (1) z 2:4 2:4 MUX MUX 1:2 MUX
  • 20.
    Codifica 1/n Siutilizzano n variabili binarie per codificare n valori decimali { z 0 , z 1 ,...,z n }  {0,1,2,3,.,n} poichè da n var. binarie si ottengono 2 n configurazioni distinte, si considerano solo n config. e le rimanenti (2 n -n) nonverrano utilizzate per la codifica. Enable x 1 x 0 0 1 2 3 0 1 2 3 Decoder 2:4 Dec x 0 x 1 (0) (1) (2) (3) Enable { x 0 x 1 }={0 0} (0) (1) (2) (3) Enable= {1} 1 0 0 0 Dec 0001 1 1 0010 1 0 0100 0 1 1000 0 0 z 1 z 2 z 3 z 4 x 1 x 0
  • 21.
    Schema logico diuna funzione utilizzando un Dec (0) (1) (2) (3) (4) (5) (6) (7) x 2 x 1 x 0 3:8 Dec Enable 0 111 1 110 1 101 0 100 0 011 1 010 1 001 0 000 z x 2 x 1 x 0
  • 22.
    Decoder abilitato Seil segnale di Enable vale 0 il Dec è disabilito cioè tutte le uscite del Dec sono nulle, altrmenti Se vale 1 il Dec funziona correttamente. Vediamo come sfruttando il segnale di Enable come possiamo ottenere un Dec 3:8 avendo a disposizione ad esmpio un Dec 1:2 e 2 Dec 2:4 0 1 2 3 2:4 Dec 0 1 2 3 2:4 Dec E E x 0 x 1 x 2 x 1 x 2 0 1 1:2 Dec 1 Uno dei due Dec 2:4 sarà sempre abilitato Grazie al Dec 1:2 che pilota i due Dec in uscita
  • 23.
    Espressione Minima Fino adesso ci siamo impegnati a realizzare le reti logiche utilizzando la tabella della verità realizzando forme SP canoniche utilizzando multiplexer e decoder senza tener presente i costi realizzativi che sono proprzionali al numero delle porte logiche(AND, OR, NOT) utilizzate. Cercheremo una tecnica che permette di trovare la forma minima di una f logica e di conseguenza l’utilizzo del numero minimo di porte logiche. Metodo grafico “Mappe di Karnaugh” x 2 x 1 x 0 f 0 0 0 1 0 0 1 0 0 1 0 1 0 1 1 0 1 0 0 1 1 0 1 0 1 1 0 0 1 1 1 0 x 0 x 1 x 2 00 01 11 10 0 1 1 1 1 0 0 0 0 0
  • 24.
    x 0 x1 0 1 0 1 x 0 x 1 x 2 00 01 11 10 00 01 11 10 00 01 11 10 x 0 x 1 x 2 x 3 00 01 11 10 00 01 11 10 x 0 x 1 x 2 x 3 00 01 11 10 00 01 11 10 x 0 x 1 x 2 x 3 x 4 = 0 x 4 = 1 2 var. 4 var. 3 var. 5 var. Mappe di Karnaugh
  • 25.
    Mappe di KarnaughPer ordinare l’etichettazione delle righe e delle colonne delle M. K. bisogna soddisfare il vincolo che le righe (e le colonne) devono essere adiacenti cioè nel passare dall’una all’altra riga (colonna) le configurazioni devono essere adiacenti o meglio la variazione tra due righe (colonne) consecutive e di un solo bit questo vale anche per la prima e l’ultima riga (colonna) che devono essere anch’esse adiacenti tra di loro. 00 01 11 10 00 01 11 10 x 0 x 1 x 2 x 3 La cella 0101 ha quattro celle adiacenti 00 01 11 10 00 01 11 10 x 0 x 1 x 2 x 3 00 01 11 10 00 01 11 10 x 0 x 1 x 2 x 3 x 4 = 0 x 4 = 1 La cella 0101 ha cinque celle adiacenti
  • 26.
    Raggruppamenti Rettangolari R.R.DEF: Un R.R. Di ordine p è un insieme di 2 p celle di una mappa di Karnaugh ed ogni cella del R.R. Ha p celle adiacenti ad essa. 00 01 11 10 00 01 11 10 x 0 x 1 x 2 x 3 p=2 p=2 p=1 p=0 00 01 11 10 00 01 11 10 x 0 x 1 x 2 x 3 00 01 11 10 00 01 11 10 x 0 x 1 x 2 x 3 x 4 = 0 x 4 = 1 5 var. p=3 p=2 p=1 L’obiettivo è quello di cercare raggruppamenti rettangolari di ordine max di soli 1 con i quali ottenere una copertura della mappa di Karnaugh.
  • 27.
    Esempi di copertura00 01 11 10 00 01 11 10 x 0 x 1 x 2 x 3 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 00 01 11 10 00 01 11 10 x 0 x 1 x 2 x 3 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0
  • 28.
    Comparatore Siano A={a 1 , a 2 }2 B={b 1 , b 2 } due numeri binari un comparatore confronta le 2 n (4) Configurazioni, restitusce 1 se sono uguali altrimenti 0. a 1 a 2 b 1 b 2 0 0 0 0 1 0 1 0 1 1 0 1 0 1 1 1 1 1 1 1 f 0 1 2 3 0 1 2 3 a 1 a 2 b 1 b 2 f Dec 2:4 MUX 2:4
  • 29.
    Comparatore di config.di n bit Prima di parlare di un comparatore a n bit introduciamo 2 nuove porte logiche: Ex-Or, Ex-Equivalence x 0 x 1 z x 0 x 1 z Ex-Or x 0  x 1 = z Ex-EQ x 0  x 1 = z x 1 x 0 Ex-or 00 0 01 1 10 1 11 0 x 1 x 0 Ex-eq 00 1 01 0 10 0 11 1 comparatore n bit n bit A B z a n b n a n-1 a n-1 a 1 a 1 z
  • 30.
    SOMMATORE Progettiamo unarete combinatoria (R.C.) che in ingresso abbia 2 configurazione a 3bit e in uscita la somma + A B S C A=( a 2 , a 1 , a 0 ) B=( b 2 , b 1 , b 0 ) S=( s 2 , s 1 , s 0 ) 4 situazioni possibili Riporto per lo stadio successivo s 0 Ex-Or a 0  b 0 = s 0 a 0 b 0 Ex-or 00 0 01 1 10 1 11 0 AND : a 0 • b 0 = r 0 r 0 a 0 b 0 a 0 b 0
  • 31.
    Half Adder L’HalfAdder è il componente logico che mi da la somma di 2 bit s 0 a 0 b 0 r 0 HALF ADDER a 0 b 0 s 0 r 0 Componete logico che implementa la somma più il riporto S 1 ’ = a 1  b 1 r 1 ’ = a 1 b 1 S 1 =S 1 ’  r 0 r 1 ’’ = S 1 ’ r 0 r 1 = r 1 ’ + r 1 ’’ Somma allo stadio successivo S 1 ’ a 1 b 1 r 0 s 1 r 1 ’’ r 1 ’ r 1 H.A H.A
  • 32.
    FULL ADDER HalfAdder Half Adder a 1 b 1 r 0 S 1 ’ r 1 ’ r 1 ’’ S 1 r 1 a 1 b 1 r 0 r 1 S 1 Full Adder Full Adder n- bit Adder: componente che esgue la somma di n bit C i = 0 a 1 b 1 S 1 r 1 Full Adder S 2 Full Adder S n Full Adder a 2 b 2 a n b n r n-1 C o =Carry out= riporto d’uscita A B S C o N-bit ADDER C i =0 r 2
  • 33.
    Schema per unaddizionatore I 2 I 1 n n B A n 1 C o S C i 1 I 1 = {I 1,1 , I 1,2 ,....,I 1,n }bit I 2 = {I 2,1 , I 2,2 ,....,I 2,n }bit Unità base utilizzata per strutture più complesse I 2 I 1 n n B A n C o S C i 0 1 Mux x 0 Un Mux a n uscite non esiste, ma lo schematico Sintetizza n Mux ognuno dei quali gestisce un solo bit d’ingresso della sequenza I 2 0 1 Mux 0 1 Mux 0 1 Mux I 2,1 I 2,2 I 2,n b 1 b 2 b n x 0 n_bit Adder n_bit Adder
  • 34.
    I 2 I1 n n A n C o S C i 0 1 Mux x 0 B Analisi dello schematico x 0 C i S 0 0 A+B 0 1 A+B+1 1 0 A+B 1 1 A+B+1 Se alla precedente analisi aggiungiamo il tipo di codifica utilizzato le operazioni si trasformano Codifica complemento a 2 0=000 1=001 2=010 3=011 4=100 -1=111 -2=110 -3=101 -B=(B) 2 =B+1 x 0 C i S 0 0 A+B Add 0 1 A+B+1 Add+ 1 0 A-B-1 Diff- 1 1 A-B Diff n_bit Adder
  • 35.
    I 2 I1 n n A n C o S C i 0 1 Mux x 0 B x 1 x 1 a 1 a 2 a n I 1,1 I 1,2 I 1,n N-And I segnali di controllo x 0 ,x 1 e C i determinano Il tipo di operazione Che effettua l’unità Aritmetica U.A x 0 x 1 C i C i x 0 x 1 A B S C o Unità Aritmetica U.A 8 operazioni n_bit Adder A-B -B A+B+1 B+1 1 A-B-1 -B-1 A+B B 0 11 10 01 00
  • 36.
    Ulteriore evoluzione dell’U.A.I 2 I 1 n A n C o C i x 1 n_bit Adder n S n n B x 0 x 2 16 operazioni implementabili con 4 Segnali di controllo x 0 x 1 x 2 C i Unità Aritmetica A B x 0 x 1 x 2 M S C 0 C i U.A. M segnale di modalità cioè segnale di controllo che determina la modalità dell’UA o aritmetica o logica A 0 A-B -B 11 A-1 -1 A-B-1 -B-1 10 A+B+1 B+1 A+1 1 01 A+B B A 0 00 11 10 01 00
  • 37.
    Logica: esistesolo un ordine dei bit e non un peso, le configurazionilogiche sono solo Un aggregato di variabili logiche Numerica: l’ordine è importante, ogni bit ha un peso numerico. C i = 0 a 1 b 1 S 1 r 1 Full Adder S 2 r 2 Full Adder S n Full Adder a 2 b 2 a n b n r n-1 M Codifica numerica decimale: M=1  unità aritmetica M=0  unità logica I 2 I 1 n A n C o C i x 1 n_bit Adder n S n n B x 0 x 2 M x 0 x 1 x 2 A 11.1 A  B B 1 A  B B A 00..0 0 11 10 01 00
  • 38.
    I 2 I1 n A n C o C i x 1 n_bit Adder n S n n B x 0 x 2 M S ’ x 3 x 0 x 1 x 2 x 3 =0 M=0 x 0 x 1 x 2 x 3 =1 M=1 A 11.1 A  B B 1 A  B B A 00..0 0 11 10 01 00 A+B 11.1 A  B A+B 1 A+B B A AB 0 11 10 01 00
  • 39.
    ALU A BS FLAG C o X M C i ALU: Arithmetic Logic Unit ALU: è la parte del microprocessore di un pc che esegue le operazioni impostate dai segnali di controllo. Flag: sono dei bit impostati a particolari valori in relazione alle operazioni svolte e ai valori ottenuti. Sono una serie di informazioni utili forniti insieme al risultato