Circuiti programmabili

Slides:



Advertisements
Presentazioni simili
INGRESSI E USCITE.
Advertisements

Dalla macchina alla rete
Espressioni generali e MULTIPLEXER.
La programmazione in linguaggio Listato
La programmazione in LADDER
IL MICROCONTROLLORE ST6
Automazione a logica programmabile
Tipologie di Controlli in Ambito Industriale
IL COMPUTER scheda madre unità di elaborazione (CPU) memoria RAM
MICROCONTROLLORI Di Tiziano Ragazzi.
Memorie.
Analisi e sintesi di circuiti combinatori
Sintesi con circuiti LSI-MSI
1 III Modulo dei dispositivi elettronici del Laboratorio di Fisica.
A.S.E.9.1 ARCHITETTURA DEI SISTEMI ELETTRONICI LEZIONE N° 9 Funzione XORFunzione XOR Enumerazione di funzioniEnumerazione di funzioni Reti logicheReti.
A.S.E.17.1 ARCHITETTURA DEI SISTEMI ELETTRONICI LEZIONE N° 17 Tecniche strutturateTecniche strutturate –PLD PLAPLA PROMPROM PALPAL Porte Tri StatePorte.
A.S.E.25.1 ARCHITETTURA DEI SISTEMI ELETTRONICI LEZIONE N° 25 Reti sequenziali sincronizzate complesseReti sequenziali sincronizzate complesse –Macchina.
A.S.E.15.1 ARCHITETTURA DEI SISTEMI ELETTRONICI LEZIONE N° 15 Tecniche strutturateTecniche strutturate –PLD PLAPLA PROMPROM PALPAL.
ARCHITETTURA DEI SISTEMI ELETTRONICI
1 Corso di Informatica (Programmazione) Lezione 4 (24 ottobre 2008) Architettura del calcolatore: la macchina di Von Neumann.
PSPICE – simulazione codificatori e decodificatori, MUX - DEMUX
Le prestazioni (velocità) di un singolo disco sono limitate dalla tecnologia usata, -per aumentare le prestazioni si può pensare di far operare in parallelo.
Porte Logiche Open Collector e Connessione Wired-OR
Reti Combinatorie: sintesi
Reti combinatorie: moduli di base
Dalla macchina alla rete: reti LLC
Sintesi con circuiti LSI-MSI. Realizzazione di reti combinatorie mediante Multiplexers Un multiplexer (MPX ) é una rete combinatoria con N ingressi, una.
Com’è fatto un elaboratore?
3. Architettura Vengono descritte le principali componenti hardware di un calcolatore.
Analisi e sintesi di circuiti combinatori. Reti combinatorie.
Display a 7 segmenti Il display a 7 segmenti è un dispositivo composto da 7 diodi luminosi LED (Light-Emitting Diode) sagomati a forma di rettangolo o.
SOTTOPROGRAMMA Un sottoprogramma lo si usa spesso per suddividere degli algoritmi molto complessi Una delle regole molto importanti è il rettangolo che.
MEMORIA CENTRALE Spazio di lavoro del calcolatore: contiene i dati da elaborare e i risultati delle elaborazioni durante il funzionamento del calcolatore.
L’Architettura del Sistema di Elaborazione
UNIVERSITA’ STUDI DI ROMA “FORO ITALICO”
Architettura dell’elaboratore
Il Calcolatore Elettronico
PRESENTAZIONE di RICCARDO
L' ARCHITETTURA DI VON NEUMANN
SISTEMA DI CONTROLLO Circuito di controllo trasduttori attuatori NOTA:
Prof.Ing.S.Cavalieri1 Memorie Interne RAM, ROM e Cache Misura della Memoria Classificazione della Memoria: Interna ed Esterna Memoria Interna: Caratteristiche.
Quadripoli Un quadripolo è una rete elettrica comunque complessa nella quale si individuano una coppia di terminali in ingresso ed una coppia di terminali.
Architettura del Computer
PIC 8259 PROGRAMMABLE INTERRUPT CONTROLLER
ELETTRONICA DIGITALE (2^ Parte) (8)
Reti combinatorie: moduli di base
ARCHITETTURA DI UN ELABORATORE
Memoria Centrale.
La RAM, la ROM e la CPU di Beatrice Cecchini e Margherita Pelagagge
Unità centrale di processo
STRUTTURA DI UN COMPUTER
Memorie a semiconduttore
Sistemi Elettronici Programmabili: La Memoria Principale 6-1 Sistemi Elettronici Programmabili La memoria principale.
Reti Logiche A Lezione xx.x Dispositivi Programmabili
Traformazioni fra Bistabili e Registri
Teoria dei sistemi Autore: LUCA ORRU'.
FONDAMENTI DI INFORMATICA
Corso di Laurea in Biotecnologie corso di Informatica Paolo Mereghetti DISCo – Dipartimento di Informatica, Sistemistica e Comunicazione.
Luglio 2004Generalità Hardware1 Luglio Generalità Hardware2 MACCHINA DI VON NEUMAN (1947) BUS Processore Elaborazione Controllo Memoria Ingresso.
Sistemi Elettronici Programmabili: Riepilogo 1 Sistemi digitali : Riepilogo Sistemi Elettronici Programmabili.
Tecnologie Implementative
MICROPROCESSORI Un processore è un circuito integrato in grado di effettuare operazioni di calcolo o di elaborazione dell'informazione Il circuito contiene.
UNIVERSITÀ DI BERGAMO FACOLTÀ DI INGEGNERIA UNIVERSITÀ DI BERGAMO FACOLTÀ DI INGEGNERIA UNIVERSITÀ DI BERGAMO FACOLTÀ DI INGEGNERIA Dispositivi per il.
Struttura Fondamentale degli Elaboratori Elaboratore –È un sistema numerico –È un sistema automatico –È un sistema a programamzione registrabile –Ha una.
Prof. ing. Paolo Bidello AA 2005/2006 Laboratorio Informatico Promemoria degli argomenti Intervento #5.
Presentazione di sistemi Ambrosio Federica Anna Esposito 3C inf.
Tipi di Computer MainframeSupercomputerMinicomputerMicrocomputerHome Computer Personal Computer WorkstationMicrocontrollori Sistemi Barebone.
Il modello di Von Neumann
Concetti informatici di base. Concetti informatici di base Il computer o elaboratore è una apparecchiatura costituita da un insieme di dispositivi di.
LA MEMORIA CENTRALE. La memoria nella struttura generale del calcolatore MEMORIA CONTROLLO INGRESSO E USCITA ARITMETICA E LOGICA CPU Dispositivi esterni.
Transcript della presentazione:

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

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

Le reti combinatorie programmabili 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. p1 p2 py x1 x2 xn z1 z2 zm Rete combinatoria programmabile zi = F (p1,p2 ,…..,py ,x1,x2 ,…..,xn) = Fp (x1,x2 ,…..,xn)

5.1 Memorie a sola lettura

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

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

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. Esempio: n=16 216 = 65536 pin per la programmazione ! Le ROM sono reti combinatorie programmabili basate sulla espressione generale SP ed aventi i bit di programmazione integrati all’interno del dispositivo.

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

Struttura di una ROM (2) Rappresentazione “compatta” della struttura di una ROM : F G O contatto chiuso aperto x1 x0 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.

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

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

Memorie non volatili a sola lettura Memorizzazione di informazioni che devono permanere quando il sistema non è alimentato e che non non 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) Grossi volumi di produzione.

PROM (Programmable ROM) i 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

EPROM (Erasable PROM) Q 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

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”.

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)) Bit di programmazione F(0) F(1) F(2) F(3) F(4) F(5) F(6) F(7) A0 A1 D E C m0 m3 m1 m2 A2 F MUX

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

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

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

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

MUX con amplificatori 3-state (1) DEC 3 2 1 I0 I1 I2 I3 Z A0 A1 MUX 4:1 In ogni istante di tempo non deve esserci più di un 3-state abilitato ! Situazione di corto circuito (conflitto elettrico) 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)

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

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

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 a[0..12] A0 A1 …A12 ROM D0 D7 MRD a15 d0 MUX d7 a[13,14]

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

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.

5.2 Matrici logiche programmabili

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

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

Sintesi con PLA 00 01 11 10 a b cd 1 z w a b c d z w

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

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. BCD Gray 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 A B C D 1 1 1 0 1 0 1 0 1 0 1 1 X X X X W X Y Z

PAL con I/O programmabile (16L8)

5.3 Unità aritmetica e logica

ALU: Arithmetic and Logic Unit u = Fc (x , y) ALU x y u flag c 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)

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

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) 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 bn-1 bi b1 b0 - pn-1 pi p1 dn-1 di d1 d0

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 A A - B B CI 4 BIT a0 ADDER a1 a2 a3 s0 s1 s2 s3 b0 b1 b2 b3 CO 1 Calcolo di A - B con A  B A - B = A + (2n - B) - 2n = (A + 2B) - 2n calcola A + 2B elimina il bit più pesante

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

Numeri relativi: rappresentazione in complemento a 2 N  0 : segno-valore assoluto bn-1 bn-2 b1 b0 n bit 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

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 + 0 0 0 1 1 1 0 0 + 0 1 0 1 = A = -4 B = +5 +1 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.

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

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

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

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

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

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

Segnali di “flag” ZF ZERO FLAG: vale “1” se il risultato vale “0”. ALU x y u c SF SIGN FLAG: vale “1” se il risultato è negativo. CF CARRY FLAG: vale “1” se CO=1 . OF OVERFLOW FLAG: vale “1” in caso di traboccamento del risultato di un’operazione fra numeri relativi rappresentati in complemento a 2. PF PARITY FLAG: vale “1” se il bit di parità del risultato vale 1.

Generazione dei flag per una ALU a 4 bit ZF = (u0 + u1 + u2 + u3)’ SF = u3 CF = CO OF = r3  CO CO r3 r2 r1 0 1 1 1 + 0 0 1 0 = (+7) (+2) 1 0 0 1 0 1 1 0 CO r3 r2 r1 0 1 1 0 1 0 0 0 1 0 0 1 + 1 1 1 0 = (-7) (-2) PF = u0  u1  u2  u3

La ALU a 4 bit CO C1 Rete di pre-elabor. C3 C2 C0 y0 y1 y2 y3 x0 x1 x2 M a0 b0 M r0 R a1 b1 M r1 a2 b2 s2 M r2 a3 b3 M r3 CI s0 s1 s3 OF CF CO ZF SF PF

Uno “shifter” a 4 bit . W0 = 0 L R’ + u0 L’ R’ + u1 L’ R W0 = 0 L R’ + u0 L’ R’ + u1 L’ R . Wi = ui-1 L R’ + ui L’ R’ + ui+1 L’ R i=1,2 . W3 = u2 L R’ + u3 L’ R’ + 0 L’ R .

Esercizi 5.6 e 5.7 Si determini la tabella delle operazioni eseguite dalla ALU nel caso M=1. Si indichi come deve essere modificato lo shifter per poter eseguire anche delle divisioni per 2 su numeri relativi rappresentati in complemento a 2.