Sei sulla pagina 1di 106

Reti combinatorie

I lucidi da 2 a 9 sono presi dal corso di Reti Logiche LA tenuto nellAA 2008-2009 dal prof. S.Mattoccia

Introduzione alle macchine digitali


Alcuni esempi di sistemi digitali Computer Foto/Videocamere Telefonini, lettori MP3 Ascensori, antifurti Automobili (iniezione, ABS..) .... Cosa sono i sistemi digitali?
2

Sistemi digitali
Sistemi fisici che impiegano grandezze fisiche contraddistinte da un insieme discreto (non infinito) di valori significativi (segnali digitali) per rappresentare, elaborare e comunicare informazioni

SEGNALE: Grandezza fisica variabile nel tempo il cui andamento o forma donda rappresenta linformazione che la parte sorgente vuole inviare alla parte destinazione SEGNALI ANALOGICI: ogni variazione della grandezza fisica modifica linformazione trasportata SEGNALI DIGITALI: solo a certe variazioni corrisponde una modifica di significato

Segnali Analogici e Digitali


rumore Segnale analogico

Segnale digitale (discretizzato)

Segnale binario. I due livelli H e L convenzionalmente sono indicati come 1 e 0 (senza significato numerico !!!)

L
4

Interruttori
I sistemi digitali sono composti da (una molteplicit di) interruttori Dispositivo ON/OFF Interruttore elettronico (dimensioni, costo, velocit, dissipazione,..)

+ Vcc

Causa

Ii Vu Effetto

Ii: {Imin,0} Vu: {0, Vcc}

Esempio: misurare il livello del carburante in unautomobile


Sensore (ON/OFF) Variabile binaria (Bit)

4/4 3/4 2/4 Riserva ? 1/4

8/8 7/8 6/8 5/8 4/8 3/8 2/8 1/8

1 bit 2 livelli

2 bit 4 livelli

3 bit 8 livelli

Conversioni

A/D
Ex: pressione del vapore

D/A
Ex: posizione della valvola

Computer

Conversione Analogica/Digitale e Digitale/Analogica Uno o entrambi i convertitori possono essere assenti. Ad esempio step-motor, scanner, stampante etc.
7

Esempio: telefonia digitale PCM

A/D

RL

TX

RX

RL

D/A

IP
1010 1010

PC

PC

Codifica dellinformazione

Scena reale

Immagine digitale acquisita dal sensore


Valori discreti

R {0,1,2,..,244,255} G {0,1,2,..,244,255} B {0,1,2,..,244,255}

Codici e Numeri
Un codice un insieme di simboli le cui combinazioni individuano oggetti diversi. Esempio il codice Morse (punto e linea), il codice a barre etc. Un sistema numerico posizionale (come quello utilizzato nei nostri sistemi di calcolo) un insieme di simboli ciascuno dei quali rappresenta una quantit numerica (ad esempio 5, 7, 3 etc.) e il cui significato dipende dalla posizione 3547 = 3 x 103 + 5 x 102 + 4 x 101 + 7 x 100 Un codice binario un codice che utilizza solo due simboli (ad esempio e ). Un insieme di n di questi simboli in grado di individuare 2n differenti oggetti (combinazioni con ripetizione). Un codice ternario usa tre simboli (ad esempio e e ). Con n di questi simboli posso individuare 3n oggetti. E cos via .. Ovviamente per codificate un numero di oggetti N che non potenza di 2 sono necessari almeno z bit ove z il primo intero superiore al log2(N) Naturalmente esistono codici ridondanti (ad esempio il codice 1 su N ove ogni configurazione ha un solo bit a 1). Con N bit si individuano N oggetti (ex: 010000, 000010 etc.)
N.B. Esistono sistemi numerici NON posizionali: ad esempio i numeri romani
10

Codici binari
Molto spesso (praticamente sempre) i due simboli utilizzati per un codice binario sono 0 e 1, in questo caso assolutamente privi di significato numerico (sono equivalenti a basso/alto, rosso/verde, aperto/chiuso, / etc.). In questo contesto in un supermercato la stringa 100101 potrebbe indicare il pane e la stringa 110101 il latte. I simboli 0 e 1 si chiamano bit (ovvero binary digit) Esiste per anche un sistema numerico binario posizionale nel quale gli stessi simboli 0 e 1 hanno un significato numerico. Ad esempio in questo contesto 100101 sta a indicare 1 x 25 + 0 x 24 + 0 x 23 + 1 x 22 + 0 x 21 + 1 x 20 = 32 + 4 + 1 = 3710 Nel sistema numerico binario ovviamente possibile eseguire tutte le operazioni aritmetiche

11

Numeri binari
Le potenze di 2: 1,2,4,8,16,32,64,128,256,512,1024.

Anche per i valori numerici 0 e 1 si usa la parola bit

Con n bit si copre il range di numeri 0.. .2n-1 (c anche lo zero )

Codici alfanumerici: ex codice ASCII, codice a 7 bit (v. dopo)

12

Operazioni elementari con numeri binari


1 1 1 1 0 1 0 1 1 0 1 0 1 1 + 0 1 1 1 0 1 0 = ---------------1 0 1 0 0 1 0 1 0 1 Riporto 1 0 7 + 5 8 = ----1 6 5

0 2 2 0 0 0 1 1 0 1 0 1 1 0 1 1 1 0 1 0 = ---------------0 1 1 0 0 0 1

0 10 10 1 0 7 5 8 = -------4 9

Prestito

13

Operazioni elementari con numeri binari


101101 x 1011 ------------101101 101101= 000000== 101101=== ------------111101111 45 x 11 ------45 45= ------485

La divisione si effettua con criteri similari

14

Numeri binari negativi


Molte diverse codifiche: quella universalmente usata il complemento a 2 Regola: dato un numero binario positivo il suo equivalente negativo si ottiene sostituendo gli uni con gli zeri e viceversa e sommando infine 1 I numeri negativi hanno un 1 nella cifra pi significativa (ovviamente in un contesto di numeri relativi) e quelli positivi (fra cui anche lo zero che per un numero particolare) hanno uno 0 nella cifra pi significativa. Procedimento identico per la conversione dei numeri negativi Le operazioni elementari con numeri in complemento a 2 danno come risultato ancora numeri in complemento a 2 (verifica semplice per somma e sottrazione e pi complicata per la moltiplicazione e divisione algoritmo di Booth) 0100101 => 1011010 + 1 = 1011011 1011011 => 0100100 + 1 = 0100101 +37 => -37 -37 => +37

15

Numeri binari negativi


1011011 + 0010010 = ------1101101 => 0010010 + 1= 0010011 -37 + 18 = ---19

Nel caso di riporto oltre lultima bit significativo questultimo va scartato (per motivi fisici nei computer)

1011011 + 1010010 = ------10101101

ERRORE OVERFLOW

-37 + -46 = ---83 |-83| > 63

Dalla somma di due numeri negativi un numero positivo !!! Errore di overflow nei computer
Il complemento a 2 funziona nellambito dellintervallo di riferimento (nel nostro caso i numeri 0-|63| ovvero 6 bit pi il segno e quindi da -64 fino a +63)
16

Numeri binari negativi


Il complemento a 2 di numeri a N bit permette di rappresentare numeri nellintervallo 2**N-1 fino a 2**N -1

Lo zero rimane sempre zero (0000 => 1111+1 => 0000 scartando lultimo bit) Moltiplicazione e divisione sono molto pi complessi (Algoritmo di Booth) Estremamente complesso il calcolo in virgola mobile

17

Stringhe di bit in notazione esadecimale


Molto spesso le stringhe di bit (per codici o per numeri binari) sono troppo lunghe per essere gestite facilmente. Esempio: 00101001011110100101100101010 La stringa troppo lunga anche da ricordare. Si una allora la notazione esadecimale nella quale ad ogni gruppo di 4 bit si sostituisce il suo valore esadecimale. Binario Esadecimale (HEX)
0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111 0 1 2 3 4 5 6 7 8 9 A B C D E F

18

Stringhe di bit in notazione esadecimale


Ne deriva che la stringa: 00101001011110100101100101010 pu essere riscritta come (raggruppando per 4) 0 0101 0010 1111 0100 1011 0010 1010 e quindi in notazione esadecimale: 052F4B2A. Se la notazione esadecimale rappresenta un numero possibile eseguire le operazioni aritmetiche. Esempio (1000) Riporto (quando si arriva a 1610) A57B + Questo 1 vale 1610 B342 = ---------158BD Esiste anche la notazione Ottale in cui i bit sono raggruppati per 3 e quindi la notazione utilizza solo i simboli 0-7. Vale ancora il principio che se la stringa rappresenta un numero binario possibile eseguire operazioni aritmetiche
19

Codice ASCII

Mancano ovviamente tutti i caratteri polacchi etc. arabi, cirillici etc. - > Unicode, codice a 16 bit
20

Codice Gray
Tra configurazioni (stringhe) Gray adiacenti cambia sempre un solo bit

110

010

Gray
000 001 011 010 110 111 101 100

Bin
000 001 010 011 100 101 110 111

011

Utile ad esempio se vogliamo misurare la posizione angolare di un albero motore. Perche ? Non vi sono discontinuit Per la conversione fra i due codici v. dopo
21

Parit
Esistono codici che permettono di identificare un singolo errore (ad esempio nel caso di trasmissioni): ex parit. Il bit di parit (o di disparit) un bit che si aggiunge al codice trasmesso in modo che il numero di bit complessivi risulti sempre pari (dispari). Ex parit pari 1001011 0000000 1111110 Ovviamente il bit di parit protegge dagli errori singoli ma NON da quelli doppi o quadrupli etc. Vengono rivelati solo quelli dispari Trasmesso Ricevuto 1001011 1001111 Errore !! 1011001 Errore NON rivelato!

Se si accetta che le trasmissioni siano non troppo rumorose (ovvero che lerrore sul singolo bit sia il pi probabile) la parit un metodo semplice ed efficace. Usato ad esempio nella trasmissione seriale con standard RS232C (ormai in disuso)
22

Codici a correzione di errore


Si definisce distanza il numero di bit diversi che separano due configurazioni lecite. Ad esempio in un codice con 5 bit le due configurazioni lecite 01011 e 01111 hanno distanza uno, le due configurazioni 01011 e 01101 hanno distanza due etc. I codici a distanza due (parit fra questi) permettono lindividuazione del singolo errore.

Codici corretti (distanza due - 4 bit 4 valori)


0001 0010 0100 1000

Codici corretti (distanza tre 3 bit - 2 valori)


000 111 Se si riceve ad esempio 001 lunica configurazione vicina a 000 e quindi se si suppone che lerrore sia singolo lo si pu correggere. Anche nel caso si riceva 011 si pu ipotizzare che il codice trasmesso fosse 111 ma ove sia possibile che si verifichino doppi errori la configurazione di partenza avrebbe anche potuto essere 000. In questo caso siamo quindi in presenza di un codice in grado di correggere i singoli errori e rivelare i doppi. Se la distanza fosse 4 si pu vedere dal grafo cosa si pu dedurre Se le due uniche configurazioni corrette sono 0000 e 1111 possiamo certamente individuare i singoli, doppi e tripli errori. Se si riceve 1110 ci si pu ricondurre a 1111 (correzione) ma se si riceve 0110 riveliamo lerrore ma non siamo in grado di correggerlo (equidistante da 0000 e 1111)
23

Conversione di codice
La conversione di codice da binario a decimale ovvia. La conversione da decimale a binario si effettua per divisioni successive per 2 tenendo conto dei resti

75| 2 37| 2 18| 2 9| 2 4| 2 2| 2 1| 0

Resto 1 1 0 1 0 0 1

1001011 => 75

24

Codice Binary Coded Decimals


Rappresentazione di numeri decimali nei quali ogni cifra rappresentata dallequivalente binario Notazione packed: ogni digit rappresentato da 4 bit decimale 1 7 3 9 BCD 0001 0111 0011 1001 Nella notazione packed in un byte (8 bit ) sono contenuti due digit. In un calcolatore il numero precedente sarebbe rappresentato da due bytes 00010111 (17) ; 00111001 (39) Notazione unpacked: un byte per ogni digit. Il numero precedente sarebbe rappresentato da 4 bytes 000000001 00000111 00000011 00001001 N.B. Il byte lunit di informazione minima individuabile e gestibile in un calcolatore. Tutti gruppi di 4 bit con valore binario superiore a 1001 NON sono validi nel codice BCD

25

Conversione fra codice binario e BCD


Per passare dal binario a BCD basta dividere per 1010 ovvero 000010102 e (caso unpacked) porre il quoziente nel byte pi significativo e il resto in quello meno significativo oppure (caso packed) porre i due nibbles (4 bit) rispettivamente nella parte alta e in quella bassa del byte di destinazione. Esempio 001101012 = 5310 00110101 : 1010 = 00000101 00000011 (unpacked 510 con resto 310) Il passaggio dal BCD al binario si effettua loperazione inversa. Ad esempio per passare dal binario unpacked al binario basta moltiplicare il primo byte (il pi significativo) per 10 e sommarlo al byte meno significativo 00001001 00000010 (92 in BCD) 00001001 x 1010 = 01011010 (9010) che sommato a 0000010 d esattamente 01011100 ovvero (9210) Nel caso di BCD packed si deve moltiplicare 1010 (10102) per il nibble pi significativo e sommarlo a quello meno significativo

26

Operazioni aritmetiche in BCD


Somma
24 + 13 = 37 0010 0100 + 0001 0011 = ----------0011 0111 15 + 9 =24 0001 0101 + 0000 1001 = ----------0001 1110 ? invalido bisogna aggiungere 6 (distanza fra 15 e 9) e inserire un riporto sul nibble successivo 1 0001 1110 + 0000 0110 = ----------0010 0100 24 !! 19 + 28 = 47 0001 1001 + 0010 1000 = -----------0100 0001 41 invalido (riporto fra i nibbles) (aggiungere 6 senza riporto sul nibble successivo il riporto gi stato inserito) 0100 0001 + 0000 0110 = ----------0100 0111 47

Se si ottengono numeri BCD maggiori di 9 oppure vi un riporto fra i digit allora bisogna comunque aggiungere 6

27

Operazioni aritmetiche in BCD


Altre operazioni
37 12 = 25 0011 0111 0001 0010 = ----------0010 0101 25 65 19 = 46 2 (prestito) 0110 0101 0001 1001 = ----------0100 1100 invalido sottrarre 6 0100 1100 0000 0110 = ----------0100 0110 46 41 18 = 23 2 (prestito) 0100 0001 0001 1000 = ----------0010 1001 29 errore sottrarre 6 0010 1001 0000 0110 = ----------0010 0011 23

Nel caso di digit invalido oppure di prestito dal digit successivo si deve sottrarre 6 Per moltiplicazione e divisione non vi sono regole per i BCD. Ad esempio per gli unpacked (che hanno i 4 bit pi significativi a 0) basta effettuare la moltiplicazione binaria normale e poi effettuare la conversione binario-BCD. In modo similare per i packed (andando per nibble) 9x4=36 moltiplicazione binaria conversione binario-BCD (0000 1001 x 0000 0100) = 0010 0100 => (0010 0100 : 1010) = 0000 0011 con resto 0000 0110 In BCD non trattiamo i numeri negativi
28

Realizzazione di una matrice 7 segmenti


a b e d g c f Con 7 elementi 27 = 128 combinazioni

Che corrispondenza esiste fra il numero che si vuole rappresentare e i segmenti ? (1 acceso 0 spento) Numero Hex Bin (xyzw) a bcde f g
1 1 0 1 . 1 1 . 0 0 1 0 1 1 . 1 0 . 1 0

00 0 0000 1 1 1 0 1 01 1 0001 0 0 1 0 0 02 2 0010 1 0 1 1 1 03 3 0011 1 0 1 1 0 . . . . . . . . . . . . . . . . . . 09 9 1001 1 1 1 1 0 10 A 1010 1 1 1 1 1 . . . . . . . . . . . . . . . . . . 14 E 1110 1 1 0 1 1 15 F 1111 1 1 0 1 1

a,b,c,d,e,f rappresentano 7 funzioni dei bit binari xyzw . Ad esempio c = fc(x,y,z,w). Come si sintetizza e realizza la funzione fc ??????? NB 6 e b sono differenziati dal fatto che 6 ha il segmento a acceso
29

Come realizzare ad esempio una rete che effettui somme e altre operazioni binarie ?
Nei calcolatori si usano dei circuiti elettronici chiamati reti logiche che operano su due livelli di tensione convenzionalmente indicati con i simboli 0e1 E possibile realizzare una rete elettronica che utilizzando solo questi due livelli di tensione abbia un comportamento per cui le sue uscite corrispondano ai valori di una somma. N.B. i segnali elettrici 0 e 1 (ad esempio 0 e 5V) NON sono valori numerici ma il loro comportamento nella rete deve corrispondere a quello di un sommatore binario

Tastiera

Conv

RL Somma Elettronica

Conv

Display

Come si progetta ? 30

Reti combinatorie
La tabella dei 7 segmenti precedente un esempio di tabella della verit lo strumento che alla base della sintesi delle reti combinatorie ovvero di quelle reti la cui uscita dipende solo dagli ingressi e non dal tempo Un esempio nel campo analogico pu essere trovato confrontando un circuito per la somma delle tensioni (NON dipendente dal tempo) e un integratore (dipendente dal tempo) entrambi i circuiti si realizzano tramite amplificatori operazionali ma uno ha solo resistenze e laltro ha un condensatore (la cui carica dipende dal tempo) Si definiscono invece reti sequenziali quelle reti che dipendono dal tempo ovvero in cui le uscite dipendono dal tempo ovvero dalla storia passata del sistema Date n- variabili binarie di ingresso il numero di funzioni diverse di una sola uscita dato dal valore 2**2**n Ad esempio con 1 variabile di ingresso si possono realizzare solo 4 funzioni combinatorie I f0 f1 f2 f3 0 01 0 1 1 01 1 0 di fatto a parte le due funzioni identit (che fisicamente corrispondono a un filo) e le costanti rimane una sola funzione (f3 ) che viene chiamata negazione, inversione o NOT e viene rappresentata con il seguente simbolo:

Il simbolo utilizzato nelle espressioni (v. dopo) la soprasegnatura (scomoda da stampare), oppure lasterisco o il punto esclamativo (prima o dopo la variabile)
31

Funzioni di due variabili


Le funzioni diverse sono 16 I1 I0
0 1 0 1 0 0 1 1

f0 f1 f2 f3 f4 f5 f6 f7 f8 f9 f10 f11 f12 f13 f14 f15


0 0 0 0 1 0 0 0 0 1 0 0 1 1 0 0 0 0 1 0 1 0 1 0 0 1 1 0 1 1 1 0 0 0 0 1 1 0 0 1 0 1 0 1 1 1 0 1 0 0 1 1 1 0 1 1 0 1 1 1 1 1 1 1

A parte le costanti e le identit caratteristiche f14 funzione OR f8 f1 f7 f6 f9 funzione AND funzione NOR Simbolo Simbolo Simbolo

vi sono le seguenti funzioni


N.B. i simboli qui rappresentati hanno anche una realizzazione fisica nella quale esiste sempre . un ritardo fra cambiamento dei segnali di ingresso e cambiamento delluscita che dipende dalla tecnologia realizzativa
Loperatore EXOR viene anche denominato somma modulo 2 in quanto la sua funzione di uscita pu essere interpretata come il risultato della somma di due bit (valori binari) di ingresso 32

(+) (.)

funzione NAND Simbolo funzione EXOR Simbolo ()

funzione EQUIV Simbolo

Algebra di commutazione
Ma come si passa dalla descrizione tramite tabella della verit a una sintesi utilizzando i componenti base visti precedentemente (o loro combinazioni) e viceversa ? Sintesi Tabella Della verit Schema Logico

Analisi Sistema matematico

Lalgebra di commutazione un sistema matematico atto a descrivere funzioni di variabili binarie. Unalgebra si basa su dei simboli, delle operazioni e dei postulati (affermazioni)
Simboli: [0,1] Operazioni: somma logica (+), prodotto logico (.) e complementazione (!) Postulati : 0+0=0 0.0=0 !0=1 0+1=1 1+0=1 1+1=1 0.1=0 1.0=0 1.1=1 !1=0

Simbolo del prodotto logico (normalmente omesso)


33

NB: operazioni su SIMBOLI e NON numeri/bit !!!!

Algebra di commutazione
Costante: i simboli 1 e 0 Variabile (binarie): un letterale che pu assumere i simboli (ma spesso si usa lespressione valori) 1 e 0 (ma si potrebbero usare anche altri simboli binari g, ) Funzione: f(x1, x2, . xn) con n variabili binarie. Pu essere espressa come tabella della verit Espressione: combinazione di simboli e operazioni. Ex: (((X+Y). !Z). !0) ove X, Y e Z sono variabili binarie Valutazione: calcolo del valore binario dellespressione utilizzando le operazioni e i postulati dellalgebra e assegnando alla n-pla di variabili binarie tutte l combinazioni binarie di valori. Nel caso dellesempio precedente
XYZ 000 001 010 011 100 101 110 111 F 0 0 1 0 1 0 1 0

Espressioni equivalenti: due espressioni che danno luogo alla stessa tabella della verit Propriet: valgono la propriet, riflessiva, simmetrica e transitiva
34

Algebra di commutazione e operatori logici Analisi


I postulati dellalgebra di commutazione corrispondono al comportamento degli operatori logici AND,OR e NOT F=(((X+Y). !Z). !0)
X Y 0 Z F XYZ 000 001 010 011 100 101 110 111 F 0 0 1 0 1 0 1 0

Ne discende che una espressione corrisponde a uno schema logico Vediamo questo schema XYZ F
X Y 000 0 001 0 010 1 F 011 0 100 1 101 0 Stessa tabella della verit: equivalenza !! 110 1 111 0

35

Alcune propriet dellalgebra di commutazione


X+Y=Y+X X.Y=Y.X X+Y+Z=(X+Y)+Z X.Y.Z=(X.Y).Z X+(Y+Z)=(X+Y)+(X+Z) X.(X+Y)= (XY)+ (X.Z) X+X=X X.X=X (idempotenza - entrambi) X+0=X X.0=0 X+1=1 X.1=X X+(X.Y)=X X.(X+Y)=X !(!X)=X X+!X=1 X.!X=0 A.X+A.!X=A (A+X).(A+!X)=A !(X.Y) = !X+!Y !(X+Y)=!X.!Y (Leggi di De Morgan) X.Y+!X.Z+Y.Z= X.Y+!XZ (X+Y).(!X+Z).(Y+Z)=(X+Y).(!X+Z) X+!XY = X + Y (regolarmente dimenticato .) Provare per credere attribuendo a X e Y tutte le possibili combinazioni di valori !!!! NB: anche nellalgebra di commutazione si usano le stesse convenzioni di precedenza utilizzate nellalgebra convenzionale Prec(!) > Prec(.) > Prec(+) Le parentesi servono ad alterare questo ordine. Molto spesso (sempre) si omette il simbolo di prodotto logico
36

Espressioni duali
Una espressione duale quella che si ottiene sostituendo 0 e 1 e gli operatori and e or F=(((X+Y). !Z). !0) => Fd= (((X.Y)+!Z)+!1) Si ha che (Fd)d=F

Se due espressioni sono equivalenti lo sono anche le loro duali se (((X+Y). !Z). !0) equivale a =((X+Y). !Z) (come vero) allora le espressioni duali si equivalgono (((X.Y)+!Z)+!1) equivale a ((X.Y)+!Z) (verificare con la tabella della verit)

37

Algebra di commutazione e operatori logici XYZ F Sintesi 000 0


Ma come si passa da una tabella della verit al circuito che la sintetizza ? Circuiti combinatori: circuiti in cui le uscite dipendono solo dagli ingressi e NON dal tempo ovvero dalla storia passata del circuito. Vediamo a partire da una tabella della verit Si selezionano le righe in cui la funzione vale 1 e si scrive lespressione prodotto (termine prodotto) corrispondente utilizzando le variabili di ingresso con il valore vero se compaiono con 1 e viceversa. I termini prodotto (mintermini) si sommano logicamente F= !X!YZ + !XY!Z + X!Y!Z + XY!Z + XYZ Espressione canonica (con tutte le variabili nei prodotti logici) in forma di somma di prodotti (SP) Espressione a due livelli (il NOT non conta)
X!Y!Z !X!YZ

001 1 010 1 011 0 100 1 101 0 110 1 111 1

!X!YZ !XY!Z X!Y!Z XY!Z XYZ

X Y Z

!XY!Z

F
XY!Z

XYZ

38

Algebra di commutazione e operatori logici Sintesi


In alternativa si selezionano le righe in cui la funzione vale 0 e si scrive lespressione somma (termine somma) utilizzando le variabili di ingresso con il valore negato se compaiono con 1 e viceversa. I termini somma (maxtermini) si moltiplicano logicamente F= (X+Y+Z)(X+!Y+!Z)(!X+Y+!Z) Espressione canonica in forma di prodotti di somme (PS) Espressione a due livelli (il NOT non conta) Una rete logica combinatoria sempre sintetizzabile a due livelli
X+Y+Z

XYZ 000 001 010 011 100 101 110 111

F 0 X+Y+Z 1 1 0 X +!Y +!Z 1 0 !X + Y +!Z 1 1

X Y Z

X+!Y+!Z

F
!X+Y+!Z

Le due sintesi canoniche (SP e PS) portano normalmente a circuiti di diversa complessit
39

Espansione
Una espressione SP pu essere espansa in modo da risultate una somma di mintermini (forma canonica) ricordando che X.1=X, X+!X=1 e X+X=X. Esempio a+b!c= a(b+!b)(c+!c) + (a+!a)b!c= abc+ab!c+a!bc+a!b!c+ab!c+!ab!c Si possono espandere anche i prodotti di somma in modo duale ma possiamo tralasciarli. Spesso le funzioni combinatorie non sono completamente specificate ovvero alcune combinazioni di ingresso non si presentano mai
XYZ 000 001 010 011 100 101 110 111 F 0 1 1 ? 1 0 ? 1
40

Ovviamente la cosa ha senso in fase di sintesi. Lanalisi di un circuito genera sempre tabelle completamente specificate

Sintesi canonica della funzione fe dei 7 segmenti (0-9) 7446 (uscite negative true L-> acceso H-> spento)
NB: questo dispositivo NON realizza le lettere A->F

Bin . DCBA 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111

a f e d g b c

F (HEX)
Rosso => acceso Blu => spento

fe = !D!C!BA + !D!CBA + !DC!B!A + !DC!BA + !DCBA + D!C!BA + D!CBA + DC!B!A + DC!BA + DCBA (SP) 1 3 4 5 7 9 11 12 13 15 fe = !( !D!C!B!A +!D!CB!A + !DCB!A + D!C!B!A + D!CB!A + DCB!A ) 0 2 6 8 10 14 fe = (D+C+B+A) (D+C+!B+A) (D+!C+!B+A) (!D+C+B+A) (!D+!C+!B+A) (!D+!C+!B+A) (PS) 0 2 6 8 10 14 41

Introduzione Altera

42

Controllore 7 segmenti 7446

Y X

Blank Input (vero negato) Tutto spento Tutti i NAND a 1 Lamp test (vero negato) Tutti accesi Ripple blank input (vero negato) Tutti spenti
Ripple blank Input/output - OC

[vero negato => attivo basso] 43

44

Simulazione timing

32

E C

LT

C D BL

45

46

47

Esempio di transcodifica: conversione Binario-Gray e viceversa


Conversione codice binario- codice Gray . Osservando il codice Gray si deduce facilmente che g0 = !b2!b1b0 + !b2b1!b0 + b2!b1b0 + b2b1!b0 = = ( !b2!b1b0 + b2!b1b0) + (!b2b1!b0 + b2b1!b0) = = !b1b0 + b1!b0 = b0 b1 g1 = !b2b1!b0 + !b2b1b0 + b2!b1!b0 + b2!b1b0 = = (!b2b1!b0 + !b2b1b0) + (b2!b1!b0 + b2!b1b0) = = !b2b1 + b2!b1 = b2 b1 e cos via gn = bn bn+1 (N.B. bn+1 per il MSB ovviamente 0 e infatti g2 = b2 )

Bin
000 001 010 011 100 101 110 111
b 2b 1b 0

Gray
000 001 011 010 110 111 101 100
g2g1g0

Conversione Gray-binario. Si pu sintetizzare dalla tabella della verit oppure tramite un semplice procedimento algebrico gn = bn bn+1 bn+1 gn = bn+1 bn+1 bn = 0 bn = bn e quindi bn = bn+1 gn ricordando che se n sono i bit bn+1 uguale 0 Nel caso specifico b2 = g2 , b1 = b2 g1 e b0 = b1 g0 Ovviamente la sintesi poteva essere condotta attraverso la definizione dei mintermini Il MSB del Gray coincide con il MSB del binario

Conversione Gray-Binario

La stessa formula si poteva trovare a partire dalla sintesi canonica


b2 = g2 b1 = !g2 g1g0+!g2g1!g0+g2!g1g0+g2!g1!g0 = !g2 (g1g0+g1!g0) + g2(!g1g0+!g1!g0)= ! !g2 g1 + g2!g1 = g2 g1 = b2 g1 b0 = !g2 !g1g0+!g2g1!g0+g2g1g0+g2!g1!g0 = g0(!g2!g1+g2g1) + !g0(!g2g1+g2!g1)= ! ! ! g0 ( 2 g1)= g0 b1 (g

Bin
000 001 010 011 100 101 110 111
b 2b 1b 0

Gray
000 001 011 010 110 111 101 100
g2g1g0

49

Adder
Generiamo la tabella della verit di una rete combinatoria le cui uscite corrispondano ai valori numerici del sommatore a 2 bit (Half Adder) ab Somma 00 0 01 1 10 1 11 0 Riporto 0 0 S = a exor b 0 R = ab 1 a b

S R

a b

HA

Generiamo la tabella della verit di una rete combinatoria le cui uscite corrispondano ai valori numerici del sommatore a 3 bit (Full Adder) S = !a!bc+!ab!c+a!b!c+abc=!a(!bc+b!c)+a(!b!c+bc)= !a(b exor c)+a![(bc)+(!b!c)]= !a(b exor c)+a!(b exor c)= = a exor (b exor c) (!bc+b!c)=!((!bc+b!c)) R=!abc+a!bc+ab!c+abc= !abc+a!bc+ab!c+abc=ab(c+!c)+c(a exor b) De Morgan ! abc 000 001 010 011 100 101 110 111 S 0 1 1 0 1 0 0 1 R 0 0 0 1 0 1 1 1 S1 S

a b c

HA

R1

HA

R2 R

Full Adder Per il riporto si ha anche

R= !abc+a!bc+ab!c+abc = !abc+a!bc+ab!c+abc+abc+abc = ab(c+!c) + ac(b+!b) + bc(a+!a) = ab + ac + bc


50 Termini aggiunti

Adder
Per sommare un numero binario di n bit basta mettere in cascata n-1 FA e un HA

a0 b0

HA

S0 R NB: Normalmente i circuiti integrati forniscono FA a 4 bit. Con questa struttura si aumenta di un livello ogni ulteriore coppia di bit da sommare. Va per ricordato che questa una rete combinatoria che quindi corrisponde a una tabella della verit che quindi sempre sintetizzabile in modo canonico ovvero a due livelli. Nei dispositivi integrati il riporto generato a due livelli per accelerare le operazioni del blocco successivo.

a1 b1

FA

S1 R

a2 b2

FA

S2 R

51

Altera FA

Altera Full Adder


Cella elementare

Alla cella successiva

52

Simulazione timing
Allargando il timing si vede che 128 !!

Zona ingrandita nella pagina seguente

53

Zona ingrandita

54

Multiplexer (MUX)
Multiplexer a due vie: avvia sulluscita (z) il valore logico di uno dei due ingressi (a e b) secondo il valore di un bit di controllo (c).

a z= a!c+bc z c b
Quale la tabella della verit, lespressione canonica e lo schema di un MUX a 4 ingressi con due bit di controllo C1 e C2 ?

55

Multiplexer Altera

Altera Mux4to1

Se Inhibit=1 allora Q=0

56

Simulazione timing

Effetto Inhibit Ritardo fra ingresso e uscita Buco dovuto allo scambio degli ingressi alea statica

57

Demultiplexer (DEMUX) o decoder


Demultiplexer a due vie di uscita: avvia su una delle due uscite (z1 e z2) il valore logico dellingresso a secondo il valore di un bit di controllo (c).

a c

z1 z2

Quale la tabella della verit, lespressione canonica e lo schema di un DEMUX a 4 ingressi con due bit di controllo C1 e C2 ? Si noti che il circuito si chiama anche DECODER in quanto se lingresso uno, di fatto luscita attiva quella che corrisponde a una delle 2n configurazioni binarie degli n ingressi di controllo e quindi decodifica il numero binario di ingresso

58

74138 Altera

Altera Demux 3:8

59

Simulazione timing

disabilita abilita abilita

abilita disabilita abilita

disabilita

Decod. 2 Decod. 3

60

Comparatore Altera bit per bit (valore assoluto)

61

1 se bit corrispondenti uguali

62

Simulazione funzionale

Solo il bit di valore 16 diverso (255-239=16)

Valore decimale corrispondente alla disparit (tutti 1 meno il bit di valore 16)

In ASCII 255-80=175

255-64=191

63

Reti di costo minimo


Il concetto di costo (che equivale a complessit ) non univoco e dipende da un molteplicit di fattori Nella nostra trattazione il costo minimo si riferisce alla minimizzazione del numero di operatori necessari a realizzare una funzione a due livelli. NB le realizzazioni di costo minimo possono essere molteplici Espressione minima: espressione che corrisponde a una realizzazione di costo minimo Espressione normale: una somma di prodotti (o prodotto di somme). Due livelli. Le espressioni canoniche sono normali Espressione irridondante: una espressione normale SP (o PS) togliendo un termine alla quale non si ha pi equivalenza. Esempio Esempio 1 F= ab+bc+ad: non posso togliere alcun prodotto senza modificare la tabella della verit. Esempio 2 F=b!c+ac. NON sarebbe irridondante lespressione b!c+ab+ac (che produce la stessa tabella della verit) e nella quale posso togliere ab senza alterare la tabella stessa Una rete di costo minimo (nel nostro caso) data da una espressione normale e irridondante. Da qui in poi ci occuperemo solo di SP

64

Reti di costo minimo


Implicante: termine prodotto di n o meno variabili che assume il valore 1 solo per configurazioni in cui la funzione non vale 0 Esempio F= abc + ac + cd + ad Implicante primo: implicante che cessa di essere tale rimuovendo anche un solo suo letterale Esempio F= ac + cd
(entrambi primi)

Implicante primo essenziale: implicante che lunico ad assumere il valore uno per alcune configurazioni delle variabili di ingresso in cui la funzione assume il valore uno Esempio F= abc + ac + cd
(abc non essenziale)

Ne consegue che una rete di costo minimo la somma irridondante di implicanti primi essenziali

65

Le mappe di Karnaugh
Rappresentazione bidimensionale della tabella della verit di una funzione di 2,3,4,5 e 6 variabili, i cui valori di partenza sono elencati sui bordi della mappa in maniera che due configurazioni di ingresso adiacenti (v. dopo per il significato generale) differiscano sulla mappa per il valore di un solo bit.

b 0 0 0 1 1 cd 00 01 11 10 1 1 1

bc 00 01 11 10 0 0 0 1 0 1 0 1 1 1

ab

cd 00 01 11 10 00 01 11 10 0 1 0 1 1 0 1 0 0 1 0 1 1 0 1 0

ab

00 01 11 10 ab 00 01 11 10 00 0 0 0 1 0 1 0 1 01 0 0 1 0 1 1 0 0 11 0 1 1 1 0 0 0 1 1 0 1 0 10 1 1 1 0
e=0 e=1
66

cd

Le mappe di Karnaugh
Le mappe di Karnaugh sono facilmente utilizzabili per evidenziare le adiacenze fra le configurazioni di ingresso per le quali luscita della funzione uno Ladiacenza degli ingressi delle mappe di Karnaugh va intesa in senso sferico. Nell esempio successivo la casella a=0, b=0, c=0 e d=1 (in rosso) adiacente a quella a=1, b=0, c=0, d=1 (in verde). Levidenziazione grafica permette di individuare configurazioni degli ingressi che differiscono per i valori di una sola variabile
adiacenti

ab
adiacenti

cd 00 01 11 10 00 01 11 10 0 1 0 1 1 0 1 0 0 1 0 1 1 0 1 0
adiacenti
67

Le mappe di Karnaugh
Consideriamo ora la funzione di tre variabili espressa dalla seguente tabella della verit:
abc F = !a!b!c+!a!bc+!ab!c+a!b!c+abc = !a!b!c+!a!b!c+!a!b!c+!a!bc+!ab!c+a!b!c+abc = 000 1 = !a!b+!b!c+!a!c+abc (molto pi semplice) Idempotenza 001 1 010 1 011 0 Cosa stato sfruttato ? Le adiacenze fra i termini prodotto della espressione 100 1 canonica. Ma la stessa cosa posso evidenziarla su una mappa di Karnaugh !!! E le 101 0 operazioni eseguite sfruttando i teoremi dellalgebra posso ricavarle dallanalisi dei 110 0 raggruppamenti adiacenti. Vanno cercati i massimi raggruppamenti rettangolari di 1 di 111 1 dimensione (numero di caselle) potenza di 2. I termini prodotto (implicanti) di minima complessit (implicanti primi) si ottengono dalle variabili che nel raggruppamento NON cambiano, prese con il valore vero se compaiono con 1 e viceversa e non possono essere allargati pena linserzione di zeri. Adiacenze sferiche !!

F= !a!b + !b!c + !a!c + abc


!a!b!c+!a!bc !a!b!c+a!b!c !a!b!c+!ab!c

bc 00 01 11 10 0 1 1 0 1 1 1 0 1 0

Solitario mintermine !

Copertura: ogni uno della funzione deve essere coperto da almeno un raggruppamento
68

Le mappe di Karnaugh
a bc 00 01 11 10 0 1 1 0 1 1 1 1 1 0
F= !b+ac+!a!c

ab

cd 00 01 11 10 00 01 11 10 1 1 1 1 1 1 1 0 0 1 0 1 1 0 1 1

ab

cd 00 01 11 10 00 01 11 10 0 1 0 1 1 0 1 0 0 1 0 1 1 0 1 0

F= !b!d + !a!c + !ad + !bc + b!cd + ac!d Tutti i termini prodotto presenti nella espressione sono implicanti primi e sono anche essenziali, nel senso che coprono uni non coperti da altri implicanti primi. Anche limplicante !a!b (tratteggiato) sarebbe primo ma non essenziale

Qui non ci sono mintermini adiacenti => sintesi canonica !!!

F= !a!b!cd+!a!bc!d+!ab!c!d+!abcd+ab!cd+abc!d+a!b!c!d+a!bcd
69

Le mappe di Karnaugh
ab cd 00 01 11 10 00 01 11 10 1 1 0 1 1 1 0 0 0 0 0 1 1 0 1 1
e=0

cd ab 00 01 11 10

00 01 11 10 1 0 0 1 0 0 1 0 0 1 1 1 1 1 1 1
e=1

F= !b!d + !a!c!e + a!bc +ade + ac!d + bcde Le due mappe da 4 variabili differiscono per la quinta variabile e e possono essere interpretate come due superfici sferiche concentriche

70

Sintesi come prodotto di somme


Vanno cercati i raggruppamenti massimi raggruppamenti rettangolari di 0 . I termini somma (implicati) di minima complessit (implicati primi) si ottengono dalle variabili che nel raggruppamento NON cambiano, prese con il valore negato se compaiono con 1 e viceversa e non possono essere allargati pena linserzione di 1.

ab

cd 00 01 11 10 00 01 11 10 1 1 0 1 1 1 0 0 0 0 0 1 1 0 1 1
e=0

cd ab 00 01 11 10

00 01 11 10 1 0 0 1 0 0 1 0 0 1 1 1 1 1 1 1
e=1

F=

(!a+c+!d+e)(!a+!b+c+d)(!a+!b+!d+e)(a+!b+!c+e)(a+b+!c+!d)(a+c+!d+!e)(a+!b+d+!e)

71

Le mappe di Karnaugh
ab cd 00 01 11 10 00 01 11 10 1 0 1 1 0 1 1 0 0 1 1 0 1 0 0 1 ab cd 00 01 11 10 00 01 11 10 1 0 1 1 0 1 1 0 0 1 1 0 1 0 0 1

F= !b!d + b!cd +!a!bc

F= !b!d + b!cd + !acd

Le due funzioni sintetizzate sono equivalenti, della stessa complessit ed entrambe composte da implicanti primi. Spesso vi sono sintesi diverse ed equivalenti

72

Le mappe di Karnaugh
Caso delle reti combinatorie non completamente specificate: per alcune combinazioni di ingresso le uscite non sono specificate (normalmente corrisponde al caso in cui certe combinazioni di ingresso non si presentano mai esempio: 7 segmenti in cui i numeri sono solo quelli da 0 a 9). In tal caso nella mappa la funzione nella casella pu essere lasciataindefinita (indicata normalmente con x o con - ) e utilizzata sia come uno che come zero per ottenere implicanti della minima complessit. Essendo indifferenza pu essere sfruttata volta a volta come uno o come zero

ab

cd 00 01 11 10 00 1 1 1 1 01 11 10 1 x 1 0 x 0 1 x 1 1 1 1 ab
X => 0

cd 00 01 11 10 00 01 11 10 1 1 1 1 1 0 0 0 1 1 1 1 1 1 1 1

X => 1

F=!b + a+ !c!d

Tabella di fatto sintetizzata


73

Progettare con le mappe di Karnaugh a partire dalla tabella della verit un convertitore BCD packed/binario e viceversa sapendo che il massimo valore del codice BCD 1 1001 (19) e che i numeri pari non sono convertiti. Quali sono le condizioni di indifferenza ?

BCD | Binario -------|--------- | edcba 0 0001 | 00001 0 0011 | 00011 0 0101 | 00101 0 0111 | 00111 0 1001 | 01001 1 0001 | 01011 1 0011 | 01101 1 0101 | 01111 1 0111 | 10001 1 1001 | 10011

Tutte le altre configurazioni sono indifferenze

74

Da BCD a binario

BCD | Binario -------|--------- | edcba 0 0001 | 00001 0 0011 | 00011 0 0101 | 00101 0 0111 | 00111 0 1001 | 01001 1 0001 | 01011 1 0011 | 01101 1 0101 | 01111 1 0111 | 10001 1 1001 | 10011

00 01 11 10

00 01 11 10
0 0 0 1 1 -

00 01 11 10
00 01 11 10 1 1 1 =1 0 0 -

=0

b= ! + ! = Sintetizzare le altre funzioni

75

Mappe di Karnaugh a 6 variabili

dc

ba 00 01 11 10 ba 00 01 11 10

00 01 11 10 dc
1 0 0 0 0 1 0 -

ba 00 01 11 10
00 01 11 10 1 1 0 1 0 1 1 -

ez=00

dc

00 01 11 10 dc
1 0 1 0 0 0 0 -

ba
00 01 11 10 0 -

ez=01

00 01 11 10
1 0 1 0 1 -

ez=10

ez=11

F = !a!b!c!z + bc + a!b!cz + !a!ez F = (b+!a+z) (!b+c+z) (!b+!a+c+!z)(b+!c)(a+!e+!z)


76

Esercizio Utilizzando dei FA a 4 bit progettare un sommatore BCD packed in Altera (si ricordi che se nella somma si ottengono numeri BCD nibbles maggiori di 9 oppure vi un riporto fra i digit allora bisogna aggiungere 6)

77

Sommatore BCD integrato

78

Interpretare, riportare e simulare con ALTERA

79

80

Circuiti a NAND (NOR)


Pur essendo disponibili sia a livello di circuiti integrati che di FPGA tutte le funzioni logiche elementari (AND, OR, NOT) pu talvolta risultare utile utilizzare un solo tipo di dispositivi e in particolare i NAND (NOR) Infatti tutte le funzioni elementari possono essere realizzate solo con NAND (NOR) X X y X y Z Z X 1 X y 1 X Y 1 Z Z 1 Z

(De Morgan)

Qualunque circuito a due livelli del tipo SP (PS) pu essere realizzato con soli NAND (NOR) sostituendo AND e OR e NOT con NAND (NOR). Esempio multiplexer a 2 vie con SP

a c 1 b

a z c b

z = ![(!(a!c) !(bc)] = a!c + bc (De Morgan)

81

Driver 3-state I I U OE=0 I OE OE=1 U U

OE 1 1 0 0

I 0 1 0 1

U 0 1 Z Z

I OE U

?
Quale il valore della tensione ?

Quale valore logico assume U ?

1 0 U=?

OE=0
Che cosa necessario garantire nella rete seguente ? Quando il segnale U assume un valore logico significativo ?

I1 OE1 1 I2 OE2 U=?

Circuiti con bus comune


Molto spesso (in particolare nei sistemi a microprocessore) molti dispositivi debbono in tempi diversi - pilotare uno stesso filo (nel caso di molti di molti dispositivi con molti fili di identica tipologia si parla di bus) e luso dei multiplexer (nel caso di molti ingressi ad esempio 30, 40) pu risultare particolarmente oneroso per la complessit del circuito. In tal caso si usano dispositivi con uscita tri-state ovvero dispositivi che possono essere o abilitati (e in tal caso luscita si comporta logicamente come previsto dalla funzione) o disabilitati (e in tal caso luscita elettricamente disconnessa dal filo di uscita). Tipicamente i tri-state sono dei buffer
C=1 X C=0 X Y Y

X C Y 0 1 0 1 1 1 ----------Alta 0 0 Z impedenza 1 0 Z

Nel caso C=0 il filo Y volante, non connesso ad alcun potenziale !!!!!!!!! Lo stato di alta impedenza NON uno stato logico e NON si propaga
0 0 0 0 Y Y

Y non in alta impedenza ma luscita del secondo invertitore assume il valore che deriva da avere un ingresso volante (che in genere interpretato come un uno un po sporco) 84

244

74XX244
1A1 1A2 1A3 1A4 2A1 2A2 2A3 2A4 EN1* 1Y1 1Y2 1Y3 1Y4 2Y1 2Y2 2Y3 2Y4 EN2*

Driver 3-state ad 8-bit (strutturato in 2 gruppi di 4 bit)

ENx* (vero negato) xYi xAi

85

86

87

Integrati Notevoli: 245


74XX245
A1 A2 A3 A4 A5 A6 A7 A8 EN* B1 B2 B3 B4 B5 B6 B7 B8 DIR

Driver bidirezionale (transceiver) ad 8-bit.

EN* Ai Bi

DIR

88

89

90

91

Multiplexer con tristate


C0 X0 X1 C1 Xn Cn

Ci sono i segnali di decodifica che abilitano una delle sorgenti di segnale. Se il bus a molti fili uno stesso segnale Ci abilita tutti i buffer della stessa molteplicit di sorgenti

92

Memorie Eprom
0 1 0 D E 1 C O D E R 2 n-1
0 1 1

Y0

Y1

Y7

Si noti che con una EPROM possibile sintetizzare in modo canonico 8 (otto) funzioni combinatorie di n variabili Yi =0Fi (0)+1Fi (1)+2Fi (2) + iFi (i) 2 n-1 Fi (2 n-1) ove Fi (i) assume il valore 0 o 1
93

EPROM
2n-1 2n-2
Z W

3 2 1 0

d c b a

94

Memorie EPROM
EPROM
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 VPP A16 A15 A12 A7 A6 A5 A4 A3 A2 A1 A0 D0 D1 D2 GND VCC PGM* NC A14 A13 A8 A9 A11 OE* A10 CE* D7 D6 D5 D4 D3 32 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17

Memorie non volatili a sola lettura Capacit a multipli di 2: 32K, 64K, 128K, 256K Sigle: 27512, 271024 (indicano il numero di Kbits)
Ai CE* OE* Di Tacc CE* OE* Cella M/bit i Di
95

Tce Toe

128K 8

Realizzare tramite EPROM un convertitore a 6 bit Gray/Binario e Binario/Gray (si ricordi che una EPROM permette di fatto di sintetizzare in forma canonica una funzione combinatoria).

96

ALU
http://ee.usc.edu/ee459lib/datasheets/DM74LS181.pdf

97

98

M=1 tutti i carries interni sono inibiti e il dispositivo esegue le funzioni logiche di tabella M=0 i carries interni sono abilitati e il dispositivo esegue le funzioni aritmetiche di tabella Ci sono tre tipi di carries: Ripple Carry (CN4) che il normale carry Due tipi di carry look-ahead Carry propagate (!P): attivo se luscita maggiore o uguale a 15 (ADD mode) oppure minore o uguale a zero (SUB mode) Carry generate (!G): attivo se luscita maggiore o uguale a 16 (ADD mode) oppure minore di zero (SUB mode) I due carries look-ahead NON dipendono dallingresso CN (Carry IN) Vi anche una uscita per leguaglianza dei due ingressi (Aeq) open collector per il wired OR

99

N.B. La nota 1 indica che il dato traslato di una posizione a sinistra (che equivale alla moltiplicazione per 2) 100

http://www.eecs.umich.edu/~jhayes/iscas.restore/74181.html

101

Esempio

AB LL LH HL HH

Z L L H L

S3=L S2=H S1=H S0=H M=H Logica Logica positiva negativa Zp Zn 00 0 11 1 01 0 10 1 10 1 01 0 11 0 00 1 Zp=A!B Zn=A+!A!B=A+!B

N.B. Il rapporto ingresso/uscita fra valori alti (H) e bassi (L). Linterpretazione dei segnali pu essere considerata in logica positiva o negativa

102

103

104

Altera 74181

105

Buffer

Simulare !!!

106