-
Capitolo IVMemorie e logiche programmabili
151
Capitolo IVMemorie e logiche programmabili.
4.1) Introduzione.
Un peso notevolissimo nel campo dell’integrazione a larga scala
e’ ricoperto al giorno d’oggidalle memorie, che rappresentano
attualmente circa i due terzi della totalita’ dei circuiti
integratiprodotti. Ancora oggi si assiste ad un continuo aumento
del numero di bit disponibili sul singolochip, che
approssimativamente quadruplica ogni tre anni.
Stranamente sulle memorie a semiconduttore non esiste
quell’ampiezza di informazione checi si potrebbe aspettare per
componenti che rivestono una cosi’ grande importanza.
Probabilmentetale situazione prende origine, a differenza dei
circuiti SSI e MSI, da considerazioni dicompetitivita’ tra le
industrie produttrici, che non hanno alcun interesse a divulgare
informazionitroppo dettagliate sui loro prodotti.
4.2) Classificazione delle memorie.
Le memorie a semiconduttore sono dispositivi elettronici
costituiti da un insieme di celleelementari, ciascuna delle quali
e’ in grado di immagazzinare un’informazione binaria. Questoinsieme
di celle elementari e’ dotato di apposite linee di comunicazione
che permettono di accedereal singolo dato.
Le memorie possono essere classificate sotto diversi punti di
vista. Ad esempio esse possonovenire identificate a livello di
sistema a seconda del tipo di accesso che consentono. Si parla
alloradi memorie ad accesso sequenziale o di memorie ad accesso
diretto (dette spesso in modo improprioad accesso casuale). Nel
primo caso i dati vengono accodati l’uno rispetto all’altro in fase
discrittura, mentre in fase di lettura l’organizzazione della
memoria e’ tale che il primo dato leggibilesia quello che e’ stato
scritto per primo (in questo caso si parla di memorie first in –
first out oFIFO). Oppure puo’ avvenire che il primo dato leggibile
sia l’ultimo scritto e in tal caso si parla diorganizzazione a pila
(o a stack). Vi possono essere poi ancora altre organizzazioni, ma,
comunquesia, nelle memorie ad accesso sequenziale per recuperare un
dato e’ necessario scorrere tutti i datiche in fase di lettura
precedono quello voluto.
Molto spesso tuttavia risulta necessario poter accedere
direttamente ad un particolare dato;tale operazione e’ appunto
possibile nelle memorie ad accesso diretto, nelle quali attraverso
unindirizzo si puo’ direttamente individuare l’informazione
desiderata. Nelle memorie ad accessosequenziale l’indirizzo non e’
necessario, o meglio e’ implicito.
E’ opportuno tuttavia notare che esistono metodi di accesso piu’
complessi di quelli citati. Adesempio esistono le memorie ad
accesso multiplo (il piu’ delle volte doppio), in cui esistono
piu’canali di accesso in modo da renderle disponibili a piu’
processi contemporaneamente, rendendo lamemoria una risorsa
condivisa.
Rimanendo nell’ambito delle memorie ad accesso casuale una prima
grande suddivisione e’quella che divide le memorie in quelle di
lettura e scrittura (RAM – random access memory) e inquelle a
prevalente lettura (ROM – read only memory). Nelle prime un dato
puo’ essere scritto eletto in qualsiasi cella, con un tempo di
accesso che e’ praticamente lo stesso sia che l’operazionesia di
scrittura che quando l’operazione e’ di lettura. Nelle seconde
l’operazione normale e’ soloquella di lettura poiché quella di
scrittura o non e’ permessa o richiede un tempo molto piu’ lungoche
non quella di lettura. Un vantaggio delle ROM tuttavia risiede nel
fatto che l’informazione siconserva anche quando l’alimentazione
viene a mancare, a differenza delle RAM in cuil’informazione viene
persa. Per tale motivo le ROM vengono anche chiamate memorie non
volatili.
Per la verita’ esistono anche RAM non volatili, ottenute con
opportuni espedienti; ad esempiole ZRAM (zero power RAM) utilizzano
batterie tampone per mantenere alimentati i dispositivi
-
Capitolo IVMemorie e logiche programmabili
152
anche in fase di assenza dell’alimentazione primaria, o ancora
le informazioni vengono duplicate suuna memoria non volatile in
modo da poterle ripristinare quando necessario oppure si
sfruttanoopportuni fenomeni quali l’isteresi ferroelettrica per
ottenere una memorizzazione permanente.
In ogni caso una suddivisione di massima delle memorie ad
accesso diretto e’ riportata intabella 4.1, nella quale, a titolo
orientativo e’ riportata anche la tecnologia con cui ciascun tipo
dimemoria viene realizzato.
TABELLA 4.1
------- dinamiche MOSRAM
------- statiche MOS e bipolari
------- a maschera MOS------- PROM bipolari
ROM------- EPROM MOS------- EEPROM MOS
• E’ opportuno tuttavia accennare ad alcune delle
caratteristiche piu’ importanti dei vari tipi diROM.
• ROM a maschera. Sono memorie a sola lettura nelle quali i dati
vengono immagazzinatimediante un opportuno processo di mascheratura
durante la fabbricazione. L’utente all’attodell’ordinazione deve
specificare con un’opportuna codifica tutta l’informazione che
devevenir scritta nella memoria. La struttura fisica del componente
e’ particolarmente semplicee l’organizzazione di tale tipo di
memoria e’ sempre a matrice. In commercio si possonotrovare ROM a
maschera con diversi gradi di parallelismo, di cui i piu’ comuni
sonocomunque 4 e 8.
• PROM o ROM programmabili. Sono anch’esse memorie a sola
lettura in cui tuttavia i dativengono inseriti dall’utente finale.
La scrittura di un dato avviene o per fusione di
opportunicollegamenti o con la perforazione di una giunzione. Il
dato, una volta scritto, non puo’essere un alcun modo cancellato.
Vantaggio sostanziale rispetto alle ROM a maschera e’l’eliminazione
dei tempi di attesa tra ordinazione e consegna della ROM, malgrado
che illoro costo unitario sia superiore. E’ tuttavia necessario
tenere presente che la produzione diROM a maschera non e’
economicamente conveniente per quantitativi inferiori al migliaiodi
pezzi.
• EPROM. Sono memorie a prevalente lettura, utilizzate quando
siano necessarie memorienon volatili, ma in cui i dati memorizzati
possano venire di volta in volta modificati. Inquesto casi i dati,
scritti con mezzi elettrici, possono venire cancellati, rendendo la
memorianuovamente disponibile, con l’esposizione del chip a
radiazione ultravioletta attraversoun’apposita finestra in vetro di
quarzo.
• EEPROM. Sono memorie molto simili alle EPROM, ma la
cancellazione di un dato vieneeffettuata elettricamente,
permettendo di mantenere il dispositivo nel sistema in cui
e’installato. Le operazioni di scrittura tuttavia sono normalmente
molto piu’ lente che nonquelle di lettura. Dal punto di vista
dell’impiego e delle terminazione EPROM e EEPROM
-
Capitolo IVMemorie e logiche programmabili
153
sono del tutto analoghe alle ROM e alle PROM. Per alcuni modelli
addirittura esiste conqueste ultime una completa compatibilita’ sia
elettrica che meccanica (compatibilita’ pin topin).
4.3) Struttura base di una memoria.
Una memoria e’ essenzialmente costituita delle seguenti
parti:
una matrice di celle; un decodificatore di indirizzo un circuito
di controllo di ingresso e di uscita.
In memorie di piccole dimensioni, ad esempio in memorie da 16
celle, il circuito diindirizzamento puo’ essere realizzato con un
semplice selettore (linear select), come illustrato infigura
4.1.
1
16
M M
M
1 4
16
figura 4.1
E’ opportuno notare in questa struttura circuitale la
complessita’ dovuta alla presenza dei 2ncollegamenti elettrici
necessari all’abilitazione delle singole celle. Tale complessita’
inoltreaumenta esponenzialmente al crescere del numero n di bit di
indirizzo.
Una valida alternativa e’ l’indirizzamento a matrice illustrato
in figura 4.2 (coincident select).
-
Capitolo IVMemorie e logiche programmabili
154
1
4
1 4
M
M
1
4
Selettoredi
riga
Selettore di colonna
figura 4.2
Si ottiene in tal modo una notevole semplificazione della rete
dei collegamenti. Si puo’ritenere pertanto che, tranne per memorie
di minime dimensioni, la struttura di base sia quella difigura
4.3.
Decodificatore di colonna
Circuito di controllo I/O DDin out
cella di memoriaDecodificatore
di
riga
matrice dicelle
linea di parola
lineadei dati
indirizzo diriga
indirizzo di colonna
figura 4.3
Il decodificatore di riga seleziona un’intera riga di celle. I
dati immagazzinati nelle celleconnesse con la riga selezionata sono
trasferiti al circuito di controllo di ingresso e uscita. A
questopunto il dato che interessa viene trasferito all’uscita
selezionandolo con il decodificatore di colonna.
-
Capitolo IVMemorie e logiche programmabili
155
Ogni dispositivo di memoria possiede almeno i seguenti
segnali:
Indirizzo (address) composto dai segnali da applicare ai
decodificatori. All’utente non e’normalmente possibile distinguere
tra i bit di selezione di riga e di colonna. L’indirizzodeve
pertanto essere considerato come un tutto unico.
Lettura/scrittura (read/write). E’ presente ovviamente solo
quando necessario e permettedi scegliere tra un’operazione di
scrittura o una di lettura in o da una determinata cella.
Selezione di chip (chip select) che permette o no di abilitare
la memoria in questione.Tale segnale si rende indispensabile quando
si vogliano realizzare memorie di grandidimensioni, superiori a
quelle del singolo chip, oppure quando memorie accedono assiemead
altri dispositivi allo stesso bus per il trasferimento dei
dati.
Segnali di ingresso e di uscita (I/O). In certe realizzazioni le
linee su cui viaggiano talisegnali possono coincidere.
Alimentazione (supply). Alcune realizzazioni, quali EPROM e
EEPROM possonorichiedere piu’ di una tensione di alimentazione,
tuttavia nella maggior parte dei casi e’sufficiente un’unica
tensione.
La combinazione di tutti questi segnali organizza il dispositivo
di memoria. Piu’ matrici deltipo descritto possono poi essere
utilizzate per accedere ad informazioni di lunghezza superiore
albit. Si avranno ovviamente tante linee di I/O quanti sono i bit
di informazione cui si vuol accederecontemporaneamente. Si parla in
tal caso di parallelismo della memoria, intendendo con taletermine
il numero di bit per parola, dove parola e’ l’insieme di bit cui si
accedecontemporaneamente con un unico indirizzo. Nelle memorie
standard il grado di parallelismo e’ disolito una potenza di 2.
4.4) Struttura della cella di memoria RAM.
Prima di descrivere i principi di funzionamento di una memoria
RAM e’ opportuno accennarealle regole fondamentali cui bisogna
attenersi nel progetto di una cella di memoria.
1) Una cella di memoria deve occupare sul chip la minima
superficie possibile.2) I processi di fabbricazione per la sua
realizzazione devono essere i piu’ semplici possibile.3) Le
operazioni di lettura e scrittura devono essere le piu’ rapide
possibile.4) La potenza dissipata va minimizzata
I primi due punti sono di carattere prevalentemente economico,
mentre gli ultimi dueriguardano le prestazioni del dispositivo.
Le memorie RAM si suddividono poi in memorie bipolari e MOS,
statiche e dinamiche. Lememorie bipolari sono piuttosto rare, di
capacita’ ridotta, e vengono utilizzate solo in quelleapplicazioni
in cui sono richieste elevate velocita’ di accesso. La distinzione
tra dispositivi statici edinamici e’ gia’ stata illustrata in
precedenza, tuttavia nel caso delle memorie tale distinzione
siriflette anche in profonde modificazioni strutturali e di
impiego.
4.4.1) Struttura di una cella RAM statica.
Una possibile configurazione di una cella RAM statica e’
riportata in figura 4.4. Il cuore dellacella e’ un semplice
circuito bistabile che comunica con le linee dati attraverso buffer
3-state. Talibuffer, rispettivamente di lettura e di scrittura sono
controllati da due porte AND al cui ingressosono applicati i
segnali di selezione di riga e di colonna e quello di read/wite
(R/W).
-
Capitolo IVMemorie e logiche programmabili
156
Quando sia X che Y sono a livello basso ambedue le uscite degli
AND si trovano a livellobasso e pertanto i quattro buffer 3-state
risultano disabilitati.
DATA
DATA
read buffer
read buffer
connessione wired OR
write buffer
write buffer
R/WY
X
figura 4.4
Quando invece X, Y e R/W passano allo stato alto risultano
abilitati i write bufferpermettendo un’operazione di scrittura
nella cella; cambiando lo stato della linea R/W sidisabilitano i
write buffer mentre vengono abilitati i buffer di lettura. Il
valore contenuto nella cellaviene in tal caso trasferito alle linee
dati.
Realizzare una memoria RAM utilizzando la cella appena descritta
risulta molto semplice. Infigura 4.5 e’ riportato lo schema di
interconnessione per una memoria da quattro celle (4 bit), per
laquale sono necessarie solo quattro porte in piu’ rispetto a
quelle necessarie alla realizzazione dellesingolo celle.
data in buffer data out buffer
DATA
DATA
DATA IN DATA OUT
R/W
R/W
X
X
0
1
Y Y0 1
Y YX X0 1
11
YX
YX0 0
10
R/W R/WDD
D D
D D
D DR/W R/W
figura 4.5
Un’osservazione piu’ attenta della cella proposta fa tuttavia
osservare che le esigenze diprogetto enunciate all’inizio del
presente paragrafo non sono sufficientemente rispettate. Infatti,
un
-
Capitolo IVMemorie e logiche programmabili
157
circuito costituito da otto porte (escludendo le connessioni
“wired-or” che non occupano spaziosignificativo), da cinque linee
di segnale e da almeno due linee di alimentazione non puo’
certoconsiderarsi efficiente in termini di superficie di silicio
occupata.
Un primo miglioramento si puo’ ottenere eliminando la necessita’
di una linea di R/W perogni cella secondo quanto illustrato in
figura 4.6. Le due porte AND a tre ingressi delle cellaoriginaria
si riducono ad un’unica porta AND a due ingressi che controlla sia
il buffer di lettura chequello di scrittura.
DATA
DATA
read buffer
read buffer
connessione wired OR
write buffer
write buffer
Y
X
figura 4.6
La lettura viene eseguita connettendo le linee DATA e DATA alle
linee di uscita della cella,mentre la scrittura si esegue forzando
sulle medesime linee i valori voluti.
La cella che cosi’ si ricava potrebbe gia’ essere accettabile,
ma un ulteriore livello disemplificazione puo’ essere raggiunto
eliminando la porta AND e riorganizzando la configurazionedella
memoria in modo tale che tutte le celle di una riga siano
parzialmente accessibili, mentre solola cella della colonna
selezionata lo sia totalmente. La nuova configurazione circuitale
e’ riportatain figura 4.7, mentre in figura 4.8 e’ riportato lo
schema completo di una RAM da quattro bit.
X
BIT (Y)V
V
BIT (Y)
dd
ss
figura 4.7
-
Capitolo IVMemorie e logiche programmabili
158
La cella cosi’ ottenuta e’ realizzata con soli sei transistori e
le linee di segnale si sono ridotte atre. E’ questa la struttura
tipo utilizzata nella maggior parte dei casi per realizzare memorie
RAMstatiche.
D D
X
D D
X
D D
X
D D
X
-+
X
X
Y Y
Data in
R/WCS DB
DB
Data bus
Data bus
Data out
Amplificatoredifferenziale
BIT BIT BIT BIT
0
1
0 1
R.W=0
figura 4.8
La costruzione di una memoria completa, che utilizzi la cella a
sei transistori, introduce alcuninuovi concetti e terminologie.
Significativa e’ la sostituzione delle linee dati con le cosiddette
“bitline” che alimentano tutte un bus dati comune. Le “bit line”
sono isolate dal bus dati da interruttoriMOS comandati
dall’indirizzo di colonna.
Il bus dati a sua volta e’ pilotato de una coppia di buffer
3-state durante la fase di scrittura,mentre in fase di lettura
comunica con l’esterno tramite un amplificatore differenziale e un
ulteriorebuffer 3-state. Il controllo della RAM e’ poi modificato
dalla presenza di un segnale di “chip select”(CS), che negli esempi
fatti in precedenza non era presente. Tale segnale si rende
necessario poiche’le RAM sono disposte in un sistema di memoria in
maniera matriciale come le celle checostituiscono la singola RAM e
i vari chip condividono lo stesso bus dati per trasmettere
leinformazioni. Ovviamente ad un dato istante deve venire
selezionato un unico chip, mentre gli altridevono essere
completamente ininfluenti sia per quanto riguarda i dati in
ingresso che quelli inuscita.
Si supponga, a titolo di esempio, di voler modificare il
contenuto della cella X0, Y1 da “0” a“1”.I segnali da applicare
alla memoria saranno allora X0, Y1 e CS alti, mentre X1 e Y0
dovrannoessere tenuti bassi. Con questa combinazione di valori
vengono attivati i buffer di ingresso con DBa livello alto e DB a
livello basso. Y1 chiude poi gli interruttori MOS della relativa
colonna, mentreX0 chiude gli interruttori MOS della riga relativa,
rendendo accessibile la cella X0, Y1.
Le “bit line” a questo punto si trovano in una situazione di
conflitto per effetto del datomemorizzato in precedenza nella
cella. Tuttavia un opportuno dimensionamento delle particomponenti
permette di far si’ che il nuovo dato prevalga, forzando la cella
nella nuova situazione.
Durante le operazioni descritte il segnale R/W, tenuto a livello
basso, mantiene il buffer diuscita disattivato, in modo che durante
il ciclo di scrittura il dato presente sul bus dati non
vengatrasferito in uscita.
-
Capitolo IVMemorie e logiche programmabili
159
Si noti che gli interruttori MOS della cella X0, Y0 sono
anch’essi chiusi e quindi il contenutodella cella viene trasferito
sulle “bit line” della colonna Y0. Tuttavia il valore basso di X1
impedisceun’interazione con la cella X1, Y0, mentre il livello
basso di Y0 impedisce il trasferimento del datodalle “bit line” al
bus dati.
In modo del tutto analogo puo’ essere compiuta l’operazione di
lettura.
4.4.2) Struttura di una cella RAM dinamica.
Una cella RAM dinamica si puo’ considerare derivata da quella
statica di figura 4.7, in cuituttavia sono stati eliminati i
transistori di carico. Il dato viene in questo caso memorizzato
nellecapacita’ parassite di gate, come e’ illustrato in figura 4.9
( a ). In questa situazione circuitale sitende pertanto a perdere
l’informazione se non si interviene con un’operazione di
riscrittura primache la tensione ai capi della capacita’ sia scesa
al di sotto di un determinato livello.Quest’operazione e’ detta
rinfresco (refresh) del dato.
linea di parola
linea dei dati (D)
T T
T TT
TT T
linea di parola (R)
linea di parola (W)
linea dei dati (W) linea dei dati (R)
linea di parola
linea dei dati linea dei dati (D)
1 2
3 42
1
3 1
(a) Cella a 4 transistori (b) Cella a 3 transistori (c) Cella a
1 transistore
figura 4.9
Nella cella a quattro transistori di figura 4.9 (a) tuttavia i
transistori T1 e T2 lavorano in modocomplementare e si e’ quindi in
presenza di una ridondanza di informazione.
Una cella ottenuta eliminando uno di questi transistori e’ la
cella a tre transistori di figura 4.9( b ). In fase di lettura il
dato e’ decodificato dallo stato del transistore T1, in conduzione
o meno inbase alla carica immagazzinata nelle capacita’ parassita
gate-source. Pertanto quanto T3 passa acondurre T1 controlla il
passaggio di corrente sulla linea dei dati ( R ) e funge quindi da
convertitoretensione-corrente.
Si puo’ tuttavia giungere ad una cella ancora piu’ semplice,
realizzata con un unicotransistore, come illustrato in figura 4.9
(c). L’operazione di lettura avviene in tal caso come segue:
In un primo tempo la tensione della linea dei dati viene portata
allo stato alto. Successivamente, quando T3 viene passa in
conduzione, alzando il livello di tensione della
linea di parola, un amplificatore a soglia (sense amplifier)
legge uno “0” o un “1” infunzione della variazione di tensione che
viene a verificarsi o meno sulla linea dei dati,come illustrato in
figura 4.10.
-
Capitolo IVMemorie e logiche programmabili
160
Tensione della linea dei dati
tempo
lettura di un "1"
lettura di uno "0"
T1 ON
attivazione delsense amplifier
figura 4.10
A queste operazioni segue evidentemente un refresh.
Ogni linea dei dati e’ collegata a un “sense amplifier” che
entra a far parte del circuito dicontrollo di figura 4.3. Per
ottenere elevate sensibilita’ e per questioni di stabilita’ il
“senseamplifier” e’ spesso realizzato in configurazione
differenziale.
4.4.3) Struttura di una memoria RAM dinamica.
A titolo di esempio in questo paragrafo verranno illustrati i
principi secondo i quali funzionauna semplice memoria RAM dinamica
da 4 bit, il cui schema e’ riportato in figura 4.11. Le formad’onda
dei segnali che controllano questo circuito sono illustrate in
figura 4.12.
V
Precarica
V
Precarica
X
X
C C C C
C C C C
refresh refresh
read read
V V
Tristate sense Tristate senseamplifier amplifier
Y
data bus
Y
readwrite
ingressodati
uscitadati
linee dei dati
rif rif
0
1
b s b s
b s b s
rif rif
figura 4.11
Si osservi che un ciclo, sia esso di lettura che di scrittura,
puo’ essere suddiviso in due periodidistinti, detti rispettivamente
periodo attivo e periodo di precarica. Durante il periodo
attivovengono eseguite le operazioni richieste, mentre durante il
periodo di precarica la memoria vienepreparata per le operazioni
successive. Durante quest’ultimo periodo, con riferimento alla
figura
-
Capitolo IVMemorie e logiche programmabili
161
4.11, non si fa altro che connettere le linee dei dati, tramite
i rispettivi interruttori MOS controllatidall’impulso di precarica,
alla tensione di riferimento Vrif, di valore intermedio tra i
livelli ditensione corrispondenti allo “0” e all’”1” logici. Alla
fine del periodo di precarica la linea dei dati sitrovera’ ad una
tensione che in pratica coincide con Vrif, poiche’ l’amplificatore
di refresh si trovanel suo stato ad alta impedenza.
CICLO DI LETTURA - Ingresso WRITE basso
indirizzi
precarica
READ
refresh
Uscita datidato valido
CICLO DI SCRITTURA - Ingresso READ bassoWRITE
Ingresso dati
periodo attivo precarica
figura 4.12
Appena terminato il periodo di precarica, le linee di indirizzo
selezionate si portano a livelloalto. La linea X fara’ condurre i
MOS delle due celle situate sulla medesima riga, connettendo
lecorrispondenti capacita Cs alle linee dati. Di conseguenza le
cariche della capacita’ Cs e dellacapacita’ Cb si ridistribuiscono
in modo che sulla linea dei dati si abbia una tensione pari a:
( )( )bS
rifbSSR CC
V.CV.CV++=
Tale tensione vie confrontata dal “sense amplifier” con Vrif e
quindi la rivelazione del datomemorizzato in ciascuna cella avviene
senza difficolta’. Il dato della colonna selezionata passa poisul
bus dati e, tramite il “data bus buffer”, passa al terminale di
uscita.
Se a questo punto il ciclo terminasse, i dati presenti nelle
celle lette risulterebbero fortementedegradati. La lettura cioe’
sarebbe di tipo distruttivo. Gli amplificatori di refresh ovviano a
teleinconveniente, ripristinando i corretti valori di tensione
nelle celle. E’ ovvio che tutte le celleaccessibili della stessa
linea devono venire rinfrescate contemporaneamente.
Si noti che nel ciclo di lettura, durante il periodo attivo,
l’indirizzamento termina prima diqualsiasi altro segnale, allo
scopo di proteggere i dati memorizzati, che potrebbero deteriorarsi
se
-
Capitolo IVMemorie e logiche programmabili
162
piu’ segnali commutassero contemporaneamente prima che le celle
vengano isolate dal resto delsistema.
L’operazione di scrittura e’ relativamente piu’ semplice. Il
segnale “write” abilita il buffer diingresso e il relativo dato,
attraverso l’amplificatore di refresh viene trasferito sulla linea
datiselezionata.
Si noti che ciascuna cella richiede solo due componenti, due
linee di segnale e una linea dialimentazione (quella di massa).
Inoltre in condizioni di riposo la cella non dissipa potenza.
Afronte di questi vantaggi si ha un aumento del tempo di accesso,
determinato dal periodo diprecarica e dalla necessita’ di
assicurare che ciascuna riga sia periodicamente indirizzata
perassicurare il refresh dai dati.
Oltre alla necessita’ di refresh e’ di considerevole importanza
l’istante di inizio delfunzionamento del “sense amplifier”. RAM
dinamiche veloci richiedono che il “sense amplifier”inizi a
funzionare il piu’ presto possibile; tuttavia anticipare troppo
l’inizio del funzionamentoriduce eccessivamente la distanza tra le
tensioni corrispondenti ai due stati logici sulle linee dati epuo’
dar luogo a fenomeni di instabilita’. La relazione ricavata per VR
vale, infatti, solo a regime.
La miglior temporizzazione e’ funzione di diversi fattori, quali
il rapporto tra la capacita’delle linee dati e quelle delle celle
di memoria., la sensibilita’ del “sense amplifier”, la
generazioneinterna di rumori e altre condizioni.
Le considerazioni sul rumore, molto importanti in quanto il
“sense amplifier” deve operare sulivelli di tensione abbastanza
bassi, portano a particolari geometrie nella disposizione delle
celle dimemoria, che tendono ad ottimizzare la velocita’ di
funzionamento e l’immunita’ al rumore. Non siritiene tuttavia utile
in questa sede approfondire l’argomento.
4.5) Esempio di utilizzazione di memorie ROM.
Nel presente paragrafo verra' esaminato l'impiego di memorie ROM
al fine di utilizzare unmonitor televisivo come display
alfanumerico. Il principio di funzionamento di tale sistema,
capacedi visualizzare 16 righe, ciascuna contenente un massimo di
64 caratteri, puo' essere visto conl'ausilio dello schema a blocchi
di fig. 4.13.
impulsoimpulso di riga
Contatore modulo 64
Memoria RAM da 64 x 16 parole da 6 bit
Contatore modulo 16
Generatore di
caratteri
Contatore modulo 11
Shift
register
Clock2
Clock1
Uscita video
load
reset
reset reset
reset
A
A
MM
MM
C C
Q
Q
P
P
B B D D
0
6
1
5
3 0 3 0
5 0
9 6
5 0
4
0
di quadro
figura 4.13
Ogni carattere sia separato da quello successivo da due spazi, e
ogni linea di caratteri siaseparata dalla successiva da quattro
spazi, come illustrato in fig. 4.14.
-
Capitolo IVMemorie e logiche programmabili
163
In tal modo, supponendo che ciascun carattere sia realizzato con
una matrice 5 x 7, l'effettivospazio riservato ad ogni carattere,
comprensivo dell'area di separazione tra caratteri e tra
righe,risulta essere di 7 x 11.
7
11
figura 4.14
L'intera pagina alfanumerica visualizzata venga poi prelevata da
una memoria RAM da 64 x16 = 1024 parole da 6 bit, in ciascuna delle
quali e' contenuto il codice del carattere da visualizzare.I bit di
indirizzo di questa memoria saranno pertanto 10 (M0-M9) di cui i
primi 6 (M0-M5)individuano la posizione sulla riga in cui
visualizzare il carattere, gli ultimi quattro (M6-M9) unadelle 16
righe costituenti la pagina. I 6 bit del dato (A0-A5), uscita della
parola indirizzata, vengonoinviati all'ingresso del generatore di
caratteri.
Il funzionamento puo' essere descritto nel modo seguente.
L'impulso di quadro azzera:
Il contatore modulo 64, necessario a indirizzare i 64 caratteri
che formano ciascuna riga.
Il contatore modulo 16 necessario ad indirizzare ciascuna riga
della pagina.
Il contatore modulo 11 utilizzato per la scansione delle sette
righe che costituiscono ciascuncarattere (ingressi R0, R1, R2 del
generatore di caratteri) e le quattro righe che costituisconola
spaziatura verticale.
L'impulso di riga e' inviato al contatore modulo 11 e al
generatore di clock (clock1) chefornisce un treno di 64 impulsi
all'ingresso del contatore modulo 64. Un secondo generatore diclock
(clock2), sincronizzato con il clock1, permette di serializzare,
utilizzando uno shift-register,l'uscita parallela (Q1,..,Q5) del
generatore di caratteri. Q1-Q5 sono i cinque bit che formano
unalinea del carattere e vengono inviati ai primi cinque ingressi
paralleli (P0, .., P4) dello shift-register,mentre gli ultimi due
ingressi paralleli (P5 e P6) vengono mantenuti costantemente a zero
in mododa realizzare la spaziatura orizzontale tra i diversi
caratteri della stessa riga. Pertanto per ogniimpulso fornito dal
clock1 si hanno 7 impulsi di clock2.
I sette bit presenti agli ingressi paralleli dello
shift-register vengono caricati nel registro stessocon un opportuno
ritardo in modo da evitare errori di caricamento per mezzo di un
segnale di "load"ricavato dal clock1.
Il contatore modulo 11 effettua il conteggio degli impulsi di
riga e fornisce i tre bit diindirizzamento B0, B1 e B2 agli
ingressi R0, R1 e R2 del generatore di caratteri, in modo da
-
Capitolo IVMemorie e logiche programmabili
164
individuare in sequenza, durante i primi 7 impulsi di ciascun
gruppo di 11 impulsi, le sette righe checostituiscono il carattere,
mentre durante i successivi quattro impulsi e' necessario
azzeraretotalmente lo shift-register, in modo da realizzare la
spaziatura verticale. E' necessario pertantorealizzare la semplice
funzione logica illustrata in fig. 4.15.
Stato del contatore B B B B Reset
0
1
2
3
4
5
6
7
8
9
10
3 2 1 0
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 1 0
0
0
0
0
0
0
0
1
1
1
1
figura 4.15
2103 B.B.BBReset +=
Il contatore modulo 16 totalizza i gruppi di 11 linee video,
cioe' incrementa il suo stato ogni11 impulsi di riga. Le sue uscite
(D0, ..., D3) vengono inviate alla memoria RAM (M6-M9) in mododa
indirizzare successivamente le 16 righe che costituiscono la
pagina.
Infine i sei bit di uscita del contatore modulo 64 (C0-C5 ) sono
connessi ai primi sei bit diindirizzo della RAM, per individuare in
successione la locazione che contiene il codice di ciascunodei 64
caratteri che costituiscono la riga.
4.6) Le ROM a maschera.
La realizzazione di una cella di memoria ROM non programmabile
e’ molto semplice.Quando infatti si vuol ottenere in uscita una
tensione bassa e’ sufficiente connettere tra la linea dibit e il
potenziale di riferimento un MOS secondo quanto illustrato in
figura 4.16. Quando la lineadi riga viene portata a potenziale alto
il MOS passa in conduzione portando a potenziale di massa
larelativa linea di bit.
In sede di fabbricazione pertanto devono essere selettivamente
realizzati dei MOS incorrispondenza agli “0” logici che si vogliono
ottenere in uscita, mentre quando si vuole ottenere un“1” logico le
rispettive linee vanno lasciate sconnesse.
-
Capitolo IVMemorie e logiche programmabili
165
bit y bit y
linea di riga
linea di riga
linea di riga
o 1
figura 4.16
4.7) La cella di memoria EPROM ed EEPROM.
La struttura di una cella EPROM o EEPROM de’ del tutto simile a
quella di una ROM amaschera. La differenza sostanziale tuttavia
risiede nel tipo di MOS utilizzato, che funziona comeun elemento
programmabile. In sostanza il MOS utilizzato ha la struttura
illustrata in figura 4.17.
n+ n+p
SiO2S D
Ggate 2
gate 1
figura 4.17
Oltre il normale gate presente in tutti i transistori MOS viene
realizzato, all’interno dellostrato di biossido di silicio un
secondo gate (indicato in figura con gate 1), che tuttavia
e’completamente isolato. Questa realizzazione permette di
modificare selettivamente la tensione disoglia del dispositivo,
portandola al di sopra delle normali tensioni di funzionamento (di
solitocomprese tra i 3 e i 5 volt).
Quando infatti al gate 2 e al drain viene applicata una tensione
positiva elevata (15 ÷ 25 V)l’elevato campo elettrico presente
nella regione di svuotamento drain-substrato provoca una scaricaa
valanga. In tale condizione elettroni ad alta energia possono
penetrare nello strato di ossido edaccumularsi sul gate 1. Questa
carica, quando drain e gate 2 vengono riportati a potenziale
zero,forza il potenziale del gate 1 a valori negativi e tale
potenziale impedisce la formazione del canalealle normali tensioni
di funzionamento.
Le elevate proprieta’ dielettriche del biossido di silicio
consentono di mantenere la caricaintrappolata per periodi di tempo
estremamente lunghi, che si stimano essere dell’ordine delledecine
di anni.
-
Capitolo IVMemorie e logiche programmabili
166
La carica intrappolata puo’ poi essere rimossa per effetto
fotoelettrico con l’esposizione a luceultravioletta, permettendo in
tal modo la cancellazione del dato memorizzato e rendendo
ildispositivo nuovamente atto ad essere utilizzato. I tempi di
cancellazione sono tuttavianotevolmente lunghi e richiedono lo
smontaggio delle EPROM dal circuito in cui sono montate.
Questi inconvenienti possono essere superati ricorrendo alle
EEPROM in cui sia la lettura chela scrittura avvengono con mezzi
elettrici. La struttura del MOS e’ ancora quella a gate flottante,
malo spessore tra gate 1 e substrato e’ molto sottile (dell’ordine
di 100 ). In queste condizioni lacarica intrappolata puo’ venire
rimossa per effetto tunnel, quando tra gate 2 e substrato
vieneapplicata una tensione dell’ordine dei 10 V, che comunque e’
ancora notevolmente superiore allenormali condizioni operative.
In ambedue le tecnologie tuttavia il numero di riprogrammazioni
non e’ illimitato. Inparticolare nelle EEPROM le caratteristiche
dei transistori “floating gate” decadono con il numerodi
programmazioni effettuate a causa degli elettroni che comunque
rimangono intrappolatinell’ossido.
4.8) Le ROM programmabili (PROM).
La maggior parte dei costruttori di semiconduttori offrono,
oltre ai dispositivi che sono gia’stati descritti, anche ROM
programmabili dall’utente finale (programmable ROM) dette PROM.
Questi circuiti, come gia’ e’ stato accennato offrono un’elevata
flessibilita’ e riducono i costi,soprattutto quando la quantita’
necessaria e’ modesta.
Una PROM contiene una matrice di codifica in cui sono realizzate
tutte le possibiliconnessioni, come e’ illustrato in figura
4.18.
Decodifica
XX
X
codice di ingressoa M bit
W
W
W
codice di uscita a N bit
Y Y Y Y
o
1
µµµµ
o1
M-1
o 1 N-2 N-1
µµµµ = 2M
figura 4.18
Le connessioni sono normalmente realizzate con una striscia di
silicio policristallino il cuicomportamento e’ simile a quello di
un fusibile; quando cioe’ tale striscia viene percorsa da
unacorrente superiore a un certo valore la connessione si
interrompe. L’utente puo’ quindi facilmentebruciare i fusibili di
ogni elemento di memoria, realizzando la desiderata funzione
ingresso-uscita.
Un modo alternativo e sotto certi aspetti piu’ comodo di vedere
una ROM di questo tipo e’quello di immaginarla costituita da un due
piani detti rispettivamente piano AND e piano OR, conriferimento a
una relazione funzionale ingresso-uscita del tipo somma di
prodotti. In altre paroleuna memoria a sola lettura programmabile
sara' costituita da un piano AND fiso, che realizza tutti itermini
minimi della variabili di ingresso, mentre il piano OR sara’
programmabile fondendo gliopportuni collegamenti. In figura 4.19 e’
rappresentata la struttura di una PROM da 4 variabili diingresso e
parallelismo 4 in uscita.
-
Capitolo IVMemorie e logiche programmabili
167
X X X X3 2 1 0
Collegamenti del piano AND
Collegamenti del piano OR
Indirizzo
Y Y Y Y3 2 1 0
Uscita
figura 4.19
4.9) I dispositivi logici programmabili.
Nell’ambito della realizzazione di circuiti logici digitali un
progettista puo’ scegliere tradispositivi discreti di tipo standard
e dispositivi dedicati realizzati ad hoc per una
specificaapplicazione (si parla in tal caso di ASIC Application
Specific Integrated Circuit). Esistono tuttaviadispositivi, i
cosiddetti PLD (Programmable Logic Device) che si collocano a meta’
strada tra ledue precedenti categorie e sono adatti per
applicazioni specifiche essendo completamentepersonalizzabili
dall’utente a seconda delle funzionalita’ richieste, ma conservano
una strutturaregolare e di volta in volta sempre uguale.
Le stesse PROM possono esser fatte rientrare tra i PLD e sono
state molto spesso usate comearray logici configurabili. Il piu’
grosso inconveniente che esse presentano, al di la’ della
lorolimitata velocita’, risiede tuttavia nella eccessiva
complessita’, che aumenta esponenzialmente conil numero degli
ingressi, e nel limitato numero delle linee di uscita.
Per superare queste limitazioni gia’ verso la meta’ degli anni
’70 sono state introdotte le primevere logiche programmabili
chiamate rispettivamente PAL (Programmable Array Logic) e la
PLA(Programmable Logic Array), cui a breve termine hanno fatto
seguito le GAL (Generic LogicArray). Per le prime due la struttura
interna e’ simile a quella di una PROM, con i due piani AND eOR
gia’ descritti, mentre nelle GAL vengono integrati anche flip-flop,
porte XOR e altri dispositivi,con un’organizzazione in sottoinsiemi
detti macrocelle configurabili, tra le quali si possonoeffettuare
connessioni e realizzare anche loop di reazione. La disponibilita’
di sistemi di calcolo abasso costo e di software in grado di
trasformare le equazioni booleane in “mappe di fusibili” hafavorito
un ampio utilizzo di questi dispositivi.
-
Capitolo IVMemorie e logiche programmabili
168
Non si vuole in questa trattazione, di necessita’ di tipo
qualitativo e di primo approccioall’argomento, analizzare nel
dettaglio i diversi tipi di dispositivo prodotti. Sara’ sufficiente
dire chela densita’, cioe’ il numero di funzioni integrabile sul
singolo chip, e’ andata via via aumentando;che accanto alle
tecniche a “fusibile” sono state introdotte quelle ad
“antifusibile” con le quali laprogrammazione crea un cortocircuito
anziche’ un circuito aperto; che esistono dispositivi basati
siasulla tecnologia EPROM a ultravioletti che su quella EEPROM; che
esistono dispositivi in cui lalogica viene controllata attraverso
opportuni bit caricati in apposite celle RAM statiche
localizzatesul chip stesso e cosi’ via.
4.9.1) La logica a matrice programmabile (PAL).
La logica a matrice programmabile e’ molto simile ad una PROM in
quanto e’ costituitaanch’essa da un piano AND e uno OR. Tuttavia a
differenza di quest’ultima il piano OR e’ fissomentre e’
programmabile quella AND. Le PAL sono utilmente impiegate per
realizzare equazioniBooleane in luogo delle piu’ ingombranti e
complesse PROM. Sono ovviamente disponibili solocollegamenti OR
specifici, mentre tutti quelli AND sono realizzabili. La
programmazione consistenel bruciare le connessioni AND
indesiderate.
In figura 4.20 e’ riportata la struttura di una PAL da 16 parole
per 4 bit. Le connessionifusibili sono rappresentate con una X.
X X X X3 2 1 0
Collegamenti del piano AND
Collegamenti del piano OR
Ingresso
Y Y Y Y3 2 1 0
Uscita
figura 4.20
-
Capitolo IVMemorie e logiche programmabili
169
4.9.2) Le matrici logiche programmabili (PLA).
Tra i dispositivi programmabili di tipo AND-OR le PLA sono i
piu’ flessibili in quanto in esseesistono tutti i possibili
collegamenti sia sul piano AND che su quello OR, come mostrato in
figura4.21. La programmazione anche in questo caso consiste nel
bruciare le connessioni indesiderate.
X X X X3 2 1 0
Collegamenti del piano AND
Collegamenti del piano OR
Ingresso
Y Y Y Y3 2 1 0
Uscita
figura 4.21
La flessibilita’ e la convenienza di una PLA rispetto una PROM
emerge chiaramente dalseguente esempio. Si supponga di dover
lavorare con 16 ingressi e 8 uscite. In una PROM in talcaso si
dovrebbero avere 216 = 65535 parole da 8 bit per un totale di
524288 bit e con questosistema si potrebbero realizzare 8 funzioni
logiche combinatorie da 16 variabili, esprimendociascuna funzione
logica nella forma canonica somma di prodotti.
Si consideri allora un sottoinsieme della ROM appena descritta.
Si abbiano sempre 16 ingressie 8 uscite, ma anziche’ 65535 parole
se ne abbiano a disposizione ad esempio solamente 48.Ciascuna di
queste parole prende il nome di prodotto parziale. Il termine
diviene autoesplicativoconsiderando che il piano AND e’
completamente programmabile e ciascun prodotto non contienetutte le
variabili di ingresso. Si parla in questo caso di una PLA 16 x 48 x
8. Il piano AND e’ dettomatrice di decodifica ed e’ formato da 48
AND con un numero massimo di ingressi pari a quellodelle variabili
di ingresso al dispositivo.
Il piano OR, detto matrice di codifica, e’ anch’esso
completamente programmabile e consistedi 8 gate OR le cui uscite
sono le uscite del dispositivo. Gli ingressi possibili di ciascun
OR sono innumero pari a quello dei prodotti parziali, ma quelli non
necessari possono venire esclusi perfusione del relativo
collegamento.
-
Capitolo IVMemorie e logiche programmabili
170
In sostanza si vede che con una PLA non e’ piu’ necessario
esprimere una funzione booleanain forma canonica, ma e' possibile
implementarla in una qualsiasi forma semplificata, purche’somma di
prodotti. E’ evidente il risparmio circuitale che se ne puo’
ricavare. Da un altro punto divista si puo’ affermare che mentre
una PROM memorizza dati binari, una PLA memorizza
funzionibooleane.
Si considerino ad esempio le due seguenti funzioni.
141513371011149031 A.AAA.A.A.AA.A.AA.Ay ++++=
6121490452 A.AA.A.AA.A.Ay ++=
Per realizzare queste due funzioni sono necessari solo sette
prodotti parziali (e non otto inquanto il prodotto A.A.A 49 e’
comune ad ambedue le funzioni. Facendo quindi riferimento ad unaPLA
16 x 48 x 8 i rimanenti 41 prodotti parziali rimangono disponibili
per le altre sei uscite da y3 ay8.
La programmazione della PLA avviene creando una mappa dei
fusibili (o delle connessionidesiderate quando la PLA viene
programmata dal fabbricante con una maschera di
metallizzazione).Per l’esempio che e’ stato preso in considerazione
la mappa avra’ l’aspetto riportato in tabella 4.2.Nella zona
ingresso un simbolo X sta ad indicare che vengono bruciati ambedue
i collegamenti conla relativa variabile, uno “0” che rimane integro
il collegamento con iA , un “1” quello con iA .Nella zona uscite
uno “0” indica la bruciatura del collegamento con il relativo
prodotto parziale.
TABELLA 4.2INGRESSI USCITE
ProdottoParziale 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 Y1 Y2
03 A.A X X X X X X X X X X X X 0 X X 1 1 0
149 A.A.A X X X X X X 0 X X X X 1 X X 0 X 1 1
371011 A.A.A.A X X X X 1 0 X X 0 X X X 1 X X X 1 0
13A X X 1 X X X X X X X X X X X X X 1 0
1415 A.A 0 1 X X X X X X X X X X X X X X 1 0
045 A.A.A X X X X X X X X X X 1 0 X X X 1 0 1
612 A.A X X X 1 X X X X X 1 X X X X X X 0 1
In sostanza una PLA puo’ gestire, a parita’ di complessita’, un
maggior numero di ingressi ede’ piu’ economica di una PROM. E’
evidente tuttavia che puo’ venire vantaggiosamente utilizzatasolo
se i prodotti parziali necessari sono una piccola frazione delle
possibili combinazioni diingresso.
4.9.3) I gate array programmabili (PGA) e i dispositivi ad
elevata complessita’.
Sotto tale dizione vengono annoverati tutta una serie di
dispositivi ad elevata densita’ diintegrazione. L’architettura e’
normalmente basata su una struttura regolare di blocchi di
logicaconfigurabile interconnettibili tramite opportune linee
circondati da blocchi di circuiti cheprovvedono all’input e
all’output.
-
Capitolo IVMemorie e logiche programmabili
171
A rigore i gate array dovrebbero contenere solamente un gran
numero di dispositivi logicielementari, la cui programmazione
consiste semplicemente nello stabilire le volute
interconnessioni.Esistono tuttavia elementi logici piu’ complessi,
al cui interno si trovano anche dispositivisequenziali, che piu’
propriamente dovrebbero essere chiamati dispositivi logici
programmabiliad elevata complessita’; tuttavia non e’ ben chiaro
dove possa essere fissato il confine tra i due tipidi dispositivo e
pertanto nel seguito non se ne terra’ conto.
La personalizzazione da parte dell’utente puo’ venire fatta in
diversi modi: con unametallizzazione, con la tecnica a fusibile o a
antifusibile, ma molto spesso avviene caricando inmodo seriale o
parallelo i dati di configurazione in una EPROM o una EEPROM o
ancoraprelevando tali dati dall’esterno e memorizzandoli in
apposite celle di RAM appartenenti aldispositivo. Si parla in tal
caso di dispositivi programmabili in campo (ad esempio di FPGA –
FieldProgrammable Gate Array). Con l’ultima modalita’ di
programmazione citata non vi e’ alcunalimitazione sul numero delle
possibili riprogrammazioni e i dispositivi possono venire
utilizzati inprogetti in cui l’hardware cambi dinamicamente o
quando sia necessario adattare l’hardware adiverse applicazioni.
Una volta testato e consolidato il progetto si puo’ poi passare a
versioni deldispositivo a maschere in cui le celle di RAM e la
logica di connessione vengono rimpiazzate dametallizzazioni,
conservando tuttavia la compatibilita’ con i componenti
programmabili chesostituiscono.
Gli elementi fondamentali dei dispositivi programmabili sono i
blocchi di logica configurabile(Configurable Logic Block – CLB) e i
blocchi di ingresso-uscita (Input Output Block – IOB). Iprimi
costituiscono il supporto su cui verranno realizzate le funzioni
logiche relativeall’applicazione, i secondi le interfacce tra gli
ingressi e le uscite del circuito integrato e le lineeinterne di
segnale. Molto spesso sono poi disponibili anche altri elementi,
quali buffer 3-stateassociati a ciascun CLB, decodificatori di
indirizzi, oscillatori, ecc. La complessita’ e’ mediamentecompresa
tra 10.000 e 25.000 porte equivalenti, ma si puo’ giungere anche a
250.000 porteequivalenti.
Senza alcuna pretesa di completezza la struttura di un blocco
CLB potrebbe essere quellariportata nella figura 4.22, che
rappresenta lo schema a blocchi di un dispositivo Xilinx
(XC4000).
figura 4.22
G
G
G
G
F
F
F
F
C .... C 4
Funzionelogica
di
G .. G
logicadi
F .. F
Funzione
Multiplexer controllatidal programma diconfigurazione
4
3
2
1
4
3
2
1
4 1
4 1
4 1
Funzionelogica
diF , G , Ni i 1
N1
Clock
H
D /Hin 2 SR/Ho Ec
ControlloS/R
ControlloS/R
SD
RD
D
Ec
1
1
SD
RD
D
Ec
Bypass
Bypass
Y
YQ
XQ
X
-
Capitolo IVMemorie e logiche programmabili
172
All’ingresso si hanno due generatori di funzioni logiche (F e G)
a quattro ingressi (F1 – F4 eG1 – G4), seguiti da un terzo (H), i
cui ingressi possono essere le uscite dei precedenti, oppurepossono
provenire dall’esterno. Dato che il principio di funzionamento e’
quello delle tabelle dilook-up, e’ possibile usare F e G come array
di celle di memoria configurabili in 16x2, 32x1 o16x1 bit. Si ha
quindi disponibilita’ di RAM direttamente sul chip.
Ogni CLB contiene poi due flip-flop di tipo D, che possono
essere usati assieme ai duegeneratori di funzioni oppure
indipendentemente. E’ possibile scegliere se rendere attivo il
clock sulfronte di salita o su quello di discesa; si dispone
inoltre di un ingresso di abilitazione per il clock(EC – clock
enable) e di un ingresso di set (o di reset) asincrono. E’
interessante notare che larealizzazione del clock enable viene
effettuata senza anteporre alcuna porta all’ingresso del clock
inmodo da evitare di introdurre ritardi indesiderati e da
minimizzare il conseguente fenomeno delclock-skew, oltre che di
possibili glitch. In funzione del segnale CE si fa passare
l’ingresso esterno,oppure si fa ricircolare l’uscita, inibendo
cosi’ il clock, come illustrato in figura 4.23.
D Q
CED
CLK
Q
figura 4.23
Per facilitare l’implementazione e per migliorare le prestazioni
di sommatori, sottrattori,accumulatori, comparatori e contatori
ogni cella contiene della logica aritmetica dedicata
allagenerazione veloce del riporto (Fast Carry Logic), che tuttavia
nello schema semplificato di figura4.22 non compare.
I blocchi di ingresso e di uscita costituiscono poi
l’interfaccia tra i terminali fisici del circuitointegrato e la
logica interna e sono configurabili dall’utente. Ogni IOB controlla
un pin e puo’essere configurato come ingresso, come uscita o come
linea bidirezionale. I segnali possono uscireed entrare
direttamente dall’esterno oppure possono essere memorizzati in
appositi flip-flop. In tuttii casi tuttavia i segnali vengono
opportunamente amplificati con dei buffer. In figura 4.24
e’riportato lo schema semplificato di un IOB.
figura 4.24
CE
Out
OutputClock
InputClock
D Q
DQ
output buffer
input buffer
ritardo
PAD
I
I
1
2
Slew ratecontrol
Pull-up Pull-down
passivo
-
Capitolo IVMemorie e logiche programmabili
173
A maggior chiarimento delle possibili strutture dei blocchi di
logica configurabile si possonocitare gli elementi della serie FLEX
8000 dell’ALTERA, che hanno una struttura piu’ semplice diquelli
citati, ma sostanzialmente presentano un’architettura analoga.
L’elemento logico di base (Logic Element –LE) contiene un
generatore di funzioni a quattroingressi il cui principio di
funzionamento e’ sempre quello delle tabelle di look-up, un
flip-flopprogrammabile, una catena di riporto (carry) e quella che
viene chiamata “cascade chain”, secondola struttura illustrata in
figura 4.25.
Tabelladi
look-up Carry
catenadi
logica diclear-preset
cascadechain
carry in cascade in
selezione del clock
clock
carry out cascade out
P
C
D QLE out
figura 4.25
Il generatore di funzioni permette di implementare qualsiasi
funzione di quattro variabili. Ilflip-flop programmabile puo’
venire configurato per funzionare come D, T, JK o SR. I segnali
dicontrollo di clock, clear e preset possono essere sia segnali che
provengono dall’esterno attraversopin dedicati, sia segnali
interni. Si noti inoltre che se si dovessero generare funzioni
puramentecombinatorie, il flip-flop puo’ essere scavalcato e
l’uscita del generatore di funzioni puo’ venireriportata
direttamente in uscita del blocco.
L’architettura realizzata mette poi a disposizione due itinerari
ad alta velocita’ per i dati, lacatena di carry e la “cascade
chain”, che permettono l’inteconnessione con le macrocelle
adiacenti,purche’ appartenenti alla stessa riga, senza ricorrere
alle risorse programmabili di connessione deldispositivo. La catena
di carry fornisce una funzione di carry veloce (
-
Capitolo IVMemorie e logiche programmabili
174
LUT
LUT
LUT
LUT
LUT
LUT
AND cascade chain OR cascade chain
figura 4.26
Ciascuna delle celle che sono state sommariamente descritte puo’
poi operare in uno diquattro modi fondamentali. In figura 4.27 sono
illustrati per sommi capi questi quattro modi difunzionamento.
Modo normale: tale modalita’ operativa viene utilizzata in
applicazioni logiche di tipogenerale e per realizzare funzioni
logiche di un elevato numero di variabili, dove la “cascade
chain”puo’ essere utilmente sfruttata. L’uscita della tabella di
look-up (LUT) puo’ venire combinata conl’ingresso “cascade in” in
modo da realizzare funzioni complesse.
Modo aritmetico: In questo modo operativo sono disponibili due
tabelle di look-up, idealiper realizzare sommatori, accumulatori e
comparatori. Una delle due LUT realizza una funzione ditre
variabili, l’altra sintetizza il bit di riporto (carry).
Contatore bidirezionale: sono disponibili in tal caso segnali di
abilitazione, di conteggioavanti/indietro sincrono, di caricamento
di dati. Vengono usate due LUT da tre bit. La prima generail dato
di conteggio, la seconda un bit veloce di carry. Un multiplexer da
due a una linea permette ilcaricamento sincrono del dato. E’
possibile anche il caricamento asincrono attraverso gli ingressi
diclear e preset del flip-flop.
Contatore azzerabile: questo modo di funzionamento e’ del tutto
simile a quello delcontatore bidirezionale con l’unica differenza
che anziche’ una funzione di conteggioavanti/indietro viene
implementato un azzeramento sincrono.
-
Capitolo IVMemorie e logiche programmabili
175
MODO NORMALE
MODO ARITMETICO
CONTATORE BIDIREZIONALE
CONTATORE AZZERABILE
LUT
(4)
D Q
cascade in
carry in
dato 1
dato 2
dato 3
dato 4 cascade out
LE out
LUT
LUT
(3)
(3)
carry incascade in
cascade out
LE outD Q
carry out
dato1dato 2
carry in cascade in
carry out
cascade out
enableup/down
dato
load
LUT
LUT(3)
(3)
1
0
D Q LE out
carry in
carry out
cascade out
1
0LUT
(3)
LUT(3)
enableclear
dato
load
D Q LE out
figura 4.27
Gli elementi logici descritti vengono poi arrangiati in gruppi
di otto, formando quelli chevengono chiamati “logic array block”
(LAB), formando nell’insieme del componente una struttura agrana
piu’ grossa che facilita un’efficiente interconnessione nelle
strutture complesse di elevateprestazioni. Ciascun LAB (figura
4.28) dispone di quattro segnali di controllo che possono
essereutilizzati in ciascuno degli otto elementi. Questi segnali,
quali ad esempio il clock globale, il reset oil preset, che devono
avere una bassa dispersione del ritardo per minimizzare i problemi
di skew,possono essere ricavati da terminali di ingresso dedicati o
attraverso i pin di I/O o ancora daqualsiasi segnale interno
attraverso le linee di interconnessione tra i LAB.
interconnessione locale dei LAB
32canali
segnali di controllodei LAB
carry e cascade indei LAB a sinistra
LE 1LE
LE 2
LE 3
LE 4
LE 5
LE 6
LE 7
LE 8
Interconnessione di riga
interconnessionedi colonna
connessione tra rigae colonna
24
4
4
4
4
4
4
4
4
8
carry e cascade outper i LAB a destra
2
4 4
4
2
8 18
figura 4.28
-
Capitolo IVMemorie e logiche programmabili
176
L’interconnessione tra LAB e dispositivi di I/O e’ assicurata da
una serie di canali dicomunicazione orizzontali e verticali che
attraversano l’intero dispositivo. I LAB sono sistemati inuna
struttura a matrice e ogni riga di LAB ha una riga dedicata di
interconnessioni che vieneutilizzata per il colloquio bidirezionale
dei LAB della stessa riga. Le interconnessioni di colonnaservono al
colloquio tra elementi di righe diverse, secondo quanto
schematicamente illustrato infigura 4.29
LE1
LE2
canali di riga
canali di colonna (16)
ciascuna LE pilotaun canale di riga
ciascuna LE pilota fino adue canali di colonna
reazioni locali
figura 4.29
Infine ciascuna riga e ciascuna colonna e’ connessa ad un certo
numero di elementi di I/Ocome riportato in figura 4.30.
IOE
IOE
IOE
IOE
IOE IOE IOE IOE
IOE
IOE
IOE
IOE
IOE IOEIOE IOE
LAB LAB
LAB LAB
A1 A2
B1 B2
interconnessionedi riga
interconnessione di colonna
interconnessionelocale del LAB
1
8
1
8
1
8
1
8
figura 4.30
La struttura logica di questi ultimi e’ riportata in figura
4.31.
-
Capitolo IVMemorie e logiche programmabili
177
alle interconnessioni di riga o di colonna
dalle interconnessioni di riga o di colonna
controlli di I/O
inversioneprogrammabile
CLR
D Q
controllo dislew rate
figura 4.31
Ciascun pin di I/O puo’ venire utilizzato come ingresso, come
uscita o in modo bidirezionale;e’ dotato di un registro che a sua
volta puo’ essere utilizzato sia come elemento di ingresso che
diuscita e permette l’aggiustamento delle entrate in modo da
ottenere il miglior compromesso travelocita’ operativa e
rumore.
E’ ovvio che le due architetture sommariamente descritte non
sono le sole possibili. L’intentosecondo il quale sono state
presentate e’ semplicemente quello di dare un’idea della
flessibilita’ edella complessita’ dei componenti VLSI disponibili
al giorno d’oggi. Per maggiori approfondimentisi rimanda a testi
specialistici sull’argomento.
4.10) I sistemi di sviluppo.
Per gestire le potenti risorse dei dispositivi programmabili
risulta indispensabile avvalersi diadeguati strumenti software.
Normalmente tutte le case costruttrici forniscono sistemi di
sviluppocompleti per i loro componenti.
Di solito si puo’ ritenere che la metodologia di progetto si
sviluppi in tre passi, strettamentelegati tra loro:
♦ Descrizione del progetto (tramite schema o descrizione
testuale)♦ Implementazione♦ Verifica
Il flusso operativo e’ riportato in figura 4.32 e, come si puo’
vedere, riguarda un procedimentoiterativo durante il quale
qualsiasi correzione e/o ottimizzazione fa ritornare in ogni caso
alla fase didescrizione.
-
Capitolo IVMemorie e logiche programmabili
178
Descrizione Verifica
Implementazione
(Design entry)
(Design implementation)
(Design verification)
simulazione funzionale
simulazione temporale
schema o
testo
partizione, posizionamento e interconnessione
simulazioneverifica sul circuitoanalisi temporale statica
figura 4.32
4.10.1) Descrizione delle funzionalita’ richieste (design
entry).
La descrizione grafica basata sullo schema circuitale e’ quella
piu’ semplice e immediata.Oltre ai blocchi fondamentali presenti
fisicamente nelle celle elementari della FPGA i sistemi disviluppo
offrono librerie di blocchi gia’ pronti corrispondenti a funzioni
logiche piu’ o menocomplesse, quali contatori, registri,
multiplexer ecc. E’ inoltre possibile definire
blocchipersonalizzati basati su combinazioni di componenti presenti
in libreria.
L’approccio descritto e’ tuttavia conveniente solo per progetti
relativamente semplici. Persistemi piu’ complessi, descritti
tramite equazioni booleane o macchine a stati logici, e’
piu’conveniente fare riferimento alle descrizioni testuali come il
VHDL (Very high speed integratedcircuit Hardware Description
Logic). In questo modo ci si svincola dalla struttura del
dispositivoprogrammabile e si puo’ trasportare facilmente il
progetto su PLD prodotti da altre case ocomunque aventi differenti
strutture interne.
Esistono comunque dei punti di incontro tra i due metodi; e’
possibile infatti mescolarliall’interno dello stesso progetto,
descrivendo alcuni blocchi per via grafica alcuni blocchi e
altritramite HDL. Molto spesso l’ambiente di sviluppo e’ in grado
di gestire una struttura gerarchica,con livelli superiori descritti
graficamente e livelli piu’ bassi, che definiscono la logica di
ogniblocco, descritti nel modo piu’ opportuno.
Comunque il risultato finale di questa fase del processo,
qualsiasi sia il metodo utilizzato, e’una “netlist”, cioe’ un
elenco dei blocchi utilizzati e delle relative
interconnessioni.
4.10.2) Verifica (design verification).
La verifica di un progetto su PGA richiede una combinazione di
test sul circuito stesso,simulazioni con e senza ritardi temporali,
e stime dei tempi di propagazione sui vari percorsi delsegnale, in
modo da determinare situazioni critiche e limitanti per le
prestazioni dell’intero sistema.
Per comprendere meglio come vengano effettuate queste operazioni
si consideri la figura4.33.
-
Capitolo IVMemorie e logiche programmabili
179
Design entry
Functionalsimulation
Implementation
Static timinganalysis
Timing simulation
figura 4.33
Simulazione funzionale.
Una volta terminata la prima descrizione del circuito (Design
Entry) si effettua unasimulazione funzionale, cioe’ una verifica
del funzionamento logico del sistema. In questa fase nonsi tiene
conto dei ritardi introdotti dalla logica e dalle linee di
interconnessione, ma si fa riferimentosolo alla “netlist” in modo
da rendere facilmente evidenti le relazioni causa-effetto tra
ingresso euscita di ogni blocco. Il sistema di sviluppo permette di
selezionare direttamente sullo schema ipunti da testare, imponendo
opportuni stimoli sugli ingressi e verificando il conseguente
andamentodelle uscite mediante un’opportuna finestra di
visualizzazione.
Dopo aver effettuato la simulazione funzionale, se non si e’
verificato alcun errore di logica,si passa all’implementazione del
circuito mediante le risorse del dispositivo scelto. Il
passosuccessivo poi consiste nell’analisi temporale del sistema e
viene eseguito utilizzando l’analizzatoretemporale (Timing
Analyzer) e la simulazione temporale (Timing Simulation).
Implementazione (Design Implementation).
Una volta scelto il dispositivo su cui effettuare
l’implementazione e descritto correttamente ilcomportamento voluto
per il sistema, appositi programmi provvedono a creare una
corrispondenzatra le funzioni richieste e le risorse a
disposizione, determinando il posizionamento ottimale e
leconnessioni tra i CLB e gli IOB. Queste operazioni vengono
compiute con un buon grado diautomazione, permettendo
all’utilizzatore di intervenire o meno nelle varie fasi del
processo. E’possibile, per esempio, effettuare tramite un’opportuna
interfaccia grafica un’operazione di“floorplanning”, cioe’ di
disposizione “manuale” di alcuni o di tutti i blocchi su una certa
area
-
Capitolo IVMemorie e logiche programmabili
180
dell’array. Si possono inoltre introdurre vincoli sulla
piedinatura e sulle temporizzazioni di alcunisegnali
particolarmente critici.
L’andamento dei vari passi dell’implementazione viene
costantemente monitorato edocumentato mediante opportuni file.
Analisi temporale statica.
Il “Timing Analyzer” permette di eseguire un’analisi temporale
statica di un progetto“sbrogliato”, cioe’ di un progetto di cui
siano stati definiti i percorsi che realizzano i vari segnali
ecollegano i blocchi necessari. Il termine “statica” e’ relativo al
fatto che viene effettuata un’analisidei percorsi che uniscono
tutte le coppie di punti del circuito, senza inserire stimoli agli
ingressi deiblocchi. Il circuito comunque deve essere sincrono,
composto solo da flip-flop e da logicacombinatoria.
Il software permette di organizzare e visualizzare i dati
necessari ad analizzare i percorsicritici nel circuito ed evidenzia
i percorsi aventi i maggiori ritardi. Essendo basato sui dati dei
ritarditra i vari blocchi relativi ad ogni specifico dispositivo
programmabile, e’ possibile verificarevelocemente l’effetto dovuto
all’utilizzo di chip con prestazioni diverse in termini di
velocita’ dirisposta. I dati necessari vengono forniti dalla casa
costruttrice e vengono determinati nellecondizioni di funzionamento
piu' gravose. I risultati delle analisi dei vari tipi di ritardo
vengonoriportati dal Timing Analyzer sotto forma di opportuni
rapporti che riassumono i casi peggiori edanno la possibilita’ di
stimare la massima frequenza di clock del dispositivo, valutata
comel’inverso del massimo ritardo che si puo’ avere.
I percorsi dei segnali del circuito si dividono in sei categorie
fondamentali:
• Clock to Setup• Clock to Pad• Pad to Setup• Pad to Pad• Clock
input• Clock Skew
Prima di descrivere i vari tipi di percorso e’ opportuno
ricordare che viene definito tempo disetup l’intervallo di tempo
entro il quale il segnale di ingresso deve essere stabile prima che
il clockdivenga attivo, mentre viene definito tempo di hold
l’intervallo di tempo entro il quale il segnale diingresso deve
rimanere stabile dopo che il clock e’ tornato passivo.
clock to setupQuesto tipo di percorso inizia all’uscita Q di un
flip-flop o di un latch e termina all’ingresso di
un altro flip-flop, latch o RAM, elementi che necessitano di un
periodo di assestamento (setup time)prima che agisca il clock. Esso
comprende il ritardo che si ha nel primo flip-flop, da quando
agisceil clock a quando e’ disponibile la corrispondente uscita
(clock-to-Q-delay), il ritardo dovuto alpercorso da un flip-flop
all’altro e il tempo di setup del secondo flip-flop. Il tempo che
il segnaleimpiega sull’intero percorso deve essere minore del
periodo di clock. In figura 4.34 e’ rappresentatoun generico
percorso di questo tipo con il corrispondente diagramma di
temporizzazione.
-
Capitolo IVMemorie e logiche programmabili
181
D Q D Q
Clock
interconnessionie
logica
clock
dato valido
ritardo daclock auscita
ritardo della logica e delle interconnessioni
tempo disetup
dato valido
figura 4.34
ritardo del percorso e minimo periodo di clock
Clock to PadUn percorso di questo tipo ha inizio all’uscita di
un flip-flop e termina su un pin di uscita del
chip. Esso comprende il ritardo clock-to-Q del flip-flop e il
ritardo relativo al percorso che portaall’uscita, come illustrato
in figura 4.35.
D Q
Clock
interconnessionie
logica
clock
dato valido
ritardo daclock auscita
ritardo della logica e delle interconnessioni
dato valido
figura 4.35
pad
ritardo d'uscita
margineesterno
periodo minimo di clock
ritardo del percorso
-
Capitolo IVMemorie e logiche programmabili
182
Pad to setupIl percorso ha inizio su un ingresso del chip e
termine all’ingresso di un flip-flop o di una
RAM. Il tempo corrispondente a tale percorso e’ quello richiesto
al dato per entrare nel chip,attraversare la logica e3 le risorse
di connessione presenti e arrivare al flip flop prima che agisca
ilclock, come mostrato in figura 4.36.
interconnessionie
logica
clock
dato valido
ritardo di ritardo della logica e delle interconnessioni
dato valido
figura 4.36
D Q
Clock
pad
margineesterno
periodo minimo di clock
ritardo del percorso
ingressotempo disetup
Pad to padIl percorso inizia su un ingresso del chip e termina
su un pin di uscita. Il tempo corrispondente
e’ il massimo tempo richiesto affinche’ il segnale entri nel
chip, si propaghi attraverso la logica e icollegamenti e lasci il
chip. In questo caso non vi e’ alcuna relazione con il segnale di
clock e infigura 4.37 e’ schematizzato un tale tipo di
percorso.
interconnessionie
logica
dato valido
ritardo di ritardo della logica e delle interconnessioni
dato valido
figura 4.37
pad
ritardo del percorso
ingresso
pad
ritardo diuscita
-
Capitolo IVMemorie e logiche programmabili
183
Clock inputUn percorso del tipo Clock Input puo’ avere inizio a
un ingresso del chip, oppure all’uscita di
un flip-flop o una RAM, mentre ha termine sull’ingresso di clock
di un flip-flop. Il corrispondentetempo rappresenta il massimo
tempo necessario al segnale per raggiungere il pin di
destinazione(figura 4.38).
interconnessionie
logica
clock input
figura 4.38
D Q
Clock input
pin di clock
ritardo del clock
Clock skewPer il Timing Analyzer il clock skew e’ dato
dall’intervallo temporale che intercorre tra gli
istanti in cui agiscono due clock che siano connessi alla stessa
linea. Questo fenomeno e' dovutoalle diverse lunghezze dai percorsi
che portano il clock agli elementi di destinazione e influiscesulla
massima frequenza di clock utilizzabile. Come si vede dalla figura
4.39 si possono avere duetipi di clock skew, positivo o negativo, a
seconda che il clock giunga al flip-flop di destinazioneprima o
dopo di quando arrivi all’altro flip-flop.
D Q D Q
Clock
interconnessionie
logica
figura 4.39
FF1 FF2
clock a FF1
clock a FF2
periodo di clock
clock skew
clock a FF1
periodo di clock
clock a FF2
clock skew
-
Capitolo IVMemorie e logiche programmabili
184
E’ ovvio che i parametri appena definiti vengono determinati per
ciascuno dei clock delsistema.
Oltre ai risultati relativi ai casi peggiori e’ possibile
studiare i ritardi relativi a un qualunquepercorso scelto sul
circuito, selezionando il punto di partenza, quello di arrivo,
oppure il percorsopiu’ lungo o quello piu’ lento e escludendo
eventualmente particolari collegamenti. E’ possibileottenere un
resoconto dettagliato passo per passo con l’indicazione del ritardo
dovuto alla logica equello dovuto al tempo di propagazione sulle
linee che uniscono ogni blocco al successivo.
Se nel circuito vi sono percorsi critici, noti a priori, ovvero
evidenziati da analisi precedenti,e’ di solito possibile imporre su
di essi vincoli mediante opportune specifiche temporali che
fissanoi massimi ritardi ammessi.
Simulazione temporale.
La simulazione temporale viene eseguita aggiornando la “netlist”
ottenuta dalla descrizionefunzionale con i dati relativi ai ritardi
e ai tempi di propagazione determinati dopo aver effettuato
leoperazioni di posizionamento dei blocchi logici (placing) e di
interconnessione (routing).
Si utilizza una tecnica chiamata “back annotation”, che consiste
nel creare una corrispondenzatra le informazioni temporali, i nomi
dei segnali e i simboli utilizzati negli schemi. In tal modo
e’possibile eseguire la simulazione temporale utilizzando gli
stessi stimoli e gli stessi punti di test diquella funzionale,
permettendo di confrontare piu’ facilmente i risultati.
Il simulatore e’ in grado di determinare e visualizzare
automaticamente violazioni sui tempi disetup, di hold e sulla
durata minima dei cicli di clock, permettendo di localizzarle e di
stabilirne lecause.
Programmazione.
Una volta giunti a risultati soddisfacenti da tutte e tre le
fasi del processo, eventualmenteprovando su dispositivi con
potenzialita’ piu’ ampie, si passa alla programmazione della
PGAutilizzando il file di configurazione ottenuto nella fase di
implementazione. Spesso tale file vienecaricato su una EPROM dalla
quale viene a sua volta caricato all’atto dell’accensione in
appositecelle di RAM all’interno della PGA. La possibilita’ di
sostituire le EPROM permette diriconfigurare il sistema anche “sul
campo” in tempi brevissimi.
4.11) Frequenza massima di funzionamento di un sistema
sequenziale.
Per definire la massima frequenza di commutazione di un
dispositivo sequenziale i costruttorifanno riferimento a semplici
sistemi quale quello illustrato in figura 4.40
D Q
clock
clock
uscita
uscita
figura 4.40
-
Capitolo IVMemorie e logiche programmabili
185
Nella connessione illustrata in tale figura il flip-flop D si
comporta come un T, commutandoin corrispondenza ad ogni fronte
attivo del clock e realizzando un divisore binario.
Ovviamente la situazione prospettata e’ ottimale e normalmente
le condizioni di lavorosaranno piu’ pesanti di quella illustrata a
causa di altri elementi combinatori o sequenziali che sipossono
trovare inseriti nei loop di reazione. In altre parole la struttura
presentata in figura 4.40sara’ presumibilmente quella che puo’
commutare alla massima velocita’ e non rappresentera’
casirealistici.
Per qualsiasi rete sequenziale si puo’ tuttavia utilizzare un
semplice modello di ritardo,derivato dal modello fondamentale dei
circuiti sequenziali. Si sa infatti che un qualunque
sistemasequenziale puo’ venire rappresentato dal modello di figura
4.41, realizzato con una rete puramentecombinatoria e con uno o
piu’ loop di reazione in cui si trovano inseriti elementi di
memoria.
Retecombinatoria
memoria
ingressi uscite
stato futurostato attuale
clock
figura 4.41
Fissando allora l’attenzione su un determinato stato iniziale
l’evoluzione del circuito potra’venire studiata con riferimento al
modello di figura 4.42.
Retecombinatoria
statoattuale
clock
MEM MEM
ingressi usciteingressi della memoria
figura 4.42
E’ evidente che per un corretto funzionamento del sistema il
periodo T del clock non dovra’essere inferiore al tempo che impiega
un qualsiasi segnale ad attraversare la rete combinatoria. E’
-
Capitolo IVMemorie e logiche programmabili
186
necessario quindi individuare il percorso critico, cioe’ quello
che e’ caratterizzato dal massimoritardo di propagazione.
In realta’ la situazione e’ piu’ complessa in quanto, a rigore,
sarebbe necessario tenere ancheconto del tempo di set-up e di
propagazione degli elementi di memoria.
In termini di diagramma di temporizzazione la situazione sara’
quella illustrata in figura 4.43.
clock
stato(ingresso)
stato(uscita)
ingressi della memoria
T
t
t
t
ts s
pmax
co
figura 4.43
In sostanza pertanto il periodo di clock non potra’ essere
inferiore a smaxpco ttt ++ dove contco si e’ indicato il tempo di
propagazione dell’elemento di memoria, con tpmax il tempo
dipropagazione del cammino critico e con ts il tempo di set-up
sempre dell’elemento di memoria. E’ovvio che per tco e ts si devono
prendere in considerazione i valori massimi forniti dal
costruttore.
L’analisi del problema non e’ semplice da svolgere a tavolino
quando il sistema sequenzialesia appena complesso. Si ricorre
allora, come detto nei paragrafi precedenti, alla
simulazioneutilizzando programmi che permettono di calcolare con
buona precisione i tempi di ritardo e disegnalare qualsiasi
violazione delle esigenze di temporizzazione.