42
1 VI.1. Considerazioni generali VI.2. RAM statiche VI.3. RAM dinamiche VI.4. Memorie a sola lettura Esempi ed esercizi Capitolo VI Memorie a semiconduttore .- F. Dalla Betta, G. Soncini. Appunti di Elettronica 2

1 VI.1. Considerazioni generali VI.2. RAM statiche VI.3. RAM dinamiche VI.4.Memorie a sola lettura Esempi ed esercizi Capitolo VI Memorie a semiconduttore

Embed Size (px)

Citation preview

Page 1: 1 VI.1. Considerazioni generali VI.2. RAM statiche VI.3. RAM dinamiche VI.4.Memorie a sola lettura Esempi ed esercizi Capitolo VI Memorie a semiconduttore

1

VI.1. Considerazioni generaliVI.2. RAM statiche VI.3. RAM dinamicheVI.4. Memorie a sola lettura

Esempi ed esercizi

Capitolo VI

Memorie a semiconduttore

G.- F. Dalla Betta, G. Soncini. Appunti di Elettronica 2.

Page 2: 1 VI.1. Considerazioni generali VI.2. RAM statiche VI.3. RAM dinamiche VI.4.Memorie a sola lettura Esempi ed esercizi Capitolo VI Memorie a semiconduttore

2

Generalmente un sistema digitale richiede oltre ad una rete logica combinatoria anche la capacità di immagazzinare dati:

• la parte di memoria normalmente e’ la piu’ ingombrante sui chip• le memorie hanno sempre spinto le tecnologie a progredire.

Vi sono essenzialmente due famiglie di memorie, le memorie RAM (Random Access Memory) e le ROM (Read Only Memory).

1. RAM Dati immagazzinati volatili Permettono la lettura e scrittura dei dati Suddivise in due categorie: RAM statiche e

dinamiche

2. ROM I dati sono permanentemente immagazzinati e possono solamente essere letti Dati immagazzinati non volatili

Parametri fondamentali: Costo per bit (legato alla Capacita’ totale) Tempi di accesso

VI.1. Considerazioni generali

Page 3: 1 VI.1. Considerazioni generali VI.2. RAM statiche VI.3. RAM dinamiche VI.4.Memorie a sola lettura Esempi ed esercizi Capitolo VI Memorie a semiconduttore

3Tipica organizzazione di una memoria (architettura)• La memoria é solitamente organizzata secondo una struttura a matrice suddivisa in righe e colonne, in cui ogni cella é in grado di immagazzinare un bit. • Per accedere ad una cella si selezionano, tramite i due decoder, la riga e la colonna voluta e in seguito si procede con l’operazione di lettura o scrittura, eseguita contemporaneamente anche su un gruppo di bit.

• Le operazioni di scrittura-lettura dei bit avvengono tramite le colonne (dette bit-lines), mentre le righe della matrice servono per selezionare le celle di memoria (vengono chiamate word-lines).

2N x 2M celle

Page 4: 1 VI.1. Considerazioni generali VI.2. RAM statiche VI.3. RAM dinamiche VI.4.Memorie a sola lettura Esempi ed esercizi Capitolo VI Memorie a semiconduttore

4

La struttura base in grado di immagazzinare un bit é costituita da due invertitori in serie posti in retroazione (latch).Per accedere (scrivere o leggere) al dato contenuto nella cella tramite la bit line é necessario almeno un interruttore controllato dalla corrispondente word line.Solitamente vengono impiegati due accessi complementari (2 bit line C e C e 2 interruttori).

VI.2. Memorie RAM statiche (SRAM)Le memorie RAM si dividono in RAM statiche e RAM dinamiche. Partiamo dalle prime. Le memorie RAM statiche (SRAM) sono in grado di mantenere il dato immagazzinato per un tempo indefinito (finché viene fornita l’alimentazione) senza bisogno di alcuna operazione di refresh.

Page 5: 1 VI.1. Considerazioni generali VI.2. RAM statiche VI.3. RAM dinamiche VI.4.Memorie a sola lettura Esempi ed esercizi Capitolo VI Memorie a semiconduttore

5

Cella SRAM in CMOS

La cella SRAM a 6 transistor (6-T SRAM) qui riportata presenta alcune problematiche: infatti durante la fase di lettura si vuole determinare lo stato della cella tramite i transistor di accesso senza alterare lo stato presente nella cella, mentre in fase di scrittura si vuole forzare, sempre tramite gli stessi transistor d’accesso, la cella nello stato desiderato.

Il latch viene realizzato con due invertitori CMOS retroazionati. Solitamente per realizzare gli switch di accesso (comandati dalle word line) si impiegano transistori nMOS (piú conduttivi dei pMOS).

Cella a 6 transistor (6-T)

Page 6: 1 VI.1. Considerazioni generali VI.2. RAM statiche VI.3. RAM dinamiche VI.4.Memorie a sola lettura Esempi ed esercizi Capitolo VI Memorie a semiconduttore

6Schema completo della SRAM in CMOSSRAM FCMOS: pur occupando piu’ area della equivalente cella con Load in poly-Si, e’ la migliore quanto a margine di immunita’ ai disturbi, consumo di potenza e tempo di accesso.

Funzionamento qualitativo

1. RS=0: il latch conserva il dato, le bit line si precaricano a VDD

oppure si portano a 0 (Write Circuits …)

2. RS=1: i pass transistor mettono in comunicazione le bit line con il latch...

Page 7: 1 VI.1. Considerazioni generali VI.2. RAM statiche VI.3. RAM dinamiche VI.4.Memorie a sola lettura Esempi ed esercizi Capitolo VI Memorie a semiconduttore

7Operazione di lettura nelle SRAM Supponiamo che il dato memorizzato nella cella sia ad esempio uno zero, cioe’ V1=0V e V2=Vdd=5V. Lo stato della cella all’inizio dell’operazione di lettura ( subito dopo aver selezionato la word line) e’: M2, M5: OFF

M1, M6: ON, Zona triodo

Dopo che RS va a Vdd, la tensione di C non cambia, perché attraverso M4 non scorre corrente, mentre la tensione di C inizia a scendere a causa della corrente di M3.

Tuttavia la capacita’ della bit line é elevata e dunque VC scende di poco (~100’s mV).

Page 8: 1 VI.1. Considerazioni generali VI.2. RAM statiche VI.3. RAM dinamiche VI.4.Memorie a sola lettura Esempi ed esercizi Capitolo VI Memorie a semiconduttore

8

Imponendo la condizione V1maxVTn si ottiene:

211

12

13 2

22VVVV

kVVV

kTnDD

MTnDD

M

2

1

3

1

3

2

5.12

TnDD

TnTnDD

M

M

M

M

VV

VVV

LWL

W

k

k

Mentre M3 e M1 scaricano la bit line V1 inizia a salire, quindi per non

alterare il dato memorizzato nella cella durante la fase di lettura, e’ necessario garantire che V1 non superi la tensione di soglia di M2. Allo

scopo si devono dimensionare i transistor M1 ed M3 in modo opportuno. Supponiamo che dopo aver acceso i transistor d’accesso M3, M4 la tensione della bit line VC rimanga vicina a Vdd; ne consegue che M3

opera in saturazione, mentre M1 opera in zona triodo. Si ha percio:

Page 9: 1 VI.1. Considerazioni generali VI.2. RAM statiche VI.3. RAM dinamiche VI.4.Memorie a sola lettura Esempi ed esercizi Capitolo VI Memorie a semiconduttore

9

Il valore cosi’ trovato e’ sicuramente conservativo, perche’ in realta’ una parte della corrente IDM3 fluisce nella capacita’ parassita al nodo 1 (caricandola). Rispettando questo criterio di progetto mi assicuro che M2 non si accenda e che il dato “0” resti correttamente memorizzato.

Procedendo in modo analogo per quanto riguarda la fase di lettura di un 1 logico, si ottiene una condizione simile (simmetrica) per il rapporto dei fattori di forma di M2 ed M4.

2

2

4

2

4

2

5.12

TnDD

TnTnDD

M

M

M

M

VV

VVV

LWL

W

k

k

Page 10: 1 VI.1. Considerazioni generali VI.2. RAM statiche VI.3. RAM dinamiche VI.4.Memorie a sola lettura Esempi ed esercizi Capitolo VI Memorie a semiconduttore

10Sense Amplifier Per poter leggere il dato presente nella cella e’ necessario riuscire a leggere il leggero sbilanciamento di tensione tra le due bit line. Infatti, essendo la capacita’ delle bit line elevata e la corrente fornita o assorbita dalla cella selezionata di valore ridotto, per ottenere dei tempi di lettura sufficientemente brevi, e’ necessario riuscire a rilevare sbilanciamenti di tensione tra le bit-line estremamente ridotti (pochi mV). Per fare questo si impiega un circuito detto Sense Amplifier.

Possibile implementazione CMOS del Sense Amplifier

Page 11: 1 VI.1. Considerazioni generali VI.2. RAM statiche VI.3. RAM dinamiche VI.4.Memorie a sola lettura Esempi ed esercizi Capitolo VI Memorie a semiconduttore

11

Supponiamo che dopo aver selezionato la cella da leggere le bit lines siano sbilanciate in modo che VC scenda un po’ (lettura di uno 0).

Quando sale il segnale di clock (che indica l’istante in cui si vuole leggere il dato) M3 si accende ed essendo VC <VC M1 e’ piu’ conduttivo di M2 (VGS1>VGS2) e abbassa ulteriormente VC (retroazione positiva) spegnendo sempre di piu’ M2.

Il latch cross-coupled e’ dunque in grado di amplificare la differenza di tensione tra le bit lines nel senso che ne favorisce lo sbilanciamento.

L’ulteriore amplificazione del segnale differenziale e’ delegata all’amplificatore operazionale a valle.

Funzionamento qualitativo

Page 12: 1 VI.1. Considerazioni generali VI.2. RAM statiche VI.3. RAM dinamiche VI.4.Memorie a sola lettura Esempi ed esercizi Capitolo VI Memorie a semiconduttore

12

Supponiamo di voler scrivere uno “0” logico nella cella e che nella cella sia immagazzinato un “1” dall’operazione precedente.

Le bit lines vengono inizializzate con il valore del dato che si vuole scrivere, cioe’ VC=0V e VC =VDD. In figura e’ riportato lo stato della cella non appena vengono accesi i due transistor d’accesso M3 ed M4 (inizio della scrittura).

M1, M6 OFF M5, M2 ON, Zona triodo.

Operazione di scrittura nelle SRAM

VC e’ imposto dal circuito esterno di scrittura e dunque si puo’ considerare costante e di valore prossimo a zero.

Page 13: 1 VI.1. Considerazioni generali VI.2. RAM statiche VI.3. RAM dinamiche VI.4.Memorie a sola lettura Esempi ed esercizi Capitolo VI Memorie a semiconduttore

13

23

5 5.12

TpDD

TnTnDD

nM

pM

VV

VVV

k

k

Imponendo la condizione V1<VTn, si ottiene:

Se questa condizione e’ verificata, M2 viene forzato nella zona di interdizione durante la fase di scrittura dello “0”. Questo garantisce, di conseguenza, che M1 si accenda modificando il dato immagazzinato. Una condizione simmetrica vale per i rapporti di forma di M6 ed M4.

211

325 22

02

VVVVk

VVk

TnDDnM

TpDDpM

Se M2 ed M4 sono stati disegnati con rapporti di forma opportuni (vedi condizione precedente) allora quando M4 viene acceso V2 rimane inizialmente sotto la tensione di soglia di M1. Per scrivere uno “0” nella cella, V1 deve scendere al di sotto della tensione di soglia di M2; quando V1=VTn, M2 si spegne, M3 opera in zona triodo (VDS ~ V1), mentre M5 opera in saturazione (notare che V2 rimane basso ma non a 0 V). Dunque si ha:

Page 14: 1 VI.1. Considerazioni generali VI.2. RAM statiche VI.3. RAM dinamiche VI.4.Memorie a sola lettura Esempi ed esercizi Capitolo VI Memorie a semiconduttore

14VI.3. Memorie RAM dinamiche (DRAM)

1) Cella a 4 transistor

2) Cella a 3 transistor

3) Cella a 1 transistor

Nell’intento di realizzare memorie ad altissima capacita’ (con struttura della cella semplificata) si e’ arrivati alle memorie dinamiche, in cui l’informazione e’ memorizzata in una capacita’. Come noto, in questo caso, serve periodicamente un Refresh.

Standard attuale.

Stacked cap.

Page 15: 1 VI.1. Considerazioni generali VI.2. RAM statiche VI.3. RAM dinamiche VI.4.Memorie a sola lettura Esempi ed esercizi Capitolo VI Memorie a semiconduttore

15DRAM con cella a 3 transistor

Il dato e’ memorizzato come carica sulla capacita’ parassita C1

A seconda del valore memorizzato, Mn2 puo’ essere acceso o spento.

I pass transistor Mn1/Mn3 consentono la scrittura/lettura del dato.

Ci sono linee dati separate per lettura e scrittura.

Il funzionamento richiede un clock a 2 fasi non sovrapposte. 1: precharge:PC=1, RS/WS=0N.B. NMOS: VC < VDD !!2: data read/write:PC=0, RS/WS=1

Page 16: 1 VI.1. Considerazioni generali VI.2. RAM statiche VI.3. RAM dinamiche VI.4.Memorie a sola lettura Esempi ed esercizi Capitolo VI Memorie a semiconduttore

16Tipiche forme d’onda segnali per DRAM a 3 transistor

Page 17: 1 VI.1. Considerazioni generali VI.2. RAM statiche VI.3. RAM dinamiche VI.4.Memorie a sola lettura Esempi ed esercizi Capitolo VI Memorie a semiconduttore

17PRECARICA

PC=1, RS/WS=0Attraverso i due transistori di precarica (NMOS), le capacita’ delle linee vengono caricate. • Ricordiamo quanto detto per le logiche MOS dinamiche:

N.B. C2 , C3 >> C1

22_0__ MAXCTnDDMAXCi VVVV

La fase di precarica ha termine solodopo che VC ha raggiunto il suo valore stazionario VCi_MAX

Page 18: 1 VI.1. Considerazioni generali VI.2. RAM statiche VI.3. RAM dinamiche VI.4.Memorie a sola lettura Esempi ed esercizi Capitolo VI Memorie a semiconduttore

18Scrittura di un “1” logico

0IND

1) MD OFF, C2 resta carica.

2) Quando WS accende Mn1, parte della carica di C2 si riversa su C1, caricandola. Dato che C2 >> C1,,

la tensione su C1 si porta circa allo stesso valore della tensione che avevo in partenza su C2

Blocco di lettura escluso

3) Quando WS torna basso spegnendo Mn1, la carica resta su C1, e la tensione VC1 e’ tale da accendere Mn2.

Page 19: 1 VI.1. Considerazioni generali VI.2. RAM statiche VI.3. RAM dinamiche VI.4.Memorie a sola lettura Esempi ed esercizi Capitolo VI Memorie a semiconduttore

19

Lettura di un “1” logico

1) Quando RS accende Mn3, questo, insieme a Mn2, crea un cammino conduttivo verso massa che consente di scaricare C3 (precaricata).

2) Il circuito di lettura interpreta la caduta di tensione su C3 come segnale alto (logica negata).

Blocco di scrittura escluso

N.B. L’operazione di lettura in una cella a 3 transistor non modifica il dato memorizzato, la carica su C1 rimane indisturbata (a meno della scarica attraverso le correnti di leakage).

Page 20: 1 VI.1. Considerazioni generali VI.2. RAM statiche VI.3. RAM dinamiche VI.4.Memorie a sola lettura Esempi ed esercizi Capitolo VI Memorie a semiconduttore

20

Scrittura di uno “0” logico

1IND1) MD ON, C2 si scarica.

2) Quando WS accende Mn1, C1 puo’ scaricarsi anch’essa attraverso Mn1 e Mn-D

3) Quando WS torna basso spegnendo Mn1, sulla capacita’ C1,

resta pochissima carica e Mn2 si spegne.

Blocco di lettura escluso

VGS2<VTn

Page 21: 1 VI.1. Considerazioni generali VI.2. RAM statiche VI.3. RAM dinamiche VI.4.Memorie a sola lettura Esempi ed esercizi Capitolo VI Memorie a semiconduttore

21

Lettura di un “1” logico

1) Quando RS accende Mn3, dato che Mn2 e’ spento, non esiste un cammino conduttivo verso massa che consenta di scaricare C3

(precaricata).

2) Il circuito di lettura interpreta la presenza di una tensione alta su C3 come segnale basso (logica negata).

Blocco di scrittura escluso

N.B. Anche in questo caso l’operazione di lettura nella cella a 3 transistor non modifica il dato memorizzato.

Page 22: 1 VI.1. Considerazioni generali VI.2. RAM statiche VI.3. RAM dinamiche VI.4.Memorie a sola lettura Esempi ed esercizi Capitolo VI Memorie a semiconduttore

22

La carica immagazzinata sulla capacita’ parassita C1 non puo’ essere conservata per tempi troppo lunghi a causa delle correnti di perdita e di sotto-soglia del pass-transistor Mn1.

Per evitare di perdere l’informazione, il dato memorizzato nella cella va periodicamente letto, invertito (logica negata) e riscritto nella stessa cella (refresh).

Il refresh nelle DRAM e’ eseguito per tutte le celle ogni qualche ms. Notare che l’operazione viene eseguita contemporaneamente su un’intera riga della memoria, con ovvio risparmio di tempo.

Ricordiamo infine che nelle celle 3-T non c’e’ consumo di potenza statico per la conservazione dei dati. La circuiteria aggiuntiva che si occupa del refresh non contribuisce significativamente al consumo di potenza totale.

REFRESH

Page 23: 1 VI.1. Considerazioni generali VI.2. RAM statiche VI.3. RAM dinamiche VI.4.Memorie a sola lettura Esempi ed esercizi Capitolo VI Memorie a semiconduttore

23DRAM con cella a 1 transistor

N.B. C2 >> C1

Le celle di memoria DRAM a un transistor consentono di ottenere le massime capacita’ di memorizzazione ( 1 Gbit).

Va ricordato che, in questo caso, la capacita’ sui cui memorizzare il dato (C1) e’ realizzata appositamente mediante un processo tecnologico dedicato (stacked capacitor).

Page 24: 1 VI.1. Considerazioni generali VI.2. RAM statiche VI.3. RAM dinamiche VI.4.Memorie a sola lettura Esempi ed esercizi Capitolo VI Memorie a semiconduttore

24Scrittura di un dato

Scrittura di un “1”La bit line e’ portata al valore logico alto (VDD) dai circuiti di

scrittura (DATA=1), mentre la word line al valore alto (R/W=1) accende il transistor Mn1, attraverso il quale C1 puo’ caricarsi al livello logico alto (VDD-VTn con effetto Body) .

Scrittura di uno “0”La bit line e’ portata al

valore logico basso (0) dai circuiti di scrittura (DATA=0), mentre la word line al valore alto accende il transistor Mn1, attraverso il quale C1 puo’ scaricarsi al livello logico basso (massa).

Page 25: 1 VI.1. Considerazioni generali VI.2. RAM statiche VI.3. RAM dinamiche VI.4.Memorie a sola lettura Esempi ed esercizi Capitolo VI Memorie a semiconduttore

25Lettura di un dato

L’operazione di scrittura e’ complicata e distruttiva, richiede cioe’ di andare anche a riscrivere il dato che si e’ letto.

Funzionamento qualitativo:-si precarica la bit-line ad un segnale VREF (intermedio tra VH e VL). -si accende Mn1 mettendo in comunicazione C1 e C2

-la ridistribuzione di carica tra C1 e C2 sbilancia leggermente la tensione della bit-line in un verso o nell’altro a seconda del valore del dato presente.

N.B. L’informazione memorizzatava comunque persa !! Serve ilrefresh ogni volta che si legge un Dato.

Page 26: 1 VI.1. Considerazioni generali VI.2. RAM statiche VI.3. RAM dinamiche VI.4.Memorie a sola lettura Esempi ed esercizi Capitolo VI Memorie a semiconduttore

26L’esiguita’ dei segnali in gioco rende necessari schemi di lettura complicati, che sfruttano dei Sense Amplifiers particolari, basati su latch dinamici.

L’array di celle e la bit line sono divisi in due parti disposte simmetricamente rispetto ai due lati del LATCH. Ogni lato, inoltre, presenta una cella dummy che contiene una capacita’ il cui valore e’ meta’ di quello delle capacita’ delle celle di memoria. N.B. CD >> C

DRAM 1-T a 256 celle

Page 27: 1 VI.1. Considerazioni generali VI.2. RAM statiche VI.3. RAM dinamiche VI.4.Memorie a sola lettura Esempi ed esercizi Capitolo VI Memorie a semiconduttore

27Tipiche forme d’onda segnali per DRAM a 1 transistor

L’operazione di lettura consiste essenzialmente di 3 fasi distinte

1 2 3

Page 28: 1 VI.1. Considerazioni generali VI.2. RAM statiche VI.3. RAM dinamiche VI.4.Memorie a sola lettura Esempi ed esercizi Capitolo VI Memorie a semiconduttore

28Fase 1: PRECARICA

PC=1: si precaricano le due meta’ delle bit-line al valore di riferimento, e nel contempo si scaricano le capacita’ delle celle dummy (nodi X e Y).

Gli altri segnali sono inattivi.

Gran parte della circuiteria e’ spenta.

Page 29: 1 VI.1. Considerazioni generali VI.2. RAM statiche VI.3. RAM dinamiche VI.4.Memorie a sola lettura Esempi ed esercizi Capitolo VI Memorie a semiconduttore

29Fase 2: LETTURAUna delle word-lines (es: R128) va a 1, e si attiva la dummy cell sul

lato opposto (con DS). a) Se il dato e’ 1, la tensione sulla half-column D sale leggermente,

mentre quella sulla half-column D scende leggermente perche’ la capacita’ dummy si sta caricando.

a) Se il dato e’ 0, la tensione sulla half-column D scende leggermente, anche quella sulla half-column D scende, ma di meno perche’ ho C/2, quindi posso “sentire” la differenza.

Page 30: 1 VI.1. Considerazioni generali VI.2. RAM statiche VI.3. RAM dinamiche VI.4.Memorie a sola lettura Esempi ed esercizi Capitolo VI Memorie a semiconduttore

30Fase 3: FINE LETTURA / RINFRESCO

Escludo le dummy cell (DS/ DS = 0).

Con CS=1, attivo il LATCH che “sente” e amplifica la piccola differenza di potenziale tra le due half-columns, sbilanciandole infine verso valori di tensione opposti.

Dato che la word-line R128 e’ ancora alta, cosi’ facendo rinfresco anche il dato nella cella.

Page 31: 1 VI.1. Considerazioni generali VI.2. RAM statiche VI.3. RAM dinamiche VI.4.Memorie a sola lettura Esempi ed esercizi Capitolo VI Memorie a semiconduttore

31

VI.4. La memoria a sola lettura (ROM)• E’ un componente integrato a larga scala che a rigore appartiene alla categoria delle reti combinatorie. La capacita’ di conservare le informazioni la rende pero’ una vera e propria memoria.• Il cuore del circuito e’ una matrice di punti di contatto in cui vengono memorizzate le tabelle della verità delle funzioni da realizzare.• Per una maggiore flessibilità d’impiego, le uscite sono ottenute ponendo in serie agli OR degli amplificatori a 3 stati aventi in comune il segnale di abilitazione CS (Chip Select).

DEC

A0

An-1

CS

O1 Om

01

2n-1

2

2n-2

O2

Page 32: 1 VI.1. Considerazioni generali VI.2. RAM statiche VI.3. RAM dinamiche VI.4.Memorie a sola lettura Esempi ed esercizi Capitolo VI Memorie a semiconduttore

32

• Una volta stabiliti i contatti necessari, che corrispondono alle

situazioni in cui le funzioni devono assumere valore 1, è possibile

leggere le tabelle, naturalmente una riga alla volta e come

conseguenza della presentazione in ingresso della corrispondente

configurazione di valori delle variabili indipendenti. • Queste ultime sono dette segnali di indirizzamento ed una loro

configurazione di valori indirizzo della memoria. Sui bordi del

simbolo rettangolare usato per rappresentare una ROM, i segnali di

indirizzamento sono indicati con la lettera A (Address) seguita da un

pedice che ne specifica il peso in una loro interpretazione come

numero binario intero. • Da un punto di vista tecnologico, diverse sono le tecniche impiegate

per realizzare memorie a sola lettura e diverse sono quindi anche le

modalità d’impiego.

Page 33: 1 VI.1. Considerazioni generali VI.2. RAM statiche VI.3. RAM dinamiche VI.4.Memorie a sola lettura Esempi ed esercizi Capitolo VI Memorie a semiconduttore

33

R1 R2 R3 R4 C1 C2 C3 C4

1 0 0 0 0 1 0 1

0 1 0 0 0 0 1 1

0 0 1 0 1 0 0 1

0 0 0 1 0 1 1 0

ROM CMOS (pseudo N-MOS)

Tabella programmazione

Problemi. - consumo di potenza statico- segnale basso VOL > 0

Page 34: 1 VI.1. Considerazioni generali VI.2. RAM statiche VI.3. RAM dinamiche VI.4.Memorie a sola lettura Esempi ed esercizi Capitolo VI Memorie a semiconduttore

34

R1 R2 R3 R4 R5 C1 C2 C3

1 0 0 0 0 0 0 1

0 1 0 0 0 1 0 1

0 0 1 0 0 0 1 0

0 0 0 1 0 1 0 0

0 0 0 0 1 0 1 0

ROM CMOS dinamica (precarica/valutazione)

Tabella programmazione

CK=0 precarico le colonne a VDD

tramite i transistori p.

CK=1 Scarico condizionatamente le colonne attraverso i pass transistor n.

Page 35: 1 VI.1. Considerazioni generali VI.2. RAM statiche VI.3. RAM dinamiche VI.4.Memorie a sola lettura Esempi ed esercizi Capitolo VI Memorie a semiconduttore

35In pratica, metto un MOS ad ogni incrocio e poi lo abilito oppure no.Il modo in cui realizzo tale programmazione determina la seguente classificazione:

• ROM (Read Only Memory): i punti di contatto sono realizzati su ordinazione nella fase finale di costruzione del chip (metal mask). • PROM (Programmable ROM): i contatti sono all’inizio tutti stabiliti, il cliente puo’ eliminarli su apposite macchine bruciando i fusibili posti in serie al drain.• EPROM (Erasable Programmable ROM): i transistori utilizzati sono particolari (gate isolato e gate di accesso) Un’opportuna apparecchiatura di programmazione consente di aprire i contatti non desiderati; la situazione iniziale è ripristinabile sottoponendo il dispositivo a radiazioni ultraviolette.• E2PROM (Electrical Erasable Programmable ROM): simili alla precedenti ma programmabili e cancellabili con soli impulsi elettrici. • FLASH: evoluzione delle E2PROM, consentono fino a 105 cicli di R/W, con tempi di prog. di pochi s, e cancellazione in secondi.

Page 36: 1 VI.1. Considerazioni generali VI.2. RAM statiche VI.3. RAM dinamiche VI.4.Memorie a sola lettura Esempi ed esercizi Capitolo VI Memorie a semiconduttore

36

• Con questa tecnica di selezione a due dimensioni è possibile conseguire un notevole risparmio d’area sul chip. Rispetto alla selezione lineare si riduce infatti il numero totale di ingressi richiesto per gli operatori AND.• Ulteriore vantaggio e’ la maggiore velocita’ di lettura (capacita’ di linea piu’ basse).

DECA0

Ak-1

Ak

An-1

CS

Matrice 2k · 2 3+n-k

MUX

2n-k:1

AMP. 3 STATI

O1 O8

ROM

MUX

2n-k:1

• In pratica e’ più conveniente realizzare matrici di programmazione quadrate. Allo scopo gli “OR” di uscita devono essere sostituiti da multiplexer per concentrare i segnali di colonna sulle linee di uscita desiderate; i MUX sono selezionati dai segnali di indirizzamento non introdotti nel decoder.

O2

Page 37: 1 VI.1. Considerazioni generali VI.2. RAM statiche VI.3. RAM dinamiche VI.4.Memorie a sola lettura Esempi ed esercizi Capitolo VI Memorie a semiconduttore

37

Sintesi con memorie a sola letturaLa sintesi a ROM di funzioni combinatorie può dar luogo a due differenti problemi progettuali: • il dispositivo scelto ha un numero insufficiente di uscite (è necessario prevedere l’impiego di diverse ROM;• il dispositivo scelto ha un numero insufficiente di segnali di indirizzamento.Esempio: 13 funzioni di 10 variabili con ROM 1024x8 (10 ingressi).

A0 A1 A2 A3 A4 A5 A6 A7 A8 A9

O1 O2 O3 O4 O5 O6 O7 O8

A0 A1 A2 A3 A4 A5 A6 A7 A8 A9

O1 O2 O3 O4 O5 O6 O7 O8

x0 x1 x2 x3 x4 x5 x6 x7 x8 x9

z1 z2 z3 z4 z5 z6 z7 z8 z9 z10 z11 z12 z13

ROM 1024x8 ROM 1024x8

Page 38: 1 VI.1. Considerazioni generali VI.2. RAM statiche VI.3. RAM dinamiche VI.4.Memorie a sola lettura Esempi ed esercizi Capitolo VI Memorie a semiconduttore

38

Per il secondo problema si deve ricorrere all’interconnessione a BUS,

resa possibile dalla presenza di amplificatori a 3 stati sulle uscite del

dispositivo e dal segnale comune di abilitazione (CS).

• Il progettista deve preliminarmente decomporre le tabelle della

verità in blocchi con un numero di righe pari a quello della ROM

prescelta e poi programmarne tante quanti sono tali blocchi.

• La multiplazione delle uscite omonime, indispensabile per

ricomporre il tutto in un unico circuito, richiede poi la loro semplice

interconnessione, una volta che si sia previsto un decoder per fornire a

ciascuna ROM il segnale di abilitazione che le compete.

• Un flag RD (Read) dovrà infine disabilitare temporaneamente il

decoder in corrispondenza di ogni variazione dei segnali di

indirizzamento.

Page 39: 1 VI.1. Considerazioni generali VI.2. RAM statiche VI.3. RAM dinamiche VI.4.Memorie a sola lettura Esempi ed esercizi Capitolo VI Memorie a semiconduttore

39Esempio: Composizione modulare di una ROM di dimensioni 2048x8 con quattro ROM di dimensioni 512x8.

A0 A1 A2 A3 A4 A5 A6 A7 A8

O1 O2 O3 O4 O5 O6 O7 O8

x3 x4 x5 x6 x7 x8 x9 x10x11

z1 z2 z3 z4 z5 z6 z7 z8

CS ROM 512x8

A0 A1 A2 A3 A4 A5 A6 A7 A8

O1 O2 O3 O4 O5 O6 O7 O8

CS ROM 512x8

A0 A1 A2 A3 A4 A5 A6 A7 A8

O1 O2 O3 O4 O5 O6 O7 O8

CS ROM 512x8

A0 A1 A2 A3 A4 A5 A6 A7 A8

O1 O2 O3 O4 O5 O6 O7 O8

CS ROM 512x8

3210

EN

DEC 2:4

x1 x2

A0 A1

Page 40: 1 VI.1. Considerazioni generali VI.2. RAM statiche VI.3. RAM dinamiche VI.4.Memorie a sola lettura Esempi ed esercizi Capitolo VI Memorie a semiconduttore

40

EsercizioProgettare una R.C. a 2 uscite, funzioni entrambe di numeri del codice BCD, disponendo di ROM 4x2.

R.C.

x1

x2

x4

x8

z1 = 1 se NBCD > 5

z2 = m(0, 2, 4, 7, 8)

• Le uscite della ROM sono 2, tante quante le funzioni da programmare, mentre le variabili indipendenti A0 e A1 non sono sufficienti calcolare funzioni di 4 variabili. • Ciascuna ROM ha però 4 righe delle 16 a noi necessarie, quindi consente di programmare 1/4 della tabella della verità.

x8 x4 x2 x1 z1 z2

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

RO

M1

RO

M2

RO

M3

RO

M4

Page 41: 1 VI.1. Considerazioni generali VI.2. RAM statiche VI.3. RAM dinamiche VI.4.Memorie a sola lettura Esempi ed esercizi Capitolo VI Memorie a semiconduttore

41

A0 A1

CS ROM1

O1 O2

x1

x2

x4

x8 A0 A1

CS ROM2

O1 O2

A0 A1

CS ROM3

O1 O2

A0 A1

CS ROM4

O1 O2

0123

A1 A0

EN

z1

z2

Page 42: 1 VI.1. Considerazioni generali VI.2. RAM statiche VI.3. RAM dinamiche VI.4.Memorie a sola lettura Esempi ed esercizi Capitolo VI Memorie a semiconduttore

42

Note

• Le uscite delle ROM possono essere multiplate senza ricorrere ad un MUX avvalendosi degli amplificatori a 3 stati interni a ciascuna ROM e comandati dal CS.• Il funzionamento è corretto se e solo se i 4 comandi di CS sono mutuamente esclusivi; le configurazioni del codice 1 su 4 dovranno quindi essere alternate alla configurazione 0000 (si usa l’Enable del decoder).

• Programmazione vera e propria. Vediamo ad esempio la ROM1.

DEC

x1

x2

0123

A0

A1

z1 z2

Prime quattro righe della tabella della verità.

Problema: le funzioni non sono completamente specificate ...