30
Università di Cagliari Dipartimento di Ingegneria Elettrica ed Elettronica Laboratorio di Microelettronica e Bioingegneria (EOLAB) Reti Logiche Combinatorie Modulo 4

Reti Logiche CombinatorieReti Logiche Combinatorie Modulo 4 A.A. 2013/2014 Elettronica M. Barbaro Logica combinatoria Un blocco di logica puramente combinatoria è un blocco con N

  • Upload
    others

  • View
    11

  • Download
    1

Embed Size (px)

Citation preview

Università di Cagliari Dipartimento di Ingegneria Elettrica ed Elettronica

Laboratorio di Microelettronica e Bioingegneria (EOLAB)

Reti Logiche Combinatorie

Modulo 4

A.A. 2013/2014 Elettronica M. Barbaro

Logica combinatoria

Un blocco di logica puramente combinatoria è un blocco

con N variabili di ingresso e M variabili di uscita che

sono funzione (booleana) degli ingressi presenti in un

certo istante.

Ad ogni istante le uscite dipendono solo dagli ingressi in

quell’istante e NON dalla storia passata del circuito

x1

x2

xN

z1 z2

zM

A.A. 2013/2014 Elettronica M. Barbaro

Logica sequenziale

Un blocco di logica sequenziale è un blocco logico le cui uscite dipendono non solo dagli ingressi attuali ma anche da tutta la storia passata degli ingressi (la sequenza di ingressi)

Un modello che descrive il loro comportamento è rappresentato in Figura, dove [zM,…,z0] rappresentano le uscite e [yK,..,y0] le cosiddette variabili di stato (vedremo meglio in seguito parlando di reti logiche sequenziali)

[xN,…,x0] [zM,…,z0]

[yK,…,y0]

A.A. 2013/2014 Elettronica M. Barbaro

Combinatorio e sequenziale

Il migliore esempio per distinguere un

comportamento combinatorio da uno

sequenziale è quello del telecomando:

Quando si preme un tasto corrispondente ad un

canale (1, 2, 3, etc.) il telecomando ha un

comportamento combinatorio, perché sintonizza il

televisore sul canale desiderato, a prescindere da

quello che si sta guardando il quel momento

Quando invece si preme il tasto avanti o indietro si

ha un comportamento sequenziale perché il nuovo

canale sintonizzato dipende da quello che si sta

guardando attualmente (se sto guardando Rai2

vedrò Rai3 e così via)

A.A. 2013/2014 Elettronica M. Barbaro

Reti combinatorie: analisi

La procedura di analisi di una generica rete combinatoria descritta in termini grafici per mezzo di un diagramma è molto semplice Si etichettano tutte le uscite di una porta logica che

sono funzione dei soli ingressi con un nome arbitrario

Si etichettano con un nome arbitrario tutte le uscite di una porta logica che siano funzione degli ingressi e dei segnali etichettati precedentemente

Si ripete il processo fino ad ottenere le uscite finali della rete

Si sostituisce ad ogni variabile la sua espressione logica costruendo così l’espressione logica completa

A.A. 2013/2014 Elettronica M. Barbaro

Analisi: esempio

T2 = ABC

T1 = A+B+C

T3 = T1 F2’

F2=AB+AC+BC

F1 = T2 + T3

A.A. 2013/2014 Elettronica M. Barbaro

Analisi: tabella di verità

La procedura per ricavare la tabella di verità è

altrettanto semplice:

Si determina il numero n di ingressi della rete e si

crea una tabella con 2n righe

Si etichettano le uscite delle singole porte con nomi

arbitrari

Si determina la tabella di verità di quelle porte che

sono funzione dei soli ingressi

Si procede trovando la tabella di verità per quelle

uscite che sono funzione degli ingressi e di segnali

definiti precedentemente

A.A. 2013/2014 Elettronica M. Barbaro

Reti combinatorie : sintesi

La procedura di sintesi fa uso degli strumenti

dell’algebra di Boole

Dalle specifiche del circuito si determina il numero di

ingressi ed uscite

Per ogni uscita si ricavano le tabelle di verità

Si minimizza l’implementazione di ciascuna funzione

(per mezzo di mappe di Karnaugh o metodi più

sofisticati)

Si disegna il diagramma circuitale con le porte

logiche e se ne verifica il funzionamento

A.A. 2013/2014 Elettronica M. Barbaro

Reti combinatorie

Vedremo adesso una panoramica dei principali

blocchi logici combinatori utilizzati come blocchi

base per l’implementazione di sistemi digitali

complessi

Per alcuni di questi circuiti seguiremo tutta la

fase di sintesi, come esempio, altri li

analizzeremo solamente.

A.A. 2013/2014 Elettronica M. Barbaro

Addizionatore

La specifica di un circuito

addizionatore è puramente

discorsiva: si tratta di un

circuito in grado di prendere in

ingresso due numeri binari a N

bit (A e B) e generare in uscita

la somma su N bit (S) ed un bit

di riporto

HA

FA

FA

FA

A0

A1

A2

A3

B0

B1

B2

B3

S0

S1

S2

S3

C3 = S4

C0

C1

C2

+ A[3:0]

B[3:0]

S[4:0]

A.A. 2013/2014 Elettronica M. Barbaro

Addizionatore: sintesi

Gli ingressi sono in totale 2N (N bit di A e N di B)

Le uscite sono N+1 (N bit per la somma S più un bit di

riporto Cout)

Piuttosto che implementare direttamente tutta la rete se

ne può sfruttare la natura gerarchica esplicitata nello

schematico del lucido precedente

Si possono cioè sviluppare due blocchi

HA: Half-adder, somma due bit e genera la somma ed il riporto

FA: Full-adder, somma tre bit e ne genera somma e riporto

L’addizionatore completo è poi ottenuto dall’opportuna

interconnessione di blocchi HA e FA

A.A. 2013/2014 Elettronica M. Barbaro

HA: sintesi

A B S C

0 0 0 0

0 1 1 0

1 0 1 0

1 1 0 1

1

1

A B

1

0

0 1

S=A’B+AB’

1

A B

1

0

0 1

C=AB

Le due mappe

non sono

minimizzabili

ulteriormente

A.A. 2013/2014 Elettronica M. Barbaro

Implementazione

Questa funzione è

l’operatore XOR

A.A. 2013/2014 Elettronica M. Barbaro

FA: sintesi

A B Cin S C

0 0 0 0 0

0 0 1 1 0

0 1 0 1 0

0 1 1 0 1

1 0 0 1 0

1 0 1 0 1

1 1 0 0 1

1 1 1 1 1

C=AB+BCin+ACin

1

1 1 1

AB Cin

1

0

00 01 11 10

S=AB’Cin’+A’BCin’+A’B’Cin+ABCin

1 1

1 1

AB Cin

1

0

00 01 11 10

A.A. 2013/2014 Elettronica M. Barbaro

FA: sintesi

L’espressione di S non è ulteriormente

minimizzabile ma può essere ulteriormente

manipolata:

S = Cin’ (A’B+AB’) + Cin (AB+A’B’)

Per DeMorgan: (A’B+AB’)’ = ((A’B)’ (AB’)’) =

= (A+B’) (A’+B) = AA’+AB+A’B’+B’B =

= AB+A’B’

S = (AB)Cin

(AB) (AB)’

A.A. 2013/2014 Elettronica M. Barbaro

Implementazione (1)

Implementazione diretta con porte AND e OR

A.A. 2013/2014 Elettronica M. Barbaro

Implementazione (2)

Implementazione con due HA ed una porta OR

HA HA

A.A. 2013/2014 Elettronica M. Barbaro

Sommatore / sottrattore

Avendo un sommatore fatto di soli FA si può

implementare facilmente un circuito

sommatore/sottrattore ricordando che per

sottrarre due numeri basta sommare il primo

all’opposto del secondo

In complemento a 2, per generare l’opposto di

un numero basta complementare tutti i bit e

sommare 1

Usando un sommatore fatto di soli full-adder per

sommare 1 basta portare ad 1 il carry in

ingresso del primo FA

A.A. 2013/2014 Elettronica M. Barbaro

Implementazione

M=0, il circuito è un semplice sommatore

M=1, il circuito è un sottrattore (le XOR complementano i bit in ingresso e M entra nel carry)

A.A. 2013/2014 Elettronica M. Barbaro

Moltiplicatore binario

Circuito per la moltiplicazione di due numeri a 2 bit

A.A. 2013/2014 Elettronica M. Barbaro

Decoder

Un decoder è un circuito con N segnali di

ingresso e M segnali di uscita

A seconda della combinazione in ingresso viene

selezionata una delle linee d’uscita (la

combinazione di ingresso viene decodificata)

Il decoder più importante è quello binario che ha

in ingresso N bit ed in uscita 2N segnali

A seconda della combinazione binaria in ingresso

viene selezionata una delle uscite (se in ingresso ho

il codice 0 seleziono l’uscita 0, se ho il codice 1

l’uscita 1 e così via)

A.A. 2013/2014 Elettronica M. Barbaro

Implementazione

Decoder con abilitazione (E). Le mappe non sono evidentemente minimizzabile perché

per ogni codice di ingresso una ed una sola linea d’uscita va alta

A.A. 2013/2014 Elettronica M. Barbaro

Decoder complessi

All’aumentare del numero di ingressi posso realizzare il decoder utilizzando decoder

più piccoli in parallelo

A.A. 2013/2014 Elettronica M. Barbaro

Logica combinatoria con decoder

Un decoder può essere usato per implementare qualsiasi funzione logica. A seconda della combinazione

d’ingresso una sola uscita è alta, si mettono in OR le uscite che corrispondono alle righe per cui la

funzione deve essere 1

A.A. 2013/2014 Elettronica M. Barbaro

Encoder

Un encoder svolge l’operazione inversa, dati N ingressi, genera M uscite per identificare quale degli ingressi era alto tramite un opportuno codice

Come sempre, il codice binario è il più semplice, avrò allora N ingressi e log2N uscite che codificano quale linea d’ingresso è risultata alta

Siccome più ingressi possono essere alti contemporaneamente, si stabilisce un meccanismo di priorità in base al quale se più ingressi sono alti si mette in uscita il codice che corrisponde all’ingresso a massima priorità

A.A. 2013/2014 Elettronica M. Barbaro

Implementazione

A.A. 2013/2014 Elettronica M. Barbaro

Implementazione

A.A. 2013/2014 Elettronica M. Barbaro

Multiplexer

Un multiplexer è un circuito che, in base ad un

codice di ingresso, fa passare in uscita il valore

di uno di N segnali in ingresso

Se N sono gli ingressi, il codice di selezione

deve essere composto da log2N bit

A.A. 2013/2014 Elettronica M. Barbaro

Implementazione

A.A. 2013/2014 Elettronica M. Barbaro

Logica combinatoria con multiplexer

Anche i multiplexer possono essere dei blocchi base per implementare una qualsiasi

funzione logica