1 / 55

5.1 - Memorie a sola lettura 5.2 - Matrici logiche programmabili 5.3 - Unità aritmetica e logica

Capitolo 5 Circuiti programmabili. 5.1 - Memorie a sola lettura 5.2 - Matrici logiche programmabili 5.3 - Unità aritmetica e logica. Funzioni di n variabili. “macchina” di programmazione. Ho bisogno di questa!. La programmazione dell’hardware. p 1. p 2. p y. x 1. z 1. Rete

Download Presentation

5.1 - Memorie a sola lettura 5.2 - Matrici logiche programmabili 5.3 - Unità aritmetica e logica

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Capitolo 5 Circuiti programmabili 5.1 - Memorie a sola lettura 5.2 - Matrici logiche programmabili 5.3 - Unità aritmetica e logica

  2. Funzioni di n variabili “macchina” di programmazione Ho bisogno di questa! La programmazione dell’hardware

  3. p1 p2 py x1 z1 Rete combinatoria programmabile x2 z2 xn zm Rete combinatoria programmabile - Rete combinatoria in grado di presentare diverse relazioni ingresso/uscita singolarmente selezionabili mediante l’attribuzione di una determinata configurazione ad un gruppo di ingressi detti bit di programmazione. Le reti combinatorie programmabili zi = F(p1,p2,…..,py ,x1,x2 ,…..,xn) = Fp (x1,x2 ,…..,xn)

  4. 5.1 Memorie a sola lettura

  5. 2n-1 F(x1,x2,...xi,..xn) = m(i) F(i) . i=0 F(0) F(1) F F(2n-1) x1 x2 xn La rete basata sull’espressione generale Espressione in grado di descrivere qualsiasi funzione di n variabili Rete combinatoria programmabile in grado di realizzare qualsiasi funzione di n variabile F(i): bit di programmazione

  6. MUX come reti programmabili ingressi ( xi) A,B,C,D bit di programmazione ( pi ) Ii SN74150 I0 I1 I2 I3 I4 I5 I6 I7 Z I8 I9 I10 I11 I12 I13 I14 I15 DCBA SN74157 I0 I1 Z A SN74151 I0 I1 I2 I3 Z I4 I5 I6 I7 CBA SN74153 I0 I1 I2 Z I3 B A

  7. Esempio: n=16 216 = 65536 pin per la programmazione! ROM (Read Only Memory) • I MUX disponibili nelle famiglie logiche hanno un basso numero • di segnali di selezione. Difatti al crescere di n cresce esponenzialmente il numero dei pin del circuito integrato da utilizzare per i bit di programmazione. • Le ROM sono reti combinatorie programmabili basate sulla • espressione generale SP ed aventi i bit di programmazione • integrati all’interno del dispositivo.

  8. I contatti al posto dei segnali di programmazione F(3) F(2) F(1) F(0) x1 x0 x1 x0 F F F(i)=0/1 Contatto aperto/chiuso Struttura di una ROM (1) Una diversa realizzazione del MUX ( T5 )

  9. contatto chiuso contatto aperto O x1 x0 G F Struttura di una ROM (2) • Rappresentazione “compatta” della struttura di una ROM : • Realizzazione integrata di più funzioni. Esempio: in un contenitore da 24 pin è possibile alloggiare un chip che realizza o 8 funzioni di 14 variabili o una funzione di 21 variabili.

  10. m0 A0 A1 . . An-1 m1 D E C Bit di programmazione m2n-1 D0 D1 Dk Le ROM come circuiti di memoria Ogni configurazione delle variabili di ingresso può essere vista come l’indirizzo di un dato formatodai bit che sono stati programmati nella riga corrispondente.

  11. Le “vere e proprie” ROM • I contatti vengono realizzati dal costruttore nell’ultimo stadio del • processo di fabbricazione del circuito su ordine dell’acquirente: • Le ROM sono programmabili una sola volta (OTP: one time • programmable). memorie a sola lettura (Read Only). memorie non volatili

  12. Grossi volumi di produzione. Memorie non volatili a sola lettura Memorizzazione di informazioni che devono permanere quando il sistema non è alimentatoe che nonnon cambiano durante il funzionamento . Esempi: il “loader” visto in 3.2, il programma di un sistema “embedded”, il BIOS del PC ….. Limitazioni delle ROM Costi fissi elevati Non adatte allo sviluppo (OTP)

  13. i PROM (Programmable ROM) La programmazione viene effettuata dall’utente mediante un’apposita apparecchiatura che consente di “bruciare” selettivamente i fusibili inseriti dal costruttore. Convenienti per bassi-medi volumi di produzione Dispositivi programmabili una sola volta

  14. Q EPROM (Erasable PROM) Q Programmazione effettuata dall’utente mediante una apposita apparecchiatura che consente di inviare impulsi elettrici che provocano accumulazione di carica sul terminale di comando. Cancellazione ottenuta convogliando luce ultravioletta sui terminali di comando attraverso una finestra di quarzo presente sul contenitore. Costo superiore a quello delle PROM Dispositivi riprogrammabili

  15. Memorie a sola lettura cancellabili elettricamente EEPROM (Electrically Erasable PROM) : si programmano e cancellano byte-per-byte tramite segnali elettrici e senza rimuovere il dispositivo dalla piastra stampata. FLASH-EPROM: si programmano/cancellano elettricamente direttamente sulla piastra. La cancellazione è più veloce rispetto alle EEPROM: con un’unica operazione è possibile cancellare l’intero dispositivo oppure uno o più “settori”.

  16. F(0) F(4) m0 Bit diprogrammazione F(1) F(5) D E C A0 A1 m1 F(2) F(6) m2 F(3) F(7) m3 A2 MUX F Selezione a due dimensioni (1) F(A2,A1, A0) = A2’A1’A0’ F(0) + A2’A1’A0 F(1)+ A2’A1A0’ F(2)+ A2’A1A0 F(3) + A2A1’A0’ F(4) + A2A1’A0 F(5)+ A2A1A0’ F(6)+ A2A1A0 F(7) = A2’(A1’A0’ F(0) + A1’A0 F(1) + A1A0’ F(2)+ A1A0 F(3)) + A2 (A1’A0’ F(4) + A1’A0 F(5)+ A1A0’ F(6)+ A1A0 F(7))

  17. Matrice di bit di programmazione A0 A1 Am-1 R O w D E C Am Am+1 An-1 C O L D E C M U X D0 D1 Dk Selezione a due dimensioni (2)

  18. xn x1 x0 A0 A1 ……..An-1 A0 A1 ……..An-1 ROM ROM D0 D1 …Dk D0 D1 …Dk z0 z1 … zk zk+1 zk+2 …z2k+1 Estensione del numero di uscite Collegamento in parallelo di più ROM

  19. Teorema di espansione m A0 A1 ……..Am-1 A0 A1 ……..Am-1 A0 A1 ……..Am-1 ROM ROM ROM D0 D0 D0 Dk n-m MUX MUX Am Am D0 Dk . . . . An-1 An-1 Estensione del numero di ingressi N.B. - Al primo livello occorrono 2(n-m) ROM

  20. O I O I OE OE OE Lo stato elettrico del segnale è indefinito o fluttuante (Terzo Stato, Stato di Alta Impedenza) OE I O H L L H H H L X Z I O Amplificatore a 3 stati d’uscita

  21. I0 I1 Z I2 I3 MUX 4:1 3 2 1 0 A0 DEC A1 MUX con amplificatori 3-state (1) In ogni istante di tempo non deve esserci più di un 3-state abilitato ! Situazione di corto circuito (conflittoelettrico) con possibili malfunzionamenti del sistema Le uscite del decoder non variano simultaneamente Nei 3-state il tempo di risposta all’abilitazione (tpZH, tpZL) è inferiore a quello necessario per il passaggio nel terzo stato (tpHZ, tpLZ)

  22. I0 I0 I1 I1 Z Z I2 I2 I3 I3 EN 3 2 1 0 EN A0 3 2 1 0 A0 DEC A1 A1 DEC Ai EN Z MUX con amplificatori 3-state (2)

  23. A0 A1 Am-1 R O W D E C Bit di programmazione Am Am+1 An-1 C O L D E C MUX D0 D1 Dk CE’ OE’ O0 O1 Ok Stadio di uscita di una ROM

  24. a[0..12] MRD a15 A0 A1 …A12 A0 A1 …A12 A0 A1 …A12 A0 A1 …A12 ROM ROM ROM ROM D0 D0 D0 D0 D7 a[13,14] MUX MUX d0 d7 Progetto di un banco di ROM (1) Supponiamo di voler connettere 32K byte di ROM ad una CPU con 16 bit di indirizzo (A0..A15) ed 8 bit di dato e di avere a disposizione dispositivi ROM da 8K x 8 . Supponiamo inoltre che la CPU veda il banco di ROM nella parte alta del suo spazio di indirizzamento (8000H - FFFFH, cioè A15=1). Estensione del numero degli ingressi

  25. MRD* a[0..12] A0 A1 …A12 A0 A1 …A12 A0 A1 …A12 A0 A1 …A12 ROM ROM ROM ROM OE* OE* OE* OE* CE* CE* CE* CE* D7 D7 D7 D0 D0 D0 D0 D7 7 6 5 4 3 2 1 0 D E C a13 a14 a15 d0 d7 Progetto di un banco di ROM (1)

  26. Esercizi 5.1 e 5.2 • Si riprogetti il banco di ROM da 32KB (byte) nel caso in cui si • disponga di una ROM 16K x 8, una ROM 8K x 8, due ROM • 4K x 8. • Si individui uno schema che consente di collegare al bus dati • 8 pulsanti di cui il processore deve poter fare il polling • all’indirizzo di I/O 0000H.

  27. 5.2 Matrici logiche programmabili

  28. Matrice AND Programmata dal costruttore Matrice OR Programmata dall’utente Rappresentazione di una ROM in termini di matrici AND e OR ROM 2x2 Caso generale NAND = 2n N.B. - Ogni AND realizza un potenziale mintermine e può essere impiegato per la programmazione di ciascuna uscita (espressione generale SP).

  29. Matrice AND Programmata dall’utente Matrice AND Programmata dall’utente Matrice OR Programmata dall’utente Matrice OR Programmata dal costruttore PLA e PAL PLA: Programmable Logic Array PAL: Programmable Array Logic NAND<< 2n N.B. - Ogni AND realizza un implicante (espressione normale SP). Nelle PLA gli implicanti possono essere “comuni” a più uscite.

  30. a b cd cd ab ab 01 01 11 11 10 10 00 00 1 0 0 0 1 1 c 00 00 1 0 1 0 0 1 1 1 01 01 1 0 z 11 11 d 0 0 0 0 1 0 0 1 10 10 0 1 0 1 0 1 0 1 z w w Sintesi con PLA

  31. a b cd cd ab ab 01 01 11 11 10 10 00 00 1 0 0 0 1 1 c 00 00 1 0 1 0 0 1 1 1 01 01 1 0 z 11 11 d 0 0 0 0 1 0 0 1 10 10 0 1 0 1 0 1 0 1 w Sintesi con PAL z’ w N.B. - Quando non si dispone di un numero sufficiente di AND può essere utile realizzare la funzione complemento.

  32. A B C D W X Y Z 0 0 0 0 0 0 0 1 0 0 1 0 0 0 1 1 0 1 0 0 0 1 0 1 0 1 1 0 0 1 1 1 1 0 0 0 1 0 0 1 1 0 0 1 1 0 0 1 0 0 0 0 0 0 0 1 0 0 1 1 0 0 1 0 0 1 1 0 1 1 1 0 1 0 1 0 1 0 1 1 1 0 0 1 1 0 0 0 X X X X X X X X BCD Gray Esercizio 5.3 • Si sintetizzi un trascodificatore da codice BCD a codice Gray • utilizzando una PAL con 4 ingressi, 4 uscite e 4 AND per uscita.

  33. PAL con I/O programmabile (16L8)

  34. 5.3 Unità aritmetica e logica

  35. c flag x ALU y u u = Fc (x, y) ALU: Arithmetic and Logic Unit ALU - Rete combinatoria in grado di eseguire diverse operazioni di tipo aritmetico o logico. L’operazione di volta in volta eseguita dipende dal valore attribuito ai bit di programmazione (codice operazione)

  36. CI C3 0 1 0 1 C2 C1 C0 C2 C1 C0 x  y x + y x + y + 1 x or y 0 0 0 0 0 0 (x  y)’ (xy)’ x - y -1 x -y 0 0 1 0 0 1 x + 1 x x x 0 1 0 0 1 0 x - 1 x x ’ x’ or y 0 1 1 0 1 1 y y + 1 y y 1 0 0 1 0 0 -(y+1) - y y’ x or y’ 1 0 1 1 0 1 0 1 0000 x and y 1 1 0 1 1 0 0 24 -1 , -1 1111 1111 1 1 1 1 1 1 M=1 pag. 5.23 M=0 pag. 5.25

  37. p a b P D 0 0 0 0 0 0 0 1 1 1 0 1 0 0 1 0 1 1 0 0 1 0 0 1 1 1 0 1 1 0 1 1 0 0 0 1 1 1 1 1 an-1 ai a1 a0 - pn-1 pi p1 0 bn-1 bi b1 b0 dn-1 di d1 d0 Sottrazione fra numeri naturali • Sottrazione fra due numeri da un bit • 0 - 0 = 0 ; 1 - 0 = 1 ; 1 - 1 = 0 ; 0 - 1 : quantità non rappresentabile. • Sottrazione “colonna per colonna” fra due numeri da n bit D = A - B (A  B)

  38. CI 4 BIT a0 ADDER a1 a2 a3 s0 s1 s2 s3 b0 b1 b2 b3 CO 1 A A - B B 1 Complemento a 2 di un numero naturale N formato da n bit Calcolo di 2N senza la sottrazione 2N = 2n - N = (2n - 1) - N + 1 = not (N) + 1 2N = 2n - N • Calcolo di A - B con A  B • A - B = A + (2n - B) - 2n • = (A + 2B) - 2n • calcola A + 2B • elimina il bit più pesante

  39. n bit bn-1 bn-2 b1 b0 segno (0: positivo, 1: negativo) valore assoluto |N| = (bn-2 .2n-2 +…+b0 .20) Numeri relativi: rappresentazione segno-valore assoluto N [-(2n-1- 1), +(2n-1- 1)]

  40. n bit bn-1 bn-2 b1 b0 Numeri relativi: rappresentazione in complemento a 2 N  0 : segno-valore assoluto N < 0 : 2(-N) con (-N) espresso in segno-valore assoluto Esempi ( n=4 ) N.B. - anche nella rappresenta- zione in complemento a 2 il bit più significativo indica il segno (0:positivo, 1:negativo). +1 = 0 0 0 1 -1 = 1 1 1 0 + 1 = 1 1 1 1 +7 = 0 1 1 1 - 7 = 1 0 0 0 + 1 = 1 0 0 1 N [-2n-1, +(2n-1 - 1)] N = -2n-1 . bn-1+ bn-2 .2n-2 +…+b0 .20

  41. A = -4 1 1 0 0 + B = +5 0 1 0 1 = +1 0 0 0 1 Proprietà della rappresentazione in complemento a 2 Siano A e B due numeri nella rappresentazione in complemento a 2: • eseguendo 2A si ottiene -A A: 0 0 0 1 (+1) 1 1 1 0 + 1 2A: 1 1 1 1 (-1) 1 0 0 1 (-7) 0 1 1 0 + 1 0 1 1 1 (+7) • eseguendo A+B si ottiene la somma algebrica fra A e B: A = -3 1 1 0 1 + A = -4 1 1 0 0 + B = -4 1 1 0 0 = B = +3 0 0 1 1 = -7 1 0 0 1 -1 1 1 1 1 • eseguendo A + 2(B) si ottiene A - B N.B. - per sommare o sottrarre due numeri relativi espressi in complemento a 2 è sufficiente un addizionatore.

  42. Esercizi 5.4 e 5.5 • Utilizzando una rappresentazione in complemento a 2 con n=5 si eseguano le seguenti operazioni: • (-12) + (+4) • (-12) + (-1) • (-12) - (-12) • (-12) + (+12) • (-12) + (-4) • (+10) - (+5) • (+10) - (+11) • (+12) +(+5) • (-14) + (-4) • Qual’è il valore dei seguenti numeri relativi espressi nella rappresentazione in complemento a 2: • 1111, 11111111, 11111110, 1110, 01111111, 10000000

  43. CI 4 BIT a0 ADDER a1 a2 a3 s0 s1 s2 s3 b0 b1 b2 b3 CO CI x C0 u y 0 M U X CI 1 0 1 C0 x + y x + y + 1 0 x - y - 1 x -y 1 Un “adder/subtractor” programmabile

  44. CI 0 1 C2 C1 C0 CI 4 BIT a0 ADDER a1 a2 a3 s0 s1 s2 s3 b0 b1 b2 b3 CO CI C2 x + y x + y + 1 0 0 0 x 0 M U X x - y -1 x -y 0 0 1 ‘0000’ 1 x + 1 x 0 1 0 u C1 y x - 1 x 0 1 1 C0 0 M U X y y + 1 1 0 0 ‘0000’ 0 M U X 1 -(y+1) - y 1 0 1 1 0 1 1 1 0 0 24 -1 , -1 1 1 1 ….. più operazioni aritmetiche

  45. . . . ak = c2’ xk +c2 0 = c2’ xk = c0(c1’ yk) bk = c0’(c1’ yk) + c0 (c1’ yk)’ . . . . . C1 C0 C2 CI CI 4 BIT ADDER x0 a0 4 BIT ADDER x1 a1 x2 a2 s0 s1 s2 s3 s0 u x3 s1 a3 s2 y0 b0 s3 b1 y1 b2 y2 y3 b3 CO Sintesi della rete di pre-elaborazione

  46. M (bit di modalità, 0: logica, 1: aritmetica) C2 C1 C0 CI M M=0 CI a0 a1 a2 a3 b0 b1 b2 b3 CO C2 C1 C0 x  y x 0 0 0 Rete di pre-elabor. (x  y)’ 0 0 1 u s0 s1 s2 s3 x 0 1 0 y x’ 0 1 1 y 1 0 0 M 1 0 1 y’ 0000 1 1 0 r a b FA r a b FA R R 1111 1 1 1 s s M=0 s = a  b Bit di modalità e operazioni logiche 4 BIT ADDER con M

  47. C3 C1 C0 C2 M=0 C2 C1 C0 C3 0 1 0 0 1 1 1 0 0 0 0 0 0 0 1 1 0 1 1 1 0 1 1 1 x  y (xy)’ x x’ y y’ 0000 1111 0 xk r ak bk FA sk uk . 1 x + y (xy)’ x x’ + y y x+ y’ x y 1111 yk R M=0 N. B. - In questa tabella “.” è il simbolo della somma logica e “+” quello del prodotto. ....più operazioni logiche

More Related