MODULI DI MEMORIA SRAM PER DSP E MICROCONTROLLORI
 
Alta Frequenza - Vol. 9 - N. 2 Marzo Aprile 1997 - p. 48,54
 
Domenico Chindamo, Marco Mancinelli, Giovanni Naso, Giulio Porrovecchio.
Texas Instruments Italia - Dipartimento di Ricerca e Sviluppo

Sommario

L'impiego di memorie statiche ad accesso casuale (SRAM) integrate sullo stesso dispositivo (embedded) e' in costante aumento nei Microcontrollori (MCU) e sopratutto nei Processori Digitali di Segnale (DSP), dove in alcuni casi esse possono occupare anche il 70% dell'area dell'intero chip, per la memorizzazione di dati e programmi temporanei. Tale tendenza e' giustificata da motivi di riduzione del numero di componenti, di condivisione di strutture e bus, di velocita', di consumo. C'e' di conseguenza uno sforzo continuo di mettere a punto e utilizzare celle di memoria sempre piu' piccole, portando l'utilizzo della litografia associata alle varie tecnologie ai suoi limiti estremi. In questo articolo vengono descritti moduli SRAM embedded in CMOS con cella a 6 transistor e tecnologia che ha subito una evoluzione litografica, esemplificata nell'informazione della minima lunghezza di canale L, dal valore 0.8 microns a 0.35 microns. Le corrispondenti dimensioni delle celle SRAM usate non sono ottenute per semplice riduzione geometrica bensi' per riprogettazione, allo scopo di raggiungere limiti di spazio e prestazioni sempre piu' spinti, pur continuando ad utilizzare processi di produzione adatti a dispositivi puramente logici. L'articolo illustra sia l'evoluzione della cella di memoria a se stante sia gli accorgimenti di progettazione che sono stati utilizzati per raggiungere le sempre piu' alte prestazioni richieste in termini di velocita', tensione di alimentazione, consumo di potenza. Infine, per aumentare la resa di produzione che viene penalizzata da difettosita' naturale per particelle e dal fatto che il layout della cella di memoria viene realizzato al limite delle possibilita' di risoluzione del processo, viene descritta una struttura di ridondanza di riga e colonna che e' stata progettata per le piu' recenti versioni.

La cella SRAM a 6 transistori

Diverse architetture di celle SRAM sono state usate in differenti situazioni [2]. La scelta puo' essere basata su criteri di compattezza di layout, di facilita' di produzione, di stabilita', di soddisfacimento delle prestazioni di velocita' e consumo. Una architettura che presenta un buon compromesso tra tutti i precedenti criteri e' rappresentata dalla cella CMOS a 6 transistori a singola porta differenziale riportata in Fig. 1. I transistori p-channel M3 ed M4 sono chiamati transistori di carico (load transistors), i transistori n-channel M1 ed M2 sono chiamati transistori di pilotaggio (driver transistors) ed i transistori n-channel M5 ed M6 sono chiamati transistori di selezione (access transistors). I transistori M1 ed M3 costituiscono un inverter ed i transistori M2 ed M4 costituiscono un altro inverter. Tali due inverter sono collegati con l'uscita di uno all'ingresso dell'altro (back-to-back) a formare un latch. Quando si vuole accedere alla cella, per scrivere o per leggere, si abilitano contemporaneamente i transistori M5 ed M6 ponendo un livello alto sulla linea WL (Word Line o riga). La cella riportata in Fig. 1 permette di effettuare in tempi differenti accessi di scrittura o lettura attraverso un'unica coppia di transistori di selezione e per questo motivo prende il nome di cella a singola porta di accesso. Vi sono celle di SRAM che a scapito di un layout piu' grande sono dotate di piu' di una coppia di transistori di selezione per avere scritture e letture da porte separate. Tali celle si chiamano a porte multiple e permettono di ottenere tempi di ciclo piu' brevi perche' sfruttano la possibilita' di avere parziale sovrapposizione nelle operazioni di accesso avendo codifiche separate. La cella SRAM di Fig. 1 e' poi dotata di una coppia di linee (colonna) per il dato. Esse sono chiamate bit line vera (BLT = Bit Line True) e bit line falsa (BLF = Bit Line False) perche' durante un accesso, di scrittura o di lettura, su di esse si trovano valori opposti. La presenza di due linee complementari per i dati facilita notevolmente le operazioni di accesso rispetto al caso in cui si accede al dato con una sola bit line. In una operazione di scrittura infatti forzare il latch da due parti con livelli opposti permette una commutazione rapida e sicura. In lettura la presenza di linee complementari permette di poter leggere il dato molto prima che i valori di tensione sulle linee abbiano raggiunto il loro massimo. Vi sono celle che non hanno questa struttura complementare ed hanno layout piu' compatti ma le circuiterie di accesso sono piu' complesse dal punto di vista del controllo e a volte richiedono di effettuare dei pilotoggi di WL con valori di tensione superiori al valore di alimentazione con l'uso di charge pumps. E' il caso infine di menzionare una versione di cella SRAM molto compatta detta cella a transistori sottili (TFT) in cui al posto dei transistori di carico si usano delle diffusioni che fungono da resistenze, ma la cella CMOS e' molto piu' facile da produrre e la sua stabilita' e' meno sensibile al rapporto delle dimensioni tra i transistori di pilotaggio e selezione e meno critica al diminuire della tensione di alimentazione [1] [3].

Fig. 1 - Cella SRAM CMOS a singola porta complementare

L'impiego di SRAM in microcontrollori e DSP e' a volte molto intenso e in alcuni casi si hanno chip in cui il 70% dell'area e' costituito da moduli di memorie SRAM di varie dimensioni. Per questo motivo c'e' stato un notevole sforzo per cercare di diminuire l'area della singola cella in percentuale maggiore di quanto il processo permette nei circuiti logici di periferia. Si e' assistito infatti, negli ultimi due anni ad una diminuzione della minima lunghezza L di canale da 0.8 micron a 0.4 micron con passi discreti del 90%. La singola cella di memoria SRAM non si e' pero' ridotta del semplice rapporto quadratico dell' 81% ma grazie alla contemporanea diminuzione delle tensioni di alimentazione VDD da 5V a 3.3V a 1.8V e grazie a particolari accorgimenti di lavorazione nelle aree dove le celle erano predisposte in modo compatto (Array) si e' potuto riprogettare la cella e ottenere una evoluzione della diminuzione di area valutabile intorno al 60% ad ogni nuova generazione. Si e' arrivato ad un punto di tale cura nel minimizzare l'area della singola cella di SRAM da introdurre il concetto di cella a regole violate. Con tale termine si e' voluto indicare che la cura che si deve usare per processare celle di un array di SRAM permette di tollerare per esse spaziature che non possono essere consentite nella periferia della istanza di memoria dove c'e' logica di controllo e non piu' una compattazione regolare. Addirittura le celle SRAM violate possono aver bisogno di modelli Spice diversi da quelli dei componenti usati in periferia perche' le prestazioni della cella risentono della loro struttura compatta e sicuramente richiedono un supporto di produzione piu' analitico e attento nell'ottenere una piu' difficile uniformita' di resa. In Fig. 2 e' riportato il layout di una cella SRAM con L = 0.5 micron.

Fig . 2 - Layout di una cella SRAM in tecnologia L=0.5 micron e area 37 micron quadri.

La riga e' in poly per formare i transistori di selezione ma su di essa e' disegnata una linea di metallo che verra' collegata al poly a distanze stabilite, tipicamente ogni 8 celle, per diminuire la resistenza della riga. La resistivita' del metallo e' infatti tipicamente 100 volte piu' piccola di quella del poly. Si usa il termine inglese di 'strapped word line' per indicare una tale tecnica di diminuzione della resistenza della riga. Un array di tali celle di SRAM e' ottenuto con particolari accorgimenti allo scopo di avere uguali carichi capacitivi su BLT e BLF. Infatti nella costruzione dell'array, una cella e' ottenuta dalla sovrastante per doppia rotazione, dell' asse orizzontale e dell'asse verticale. I collegamenti di massa (GND) sono organizzati in modo tale che due linee a potenziale 0V corrono parallelamente ad una coppia di BLT e BLF isolandala per gli accoppiamenti capacitivi dalle altre contigue. Il fatto che la tensione di alimentazione delle varie generazioni di circuiti sta diminuendo, introduce un ulteriore elemento di delicatezza nella progettazione e produzione delle celle SRAM. Infatti la stabilita' di una cella SRAM, definita come quel valore di tensione di disturbo applicato in serie alla coppia di inverters di una cella SRAM abilitata che non sia in grado di farla commutare (SNM = Static Noise Margin), diminuisce linearmente con il diminuire della tensione di alimentazione, fino a che la tensione di alimentazione sia sufficientemente maggiore della somma delle tensioni di soglia Vtn di un n-channel e Vtp di un p-channel, ma quando la tensione di alimentazione scende al di sotto di tale valore lo SNM degrada in modo vistoso e ben poco si puo' recuperare agendo sul rapporto delle dimensioni dei transistori di pilotaggio e di selezione. A regimi di tensioni di alimentazione inferiori a Vtn + Vtp influisce poi sulla stabilita' in modo sempre piu' vistoso il fenomeno di offset dei due inverters della cella SRAM dovuto ad una disuniformita' (mismatch) di prestazioni che si osserva in processi sub-micron tra due transistori che a livello di design si suppongono identici [4].

Array di celle e decodifiche

Lo schema a blocchi di un array di SRAM tradizionale (non segmentato) e' riportato in Fig. 3.

Fig. 3 - Array di SRAM: decodifica di riga e colonna

Le celle SRAM di un array sono organizzate in modo da avere in comune lo stesso segnale WL (riga) o la stessa coppia BLT-BLF (colonna). Quando una word line e' forzata a livello logico alto, tutte le celle di una riga vengono connesse alle rispettive BLT e BLF per una operazione di scrittura o di lettura e si dice che si sta attivando un accesso all'array. Prima di un accesso all'array tutte le BLT e BLF sono connesse all' alimentazione (precarica) e cortocircuitate tra loro affinche' siano il piu' possibile equipotenziali (equalizzazione) ad opera di un circuito chiamato con termine inglese 'bit lines precharge'. Un accesso all'array e' avviato da una logica di controllo demandata a disabilitare la precarica e ad abilitare la propagazione degli indirizzi di riga per mezzo di un unico segnale di sincronizzazione per la propagazione degli indirizzi di riga (ROW CLOCK). Solamente una WL sara' selezionata in corrispondenza alla particolare configurazione per l'indirizzo di riga (ROW ADDR). Durante un accesso all'array, BLT e BLF sono forzati ad assumere valori opposti, ad opera della cella SRAM in operazione di lettura (read) del contenuto della cella o ad opera di una apposita circuiteria di forzamento del contenuto della cella in caso di una operazione di scrittura (write). Un certo numero di colonne sono raggruppate insieme e afferiscono ad una comune struttura di multiplexer (MUX) demandata a selezionare una sola colonna del gruppo a seconda della particolare configurazione degli indirizzi di colonna (COL ADDR) e a costituire un'unica coppia di linee in uscita detta linea dei dati (Data line) che sara' anch'essa a struttura complementare : DLT e DLF. Per esempio, se si decide di dedicare 9 indirizzi per le righe sara' possibile avere un array da 256 righe, se poi si decide di dedicare 3 indirizzi per le colonne sara' possible avere multiplexer che possono selezionare 1 su 8 colonne e se il numero di bit in uscita deve essere di 16 l'array dovra' avere 128 colonne. Ogni linea dati afferisce ad una struttura per la scrittura o la lettura dei dati in uscita. Il circuito di scrittura (WR) e' costituito da driver in grado di forzare sulla linea dati valori complementari in funzione del valore del corrispondente bit di ingresso, quando il circuito di scrittura non e' abilitato (WEN e' off) i driver si trovano in situazione di 3-state e la linea dati non e' influenzata. Il circuito di lettura (SA = Sense Amplifier o sensamp) e' costituito da un latch progettato per commutare al giusto valore quando ai suoi ingressi DLT e DLF e' presente una minima differenza di tensione (DSA = Delta Sense Amplifier). L'istante di abilitazione alla lettura e' controllato da un signale di abilitazione (REN = Read ENable) e valori tipici per DSA, fissati con un certo margine di sicurezza, sono compresi tra 300 mV e 150 mV a seconda del processo, della tensione di alimentazione e della struttura del sense amplifier. Prima di un accesso in array le linee dati sono in situazione di precarica ed equalizzazione (segnale SEQ) analogamente a quanto avviene per le bit lines.

Logica di controllo self-timed

In Fig. 3 e' riportata una struttura chiamata colonna di riferimento o Dummy Bit Line (DBL). Tale struttura e' costituita da una colonna di SRAM con lo stesso layout delle celle regolari ma con i terminali WL e BLF connessi a massa in quanto le celle rappresentano solo una emulazione del reale carico per la BLT che in questo caso prende il nome di DBL. La DBL e' precaricata da una strutura analoga alla precarica delle altre bit lines ed e' scaricata a massa da una struttura di transistori ricavati dalle celle di SRAM che in questo caso prendono il nome di pull-down (PD). Aumentando il numero di pull-down, la DBL viene scaricata piu' rapidamente. La struttura di DBL e PD costituisce un riferimento temporale in base al quale si stabilisce quando effettuare una lettura e quando considerare finito un ciclo e iniziare una precarica. Tale riferimento temporale e' puramente interno ed ha una durata stabilita a partire da un fronte di un segnale esterno di inizio ciclo detto strobe (STRB) come riportato in Fig. 4. Il numero di pull-down e' stabilito in modo tale che : 1) una operazione di scrittura venga correttamente eseguita nella cella piu' lontana e nelle peggiori condizioni; 2) una operazione di lettura venga eseguita con la dovuta separazione tra BLT e BLF per la cella piu' lontana e nelle condizioni piu' svantaggiose. Il fatto di servirsi come riferimento temporale di strutture analoghe ad una WL e ad una BL fa in modo che il riferimento temporale sia sempre adeguato alle prestazioni che si vogliono ottenere, in qualsiasi condizione di tensione di alimentazione, temperatura e processo. Per esempio, se si e' trovato un numero di pull-down che garantisce una lettura con una separazione BLT-BLF di 150 mV per processo weak, alta temperatura, bassa tensione, un valore di separazione BLT-BLF abbastanza simile si otterra' per processo strong, bassa temperatura e alta tensione, in quanto se tutto il chip diventa in grado di scaricare piu' velocemente le BLT,BLF anche la struttura di PD e' in grado di scaricare piu' velocemente la DBL e quindi il riferimento temporale si accorcia e il sensamp potra effettuare letture con una separazione sempre abbastanza prossima a 150 mV. Una memoria SRAM organizzata in modo da avere un tempo di riferimento interno che ne stabilisce l'abilitazione all'accesso e la fine del ciclo si dice auto temporizzata o self-timed.

Fig. 4 - Schema a blocchi della logica di controllo self-timed.

Lo schema a blocchi della logica di controllo per la gestione dell'autotemporizzazione e' riportato in Fig. 4. Il segnale esterno di strobe viene filtrato per rilevarne il solo fronte positivo. L'impulso associato al fronte positivo costituisce il SET di un flip-flop (FF) la cui uscita LT definisce la durata di un ciclo. Il segnale LT inibisce i LATCH degli indirizzi (ADDR) di riga e colonna e dei segnali esterni di controllo di read (R) e write (W) durante un accesso in memoria per poi farli tornare trasparenti a ciclo concluso e permettere l'assestamento interno di ADDR, R, e W prima dell'inizio del ciclo successivo. Quando il segnale LT e' alto vengono inibite le operazioni di precharge delle bit lines e delle data lines e viene abilitata la WL selezionata e si da inizio all'azione dei pull-down. Quando la DBL e' stata scaricata dai pull-down si effettua il RESET del flip-flop di STRB, si da inizio ad una operazione di scrittura o di lettura a seconda se e' alto R o W e dopo opportuno ritardo si inizia l'operazione di precarica ed equalizzazione per riportare il chip nelle condizioni iniziali per poter iniziare un nuovo ciclo di accesso.

Array segmentati per bassi consumi

Prima di un accesso all'array le linee BLT e BLF di di tutte le celle devono essere equalizzate e precaricate. Una tale operazione implica un notevole consumo di potenza. Allo scopo di ridurre il consumo di potenza durante questa fase di equalizzazione e precharge e' stata individuata una struttura di array diversa da quella di Fig. 3. Tale nuova struttura, riportata in Fig. 5, prende il nome di SRAM ad array segmentati ed e' ormai divenuta uno standard nella progettazione di memorie SRAM [5].

Fig. 5 - Array di SRAM segmentati.

Tutte le celle di SRAM di una riga sono divise in gruppi (segmenti) ognuno dei quali ha una sua abilitazione di riga chiamata non piu' word line ma local word line (LWL) per mettere in evidenza che essa e' relativa a quel solo segmento. In un array segmentato, le linee per l'indirizzo di colonna sono organizzate per abilitare un unico segmento, lasciando gli altri inattivi. Per questo motivo gli indirizzi di colonna sono piu' propriamente chiamati indirizzi di segmento (SEG ADDR). Il consumo di potenza per equalizzare e precaricare le bit lines puo' essere notevolmente ridotto in quanto le bit lines dei segmenti non selezionati, non essendo acceduti, rimangono equalizzate e precaricate. Solamente una LWL alla volta verra' selezionata a seconda della particolare configurazione di SEG ADDR e di un segnale detto global word line (GWL) che e' comune a tutte le LWL nella stessa posizione fisica in diversi segmenti. Una particolare GWL verra' attivata in corrispondenza ad una determinata configurazione di ROW ADDR e quando il comune segnale di controllo ROW CLOCK sara' a livello alto. Tutte le colonne del segmento selezionato saranno connesse a tutte le data lines (DLT0-DLTN; DLF0-DLFN) tramite strutture di CMOS pass gates (PASS) mentre le colonne dei segmenti non selezionati saranno tutte disconnesse dalle data lines. Se il modulo di SRAM ha un bus dati a 16 componenti, il numero di colonne in un segmento sara' 16. Il rapporto tra il numero totale di colonne nell'istanza e il numero di componenti del data bus si chiama column mux ratio e rappresenta il numero di segmenti in cui e' stata partizionata l'istanza di memoria. Ogni segmento avra' la sua struttura di dummy bit line e pull-down. Solo la DBL del segmento selezionato verra' connessa ad una comune DBL collegata alla logica di controllo self-timed. Se si fa riferimento ad una istanza di SRAM di 512 GWL, 256 colonne, organizzata in 16 segmenti, si puo' stimare che il consumo di potenza rispetto alla corrispondente versione non segmentata e' di 1/5 mentre l'incremento di area per l'introduzione della segmentazione e' del 15%.

Ridondanza in array segmentati

Una struttura di ridondanza in grado di riparare 2 righe e due colonne e' ritenuta molto soddisfacente anche per istanze di SRAM di grandezza superiore a 128 kbit. E' inoltre ritenuto necessario introdurre una struttura di ridondanza quando la quantita' totale di SRAM in un chip e' superiore a 500 kbit. Il DSP Texas Instruments LC 548 e' un esempio tipico. Esso contiene 512 kbit di SRAM in totale, divisa in 3 istanze da 128 kbit e 4 istanze da 32 kbit. L'introduzione della ridondanza ha provocato un incremento totale dell' area del DSP stimabile intorno al 3% ma il recupero di resa che ne deriva e' notevolmente vantaggioso anche nella fase di maturita' del processo produttivo.

Ridondanza di riga in SRAM con array segmentati

La ridondanza di riga in SRAM con array segmentati e' riportata in Fig. 6 ed e' composta dalle seguenti parti: 1) un blocco ROW FUSES [6] per rilevare se ogni singola componente della parte di riga del bus di indirizzi corrisponde ad un fusibile fuso o no; 2) un blocco DECODE per combinare le informazioni relative alle varie componenti dell'indirizzo di riga e generare un unico segnale di controllo RREN (Row Redundancy Enable); 3) una struttura di local word line ridondante simile alla local word line non ridondante; 4) una struttura di global word line ridondante simile alla global word line non ridondante.

Fig. 6 - Ridondanza di riga in array segmentati.

La struttura di local word line ridondante e' abilitata dalla stessa decodifica di segmento della local word line non ridondante e da una global word line ridondante (RGWL); la local word line che ne risulta e' chiamata local word line ridondante (RLWL). La RGWL e' abilitata dal segnale ROW CLOCK, comune a tutte le global word lines non ridondanti, e dal segnale RREN generato dalla logica di decodifica dei fusibili. Le global word lines non ridondanti sono invece inibite dal segnale RREN di decodifica dei fusibili. Se il valore del bus degli indirizzi di riga corrisponde allo stato dei fusibili, fusi per un particolare indirizzo in cui c'e' un guasto, il segnale RREN e' alto: la riga ridondante e' attivata mentre le righe non ridondanti sono tutte inibite. Se il valore del bus degli indirizzi di riga non corrisponde allo stato dei fusibili, il segnale RREN e' basso: la riga ridondante e' inibita e la particolare riga indirizzata e' abilitata. Una attenzione particolare va posta nell'effettuare layout e progettazione della ridondanza di riga per minimizzare l'inevitabile incremento del tempo di set-up dell'indirizzo di riga rispetto allo strobe. La logica di decodifica dei fusibili e l'effetto del segnale RREN hanno loro tempi di propagazione che vanno mantenuti il piu' possibile prossimi ai tempi di propagazione delle decodifiche di riga non ridondanti.

Ridondanza di colonna in SRAM con array segmentati

L'architettura di SRAM con array segmentati ha un bus interno di linee dati con un numero di componenti uguale al bus dati esterno. Per introdurre la ridondanza di colonna, tale bus interno deve essere incrementato di due linee RDLT (Redundant Data Line True) e RDLF (Redundant Data Line False) a formare la componente di bit ridindante (RBIT) come riportato in Fig. 7.

Fig. 7 - Ridondanza di colonna in SRAM con array segmentati

L'array deve essere incrementato di una colonna che fungera' da elemento di memorizzazione dei bit ridondanti. Tale colonna e' strutturalmente uguale a quelle non ridondanti tranne che per il fatto che essa non e' associata ad un particolare segmento ma e' in grado di sostituire qualsiasi colonna in qualsiasi segmento. Il fatto che la colonna ridondante non e' associata ad un particolare segmento si ottiene con due accorgimenti circuitali: 1) I transistori di accesso delle celle SRAM nella colonna ridondante sono connessi a global word lines; 2) le BLT e BLF della colonna ridondante non sono collegate alle corrispondenti data lines tramite pass gates di segmento ma sono collegate direttamente. Questo ultimo accorgimento permette anche di recuperare in tempo di propagazione in quanto le data lines ridondanti hanno un carico maggiore delle data lines non ridondanti. I sensamp e i circuiti di scrittura non sono piu' direttamente collegati alle data lines ma sono connessi ad una circuiteria di commutazione che permette di effettuare la connessione alla data line corrispondente al bit in questione o alla data line ridondante. Lo stato della commutazione e' determinato da una struttura di un singolo fusibile (FUSE BIT). Una logica di controllo e' demandata ad effettuare un confronto fra il valore degli indirizzi di segmento e lo stato dei fusibili corrispondenti ad un particolare segmento in cui si trova una colonna che fallisce; se il confronto e' positivo viene posto un valore alto sul segnale CREN (Column Redundancy Enable). Se CREN e' alto e il FUSE BIT e' fuso, la pass gate ridondante del corrispondente bit e' abilitata e quella non ridondante e' inibita. Particolare cura di design e layout va posta nella stuttura di ridondanza di colonna perche' l'aggiunta di un ulteriore livello di pass gate tra le colonne non ridondanti e le strutture di lettura e scrittura fa in modo che le performance della SRAM possono risultare degradate. Infatti se si impone un tempo fisso per la lettura (REN) , nella versione non ridondante si avranno letture con DSA minori. Se invece si allunga l'intervallo di tempo per la lettura in modo da avere il desiderato DSA, il tempo di ciclo si allunga di conseguenza. Valori tipici indicativi di questa degradazione di performance sono 40 mV di decremento di DSA oppure 0.5 nSEC di incremento del tempo di ciclo.

Circuiti di sensing [7]

Fig. 8 - Circuiti di sensing

In Fig. 8a e' riportato lo schema di un sensamp ad alte prestazioni per SRAM. Esso e' un latch in cui le BLT e BLF afferiscono a gates di transistori a canale n (MN1,MN3). Le bit lines dell'array sono quindi isolate dalla circuiteria di sensing che viene vista dall'array come un puro carico capacitivo. Prima dell'inizio di un ciclo di lettura i nodi interni SAT e SAF si trovano precaricati da apposita circuiteria al livello di alimentazione. Quando inizia un accesso lettura, i circuiti di precarica vengono disattivati e BLT, BLF iniziano a separarsi. Quando tale separazione e' ritenuta sufficiente a far commutare con sicurezza il sense amplifier, il segnale di abilitazione alla lettura RENT viene generato ed il circuito commuta. OUTT si trovera' al livello alto se il livello di BLT era maggiore di quello di BLF. Un punto molto delicato per un sensamp e' costituito dalla determinazione del giusto valore per DSA poiche' da questo dipende poi il tempo totale di un ciclo di lettura. Il DSA dipende dalla particolare tecnologia usata e dal particolare schema di sense amplifier considerato. Per poter correttamente funzionare, un sense amplifier deve essere perfettamente simmetrico dal punto di vista di layout rispetto ai segnali BLT e BLF in modo tale che differenze BLT-BLF oppure BLF-BLT di uguale valore assoluto vengano trattate allo stesso modo. Purtroppo tale simmetria di layout non e' sufficiente perche' non si riesce comunque a garantire che transistori che devono comportarsi allo stesso modo abbiano uguali caratteristiche elettriche. Il parametro piu' critico da questo punto di vista e' la tensione di soglia Vt dei transistori; MN2 ed MN4 devono avere la stessa Vt come pure MP1 ed MP2 (Transistori accoppiati). La differenza di Vt nei transistori accoppiati si traduce nel fatto che il sensamp puo' commutare solo se la differenza tra BLT e BLF ammonta ad un certo valore. Si dice che il sense amplifier presenta un offset di ingresso. Differenti schemi di sense amplifier sono poi sensibili in modo diverso ad una stessa differenza di Vt. Man mano che la tecnologia diminuisce la sua minima risoluzione litografica , la deviazione standard (DVt) di Vt aumenta e la tensione di soglia diventa un parametro sempre piu' critico [4]. Si valuta che la deviazione standard per Vt aumentera' da 20 mV per una tecnologia 0.35 um a 30 mV per una tecnologia 0.10 um. Il sense amplifier di Fig. 8a presenta un degrado delle sue caratteristiche quando si riduce la tensione di alimentazione VDD. Per VDD = 3 V si ha che DSA/DVt = 2 e quindi imponendo DSA = 150 mV si riecono ad assorbire tutte le possibili variazioni di Vt; per VDD = 2-3 V pero', si ha DSA/DVt = 10 e quindi anche imponendo DSA = 150 mV si riesce ad assorbire solo le variazioni di Vt fino a 15 mV. Lo schema di Fig. 8a ha poi una limitazione intrinseca al diminuire della VDD; per valori di VDD dell'ordine di 1 V o inferiori, il sense amplifier smette di funzionare. Il sensamplifier riportato in Fig. 8b rappresenta una evoluzionedi quello di Fig. 8a; esso infatti funziona fino a VDD = 0.8 V e per VDD nel range 3-1 V si ha DSA/DVt = 1.5, il che significa che imponendo DSA = 80 mV si riescono ad assorbire DVt fino a 60 mV. Il sense amplifier di Fig. 8b e' chiamato cross-couple sense amp ed e' largamente usato nei circuiti di lettura di DRAM e SRAM. Una delle caratteristiche principali di questo sense amplifier e' il modo in cui le bit lines si connettono ai nodi interni. Tale connessione e' effettuata tramite due transistori di accesso MP3 ed MP4. Sebbene cio' presenta il vantaggio di una connessione diretta del segnale, e' necessario disconnettere i segnali di ingresso prima di una lettura. Cio' e' richiesto per evitare che la corrente fluisca indietro dal sense amplifier a linee ad alta capacita' con consumo di potenza e rallentamento della commutazione. La temporizzazione per il segnale SAEF di disconnessione e' critica e puo' creare problemi con l'iniezione di noise al momento della disconnessione.

Menzione

Gli autori dell'articolo vogliono menzionare il nome di tutti gli altri membri del team che hanno contribuito al successo di tutti i moduli di SRAM embedded progettati nel dipartimento di ricerca e sviluppo della Texas Instruments di Avezzano e che si sono occupati del disegno del layout: Domenico Berardi, Gennaro Marotta, Mario Olivieri e Guido Salvi. E' stato poi fondamentale il supporto di colleghi di altre sedi della Texas Instruments: Bob Fleck (Dallas), Masahiro Fusumada (Tokyo), Jason Jones (Houston), Luat Pham (Houston), Bob Strong (Dallas).

Bibliografia

[1] B. Chappel, S. E. Shuster, G. A. Sai-Halasz.
    Stability and SER analysis of static RAM cells.
    IEEE Transactions of Electron Devices, Vol. 32, pp.463-470, 
    February 1985.
[2] K. J. O'Connor.
    A Source Sensing Technique Applied to SRAM Cells.
    IEEE Journal of Solid-State Circuits, Vol. 30, NO. 4, pp. 500-511, 
    April 1995.
[3] E. Seevinck, F. J. List, J. Lohstroh.
    Static noise margin analysis of MOS SRAM cells.
    IEEE Journal of Solid-State Circuits, Vol. 22, pp. 748-754, 
    October 1987.
[4] D. Burnett et al.
    Implications of Fundamental Threshold Voltage Variations for 
    High-Density SRAM and Logic Circuits.
    Symposium on VLSI Circuits Digest of Technical Papers. pp. 15-16, 
    April 1994.
[5] T. Hirose et al.
    A 20-ns 4Mb CMOS SRAM with Hierarchical Word Decoding Architecture.
    IEEE Journal of Solid-State Circuits, pp. 1068-1074, October 1990.
[6] G. Naso, D. Chindamo, R. Fleck, L. Pham, M. Mancinelli.
    Row and Column Redundancy for embedded Static RAM's organized by 
    segments.
    US patent. Registrato nel 1996. Texas Instruments: TII 23889.
[7] Hiep Tran.
    A Study on Low Power Design Techniques for a Low Voltage SRAM.
    Texas Instruments internal report - December 1994.
    TREK - Technical Report Server. http://trek.corp.ti.com 
    (Texas Instruments Intranet)
Biografie degli autori

Domenico Chindamo si e' laureato in Ingegneria Elettronica nel 1988 presso l'Universita' di Roma "La Sapienza". Subito dopo ha iniziato a lavorare per Texas Instruments Italia in qualita' di DRAM Customer/Product Engineer nella divisione Mos-Memory europea, con il compito di effettuare la qualificazione del nuovo wafer fab di Avezzano presso i maggiori clienti europei. Nel 1992 ha iniziato la sua attivita' di System Design Engineer presso la divisione di Ricerca e Sviluppo partecipando al progetto Solid State Disk collaborando all'inizio allo sviluppo della parte FPGA/ASIC e PC board ed in seguito alla parte di messa a punto in produzione. Dal 1995 e' membro, in qualita' di IC Design Engineer, di numerosi progetti di FLASH e SRAM per applicazioni Embedded.

Marco Mancinelli si e' laureato in Fisica nel 1988 presso l'Universita' degli Studi di Roma "La Sapienza". Dal 1988 al 1989 e' stato titolare di una cattedra di Elettronica Generale presso l'I.T.I. "J. C. Maxwell", Roma. Dal 1989 al 1990 ha lavorato con la qualifica di Mfg. Engineer presso il wafer fab AMOS1 della Texas Instruments Italia S.p.A. Dal 1990 al 1992 Marco Mancinelli ha lavorato presso il reparto R&D della societa' I.R.I.S. srl come progettista di Circuiti ASIC per applicazioni musicali. Nel 1992 ha iniziato la sua attivita' in Texas Instruments come progettista di Circuiti Integrati presso il dipartimento di Ricerca e Sviluppo prima nella divisione Consumer e poi nella divisione Semiconduttori dove attualmente lavora.

Giovanni Naso si e' laureato con lode in Ingegneria Elettronica presso l'Universita' di Roma nel 1983. Dal 1984 al 1987 ha lavorato nel settore Automazione Impianti presso la Videocolor-Thomson. Nel 1987 ha iniziato il suo lavoro presso il dipartimento di ricerca e sviluppo della Texas Instruments Italia. E' stato assegnato per due anni al dipartimento di progettazione di Memorie Non Volatili di Houston per lo sviluppo di memorie FLASH EEPROM. Nel 1991 e' stato membro di un team per la progettazione di memorie Multiplexed EPROM per applicazioni automotive. Dal 1992 al 1994 e' stato membro di un team per la progettazione di memorie di quadro per la televisione ad alta definizione. Attualmemte e' team leader di un gruppo di progettazione di memorie Embedded SRAM per applicazioni DSP.

Giulio Porrovecchio si e' laureato in Fisica presso l'Universita' di Roma 'La Sapienza' nel 1974. Dal 1975 al 1978 ha lavorato come progettista di sistemi di controllo presso il Dipartimento di Fotogrammetria Analitica della O.M.I. - Ottico Meccanica Italiana SpA di Roma. Dal 1978 al 1979 presso la M.S.E. - Micro Systems Engineering Srl di Rieti come progettista di applicazioni a microprocessori. Dal 1980 e' entrato a far parte del Dipartimento di Ricerca e Sviluppo della Texas Instruments Italia SpA, dove ha lavorato nella progettazione di applicazioni per microcontrollori, circuiti integrati Semicustom (ASIC & Standard Cells) e Full Custom nei vari settori professionali (Telecom, Security, Automotive) e consumer (Strumenti Musicali, Pay-TV Decoders, Telephone Cards). Dal 1990 al 1994 e' stato responsabile della progettazione di Non-Volatile Application Specific Memories per Automotive e dal 1995 ad oggi di Embedded Memory Modules (ROM, SRAM, EPROM, FLASH) per Microcontrollori (MCU) e processori Digitali di Segnale (DSP).


Due livelli indietro alla mia home page

Un livello indietro alla pagina degli articoli

* Last update: 15 Novembre 1996 *