Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
I lucidi da 2 a 9 sono presi dal corso di Reti Logiche LA tenuto nellAA 2008-2009 dal prof. S.Mattoccia
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
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
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
A/D
RL
TX
RX
RL
D/A
IP
1010 1010
PC
PC
Codifica dellinformazione
Scena reale
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.
12
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
14
15
Nel caso di riporto oltre lultima bit significativo questultimo va scartato (per motivi fisici nei computer)
ERRORE OVERFLOW
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
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
18
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
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
Resto 1 1 0 1 0 0 1
1001011 => 75
24
25
26
Se si ottengono numeri BCD maggiori di 9 oppure vi un riporto fra i digit allora bisogna comunque aggiungere 6
27
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
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
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
A parte le costanti e le identit caratteristiche f14 funzione OR f8 f1 f7 f6 f9 funzione AND funzione NOR Simbolo Simbolo 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
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
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
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
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
X Y Z
!XY!Z
F
XY!Z
XYZ
38
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
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
44
Simulazione timing
32
E C
LT
C D BL
45
46
47
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
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
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
52
Simulazione timing
Allargando il timing si vede che 128 !!
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
56
Simulazione timing
Effetto Inhibit Ritardo fra ingresso e uscita Buco dovuto allo scambio degli ingressi alea statica
57
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
59
Simulazione timing
disabilita
Decod. 2 Decod. 3
60
61
62
Simulazione funzionale
Valore decimale corrispondente alla disparit (tutti 1 meno il bit di valore 16)
In ASCII 255-80=175
255-64=191
63
64
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 !!
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
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
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
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
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
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
75
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
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
78
79
80
(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
81
OE 1 1 0 0
I 0 1 0 1
U 0 1 Z Z
I OE U
?
Quale il valore della tensione ?
1 0 U=?
OE=0
Che cosa necessario garantire nella rete seguente ? Quando il segnale U assume un valore logico significativo ?
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*
85
86
87
EN* Ai Bi
DIR
88
89
90
91
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