Sei sulla pagina 1di 102

268

Capitolo 5

5.1

Registri e contatori

Introduzione

Un registro contiene un insieme di flip flop Poich ciascun flip flop in grado di imma
gazzinare un bit di informazione, un registro a n bit, includendo n flip flop, in grado di
immagazzinare n bit di informazione Pi in generale, un registro composro da un in
sieme di flip flop e da un insieme di porte logiche che implementano opportune rransi
zioni di stato In questultima definizione ricadono per i arcuiti sequenziali gi visn nel
Capitolo 4 Utilizzando una definizione pi mirata, con il termine registro ci si riferisce
a un circuir capace di gestire dei dati, formato da un insieme di flip flop e affiancato, in
certi casi, da una rere combinatoria I flip flop memorizzano i dari, mentre le porte com
binatone determinano il dato che deve essere trasferir nei flip flop
Un contatore un registro il cui staro evolve secondo una sequenza predeterminata
di stati, grazie allapplicazione di impulsi di clock La parte combinatoria del contarore
progettara in modo da produrre la sequenza di stari binari specificata Sebbene conta
rori possano essere visti come registri speciali, uso comune differenziarli dai registri
Registri e contatori sono blocchi funzionali sequenziali, ampiamente utilizzati nella pro
gettazione dei sistemi digitali e, in particolare, dei calcolatori digitali I registri sono unii
per limmagazzinamento e la manipolazione di informazioni, mentre i conraron sono
utilizzati nei circuiti che controllano la sequenza delle operazioni eseguire in un sistema
digitale

5.2

Registri_________________________________________

Il registro pi semplice formato solo da flip flop, senza porte esterne La Figura 5 1(a)
mostra un registro costruir con quattro flip flop di tipo D II segnale di ingresso Clock
attiva i flip flop sul fronte di salita di ciascun impulso, per cui i valori binari presenti nei
quattro ingressi D sono trasferiti e memorizzati nei flip flop corrispondenti Le quattro
uscire Q possono essere esaminate per leggere il contenuto del registro Lingresso Clear b
collegato a rum gli ingressi R dei flip flop e consente di azzerare il registro prima del fun
zionamenro normale in modo sincronizzato L'ingresso etichettato Clear anzich Clear,
per evidenziare la necessit di un livello logico basso (0) per azzerare i flip flop in modo
asincrono Lattivazione asincrona dell ingresso R dei flip flop durante il normale funzio
namento pu condurre a circuiti il cui funzionamento fortemente condizionato dai ri
tardi Poich ci pu causare malfunzionamenti il segnale Clear viene mantenuto, di
norma al livello logico 1 durante il funzionamento normale e si utilizza il valore 0 solo
quando necessario un reset dell intero sistema Si non che loperazione di azzeramento
di un registro opzionale e dipende dalla funzione svolta dal registro nell economia ge
nerale del sistema in cui inserito
Loperazione di trasferimento di informazioni in un registro chiamata caricamen
to Se tutti i bit sono caricati simultaneamente con un impulso clock comune, si dice che
il caricamento effettuato in parallelo Nella Figura 5 1(a) una transizione positiva del
clock, applicata all ingresso Clock del registro, carica m parallelo nei flip flop valori ap
plicati agli ingressi D

52

Registri

REG
-G Clear
Do
Qq
Qi
D,
q2
d2
, d3
Qa
(b) Simbolo

Load j ^> \ 'N _ in g r e s s i C (di clock)


y d e \ flip tlop
Clock ____ /
(c) Ingresso controllo di caricamento
(a) Diagramma logico
Clock
Load
Ingressi C

L
(d)

_ r
Diagramma di temporizzaztone

Figura 5 1 Registro a 4 bit

Nella Figura 5 1(b) riportato il simbolo per il registro della Figura 5 1(a) Nella
procedura di progettazione gerarchica, la scelta di questo simbolo permette I uso del re
gistro corrispondente in un progetto pi complesso II simbolo riporta tutti gli ingressi
sul laro sinistro e tutte le uscite sul laro destro Per evidenziare che lattivazione del regi
stro avviene sui fronti di salita del segnale di clock, tra gli ingressi del registro si trova lin
gresso di clock con lindicatore dinamico Si noti che il nome Clear appare allinterno del
simbolo ed presente un pallino nella linea del segnale al di fuori del simbolo stesso Ci

269

270

Capitolo 5

Registri e contatori

indica che necessario applicare uno 0 logico, per attivare loperazione di azzeramento
dei flip flop nremi al registro Se lingresso fosse stato etichettato al di fuori del simbolo
lerichetta sarebbe srata Clear, analogamente al segnale di reser R dei singoli stadi, come
illustrare nella Figura 5 1(a)

Registri a caricamento parallelo


Moiri sisremi digitali conrengono un generatore di clock principale che genera rrem di
impulsi di sincronismo (clock) Tali impulsi sono applicati ai flip flop e ai registri dellin
rero sistema II generatore di clock il cuore del sistema e fornisce un ritmo costante per
sincronizzare componenti Nel circuito della Figura 5 l(a) limpulso di clock non deve
raggiungere lingresso del circuito se si vuole che il conrenuto del registro non cambi Per
regolare il funzionamelo del registro, in modo da inibire gli ingressi quando il conrenu
ro del registro non deve cambiare, viene utilizzare un ulreriore segnale di controllo Load,
combinare con il clock, cosi come mostrare nella Figura 5 1(c) Luscira della porta OR
applicai agli ingressi C dei flip flop del registro, implemenrando lequazione seguente
C input - Load + Clock
Quando il segnale Load 1, gli ingressi C sono collegari al segnale Clock, il registro nor
malmente sincronizzare e nuove informazioni possono essere trasferite nel registro du
rante i fronti di salita del clock Se il seggale Load 0, gli ingressi C sono pari a 1 e di
conseguenza il contenuto del registro rimane invariaro Nella Figura 5 l(d) sono llusrra
ti gli effetti del segnale Load sui segnali di ingresso C Si nori che gli impulsi di clock ap
plicati agli ingressi C Terminano con un fronte di salita che attiva i flip flop Gli impulsi
e i fronti sono presenti solo quando Load i e sono invece sostituiti da un valore co
stanre pari a 1 quando Load 0 Affinch il circuir possa funzionare correttamente, il
segnale Load deve essere mantenuto stabile al valore 0 o 1, per turto 1nrervallo in cui il
clock ha valore 0 Ci si verifica, per esempio, quando il segnale Load 1 uscita di un flip
flop, attivare dal fronre di salira del segnale Clock-, condizione di funzionamento norma
le se tutti i flip flop del sistema sono artivi sul fronte di salita Poich il clock applicato
o non applicato (tumed on e tumed off) agli ingressi C del registro utilizzando porte lo
giche, la tecnica descritta denominata clock gating
Turtavia l'inserimento di porte nel circuire di distribuzione del clock, produce dif
ferenti propagazioni del ritardo tra il Clock e gli ingressi dei flip flop che sono o non so
no nreressari dalla recnica del clock gating Se i segnali di clock arrivano ai flip flop o ai
regisrri in tempi diversi, allora si in presenza di distorsione sul segnale di temporizza
zione {clock skew) In un sistema realmente sincrono necessario che gli impulsi di clock
arrivino simultaneamenre nelle diverse parti del sistema, in modo che tutti flip flop
commutino nello stesso istanre Per questa ragione consigliabile controllare il funzio
namento del registro senza unlizzare, se possibile, la recnica del clock garing, a meno di
non conrrollare anche i rirardi in modo da ridurre il conseguente clock skew
Una altemariva al clock gating prevede lutilizzo di una diversa rere combinatoria
per il conrrollo del funzionamento del regisrro, che include il segnale Load fra suoi in
gressi Nella Figura 5 2 riportato un registro a 4 bit con un ingresso di controllo Load
che collegato, attraverso alcune porte logiche, agli ingressi D dei flip flop, invece di es

52

Registri

Figura 5 2 Registro a 4 bit a caricamento parallelo

sere collegato, attraverso il clock gating, agli ingressi C Lingresso Load del registro de
termina lazione da eseguire per ciascun impulso di clock Quando il segnale Load 1,
dati sui quattro ingressi sono trasferiti nel registro con la successiva Transizione del clock
Quando invece Load 0, gli ingressi sono nibin e gli ingressi D dei flip flop sono con
nessi alle nspetrive usare dei flip flop, in modo che possano riprodurre dinamicamenre
10 staro in cui essi si trovano Quesra soluzione necessaria poich manca, nei flip flop di
ripo D, una combinazione di ingressi che lascia inalrerato lo stato del flip flop
Si noti, molrre, che gli impulsi di clock sono apphcari agli ingressi C direttamenre
11 segnale Load determina se durante limpulso successivo il registro memorizzer nuove
informazioni o lascer inalrerato il proprio contenuro II trasfrimenro di informazioni
compiuro simultaneamente per tutti i quattro bir m corrispondenza dello sresso fronte di
salita del clock Questo metodo di rrasferimenro preferir al dock gating, poich evita
il clock skew e, quindi, potenziali malfunzionamenti del circuito

271

272

Capitolo 5

5.3

Registri e contatori

Registri a scorrimento

Un registro a scommento {shift register) in grado di far scorrere bit immagazzinari in


una o entrambe le direzioni La configurazione logica di un registro a scorrimenro const
are di una carena di flip flop, collegati in cascara (stadi), in cui luscita di ogni flip flop
connessa all ingresso del flip flop successivo Tutti 1flip flop sono sincronizzati con un
unico segnale di clock che attiva lo scorrimento da bit immagazzinati da uno stadio al
successivo
Il registro a scorrimento pi semplice urilizza soltanro flip flop La Figura 5 3(a)
mosrra che per ogni flip flop luscita connessa all ingresso D del flip flop successivo II
clock unico per tutti i flip flop 'Lmgresso seriale S I dellinrero regisrro lingresso del
primo flip flop (a sinistra), mentre luscita seriale SO luscita dellultimo flip flop a de
srra Nella Figura 5 3(b) riportato il simbolo per il regisrro a scorrimento
A volre necessario conrrollare lo scorrimento con un segnale di controllo Per il re
gisrro della Figura 5 3, lo scorrimento pu essere controllaro connettendo il clock al cir
cuir, con la recnica del clock gating mostrara nella Figura 5 l(c), con Usegnale Shijt so
stituito al segnale Load A causa del conseguente clock skew, questo non sicuramente il
metodo pi utilizzato Come si vedr meglio in seguito, loperazione di scorrimento pu
essere controllata attraverso gli ingressi D dei Hip flop, anzich attraverso gli ingressi C
del clock

i ---------- ir

Ingresso
seriale SI

Clock
(a) Diagramma logico

SRQ 4

Clock

SI

SO

__

(b) Simbolo
Figura 5 3 Registro a scorrimento a 4 bit

Uscita
seriale SO

53

Registri a scorrimento

Trasferimento seriale
Un sistema digitale opera in modo seriale, se linformazione nel sistema trasferita o ma
nipolata un bit alla volta Linformazione viene fatra. scorrere spostando i bir da un primo
registro al successivo e cos via Quesro metodo di rrasfenmenro alternativo al trasfer
menro parallelo, nel quale tutti i bit di un registro sono Trasferiti contemporaneamente
Nel diagramma a blocchi della Figura 5 4(a) riportato un possibile schema per il
rrasfenmenro seriale del contenuto dal registro A al registro B, rramite registri a scorri
mento Luscita seriale del regisrro A connessa all ingresso seriale del regisrro B Lin
gresso seriale del registro A posto pari a 0 e dal momento che si introducono zeri al po
sro dei bir via via spostati nel registro B, il contenuro del regisrro A sar azzeraro, al
termine delloperazione In alrernativa, il regisrro A pu ricevere alrre informazioni o
manrenere inaireraro il suo contenuto In questo ultimo caso, basta connettere la sua
uscita seriale all ingresso seriale, in modo che i bit ritornino via via nel registro Analoga
mente, il conrenuro iniziale del registro B compare, un bit alla volta, sulla sua uscita se
naie e, al termine delle operazioni, tale contenuto sar sostituito dal contenuto del regi
stro A Linformazione del registro B va quindi persa o, in alternativa, pu essere
utilizzata in altre parti del sistema II controllo di scorrimento Shift determina quando e
quante volte deve avvenire Io scorrimento 1 registri che utilizzano il segnale Shift sono
controllati con il clock gating, come illustrato nella Figura 5 l(c), che permette al segna
le di clock di raggiungere il registro soltanto quando Shift = 1

Shift
Clock

>

Registro A

Registro B

SRG4

SRG4

SI

S O ------- S!

SO

(a) Diagramma a blocchi

Clock
Shift
Ingresso C
T,

T2

T3

(b) Diagramma di temporizzazione


Figura 5.4 Trasferimento seriale

T4

273

274

Capitolo 5

Registri e contatori

TABELLA 5 1

Trasferimento seriale configurazioni intermedie dei due registri

Impulso di temporizzozione

Valore Iniziale
Dopo Tv
Dopo T2
Dopo r 3
Dopo r4

Registro o scorrimento A

1
0
0
0
0

0
1
0
0
0

0
1

0
1

Registro o scorrimento B

0
1

0
0
1

0
1
1

0
0

0
1

0
0
1

Nella figura, ciascun registro a scorrimento ha quatrro sradi La logica che controlla
il trasferimento progettata in modo da abilirare i regisrri, artraverso il segnale Shifi, per
quattro impulsi di clock La remporizzazione dei segnali di abilitazione riportata nella
Figura 5 4(b) I quattro impulsi di clock, allinterno dellintervallo in cui Shift = 1, deter
minano altrettanri impulsi di abilitazione Tx, T2, T$, e
I fronti di salita di T\, T2, T$,
e 7*4 determinano uno scorrimenro in entrambi i registri Dopo il quarto impulso, Shift
nrorna a 0 e i registri sono disabilitati Si noti ancora che, utilizzando registri artivi sul
fronre di salita, questi sono disabilirari quando il segnale di controllo al livello 1
Si supponga adesso che prima dello scorrimento il contenuto binario del registro A
sia 1011, quello del registro B sia 0010 e che lingresso S I del registro A sia connesso a 0
Il rrasferimento seriale da A a B si compier in quattro passi, secondo le rransizioni ri
portate nella Tabella 5 1
Con il primo impulso 7\, turti i bit di A e B sono spostati, co nrempo rancamente,
di una posizione verso destra II bir pi a destra di A viene spostato nella posizione pi a
sinistra di B e nella posizione pi a sinistra di A viene posro 0 ricevuto dall ingresso se
riale SI I rre impulsi successivi eseguono operazioni identiche, sposrando i bir di A in B,
uno alla volta, di un posto verso destra, mentre tre 0 si trasferiscono in A, azzerandolo
Dopo il quarto scorrimento, la logica che supervisiona il trasferimento fa commutare il
segnale Shift a 0 e il processo si arresra Alla fine il regisrro B conterr 1011 che comode
con il valore precedenremente contenuto in A Contemporaneamente il registro Ah. az
zeraro
La differenza rra operazioni seriali e operazioni parallele dovrebbe, a questo punro,
risultare chiara Con il modo parallelo, sono disponibili rutti i bit di un registro che,
quindi, possono essere trasferiti simultaneamenre duranre un singolo impulso di clock
Con il modo seriale, i registri hanno un singolo ingresso seriale e una singola uscita se
riale e 1informazione trasferita un bir alla volta

Somma seriale
Di solito le operazioni nei calcolatori digitali sono effetruate in parallelo per una mag
giore velocit Le operazioni seriali risulrano meno veloci, ma hanno il vantaggio di ri
chiedere meno circuteria Per descrivere una operazione seriale, si utilizzer, come esem
pio, un sommato re seriale Inoltre confronteremo il sommato re seriale e il sommato re

53

Registri a scommento

275

parallelo, descritto nel Paragrafo 3 8, per mostrare un esempio dei compromessi necessa
ri, in fase di progettazione, rra area di silicio occupata dal circuito e tempo di esecuzione
I
numeri binari da sommare in modo seriale sono memorizzati nei due registri a
scorrimento, A c B I bir sono sommati a coppie, una coppia alla volta, rramire un cir
cuiro full adder (FA), come mosrrato nella Figura 5 5 II riporto, generato dal circuir
full adder, viene immagazzinaro nel flip flop D e utilizzaro, come riporro, nella somma
della successiva coppia di bir II bir relativo alla somma cio luscita S del full adder, po
trebbe essere trasferir in un rerzo registro In questo caso si preferir riutilizzare il re
gistro A, il cui contenuro viene quindi man mano sosriruito dalle somme parziali Lin
gresso seriale S I (Serial Input) del registro B pu ricevere un alrro numero man mano che
la somma procede
Lesecuzione di una somma seriale si svolge nel modo seguente II registro A conue
ne il primo addendo (successivamente sostituito dalla prima somma parziale), il registro B
contiene il secondo addendo e il flip flop destinato al riporro azzerato Le usate seriali di
A e d i B forniscono la coppia di bit per il full adder (ingressi X c Y) Luscita del flip flop
riporto connessa a Z Quando Shijt = 1, la porta OR abilira il clock sia per registri sia
per il flip flop Ciascun impulso di clock fa scorrere entrambi i regisrri di una posizione a
destra, rrasferisce il bir somma S nel flip flop pi a sinistra del regisrro A e trasferisce lu
scita C, conrenente il riporto, nel flip flop a ci destinato La logica di controllo abilita
registri per ranti impulsi di clock quanti sono bir da sommare (quattro, in questo esem
pio) Alla fine, il segnale Shiftviene posto a 0 e il processo di somma si arresta

Figura 5 5 Somma seriale diagramma a blocchi del circuito

276

Capitolo 5

Registri e contatori

Inizialmente si portano a 0 i registri A e B e il flip flop destinato a contenete il ti


potto Si procede quindi introducendo il primo addendo in B, che viene via via somma
to al contenuto di A II risultato viene trasferito in A Mentre il processo in esecuzione,
in B possono essere trasferiti via via i bit di un secondo addendo II secondo addendo
pu essere, quindi, sommato al primo addendo, memo uzzato in A II processo pu con
tinuate, in modo da sommare, in modo seriale, un numero qualsiasi di addendi La som
ma finale verr accumulata nel registro A
Il
confronto tra sommatoti setiali e sommatoti paralleli, descritti nel Paragrafo 3 8
fornisce un esempio del compromesso necessario tta area di silicio occupata dal circuito
e tempo di esecuzione Un sommatote parallelo, pet operandi a n bit, contiene n full ad
det, inoltre un sommatote parallelo un circuito combinatorio, mentre un sommatote
seriale un circuito sequenziale, poich comprende anche il flip flop pet il riporto Un
sommatote setiale richiede, inoltre, n cicli di clock per completare la somma Circuiti
identici, come gli n full adder del sommatote parallelo, connessi insieme in una catena,
costituiscono un esempio di fogica iterativa Se i valori dei riporti tta i vati full addet so
no considerati come variabili di stato, allora gli stati, a partite dal meno significativo al
pi significativo, sono identici agli stati che appaiono in sequenza alluscita del flip flop
nel sommatore seriale Si noti per che, menrte nella logica iterativa gli stati si dispongo
no nello spazio, nei circuiti sequenziali si dispongono nel tempo Convertendo una di
queste implementazioni nellaltra, si pu realizzate il compromesso desiderato tta area
occupata e tempo di esecuzione Un sommatote parallelo richiede unarea n volte pi
grande di un sommatote seriale (ignorando 1area del flip flop pet il riporto), ma n voi
te pi veloce Alternativamente, un sommatote seriale risulta n volte pi lento, mentre
n volte pi piccolo

Registri a scorrimento a caricamento parallelo


Se tutte le uscite dei flip flop di uno shift tegistet sono accessibili, linformazione intro
dotta serialmente nel registro, tramite scoramento, pu essere esttatta dalle uscite di rut
ti i flip flop in modo parallelo Se al registro a scorrimento si aggiunge la capacita di ca
care i dati in modo parallelo, essi possono poi essere estratti serialmente Pertanto, un
registro a scorrimento, con le uscite dei flip flop accessibili e la capacit di caricare i dati
in parallelo, pu essere utilizzato per passate dalla modalit parallela a seriale e viceversa,
ovvero agisce da convertitore parallelo seriale o seriale parallelo
Nella Figura 5 6 sono portati il diagramma logico di un registro a scorrimento a 4
bit con caricamento parallelo e il simbolo corrispondente Esistono due ingressi di con
ttollo, uno pet lo scoramento {Shtfi) e 1altro per il caricamento [Load) Ciascuno stadio
del registro formato da un flip flop D> da una porta OR e da tre porte AND La prima
porta AND abilita loperazione di scorrimento, la seconda abilita il caricamento dei dati
di ingresso e la terza ripristina il contenuto del registro tutte le volte che nessuna opera
zione achiesta
Le operazioni svolte da questo registro sono riportate nella Tabella 5 2 Quando en
ttambi i segnali di controllo (Shift e Load) sono 0, la terza porta AND in ciascuno stadio
abilitata e luscita di ciascun flip flop applicata al corrispondente ingresso D II suc
cessivo fronte di salita del clock tiptistina, pertanto, il contenuto del registro e in uscita

53

Registri a scorrimento

Figura 5 6 Registro a scorrimento a caricamento parallelo

non si ha alcun cambiamento Quando Shtfi 0 e Load 1, la seconda poeta AND abi
litata in ciascuno stadio e lingresso D l applicato al corrispondente ingresso D del flip
fop t-mo I valori presenti in ingresso saranno trasferiti nel registro al successivo ftonre di
salita del clock Quando Shtfi 1, in ciascuno stadio abilitata la prima porta AND e le

TABELLA 5 2

Tabella funzionale per il registro della Figura 5 6

Shift

Load

0
0

Azione
Nessun cambiamento
Caricamento parallelo dei dati
Scorrimento da Qq a Q3

277

278

Capitolo 5

Registri e contatori

altre due porte sono disabilitate In questo caso, 1ingresso dt caricamento Load cachet
tato come condizione di non specificazione, tn quanto la seconda porta AND dtsabtli
tata in ogni caso In modalit scorrimento, al successivo fronte di salita del clock, il dato
presente all ingresso seriale SI (Serial Input) trasferito al fltp flop Qq, 1uscita di Qo tra
sfertta al fltp flop Qi e cosi vta Si noti che, per la maniera tn cui tl circuito dtsegnato
si ha lo scorrimento dall alto verso il basso Chiaramente, se si ruota di 90 tn senso an
fiorarlo, lo scorrimento avverr da sinistra a destra come net casi visti prima
I
registri a scorrimento sono spesso utilizzati come Interfaccia per sistemi digit
che sono posizionati a distanza luno dallaltro Si supponga di voler trasmettere n bit tra
due punti Se la distanza notevole, risulter molto dispendioso utilizzare n fili per tra
smettere gli n bit in parallelo Sar molto pi conveniente utilizzare un solo filo e tra
smettere 1informazione tn modo seriale, un bit alla volta II trasmettirore caricher il da
to a n bit in parallelo in un registro a scorrimento del tipo visto tn precedenza, e
trasmetter bit in n passi tn modo seriale lungo la connessione II ricevitore a sua volta
accetter 1dati serialmente in un registro a scorrimento a n stadi e, quando tutti gli n bit
saranno arrivati, attiver luscita parallela In conclusione, tl trasmettitore eseguir una
conversione parallelo seriale, mentre tl ttcevttore eseguir quella sertale-parallelo

Registri a scorrimento bidirezionali


Un registro in gtado di eseguire lo scorrimento dei dati soltanto tn una direzione chiama
to registro a scommento unidirezionale Un registro in grado invece di eseguire lo scorri
mento in entrambe le direzioni chiamato registro a scommento bidirezionale possibile
modificare il circuito della Figura 5 6, aggiungendo a ciascuno stadio una quarta porta
AND, allo scopo di consentire lo scorrimento del dati anche verso lalto immediato os
servare che le quattro porte AND e la porta OR tn ciascuno stadio costituiscono un
muitiplexer 4 1, con gli ingressi di selezione che controllano il funzionamento del registro
Nella Figura 5 7(a) viene presentato uno stadio di un registro a scorrimento btdtre
zionaie con caricamento parallelo Ciascun stadio formato da un flip flop D e da un
muluplexer 4 1, come illustrato nel riquadro tn tratteggio nella Figura 5 7(a) I due Ingres
si dt selezione Sj e S0 selezionano uno degli ingressi del multtplexer per tl flip flop D, se
condo la Tabella funzionale 5 3 Quando SjSq = 00, si seleziona lingresso 0 del multiplexer,
connettendo dt fatto ciascuna uscita del fltp flop all ingresso corrispondente In questo
modo, al successivo fronte di salita del clock, non si ha alcun cambiamento in uscita
Quando SjSq = 01, lingresso dell? mo flip flop connesso, attraverso lingresso da
ti 1 del multiplexer, alluscita Q;_j del fltp flop i 1, effettuando, in questo modo uno
scorrimento verso il basso Analogamente, per S ^ q = 10, lingresso del fltp flop i mo
connesso, attraverso lingresso dati 2 del multiplexer, alluscita Q/+; del fltp flp t + 1 ef
fettuando, in questo modo, al successivo impulso di clock uno scorrimento verso lalto
Infine, per 5j5 0 =11, linformazione binaria, presente in ciascun ingresso dati parallelo
trasferita al fltp flop corrispondente, attraverso lingresso dati 3 del multiplexer (carica
mento parallelo dei dati)
La Figura 5 7 (b) mostra il simbolo per un registro a scorrimento bidirezionale a 4
bit, con 4 stadi come quello riportato nella Figura 5 7(a) Si noti che sono presenti due

53

(a)

Registri a scorrimento

Diagramma logico dello stadio i mo

Figura 5 7 Registro a scorrimento bidirezionale con caricamento parallelo

ingressi seriali, 1*ingresso seriale sinistro (LSI) e 1 ingresso seriale destro (RSf), per le due
direzioni di scorrimento possibili Le uscite seriali corrispondenti sono, rispettivamente,
QjeQo
TABELLA 5 3

Tabella

Controllo modo
St

Sq

funzionale per il registro della Figura 5 7


Azione

Nessun cambiamento
Scorrimento in avanti
Scorrimento Indietro
Caricamento parallelo dei dati

279

280

Capitolo 5

5.4

Registri e contatori

Contatori a cascata

Un registro che si evolve secondo una sequenza predefinir di stati, allapplicazione di


impulsi in ingresso, denominara contatore Gli impulsi in ingresso possono essere im
pulsi di clock o possono avere origine in altre parti del circuito Tali impulsi possono pre
senrarsi a intervalli di rempo costann o a intervalli casuali Nei contatori solitamente si
assume che siano gli impulsi di clock a causare le transizioni, ma possibile che altri
segnali possano svolgere la funzione del clock La sequenza degli srari pu seguire la se
quenza di numeri binari, e in questo caso si parler di contatori binan Un contaron bi
nano a n bir formato da n flip flop e pu contare in binario da 0 a 2 1
I
contatori si dividono in due categorie contatori a cascata e contatori sincroni
un contatore a cascata la transizione che avviene nel segnale di uscir di un flip flop ser
ve come eccirazione per il flip flop successivo connesso in cascara In alrre parole, lin
gresso C di alcuni o di rurti i flip flop, connesso alluscira di altri flip flop In un conra
rore sincrono, gli ingressi Cdi tutti flip flop ricevono un impulso dal clock comune e il
cambio di stato dererminato dallo sraro presenre in cui si rrova il contarore Si parler
di contaron sincroni nelle prossime due sezioni del capitolo Nel seguito invece si parler
dei conraton a cascata binari e se ne illustrer il funzionamento
Nella Figura 5 8 riportato il diagramma logico di un contarore binario a cascata a
4 bir II contarore costruito con flip flop JK, in grado di complementare il proprio con
tenuto L uscita di ciascun flip flop connessa, in sequenza, all ingresso C del successivo
flip flop II flip flop che contiene il bir meno significativo riceve gh impulsi di clock in
ingresso Gli ingressi J t K di rutti i flip flop sono connessi costanremente al livello logi
co 1, in modo da assicurare la modalit di funzionamento desiderata II pallino di fronte
al simbolo delPindicatore dinamico, vicino all etichetta C, indica che i flip flop commu
tano sui fronti di discesa dell ingresso C Essendo gh ingressi J t K connessi a 1, ciascun
flip flop complementa il proprio stato in corrispondenza al fronre di discesa del segnale
connesso al proprio ingresso C La Transizione negariva si verifica, per esempio, quando
f usata del precedente flip flop^cui C connesso, cambia da I a 0 Un livello 0 sull in
gresso Clear pilota gli ingressi R dei flip flop per azzerare i registri in modo asincrono
Per meglio comprendere il funzionamene di un contarore binano, bisogna esami
nare la sequenza di conteggio crescente, nporrata nella parte sinisrra della Tabella 5 4 II
conteggio inizia con lo 0 binano e si ineremenra di una unit a ogni impulso in ingresso
Quando il conteggio raggiunge 15, il conrarore ritorna a 0 e ripete la sequenza II bit me
no significativo ( Q d) complemenrato a ogni impulso di conteggio Tutte le volte che Qq
va da I a 0, complementa Qj Tutre le volte che Qi va da 1 a 0, complementa Q2 Tutre
le volte che
va da 1 a 0, complementa Q3 e cos via per qualunque altro bit di ordine
superiore nel contarore Per esempio, si consideri la transizione dallo staro 0011 a 0100
Qq complemenrato con limpulso di conteggio Poich Qq va da 1 a 0, agisce su Qi e lo
complementa Come risultare, Qi> va da I a 0 e complementa Q2, cambiandolo da 0 a
1 Qj, a sua volta, non attiva Q3, in quanto Q2 presenta una transizione positiva e 1 flip
flop rispondono soltanto a Transizioni negative Pertanto, lo stato cambia da 0011 a

54

Contatori a cascata

1 Logico

Figura 5 8 Contatore in cascata a 4 bit

0100, cambiando i bir uno alla volta, m modo che il contarore vada da 0011 a 0010 (Qq
da 1 a 0), quindi a 0000 (Qi da 1 a 0) e infine a 0100 (Q2 da 0 a I) I fhp flop cambia
no il proprio sraro uno alla volta, in successione e il segnale si propaga artraverso il con
tarore in cascata da uno stadio allaltro
Un conrarore a cascara che conta in senso decrescenre segue la sequenza illustrata nel
la parte destra della Tabella 5 4 II conteggio decrescente pu essere effettuaro connettendo
l'uscita complementata di ciascun flip flop allingresso C del fip flop successivo oppure uti
lizzando fhp flop attivi sui fronti di salita (si veda lEsercizio 5 16 alla fine del capitolo)

281

282

Capitolo 5

Registri e contatori

TABELLA 5 4

Sequenze di conteggio di un contatore binano

Sequenza di conteggia crescente


2

Sequenza di conteggia decrescente


3

Q|

G0

Qi

Qo

I
contatori a cascata hanno una struttura logica semplice, sono per circuiti asincr
e pertanto possono risultare poco affidabili e dipendenti dal ritardo Ci particolarmente
vero per la logica che costituisce lanello di reazione che connette le uscite del contatore ai
suoi ingressi Inoltre contatori a cascata, con un elevato numero di bit, sono molto lenti a
causa della lunghezza del percorso seguito dallimpulso di conteggio che attraversa tutti gli
stadi Nella maggior parte dei casi, tranne nelle soluzioni a basso consumo di potenza (si
veda lEsercizio 5 15 alla fine del capitolo) sono preferibili 1contatori sincroni

5.5

Contatori binari sincroni

I contatori sincroni sono diversi dai contatori a cascata, nei contatori sincroni, gli m
pulsi di clock sono applicati a tutti i fhp flop simultaneamente, anzich uno alla volta co
me accade per i contatori a cascata Per il fhp flop JK il fatto che lusata sia compie
mentata o meno dipende dai valori degli ingressi Je. K se entrambi sono uguali a 0, il fhp
flop non cambia stato anche in presenza di un impulso di clock se entrambi sono ugua
li a 1, il flip flop complementa il proprio stato in presenza di un impulso di clock.

55

Contatori binari sincroni

283

Progettazione di contatori binari


La procedura per la progettazione di un contatore sincrono simile a quella di qualun
que altro circuito sequenziale sincrono Un contatore, se si esclude il segnale di clock,
in grado di funzionare anche senza un ingresso esterno Lusata del contatore presa dal
le uscite dei flip flop e non si hanno ulteriori uscite provenienti dalle eventuali porte lo
giche presenti nel circuito In assenza di ingressi, la tabella di stato di un contatore for
mata soltanto dalle colonne contenenti lo stato presente e lo stato futuro Le uscite
saranno implicitamente rappresentate dalla colonna per lo stato futuro
La tabella di stato di un contatore a 4 bit riportata nella Tabella 5 5 La colonna
dello stato futuro riporta le 16 configurazioni di stato da 0000 a l i l i Lo stato futuro
uguale al corrispondente valore dello stato presente aumentato di uno Quando il circu
to raggiunge lo stato 1111, passer, nella successiva transizione, allo stato 0000, mzian
do un nuovo ciclo di conteggio
I
contatore binari sono pi efficienti se costruiti usando flip flop T o JK per via
della modalit di complementazione di cui essi dispongono Luso dei flip flop di tipo D
richiede una logica leggermente pi complessa Nel seguito si progetter un contatore
impiegando sia flip flop di tipo J K che di tipo D

Tabella di stato e ingressi ai flip flop per il contatore binano

TABELLA 5 5

Stata presente

Stato futura

Ingressi oi flip flop

3 q 2 Q, Oo

03 o 2 Qi Qo

JQ3 Kq3 Jq2 Kq2 JQ1 Kqi Jqo Kqo

X
1

284

Capitolo 5

Registri e contatori

La procedura per la progerrazione di un circuir sequenziale con flip flop JK b srara


gi presenrata nel Paragrafo 4 7 Si unlizzer ora la sressa procedura per progerrare un
conrarore binario Per prima cosa si dererminano i valori degli ingressi ai flip flop per
ciascun ingresso J e K in base alla Tabella 5 5 urilizzando le rabelle di eccirazione fornire
dalla Tabella 4 10 Successivamenre, si trovano le equazioni di ingresso semplificare per
mezzo delle mappe di Karnaugh, come illusrraro nella Figura 5 9 Nella figura non sono
riporrare le mappe per il piloraggio del flip flop meno significarlo, in quanro banal

vQA
QaQa'' 00

01

10

11

00

01
0
u
3

11

10

Ix i
i 1I

X
X

Qo
Jq3 = QqQi Q2

M
ixI
M
LiJ

K q 3 = Q 0Qi Qg

I 1
i<
!<

11

X
X
X

Jqe= QoQ,

IT '

M
L*j

Kq2 QoQ,

X | X

X | X

1 !

X | X

X J X

J q i = Qo

-1
1

K q i = Qo

Figura 5 9 Mappe di Karnaugh per le equazioni di ingresso di un contatore binano

55

Contatori binari sincroni

285

menre cosriruire inreramenre da 1 e da condizioni di indifferenza Sar quindi/qo = K qq


* 1 Si non che le equazioni dellingresso / e dellingresso K sono idenriche per ciascun
flip flop, ragion per cui possono essere utilizzar! i flip flop T invece che J K
In moire applicazioni necessario conrrollare il funzionamene del conrarore arrra
verso un ingresso di abihrazione Sohramenre quesro ingresso si indica con la variabile
E N da non confondere con E AND Wall inrerno di equazioni booleane Allo scopo di
disringuere i due casi, si user la norazione E N quando si vorr indicare il prodotro lo
gico rra E ed N Con E N come ingresso abiliranre, le equazioni ingresso dei flip flop per
il contatore binario possono essere espresse come segue
/qo = qo = E N
/q i = ^ q i = Qo EN

J q2 - Kq2

= Od

Q i

EN

7q3 = ^Q 3 = Qo Q i Q i EN

Quando E N = 0, rum gli ingressi / e Assono uguali a 0 e i flip flop rimangono nello sres
so sraro, anche in presenza degli impulsi di clock Quando EN= 1, la prima equazione di
ingresso divenra /qo = K qq = 1, menrre le alrre equazioni ingresso sono quelle derivate
dalle mappe della Figura 5 9 II flip flop nella posizione meno significariva quindi complemenraro da ciascun fronre di saiira del clock I flip flop delle posizioni successive sono
complementari in corrispondenza degli impulsi di clock, solo se rum i bir delle posizio
ni meno significarne sono uguali a 1 In un conrarore binario a n bir,lequazioneingres
so per il flip flop Qj, con = 1,2, 3, , n, infatti
/<* =

= Qo

Qi

02

Ohi

en

I conrarore binari sincroni sono cararterizzari da un modello regolare, comesi pu de


durre dal conrarore binario a 4 bir della Figura 5 10 Gli ingressi C di rurri i flip flop ri
cevono un unico segnale di clock II primo sradio Qj complementaro quando il conra
rore abiliraro, con ingresso TVuguale a 1 Gli altri ingressi/ e ATsono uguali a 1 se rum
gli sradi precedenri (meno significarmi sono uguali a l e , molrre, il conteggio abiliraro
La carena di porre AND genera la logica richiesta per gli ingressi J e K Luscira riporr
CO pu essere utilizzara per esrendere il conrarore con alrri sradi, con ciascuno degli sra
di successivi cosriruiro da un ulreriore flip flop e una uireriore porr AND
Si
no ri che flip flop sono arrivi sul fronre di saiira del clock In quesro caso la po
larit del fronre del segnale di clock (posirtvo o negativo) non stravolge in funzionamen
ro del contarore, come nel caso del contarore a cascata Un contarore sincrono pu esse
re arrivato, senza modifiche circuitali, sia dal fronre di salita che dal fronre di discesa del
segnale di clock II simbolo per un conrarore a 4 bir che commura sui fronri di saiira del
segnale di clock mosrraro nella Figura 5 10(b)

Contatori con flip flop D


Un conrarore binario pu essere progerraro con flip flop A seguendo la procedura di
progettazione presenrara nel Paragrafo 4 6 Le equazioni di ingresso dei flip flop D sono
ortenure direrramenre dai valori dello sraro ftiruro della Tabella 5 5, ricordando che

286

Capitolo 5

Registri e contatori

(a) Diagramma logico


Figura 5 10 Contatore binario sincrono a 4 bit

Qt+i - D Le equazioni possono essere espresse nella forma somma di mintermini come
funzioni dello staro presenre
A (Q j 02
D q i (Qj Qi
Ag(Qi Qz
Azj(Q3 Qz

QiOd) = 2 w(0, 2, 4, 6 , 8, 10, 12, 14)


2, 5,6, 9, 10, 13, 14)
QiQd) = ^ w(3, 4, 5,6, 11, 12, 13, 14)
QiQo) = 2 2(7 ,8, 9, 10, 11, 12, 13, 14)
Q i Qo) 2 m (U

55

Contatori binari sincroni

Semplificando, con 1ausilio delle mappe, le quartro funzioni e aggiungendo un ingresso


di abilitazione EN, si ottengono, per il contatore, le seguenti equazioni di ingresso (si ve
da lEsercizio 5 7 alla fine del capirolo)

D qq =

Od

EN

D qi = Q1 ( Qo EN)
D q2 - Q i ^ (Q o Qi EN )
D ^ = Q 3 @(Q Q{ 02 EN)
Lequazione dingresso per il flip flop Q,, relativo allo stadio t mo, pu essere espressa co
me s^jue
^ - 0 ,0 ( 0 )

Qi

Qz

0 ,1

EN)

Il circuito per un contarore binano a 4 bit con flip flop D riportato nella Figura
5 11 (a) Si noti che il circuito ha la sressa catena di porte AND per il nporro, vista in pre
cedenza Lunica differenza tra il circuito della Figura 5 1 1(a) e il contatore con flip flop
J K della Figura 5 10, consisre nella presenza di una porr XOR (OR esclusivo) nellin
gresso dei flip flop presenti nel circuir La porr XOR, di fatto, trasforma il flip flop D
in un flip flop T Un ingresso della porta XOR collegato con luscira del flip flop D,
mentre lalrro ingresso equivalerne allingresso di un flip flop T o J K (si veda lEsercizio
5 18 alla fine del capitolo)

Contatori seriali e paralleli


11 contatore sincrono della Figura 511 verr usato per illustrare due modi alternativi per
progetrare conraro ri binari Nel circuito della Figura 5 11 (a) stata utilizzata una carena
di porte AND a due ingressi per fornire indicazioni, a ciascun stadio, circa lo sraro in cui
si trova lo stadio precederne del conraro re, analogamente a quanro fatto con la logica di
riporto nel circuito sommato re a cascara Un contarore che unlizza quesra logica si dice
che usa un gatmg seriale ed denominare contatore seriale Lanalogia con il sommarore a
cascata, suggerisce che porrebbe esserci la possibilit di urilizzare una logica analoga a
quella usata nei sommaton con anricipo del ritardo, come mostrato nella Figura 5 1 l(b)
Sostituendo larea tratteggiata della Figura 5 11 (b) a quella contenuta nel retrangolo trar
teggiaro della Figura 5 1l(a), si realizza un contatore con gating parallelo, o contatorepa
rallelo 11 vanraggio del garing parallelo si evidenzia passando dallo staro 1111 allo stato
0000, in quanto bisogna considerare, in questo caso, soltanto il ritardo di una porta
AND, invece dei ritardi delle quattro porte AND del contarore seriale Tale riduzione
consente al contatore di operare pi velocemente Le equazioni per il gating parallelo
possono essere ricavate, per ispezione direrta, dai termini prodotto delle equazioni di in
gresso dei flip flop D, date in precedenza La stessa tecnica pu essere utilizzata per con
rarori implementati con flip flop di tipo T o J K
Se si connettono due contaron paralleli a 4 bit connettendo luscita CO del primo
contatore con 1ingresso TVdell altro, il contatore a 8 bit che ne risulta un contatore se

287

288

Capitolo 5

Registri e contatori

Q2
C2

03

_ o
(a) Gatng seriale

Ca

co

(b) Gating parallelo

Figura 511 Contatore binano a 4 bit con flip flop D

naie-parallelo Questo contarore possiede due parti parallele a 4 bit connesse in serie Li
dea pu essere esresa a conraton di qualunque lunghezza Considerando lanalogia con il
circuir sommatore con ritardo anncipato, ulreriori livelli di logica possono essere inrrodorti per sostituire le connessioni seriali tra segmenti a 4 bir Le ulteriori riduzioni del ri
tardo che ne risultano sono utili per costruire contatori pi grandi e pi veloci

55

Contatori binari sincroni

289

Contatori binari a incremento e decremento


Un contatore binario sincrono a decremento segue la sequenza degli stati binari in ordi
ne inverso patre da 1111 per arrivare a 0000 e da qui nrorna a l i l i per riperere il ciclo
possibile progettare un contatore a decremenro nella maniera usuale utilizzando una
sequenza di conteggio inversa II bit meno significativo dell uscita viene complementato
in corrispondenza di ciascun impulso di clock mentre i bit in posizione diversa vengono
complemenrati se in quella condizione tutti i bit che occupano posizioni meno significa
tive sono uguali a 0 Partendo, per esempio, dallo stato 0100, lo stato successivo sar
0011 Come detro in precedenza, il bit meno significativo viene sempre complementato,
il secondo bit meno significativo viene complementato in quanro turti bit in posizione
meno significativa, in questo caso solo uno, 0, il terzo bir meno significativo viene
complementaro in quanro i due bir precedenti sono uguali a 0 e, infine, il quarto bit non
commuta, in quanro i bir meno significarne non sono tutri uguali a 0
Il
diagramma circuirale di un conrarore binario sincrono a incremento decremento
simile al circuir di un contatore binario a incremento, con la diffetenza che gli ingres
si delle porte AND sono le uscire complemntate dei flip flop Le due operazioni posso
no essere combinare per formare un contatore sia crescenre sia decrescente, in cui un in
gresso apposito seleziona la direzione del conteggio Lingresso, denotato con S, tale che
con S = 1 si ha il conteggio crescente (a incremento) e con S = 0 si ha il conteggio de
screscente (a decremenro) La variabile E N h un ingresso di abilirazione, con E N - 1 si
abilira il conteggio e con E N = 0 lo si disabilira Se si utilizzano flip flop del tipo
T ( T = f - K ) , un contarore binano a incremenro decremenro a 4 bir pu essere descritro dalle seguenti equazioni di ingresso
TA()^ E N
TAl = Qn S E N + Q n
Tjfr ~ Qo Qi
7^3 = Qo Qi

S_EN
S E N + Qq Qi S E N

Q2 S E N + Qq Qi

Q2 s EN

Le equazioni per le uscire riporro allo stadio successivo sono


Cup = Qo
Q Qd

Qi
Qi

Q2 Q3 S E N
Qi Q $ E N

per il conteggio crescente


per il conteggio decrescente

Le uscite riporto forniscono lingresso per complementare il flip flop successivo se il con
ratore esteso al quinro stadio e oltre II diagramma circuitale pu essere fcilmenre otrenuto dalle equazioni di ingresso, ma non Trattato in questa sede (si veda 1Esercizio
5 19 alla fine del capitolo)

Contatori binari a caricamento parallelo


I contatori urilizzan nei sistemi digitali richiedono spesso la possibilirdi caricarein pa
rallelo unvalore iniziale binarioprima di iniziare il conteggio La figura 5 12 (a)mostra il
diagramma logico di un registro che ha capacit di caricamento parallelo e che pu an

Capitolo 5

Registri e contatori

Figura 5 12 Contatore binario a 4 bit a caricamento parallelo

che operaie come contatore La figura 5 12(b) mostra il simbolo corrispondente II fun
zionamento del circuir dipende dai valori dei due segnali di conrrollo quando 1*Ingres
so di caricamento Loadh uguale a 1>disabilita 1operazione di conteggio causando un rra
sferimento dei dari dai quattro ingressi paralleli ai quattro flip flop Se Load uguale a 0
e lingresso conteggio Count 1, il circuito opera come un contatore binario L uscita CO
pet il riporto allo stadio successivo diventa 1 se tutti e quattro flip flop hanno 1uscita

55

TABELLA 5 6

Contatori binari sincroni

291

Tabella funzionale per il registro della Figura 5 12


Funzionamento

Ingressi di controllo

0
1

Nessun cambiamento
Conteggio
Caricamento parallelo dei dati

uguale a l e lingresso conteggio Count abilitalo Questa la condizione per compie


mentare il flip flop che contiene il successivo bit pi significalivo Luscita CO utile,
quindi, per espandere il conteggio ad altri stadi
Il
funzionamento del circuir riassunto nella Tabella 5 6 Con gli ingressi carica
menro e conteggio entrambi a 0, le uscite non cambiano anche quando sono applicati
impulsi agli ingressi C Se lingresso Load 0,1 ingresso Count controlla il funzionamene
ro del contatore e le uscite cambiano in corrispondenza di ciascun fronte di salita del
limpulso applicato I dati di ingresso sono cancan nei flip flop, quando lingresso Loadb
uguale a 1, indipendentemente dal valore dellingresso conteggio Count che inibito
quando lingresso di caricamento attivo
I contatori con caricamento parallelo sono molto utili nella progettazione dei cal
colatori digitali Nel seguir, essi saranno indicati con il termine registri a caricamento e
incremento Loperazione incremento quella operazione che aggiunge ununit al conte
nuto del registro Abilitando lingresso di conteggio durante un solo periodo di clock, il
contenuto del registro viene inerementaro di una unit
II con tarore binario a caricamento parallelo pu essere convertito in un contatore
BCD sincrono (senza ingresso di caricamento), aggiungendo una porta AND esterna,
cosi come mosrrato nella Figura 5 13 II contatore parte dallo staro/usata 0000 e lin

CTR 4

Ctock-

Load
Count

(Logic 0) |

Figura 5 1 3 Contatore BCD

D0

Qq

Qq

Di

Q1

D2

Q2

Qi
Q2
Q3

d3

Q3
CO

292

Capitolo 5

Registri e contatori

gresso dt caricamento Load atttvo Con lusctta della porta AND pari a 0 Tingtesso di
caricamento Load non attivo e ctascun fronte del clock tncrementa il contatore dt uno
Quando I usctta raggiunge il valore di 1001, sta Qd sia Q3 diventano 1, per cut I usctta
della porta AND dtventa 1 Questa condtzione rende ti segnale Load atttvo, per cut, al
successivo fronte di saltta del clock, il contatore cattca dat proprt ingresst tl valore 0000
dal momenro che 1 quattro tngressi D, sono connesst permanenremente a 0 In condu
sto ne tl circutto esegue il conteggto da 0000 a 1001 per pot tornare a 0000, cosi come ri
chiesto dal codice BCD

5.6

Altri tipi di contatori

I contatori possono essere progetta per generare una qualunque sequenza di stati Un
contatore divisoreper N (o contatore modulo N ) un contatore che ripete una sequenza di
N stati La sequenza pu seguite il conteggto btnario o pu essere qualunque altra se
quenza arbitraria In entrambi 1cast la progettaztone del contatore segue le procedure per
la progettazione dei ctrcuiti sequenziali sincront Di seguito, a tttolo dt esempio, si tllu
strer la progettazione di due contatori un contatore BCD e un contatore con una arbi
traria sequenza di stati

Contatore BCD
Come illustrato nel precedente paragtafo, un contatore BCD si ottiene da un contatore
btnario con caricamento parallelo anche posstbtle progettare un contatore BCD uti
lizzando direttamente fltp flop e porte logiche La Tabella 5 7 rtporta la tabella di stato e
le condtztoni dt ingresso corrtspondenti nel caso st adoperino flip flop di tipo T Se Io

TABELLA 5 7

Tabella di stato e ingressi ai flip flop per i[ contatore BCD


Stato futuro

Stato presente
Qa

cu q 2 Q|

Uscita

Qa

cu

q2

Qi

Tq8

Tq4

Tq2

Tqi

0
1
1

0
1

0
0

0
1

1
1
1

0
0

0
1

0
1

0
1

1
1

0
1

0
1

0
0

0
0

0
0

0
1

0
0

0
0
1
1

1
1

1
1

0
1
1

0
0

0
1

0
0

0
0

0
1

0
1
1

0
1

Ingressi ai flip flap

56

Altri tipi di contatori

staro di uno dei fltp flop complementato durante ia transtztone dallo stato presente al
lo stato futuro, allora lingresso T corrispondente a tale tstanza uguale a 1 Se tnvece Io
staro futuro coincide con lo staro presente allota ltngresso T uguale a 0 Lusctta del
contarore Y come rtporrato tn tabella, normalmente 0 tranne quando Io stato presente
1001 In questo caso, infattt, 1usctta dtventa 1, generando, di fatto, il rtporto per la de
ctna successiva, mente tl contatore rttorna allo stato 0000
Le equaztont dt ingresso det fltp flop sono ottenute a partire dalle spectfiche sui va
Ioti deglt ingressi riportate nella Tabella 5 7 e possono essere sempltftcate per mezzo del
le mappe di Karnaugh GIt statt non utiltzzati, in corrispondenza dei mtntermtnt com
prest tra 1010 e 1111, sono considerati come condiztoni di non speciftcaztone Le
equaziont di ingresso sempltftcate pet il contatore BCD sono
Tq i = l
^Q2 = Ql Qs

?Q4 ~ Ql Q2
?Q8 = Q l 08 + Ql Ql 0.4

Y^Q iQ s
II circuito pu essere realtzzato con quattro flip flop di tipo T, quattro porte AND e una
porta OR* I contatori BCD sincront possono essere connessi in cascata per formare con
tatori per numeri decimali di qualunque lunghezza La connessione ottenuta connet
tendo luscita Ksta a 7q{ (ingtesso del fltp flop meno stgmficativo) sta agli ingressi di et
scuna porta AND della decina di ordine immediatamente superiore

Contatore con sequenza di conteggio arbitraria


Si desidera progettare un contatore che si evolve secondo una sequenza ripetuta di sei
stati, come riportato nella Tabella 5 8 In questa sequenza t flip flop B e C rtpetono il
conteggio arbitrario 00, 01, 10, mentre il flip Bop A alterna 0 e 1 ogni tre impulsi La se

TABELLA 5 8

Tabella dt stato e ingressi ai flip flop per un contatore con sequenza arbitraria

Stata presente

Ingressi ai flip flap

Stota futuro

Ja

KA

Kb

Jc

Kc

293

294

Capitolo 5

Registri e contatori

quenza di conteggio del contatore non quindi binaria e, inoirre, due stati, Oli e 111,
non sono inclusi nella sequenza La scelta di progettare il contatore con flip flop J K tn
va dalla analisi delle condizioni di ingresso dei fhp flop, riportate nella Tabella 5 8 Gli
ingressi
e K& sono sempre uguali a 1, in quanto nella colonna relativa a questi in
gressi compaiono 1 o condizioni di non-specificazione per tutte le combinazioni di stati
possibili Le altre equazioni dingresso ai flip flop possono essere semplificate, conside
rando i mintermini 3 e 7 (relativi agli stati non inclusi nella sequenza) come condizioni
di non-specificazione Le funzioni semplificate sono le seguenti
Ja = B

Ka =B

Jb = C

Kb = 1

Jc=B

Kc = 1

Nella Figura 5 l4(a) riportato il diagramma circuitale del contatore Poich sono pre
senti due srati non utilizzati, si analizzer li circuito per determinarne gli effetti II dia
gramma di stato, ottenuto dallanalisi del circuito sequenziale, riportato nella Figura
5 l4(b) Il diagramma indica che se il circuito si viene a trovare in uno degli stati da non
utilizzare, li successivo impulso di conteggio porter il circuito in uno degli stati della se
quenza voluta, per cui il circuito pu continuare correttamente il conteggio

Figura 5.14 Contatore con sequenza arbitraria

57

5.7

Descrizione di registri a scorrimento e contatori in linguaggio VHDL

Descrizione di registri a scorrimento e


contatori in linguaggio VHDL_________________

Per presentare lutilizzo del linguaggio VHDL per la descrizione dei registri e delle ope
razioni sul loro contenuto saranno utilizzati come esempi un registro a scorrimento e un
contatore binario
Descrizione in VHDL di un registro a scorrimento o 4 bit

Il codice VHDL della Figuta 5 15 desctive a livello funzionale, il tegistro a scor


nmenco della Figura 5 3 stato aggiunto un ingtesso RESET pet 1azzeramento
asincrono del tegistto La dcsctizione del ptocesso ricorda quella di un flip flop
D 1 quattto flip flop sono rapptesentati da un singolo segnale sh ift, di tipo
std_logio_vector a quattto componenti uno per ciascun flip flop 11segnale
d uscita Q infatti, non pu tappresentare 1flip flop dal momento che esso non
pu essere utilizzato internamente in quanto parte dell intetfaccia Lo scottimen
to a sinistta ottenuto applicando 1opetatote di concatenazione &ai tre bit me
no significativi (0 1 2) di sh ift e al segnale di ingtesso sellale SI In particola
te SI sar trasferito nella posizione meno significativa di s h ift, dopo avete
eseguito Io scotrrmento del contenuto dr una posizione a simstta del vectote II
ptocesso poi seguito da due isttuzioni dataflow che assegnano tispettivamente,
il valote corrente di sh ift alluscita Qe il bit pi significativo di sh ift al segna
le di uscita sellale SO

Descrizione in VHDL di un contotore a 4 bit

11 codice VHDL della Figuta 5 16 desctive, a livello funzionale, il contatote della


Figura 5 10 In particolate, stato aggiunto un ingresso RESET per 1azzerarnen
to asinctono del registto La descrizione del processo ricotda quella di un flip flop
D 1 quattro flip flop sono rapptcsentati dal segnale oount, di tipo stdJLogio_veotor a quattro componenti, uno per ciascun flip flop II segnale d uscita
Q infatti, non pu tapptesentare 1flip flop, dal momento che non pu essete uti
lizzato internamente in quanto parte dell intetfaccia La sequenza di conteggio
crescente ottenuta aggiungendo 0001 al vettote oount Poich laddizione non
una opetazione di tipo stdJLogio_vector necessatio utilizzare il modulo
std_logio_unsigned.all, un ultetiore modulo dalla libteria leee, che def
nisce le varie opetazioni su numeri senza segno di tipo std_logio II ptocesso
che esegue il tcset e il conteggio seguito da due isttuzioni dataflow che assegna
no, rispettivamente il valote di oount all uscita Qe un valore al segnale di tlpot
to CO In questultimo caso viene utilizzata un istruzione when else, che assegna
a CO d valore 1 soltanto quando il massimo valore di conteggio viene raggiunto e
il segnale di abilitazione EN pari a 1

295

296

Capitolo 5

Registri e contatori

4-bit Shift Register with Reset


^ (Vedi Figura 5.3)
library leee;
use leee std_logic_1164 all;
entity srg_4_r is
port(CLK, RESET, SI : in std_logic;
Q . out etd_logic_vector(3 downto 0);
SO : out etd_logic),
end erg_4_r;
architecture behavioral of srg_4_r is
signal shift : etd_logic_vector(3 downto 0);
begin
proceee (RESET, CLK)
begin
if (RESET = 1 ) then
ehift <= '0000 ;
elsif (CLK'event and (CLK = *1 )) then
shift <= shift(2 downto 0) & SI;
end if;
end proceee;
Q <= ehift;
SO
<= shift(3),
end behavioral;
Figura 5 15 Descrizione funzionale in VHDL di un registro a scorrimento a sinistra a 4 bit con
reset diretto

4-bit Binary Counter with Reeet


(Vedi Figura 5.10)
library leee;
uee ieee.std_logic_1164 all;
uee leee etd_logic_unsigned all,
entity ccunt_4_r le
port(CLK, RESET, EN . in etd_lcgie,
Q out etd_lcgic_vectcr(3 downto 0),
CO : out std_legie);
end ccunt_4_r;
architecture behavioral o ccunt_4_r is
signal ccunt : std_logic_vectcr(3 downto 0);
hegin
process (RESET, CLK)
begin
if (RESET = '!') then
count <= 0000 ;
elsif (CLK'event and (CLK - 1 ) and (EN = 1 )) then
count <= count + 10001 ;
end if;
end process;
Q <= ccunt;
CO <= 1 when count = 1111 and EN = 1 else 0 ;
end behavioral;
Figura 5 16 Descrizione funzionale in VHDL di un contatore binano a 4 bit con reset diretto

58

5,8

Descrizione di registri a scorrimento e contatori in linguaggio Verilog

Descrizione di registri a scorrimento e


contatori in linguaggio Verilog________________

Per presentare 1utilizzo del linguaggio Verilog per la descrizione dei registri e delle ope
razioni sul loro contenuto saranno utilizzati come esempi un registro a scorrimento e un
contatore binano
Descrizione in Verilog di un registro a scorrimento a 4 bit

Il codice Verilog della Figura 5 17 descrive a livello funzionale il registro a scor


rimento della Figura 5 3 stato aggiunto un ingresso RESET per lazzeramento
asincrono del registro La descrizione del processo, che inizia con always, si
nule a quella di un flip flop D I quattro flip flop sono rappresentati da un vetto
re Q, di tipo reg a quattro componenti Lo scorrimento a sinistra ottenuto ap
plicando 1operatore { } per concatenare l tre bit meno significativi di Q e
1ingresso seriale SI In particolare SI sar trasferito nella posizione meno sigmfl
catlva di Q, dopo avere eseguito lo scorrimento di una posizione a sinistra del
contenuto del vettore Immediatamente prima del processo che esegue lo scorri
mento presente un istruzione d<assegnazione continua che assegna il contenu
to del bit pi significativo di Q al segnale seriale d uscita SO

// 4-bit Shift Regieter with Reset


// {Vedi Figura 5.3)
module erg_4_r_v (CLK, RESET, SI, Q,SO);
input CLK, RESET, SI;
output 13 0] Q,
output SO,
reg 13.01 Q,
assign SO = Q[31,
always @(posedge CLK er posedge RESET)
begin
if (RESET)
Q <= 4 bOOOO;
Q <= {Q[2 0], SI>;
end
endmodule
Figura 5 1 7 Descrizione funzionale in Verilog di un registro a scorrimento
reset diretto

a sinistra a 4 bit con

297

298

Capitolo 5

Registri e contatori

// 4-bit Binary Counter with Reset


// (Vedi Figura 5 10)
module count_4_r_v (CLK, RESET, EN, Q, CO);
input CLK, RESET, EN,
output [3:0] Q,
output CO;
reg [3:0] Q;
assign CO = (count == 4 bllll && EN == l'bl) 1 * 0 ,
always@(posedge CLK or posedge RESET)
begin
if (RESET)
Q <= 4 bOOOO;
else if (EN)
Q <= q + 4 bOOOl;
end
endmodule
Figura 5 1 8 Descrizione funzionale in Verilog di un contatore binario a 4 bit con reset diretto

Descrizione in Verilog di un confoto re a 4 bit

IIcodice Venbg della Figura 5 18 descrive il contarore della Figura 5 10 a Uvei


10 funzionale sraro aggiunto un ingresso RESET per I azzeramento asincrono
del registro La descrizione del processo simile a quella di un flip flop D 1quat
tro flip flop sono rappresentati dal segnale q, di tipo reg a quartro componenti
11conreggio ctescenre si ottiene semplicemente increraenrando di una unit il va
bre di Q Immediatamente prima del processo che esegue il reset e il conteggio
presente una istruzione di assegnazione continua che definisce il segnale di ripor
to CO CO sar 1 soltanto quando si taggiunge il massimo conteggio e il segnale di
abilitazione EN pari a 1 Si noti che! opetatote logico AND indicato con il
simbolo &C&C

5.9

Sintesi del capitolo____________________________

I regista, i tegistti a scottimento e i contatori sono blocchi logici sequenziali sttuttutati


I tegistti sono formati da flip flop con o senza logica combinatola di controllo I tegistti
pi semplici sono flip flop il cui contenuto funzione degli ingtessi e viene aggiotnato a
ogni ciclo di dock Con un mimmo di complessit aggiuntiva, possono essete tealizzati
tegistti il cui aggiornamento tegolato da un segnale di conttollo e avviene soltanto du
tante opportuni cicli di clock
I tegistti a scotrimento aggiungono una nuova funzionalit al trasfetimento dei da
ti, in quanto permettono la ttaslazione delle infotmazioni contenute nel tegistro di uno

Riferimenti bibliografici

299

o pi bit alla volta Quando un registto a scottimenro ha anche la capacit di caricare i


dari in patallelo, pu essete urihzzato come convetrirore patallelo setiale Allo sresso mo
do, se le uscire del tegisrto sono ditettamenre accessibili, un tegistto a scoramento pu
essete urilizzaro come converntote seriale parallelo La capacir di scottimento, inolrte
pu essete unlizzata allintetno di oppotrune stturrure hardwate pet lesecuzione di
opetazioni atirmenche setiah
1
contaroti sono utilizzari pet genetare cidicamenre sequenze di valoti, spesso se
guendo la sequenza di conteggio binatia I conratoti pi semplici hanno ingtessi di teset
asmctoni pet 1inizializzazione del citcuito e contano semplicemenre il numeto degli im
pulsi di clock Vetsioni pi complesse consentono il caricamento di un valote iniziale di
conteggio, possono essete biditezionali (conteggio ctescenre o dectescenre) con o senza
segnale di abilirazione al conreggio
fcYAtivJ Maretiale didarrico aggiunrivo nguardanre le desctizioni di tegisrti e di contatoti in
linguaggio VHDL e in linguaggio Vetilog disponibile ptesso il Ptentice Hall Compa
nton Websire Gallety, all inditizzo http //www prenhall com/kime

Riferimenti bibliografici_____________________________
1 MANO, M M Digital Design 2aed Englewood Cliffs, NJ, Ptennce Hall, 1991
2 ROTH, C H Fundamentals o f Logic Design 4aed St Paul, West, 1992
3 WakERLY, J F Digital Design Principles and Practices 4a ed Upper Saddle Rivet,
NJ, Ptentice Hall, 2000
4 IEEE Standard VHDL Language Reference Manual (ANSI/IEEE Std 1076 1993,
revision, o f IEEE Std 1076 1987) New Yotk, The Institute of Electtical and Elee
ttomcs Engineets, 1994
5 PELLERIN, D e D TAYLOR VHDL Made Easy( Uppet Saddle Rivet, NJ, Ptentice

Hall PTR, 1997


6 STEFAN, S e L L in d h

VHDL for Designers London, Ptentice Hall Eutope,

1997
7. IEEE Standard Description Language Based on the VenlogTM) Hardware Descnp
tion Language (IEEE Std 1364 1995) New Yotk, The Institute of Electtical and
Electronics Engineets, 1995
8 Pa LNITKAR, S Venlog HDL A Guide to Digital Design and Synthesis SunSoft:

Ptess (A Ptentice Hall Title), 1996


9 ClLETTI, M Modeling, Synthesis, and Rapid Prototyping with the Vertlog HDL, Up
per Saddle Rivet, NJ, Ptentice Hall, 1999
10 THOMAS, D E , e P R M o ORBY The Vertlog Hardware Description Language A*
ed Boston, Kluwer Academic Publishers, 1998

300

Capitolo 5

Registri e contatori

Esercizi
SH2332II segno pia (+) indica esercizi con un grado di complessir pi elevato, lasterisco (*)
che una soluzione disponibile sul sito web che accompagna il resro
5 1 Simulare (manualmente o tramite uno strumenro CAD) il funzionamento del re
gisrro della Figura 5 l(a) con il segnale di caricamento descritto nella Figura
5 l(c), per dimostrare che il clock gating funziona correttamente Utilizzare un
flip flop, attivo su fronte di salita, con il segnale Clock come ingresso di clock per
generare il segnale Load Si urilizzino porte e flip flop con ntatdo non nullo
5 2 + Cambiare la porta OR della Figura 5 l(c) con una porr AND e rogliere lin
vertirore sulla linea del segnale Load
a) Eseguire la stessa simulazione dellEsercizio 5 1 per dimostrate che il nuovo
clock gating non funziona correttamente Spiegare cosa non funziona
b) Se d flip flop, che genera il segnale Load, attivo sul fronre di discesa invece
che sul fronre di salira di Clock, d circuito funzioner correttamenre?
5 3 * Il contenuro di un registro a 4 bit inizialmente 0000 11 registro rraslato di orro posizioni verso a destra e la sequenza applicata al suo ingresso seriale
10110111 II bir pi a sinistra della sequenza applicato per primo Qual il con
renuro del registro dopo ogni singolo scorrimenro?
5 4 11 conrenuto di un registro a 4 bit inizialmente 1111 II registro traslaro di otro posizioni verso a destra e la sequenza applicata al suo ingresso seriale
001010 11 II bit pi a sinistra della sequenza e applicato per primo Qual il conrenuro del registro dopo ogni singolo scorrimento*'
5 5 In che cosa consiste la differenza tra un trasferirnenro parallelo e un Trasferirnento
seriale? Spiegare come si converrono dati seriali in parallelo e dati paralleli in se
nali Quale ripo di registro occorre?
5 6 * Il sommatore seriale della Figura 5 5 utilizza due regisrn a 4 bit II registro A
contiene il numero binano 0110, mentre il registro B contiene 0011 11 flip flop
del riporto ha inizialmente luscita pan a 0 Elencare i valori binari contenuti nel
registro A e lo staro del flip flop conrenente il riporto dopo ciascuno dei quattro
scorrimenti necessari a completare la somma
5 7 Quali cambiamenti sono necessari nella Figura 5 5 per convettiva in un circuito
sottratto re seriale che sottragga d contenuto del registro B dal contenuto del regi
stro A ? Spiegare come sia possibile individuare seA<B Se A<B> quale sar la rela
zio ne fra il risultato ottenuto e il risultato corretto?

Esercizi

5 8 * Modificare il registro della Figura 5 6 in modo che esso operi secondo la se


guente tabella funzionale, utilizzando gli ingressi di selezione Si e 5 0
Si

So

Azione

0
0

0
1

0
1

Nessun cambiamento
Azzeramento tegistto
Scorrimento
Caricamento patallelo

5 9 Disegnare i quattto stadi del registro a scorrimento bidirezionale con caricamento


parallelo, riporraro nella Figura 5 7
5 10 * Un contarore ad anello un registro a scorrimento con lusata seriale connessa

allingresso seriale, cos come mostrato nella Figura 5 3


(a) Parrendo dallo stato iniziale 1000, elencare la sequenza degli stati dei quattro
flip flop dopo ciascun scorrimento
(b) Partendo dallo srato 10 0, quanti stati ci sono nella sequenza di conteggio di
un contatore ad anello a n bir?
5 11 Disegnare il diagramma logico di un regisrro a 4 bir con ingressi di selezione Sj e
50 II registro opera seconda la seguente rabella funzionale
Si

So

Azione

0
0

1
1

0
1

Nessun cambiamento
Azzeramento registro
Caricamento parallelo
Uscita complementata

5 12 Un contarore ad anello con inversione (stvitch tail) utilizza come ingresso seriale il
complemento della uscita seriale
(a) Partendo dallo stato iniziale 0000, elencare le sequenze di stari dopo ciascun
scorrimento fino a quando d registro ritorna allo stato 0000
(b) Partendo dallo stato 00 0, quanti stati a sono nella sequenza di conteggio di
un contatore ad anello con inversione a n bit?
5 13 Un flip flop J K attivo sul fronte di discesa del clock presenta un ritardo di 2 ns tra
listante in cui lingresso C passa da 1 a 0 e listante in cui luscita viene compie
mentata Qual il massimo ritardo per un contatore a cascata binano a 16 bit che
utilizza questi flip flop? Qual la frequenza massima alla quale il contatore pu
operare in modo affidabile'*

302

Capitolo 5

Registri e contatori

5 14 Quanti flip flop vengono complementati in un contatore a cascata a 8 bit, per tag
giungete lo stato successivo partendo dalla configurazione
(a) 01100111
(b) 00011111
5 1 5 + Per una famiglia logica CMOS, I assopimento di corrente proporzionale alla
somma delle transizioni (da 1 a 0 e da 0 a 1) in tutte le potte di ingresso e di usci
ta nel citcuito Quando si progettano contatoti pet circuiti a bassa porenza, si pte
fetisce utilizzare i contatoti a cascata in luogo dei contatoti binati sincroni Con
tare il numeto totale delle transizioni (ingressi e uscite) in un contatore a cascata
(includendo quelle relative al clock) e confrontarlo con il numeto delle transizio
ni m un contatote binario sincrono della stessa lunghezza Basandosi su questa
analisi, spiegate perch il contatore a cascata superiore in termini di consumo di
cottente
5 16 Disegnate il diagtamma logico di un contatote binano a cascata a decremento a 4
bit utilizzando
(a) flip flop attivi sul fronte di salira del clock
(b) flip flop attivi sul ftonre di discesa del clock
5 17 * Patrendo dalla tabella di staro tipotrata nella Tabella 5 5 ricavate le equazioni di
ingtesso semplificare del flip flop pet un contatote binano sincrono con flip flop
di npo D Ptevedete un ingtesso di abilitazione E N
5 18 Unhzzando la procedura di progetrazione pet un circuito sequenziale e patrendo
dal diagtamma srato, converrite un flip flop D in un flip flop T, dimostrando che
il citcuito logico combinarono necessario per la conversione corrisponde a una
porr XOR (OR esclusivo)
5 19 Cosrtuite un conrarote setiale parallelo a 13 bit, urilizzando tre conraroti patalle
li a 4 bit Si supponga che rurra la patre combinarotia sia cosnruira da potre
NAND e NOT e che rte contaroti impieghino il garing seriale Qual il nume
to massimo di porre NAND e di potte NOT nella carena che propaga il segnale
nel conratote a 13 bir?
5 20 + Si deve progetrate un conratote parallelo sincrono a 64 bir
(a) Disegnate il circuito di un contatote parallelo a 64 bir urilizzando blocchi
conratote parallelo a 8 bir e due livelli di garing parallelo tra blocchi In questi
blocchi, CO non piloraro dal segnale di abilitazione E N
(b) Determinate il tappotro rta la frequenza massima di funzionamento di questo
contatore e quella di un conratote seriale parallelo a 64 bir Supporre che il
rempo di propagazione del flip flop J K sia il doppio del atardo di una potr
AND e che il tempo di serup del flip flop sia uguale al tardo di una potta
AND
5 21 * Disegnate il circuito pet un conrarote binario bidirezionale sincrono a 4 bir con
un ingtesso di abilirazione E N t un ingresso S pet selezionate la ditezione del con
teggio Utilizzare flip flop di npo JK

Esercizi

5 22 Utilizzate il contatore binario sincrono apottato nella Figura 5 12 e una potta


AND pet costruite un contatore che conti da 0000 a 1001 Ripetete il progetto
per un contatore capace di contare da 0000 a 1101 Minimizzate il numero di in
gtessi della porta AND
5 23 Utilizzare un numero opportuno di pone logiche e due contatoti binati del tipo
mostrato nella Figura 5 12, pet costruire un contatore binario che conta da 9 a
69 Aggiungete un ulteriore ingresso che inizializza, in modo sincrono, il contato
te a 9 quando il segnale INIT 1
5 24 * Pet il contatore BCD sincrono il cui funzionamento specificato dalla Tabella
5 7 verificate le equazioni di ingresso dei flip flop Disegnare il circuito del conta
tote BCD avente anche un ingresso di abilitazione
5 25 Progettate un contatore BCD sincrono con flip flop JK
5 26 * Utilizzando flip flop JK, progettate un contatore binario capace di generare ci
clicamente la seguente sequenza binaria
(a) 0, 1,2
(b) 0, 1, 2, 3 ,4 , 5
5 27 Utilizzando flip flop T, progettare un conrarote capace di generare ciclicamente la
seguenre sequenza 0, 1, 3, 2 , 4 ,6
5 28 Utilizzando flip flop D, progettate un contatore capace di generate ciclicamente la
seguente sequenza 0, 1, 2 , 4 , 8
tSSSUi Tutti frammenti di codice VHDL utilizzati negli esercizi timanenri sono disponibi
li in formato ASCII pet le simulazione nel siro web della Prentice Hall di accompagna
mento al tesro, hrrp //www prendiall com/kime Un compilarote/simularore VHDL o
Vetilog necessario pet lo svolgimento degli esercizi o di porzioni di essi che richiedono
simulazione, anche se frammenti di codice possono anche essere tedatri pet quei proble
mi che non richiedono compilazione o simulazione
5 29 Fomite una descrizione funzionale in linguaggio VHDL pet il registro a 4 bit del
la Figuta 5 1(a) Compilare e simulare la descrizione per dimosrtame la correttezza
5 30 Fomite una descrizione strutturale in linguaggio VHDL per il regisrto a 4 bit del
la Figuta 5 l(a) utilizzando, come componenri, flip flop di ripo D Compilate e
simulare la descrizione pet dimostrarne la correttezza
5 31 Riperete lEsercizio 5 29 per il registro a 4 bit con caricamento parallelo mosrtato
nella Figura 5 2
5 32 Ripetete lEsercizio 5 30 per il regisrto a 4 bir con caricamento parallelo mosrtaro
nella Figura 5 2
5 33 Fomite una descrizione strutturale in linguaggio VHDL per il contatore a cascara
a 4 bir della Figura 5 8 Fomite anche la descrizione funzionale di un flip flop JKy
includendola nella descrizione e utilizzandola come componente Compilate e si
mulate la descrizione per dimostrarne la correttezza

303

304

Capitolo 5

Registri e contatori

5 34 Descrivere in linguaggio VHDL il contatore a 4 bit mostrato nella Figura 5 12,


utilizzando un registro per i flip flop di tipo D e le equazioni booleane per la parte
combinatoria Compilare e simulare la descrizione per dimostrarne la correttezza
5 35 Fornire una descrizione funzionale in linguaggio Verilog per il registro a 4 bit della
Figuta 5 1(a) Compilare e simulare la descrizione per dimostrarne la correttezza
5 36 Fornire una descrizione strutturale in linguaggio Verilog per il registro a 4 bit del
la Figura 5 1(a), utilizzando, come componenti, i flip flop D Compilare e simu
lare la descrizione per dimostrarne la correttezza
5 37 Ripetere 1Esercizio 5 35 per il registro a 4 bit con caricamento parallelo, mostra
ro nella Figura 5 2
5 38 Riperere lEsercizio 5 36 per il registro a 4 bit con caricamento parallelo, mastra
ro nella Figura 5 2
5 39 Fornire una descrizione strutturale in linguaggio Verilog per il contatore a cascata
a 4 bit della Figura 5 8 Fornire anche un modulo srrutturale per un flip flop J K e
utilizzarlo nella gerarchia progettuale Compilare e simulare la descrizione per di
mostrarne la correttezza
5 40 Descrivere, in linguaggio Verilog, il conrarore binario a 4 bit della Figura 5 12
utilizzando un registro per i flip flop di tipo D e equazioni booleane per la parte
combinatoria Compilare e simulare la descrizione per dimostrarne la correttezza

Capitolo 6

Memorie
e dispositivi logici programmabili

a memoria uno dei principali componenti di un calcolatore digitale


ed presente in un gran numero di sisremi digitali Le RAM (Random
Access Memory, memorie ad accesso casuale) memorizzano dan in modo
temporaneo, le ROM (Read Only Memory, memorie a sola lettura)
memorizzano invece le informazioni in modo permanente Le ROM
appartengono a una famiglia di dispositivi logici programmabili o PLD
(programmable logic device), capaci di definire circuiti logia in base alle
informazioni in essi memorizzate
Nel seguir le memorie RAM saranno prima studiate come blocchi
dotati di ingressi, uscite e segnali di temportzzazione, successivamente si
utilizzeranno modelli logici equivalenti per comprenderne il
funzionamento inrerno Si stuelleranno infine le metodologie di
connessione rra i vari circuiti integrati RAM (chip RAM) per la
costruzione di semplici sisremi di memoria Per quanto riguarda le
memorie ROM, si esaminer prima la struttura logica di base e
successivamenre si analizzeranno come implementazione di circuiti
combinarori Si esamineranno quindi molteplici PLD come i dispositivi
PLA {programmable logic array), i dispostavi PAL(programmable array
logic), i dispostavi CPDL (complexprogrammable logic devici) e i
dispositivi FpGA (fieldprogrammable gate array)

306

Capitolo 6

6.1

Memorie e dispositivi logici programmabili

Memorie e dispositivi logici programmabili

Una memoria una collezione di celle in grado di immagazzinare informazioni binane


Oltre alle celle, una memoria contiene altri circuiri elettronici per la gestione delle ope
razioni di memorizzazione e il recupero delle informazioni Le informazioni vengono poi
elaborate dai circuiti del processore (registri e logica combinatoria) ed eventualmente
rinviare nuovamenre alla memoria Con le memorie possono interagire direttamente an
che le periferiche di ingresso/uscita che scrivono/leggono dalla memoria le informazioni
da Trattare
Sono utilizzar! due tipi di memoria memorie RAM e memorie ROM La RAM
contiene informazioni limitatamente al periodo di tempo in cui il sistema alimentato
(memoria volarile) Le dimensioni della RAM variano da poche centinaia a diversi mi
liardi di bir Le memorie ROM sono dispositivi logici programmabili (PLD) e linfor
mazione binaria da immaga7Zinare alTinrerno di queste strutture deve essere prima indi
viduata e poi memorizzata mediante un processo di programmazione che a differenza del
processo di scrittura delle memorie RAM, non ripetibile Da qui il nome dato alla me
mona (sola lettura) che pu solranro essere Ietta e non alterata
Altre tipologie di dispositivi logici programmabili sono i dispositivi a marnce logi
ca programmabile (PLA), i dispositivi logici a matrice programmabile (PAL) disposi
tivi logici complessi programmabili (CPLD) e i dispositivi a matrice di porre program
mabili (FPGA) Un PLD un circuito integrato con porte logiche interne e/o
connessioni, che possono essere configurate mediante un processo di programmazione
Una delle tecnologie pi semplici di programmazione utilizza diodi fusibili che vengono
bruciati selettivamente in modo da ottenere la configurazione corrispondente al circuito
logico che si intende realizzare In questo capitolo si presenteranno quattro diversi tipi di
PLD e le relative procedure per il loro utilizzo nella progettazione di sistemi digitali
Un tipico PLD pu contenere centinaia o milioni di porte Alcune tecnologie usa
no dispositivi caratterizzati da porte con elevato fan in Per illustrare, m forma sintetica,
Io schema logico interno di tali dispositivi, viene adottata una speciale simbologia La Fi
gura 6 1 mostra il simbolo convenzionale e la corrispondente matrice logica per una por
ta OR a ingressi multipli II simbolo della porta rimane inalterato, ma, invece di molte
plici connessioni di ingresso, si ha una sola connessione e tutti 1possibili ingressi sono
rappresentati da linee perpendicolari La presenza di un simbolo di contatto (un pallino
nero o una x allincrocio tra la linea di ingresso e una delle linee perpendicolari) indica
che quella particolare linea uno degli ingressi della porta Una convenzione del tutto

-H 4 +
(a) Simbolo convenzionale

(b) Simbolo in logica programmabile

Figura 6 t Simbolo convenzionale e simbolo utilizzato in logica programmabile

62

Memorie ad accesso casuale (RAM)

analoga si applica ad altri ripi di porre (AND, XOR, ecc ) Dal momento che iniziai
mente tale procedura era utilizzata per la tecnologia che faceva uso dei fusibili, la marca
rura delle connessioni degli ingressi a una porta a marnce detta mappa delle bruciarute
(fuse map), m quanto, in quesro modo, venivano individuati diodi da bruciare per co
struire 1 insieme degli ingressi alla porta logica La sressa rappresentazione grafica e la
stessa terminologia sono ancora unlizzare, anche se le recnologie di programmazione at
mali non sono pi basate sull uso dei fusibili

6.2

Memorie ad accesso casuale (RAM)

Una memoria RAM un insieme di celle e di circuiri elertronici capaci di immagazzina


re informazioni binane II tempo di accesso per ciascuna cella di memoria, sia in lettura
sia m scrittura, costante e indipendente dalla posizione della cella sressa, da qui la de
nominazione di memorie ad accesso casuale In contrapposizione, una memoria ad acces
so seriale, per esempio un disco magnetico o una unir a nastro, ha rempi di accesso non
uniformi dipendenti dalla posizione che la particolare locazione occupa
Le informazioni binane sono olganizzare m memoria a gruppi di bit chiamar!
word* (parola) che costituiscono la singola unit di informazione un numero, una istru
zione, uno o pi caratteri alfanumerici, altre informazioni binane Le memorie, nella
maggior parte dei calcolatori sono organizzate m parole che solitamente sono multipli
di otto bit, cio multipli di un byte Cos, una parola di 16 bit contiene due byte e una
parola di 32 bit ne contiene quattro La capacit di una memoria pari al numero di by
te che m grado di immagazzinare La comunicazione tra una memoria e lesterno ga
rantita dallinsieme delle linee di ingresso e di uscita per i dati dalle linee di indirizzo e
dalle linee di controllo, che specificano la direzione di trasferimento dell'informazione e
la locazione cui si fa riferimento Nella Figura 6 2 mostrato il diagramma a blocchi di
una memoria Le n linee di ingresso dei dati forniscono linformazione da immagazzina
re nella memona, mentre le n linee di uscita dati forniscono linformazione da restituire

n Ingressi dati
k linee indmzzo
Read (lettura)
Wnte (scrittura)

Unit di memoria
2k parole
n bit per parola
,rn uscite dati

Figura 6 2 Diagramma a blocchi di una unita di memoria


* Nella figura 6 2 e nelle descrizioni che seguono si preferito utilizzare la terminologia inglese ormai di uso
internazionale e riportare laddove necessario la corrispondente traduzione in italiano

307

308

Capitolo 6

Memorie e dispositivi logici programmabili

allesterno della memoria Le k linee di indirizzo specificano quale particolare locazione


va utilizzata per loperazione corrente I due ingressi di controllo specificano la direzione
desiderata del trasferimento I ingresso di scrittura (Wnte) consenre la memorizzazione
dei dati presenti in ingresso, mentre 1ingresso di lettura (Read) consente d rrasferimenro
del dato residente in memoria verso lesterno
Una memoria definir anche dal numero di parole che contiene e dal numero di
bit da cui composta ciascuna parola Le linee di indirizzo selezionano una particolare
parola, alla quale appunto associato un indirizzo univoco Gli indirizzi variano da 0 a
2k 1, dove k il numero delle linee di indirizzo La selezione di una determinata paro
la, all interno della memoria, viene effettuata copiando lindirizzo binario a -bit nelle li
nee di indirizzo della memoria Un decodifcarore, ricevuro in ingresso tale indirizzo, at
tiver il percorso per selezionare la parola specificata Le memorie dei calcolarori hanno
vane grandezze Si soliti riferirsi al numero di parole (o byte) di una memoria con una
delle lettere K (kilo), M (mega), o G (giga) che, come si ricorder dal Capitolo 1, sono
uguali, rispettivamente, a 210, 220 e 230, per cui 64 K = 216, 2 M= 221 e 4 G = 232
Si
consideri, per esempio, una memoria con una capacita di 1 K word di 16 bit eia
scuna Poich 1 K = 1024 = 2 10 e 16 bit sono pan a due byte, si dice allora che la memo
ria ha una capacit di 2048 byte, ovvero 2 KB La Figura 6 3 mostra il possibile conte
nuto delle prime tre, e delle ultime rre, parole di una memoria di tale dimensione
Ciascuna parola connene 16 bit che possono essere divisi in due byte Le parole vengono
individuate tramire loro indirizzi decimali, compresi tra 0 e 1023 Lindirizzo in binano
corrispondente costituito da 10 bir e vana tra 0000000000 e 1111111111 Una volta
selezionata una specifica parola mediante il suo indirizzo le operazioni di lettura e scnt
tura riguardano conremporaneamente 1 16 bir della parola
La memoria di 1 K X 16 della Figura 6 3 ha indirizzi composti da 10 bit e ciascuna
parola composta da 16 bit Per una memoria di 64 K X 10, ciascun indirizzo cosrirui
to da 16 bit e ciascuna parola formata da 10 bit II numero di bit necessari per gli indi
rizzi di una memoria dipende dal numero di parole che si possono immagazzinare men
rre indipendente dal numero di bir di cui costituita ciascuna parola 11 numero di bit
per indirizzare una parola determinato dalla relazione 2k > m, dove m il numero tota
le di parole e k il numero minimo di bit di indirizzo che soddisfa la relazione

Operazioni di lettura e scrittura


Le operazioni che una memoria ad accesso casuale pu eseguire sono la lettura e la scnt
tura di una parola Una operazione di scrittura consiste nel trasferimento nella memoria
di una nuova parola Una operazione di lettura consiste nel trasferimento di una copia
della parola specificata al lesterno della memoria Loperazione scelta viene attuata da
unapposita circuitena in risposta ai due segnali di controllo il segnale Wnte per le ope
razioni di scrittura e il segnale Read per le operazioni di lettura
1 passi per unoperazione di scrittura sono
1 invio dell indirizzo binario della parola desiderata alle linee di indirizzo della me

moria

62

Memorie ad accesso casuale (RAM)

Indirizzi di memoria
Binario

Decimale

Contenuto

0000000000

0000000001

1 10101011 10001001

0000000010

1111111101

1021

10011101 00010101

1111111110

1022

00001101 00011110

1111111111

1023

1101111000100100

10110101 01011100

00001101 01000110

Figura 6 3 Esempio di contenuto di una memoria 1024 x 16

2 invio dei dati binati che devono essere immagazzinati nella memoria alle linee di

ingresso dari
3

attivazione dellingresso Wnte

La memoria trasferir il contenuto binario presente sulle linee di ingresso dati e li imma
gazziner nella locazione specificata dalle linee di indirizzo
I passi per unoperazione di lettura sono
1 invio dell indirizzo binario, corrispondente alla parola desiderata, alle linee di in

gresso
2

attivazione dell ingresso Read

Nei moderni calcolarori le memorie sono organizzate in banchi ognuno dei quali un
arcuiti integrato che implementa una memoria RAM (chip RAM) Fa parte della me
moria anche la circuiteria di supporto al suo funzionamento 1 banchi di memoria RAM
di solito, sono caratterizzati da un unico ingresso di controllo per le operazioni di lettura
e scrittura ReadJWnte e da un ingresso di selezione del banco Chip Select che lo abilita al
le operazioni 1 possibili modi di funzionamento sono riportati nella Tabella 6 1

TABELLA 61

Ingressi di controllo a un chip di memoria

Chip Select (selezione bonco)


CS

Read/Write Funzionamento memono


R/W

1
1

0
1

Nessuno
Scrittura su parola selezionata
Lettura da parola selezionata

309

310

Capitolo 6

Memorie e dispositivi logici programmabili

Il
segnale Chip Select utilizzato per abilitare il particolare banco di memor
RAM, o 1 banchi, che contengono la parola che deve essere memorizzata o Ietta in di
pendenza del ripo di operazione che interessa la memoria Quando il segnale Chip Selecr
inattivo, il banco di memoria corrispondente semplicemente disabilitato, menrre
quando il Chip Select artivo il modo di funzionamento determinato dal segnale
ReadJWnte Spesso viene aggiunto un ulteriore segnale di abilitazione per abilitare o di
sabilitare contemporaneamente tutti i banchi che costituiscono la memoria

Temporizzazione dei segnali di controllo

Le operazioni di una unit di memoria sono condoliate delle unit esterne, quali la
CPU Questa remporizzata dal proprio segnale di clock menrre il funzionamene della
memoria governato dai propri ingressi di controllo, che cadenzano le operazioni di Ier
tura e scrittura II tempo di accesso di unoperazione di lettura il pi grande nrervallo di
tempo che nrercorre tra lapplicazione degli indirizzi e il trasferimenro del dato sulle h
nee dati di uscir della memoria Analogamente il tempo di scrittura e 1nrervallo di rem
po massimo che intercorre rra I applicazione degli indirizzi e il completamento di rutte le
operazioni richieste per la memorizzazione di una parola Le operazioni di scrittura della
memoria possono susseguirsi in sequenza, a intervalli di rempo regolari, cadenzati da op
portimi cambiamenti dei segnali di controllo, orchestra dalla CPU Questo genera i se
gnali di controllo per la memoria in modo da sincronizzare le operazioni nrerne con le
operazioni di lettura e scrittura della memoria Ne consegue che il tempo di accesso e il
tempo di scrittura di una memoria devono essere messi in relazione con la frequenza di
clock della CPU, in modo che essi coincidano con uno o pi cicli di clock
Si
consideri come esempio, una CPU che opera con frequenza di clock pari a 5
MHz, cui corrisponde un periodo del segnale pari a 20 ns (1 ns = IO1-9 s) Si supponga
adesso che la CPU debba comunicare con una memoria caratterizzata da un tempo di
accesso di 65 ns e un tempo di scrittura di 75 ns II numero di impulsi di clock necessa
ri per una operazione della memoria definito dall intero pi grande del rapporro rra il
massimo valore tra tempo di accesso e rempo di scrittura e il periodo di clock
[max.{taccesso tscnmrj l t ci!1 = i~max{65> 75}/20l = [~75 /20l = [3 75l=4
Sar quindi necessario dedicare almeno quattro impulsi di clock per ciascuna richiesta di
lettura/scrittura in memoria
Il diagramma di temporizzazione del ciclo di una memoria, mostrare nella Figura
6 4, si riferisce a una CPU con un clock di 50 MHz e una memoria con tsmnura = 75 ns e
^lettura = 65 ns II ciclo di scrittura nella parte (a) della figura mostra quattro impulsi di
clock, 71, 72, 73 e 74 con un periodo pan a 20 ns Per un operazione di scrittura, la
CPU deve fornire alla memoria 1indirizzo e i dan in ingresso L indirizzo applicaro du
ranre 1nrervallo in cui il segnale di abilitazione della memoria attivo, in coincidenza
con il fronre di salita di 71 I dati da memorizzare sono applicati, in seguito, a pattire dal
fronte di salita di 72 Relativamente alle forme donda delfindirizzo e dei dati, le due h
nee che si incrociano stanno a indicare che i corrispondenti segnali possono cambiare va
lore rispetto al ciclo precedente Le aree ombrate rappresentano valori non specificati
Lefiettiva scrittura ha luogo dopo la transizione a zero del segnale ReadJWnte, in coinci
denza con il fronte di salita di TI

62

Memorie ad accesso casuale (RAM)

311

Clock
Ingresso Ind nzzo E S S *

Ind r zzo stab 8

Memory Enable
(Ab tazone)
Read/Wr te

\_____________________ /

Ingresso dall

Dat vald

Clock

Ingresso Ind nzzo


Memory Enable
Read/Write

Uscita dat

(b) C ci di lettura

Figura 6 4 Diagramma di temporizzazione di un ciclo di memoria

Per evirare di distruggere dati memorizzati nelle altre parole di memoria, impor
tante che la transizione del segnale Read/Wnte si verifichi dopo che i segnali sulle linee di
indirizzo si sono stabilizzati sui valori desiderati o, altrimenti, una o pi parole porrebbe
ro essere momentaneamenre indirizzate e accidenralmente sovrascntte con dati non vo
luri II segnale Read/Wnte dovr quindi restare al livello logico 0 per il tempo sufficiente
al completamento delloperazione di scrittura, dopo lapplicazione dellindirizzo e del se
gnale di abilitazione Dopo che il segnale Read/Wnte torna al livello logico 1, indirizzo e
dati devono rimanere ancora stabili per un breve periodo di tempo, in modo da non di
struggere i dati presenti in alrre parole della memoria Quando il quarto impulso di clock
completo, loperazione di scrittura rermina con un margine residuo di 5 ns e la CPU
pu applicare, con il successivo impulso 71, lindirizzo e segnali di conrrollo per una
nuova richiesta alla memoria
Il
ciclo di lertura descritto nella Figura 6 4(b) f nferimenro a un indirizzo di me
moria specificato dalla CPU La CPU, sul fronte di salita di 71, fornisce lindirizzo, abi
lita, con lapposito segnale Memory Enable, la memoria e porta il segnale ReadfWhte al
livello 1 per indicare una operazione di lettura La memoria fornisce dati, relarivi alla

312

Capitolo 6

Memorie e dispositivi logici programmabili

parola individuata dall indirizzo, sulle linee dati in uscita entro 65 ns dal rempo in cui
lindirizzo applicare e il segnale di abilitazione attivo A questo punto la CPU pu
trasferire dari in uno dei propri registri interni durante il successivo fronre di salir di
71, con il quale pu avere inizio anche una nuova operazione di memoria

Propriet della memoria


Una RAM integrata in un circuito pu essere sia statica che dinamica La RAM statica
(SRAM) composra da larch interni che immagazzinano informazioni binarie, che ri
mangono valide per tutto il rempo in cui la RAM alimentata La RAM dinamica
(DRAM) immagazzina 1informazione binaria sotro forma di carica elettrica su conden
saton La carica dei condensatori rende a scaricarsi con il tempo per cui viene conrinuamente effettuato un refresh tramire transistor MOS di ripo n channel ^operazione di re
fresh viene continuamente ripetuta, a intervalli di pochi millisecondi, leggendo e
riscrivendo ogni parola di memoria Le DRAM hanno un consumo ridotto di porenza e
una maggiore capacira di memoria per singolo banco Le SRAM, invece, sono pm facili
da utilizzare, posseggono cicli di lettura e scrittura pm brevi e non necessitano di refresh
Le unir di memoria che perdono le informazioni immagazzinate quando non sono
alimenrare si dicono volatili Le RAM, sia statiche sia dinamiche, appartengono a questa
categoria, in quanto le celle di memoria necessitano di alimentazione esrerna per mante
nere il loro contenuto In contrapposizione, le memorie non volatili, come dischi magneti
ci e dispositivi ottici, sono in gtado di mantenere le informazioni immagazzinate perma
nentemenre, anche senza alimentazione In queste memorie la memorizzazione
dell informazione binaria associara alla direzione della magnetizzazione che si mantiene
costante, anche in assenza di alimentazione Infine, un alrro tipo di memoria non volatile
sono le memorie a sola lettura, o ROM (Read Only Memory), che saranno esaminate pm
avanti

6.3

Circuiti di memoria RAM

Come gi anricipato nel paragrafo precedente, una unit di memoria formata da un in


sieme di banchi RAM (chip RAM) e dalla relativa logica di controllo Si comincer ora lo
srudio dettagliaro di tali elementi, esaminando dapprima la struttura interna di un banco
di memoria RAM, per poi passare ad architetture multibanco e alla progettazione della
logica di conrrollo La struttura interna di un banco di memoria RAM di m parole, con n
bit per parola, comprende m n celle binarie di memoria e la relativa circuiteria La cir
cuiteria formata dai decodificatori per selezionare le parole da cui leggere o sulle quali
scrivere, dai circuiti di lettura, dai circuiti di scrittura e dalla logica d uscita La cella RAM
la cella elementare di memoria utilizzata nel chip RAM il quale di solito progettato
utilizzando le metodologie proprie dei circuiti elettronici anzich quelle dei circuiti logici
tuttavia possibile e anche utile modellare un chip RAM come un circuito logico

63

Circuiti di memoria RAM

Select (Selezione)

p
?V
1yb*- -xt <
} i.
. K >' jj" A

!?

K
#/*
*\
-B----'L
jlyi

V- s

[
W*
^ &R

i ^or|---- J

Figura 6 5 Cella di memoria RAM statica

Per descrivere un chip RAM statico, si presenrer per prima la cella RAM elemen
tare per limmagazzinamento di un singolo bit e poi ancora la sressa inserita in una strut
tura gerarchica per descrivere un chip RAM La Figura 6 5 mostra il modello logico di
una cella RAM starica Lelemenro di memoria della cella costituito da un larch SR,
cui ingressi sono abilitati dal segnale di selezione (Select) Il contenuro del latch viene
manrenuro se il segnale Select = 0, menrre, se il segnale Select = 1, il conrenuto deter
minaro in base ai valori di B e B JLe uscite del latch sono conrrollare anch esse dal segna
le Select se Select = 0 sar C = C - 0, menrre, se Select = 1, C sar uguale al valore im
magazzinato nel latch e C il suo complemenro
possibile connettere insieme celle RAM e relativi circuiri di lettura e scrittura, in
modo da formare un elemento di memoria RAM completo di tutta U necessaria circu
teria per la memorizzazione di un singolo bit RAM bit slice Nella Figura 6 6(a) ripor
taro il diagramma logico di una RAM bit slice, in cui la parte del modello che rappre
senta ciascuna cella RAM, evidenziara in grigio II caricamento del larch controllato
dallingresso Word Selecr Se Word Select = 0, sar S = R = 0 e il contenuto del latch ri
marr inalreraro_ Se Word Select = 1, il valore da caricare nel larch sar conrrollato dai
due segnali B e B che sono le uscire del blocco logico di scrittura (Wnte Logic) Affinch
luno o lalrro dei due segnali assuma il valore 1 e, quindi, si possa modificare il valor
immagazzinato nel larch, si deve avere ReadfWhte = 0 e Bir Select = 1 In quesre cond
ziom B e B assumono il valore di Data In e del suo complemento, rispettivamente, por
rando nello staro di ser o di reset il latch della cella RAM selezionata Se Data In = 1, al
lora il latch immagazzina il valore 1 (stato di set) menrre se Data In - 0, allora il latch
immagazzina il valore 0 (stato di reset) completando loperazione di wnte
Nelle normali operazioni, viene scritta nella memoria soltanto una parola per volta
Ci significa che soltanto per una linea sar Word Select = 1, mentre per tutte le altre h
nee sar Word Select OH segnale Word Selea controlla anche il processo di lettura del
le celle RAM, utilizzando i circuiti logici di lettura condivisi Se Word Select = 0, il vaio
re immagazzinato nel relativo latch SR non raggiunge la coppia di porte OR alfinterno
del blocco logico di lettura, a causa delle due porte AND poste alluscita della cella

313

314

Capitolo 6

Memorie e dispositivi logici programmabili

Word_Select 0
{Seleztone_parola_0)

Select
(Selezione)

Figura 6 6 Modello di una bttshce di una RAM

RAM Se Word Select = 1, il valore immagazzinato nel relativo latch RAM giunge al lat
eh SR all'interno del blocco logico di lettura Se anche Bit Select = 1, questo valore ap
panr sulla linea Data Out dell elemento di memoria RAM Si noti che per la particola
re struttura del blocco logico di lettura, la lettura si verifica indipendentemente dal
valore di RsadJWnte

63

Circuiti di memoria RAM

315

Il
simbolo per la RAM bit slice, riportato nella Figura 6 6(b), utilizzato per la rap
presentazione della struttura interna dei banchi di memoria RAM Ogni linea del segnale
Word Select si estende oltre il bit slice in modo da connettere insieme pi RAM bit slice
normalmente disposti uno accanto allaltro Gli altri segnali nella parte pi bassa del sim
bolo possono essere connessi in vari modi, in dipendenza della struttura del chip RAM
Nella Figura 6 7 sono riportati il simbolo e il diagramma a blocchi per un chip
RAM di dimensione 1 6 x 1 I quattro bit di indirizzo selezionano le 16 parole da un bit,

Figura 6 7 Chip RAM 16 parole per 1 bit

316

Capitolo 6

Memorie e dispositivi logici programmabili

immagazzinate nella RAM Sono anche presenti 1 segnali Data Input, Data Output e
ReadfWnte II segnale Chip Select a livello del chip corrisponde al segnale Memory Ena
ble dellintera RAM, formata da pi chip In questo caso, la struttura interna del chip
fotmata da una RAM bit slice Composta da 16 celle Poich devono essere controllate 16
linee Word Select, in modo che, in un dato momento, soltanto una assuma il valore Io
gico 1, si utilizza un decodificatore da 4 16 per decodificare quattro bit di indirizzo
stato aggiunto solo un buffet a tre stati (buffer three state), il cui simbolo un
ttiangolo dotato di due ingressi e una uscita II buffet a tre stati consente la costruzione
di un multiplexet con un numero di ingressi arbitrati, le cui uscite possono essere con
trollate, utilizzando gli ingressi Chip Select
Verranno ota discusse le caratteristiche ed il funzionamento del buffet a tre stati,
elemento ctitico nelluso dei chip RAM

Buffer a tre stati


Come si evince dal nome, una uscita logica a tre stati caratterizzata da tre stati diffe
tenti I primi due stati sono lo stato logico 1 e Io stato logico 0 , tipici della logica con
venzionale, mentte il terzo stato ad alta impedenza (Hi Z, high impedance) e si com
porta come un citcuito aperto, lusata quindi disconnessa Qualsiasi blocco logico pu
essete dotato di usate a tte stati
Nella Figura 6 8 sono tipottati i simboli grafici e la tabella di vetit di un buffet a
tte stati II simbolo della Figura 6 8(a) si diffetenzia dal notmale buffer pet la presenza
dellingresso di attivazione E N (enable, abilitazione) nella patte inferiore del simbolo
Dalla tabella di vetit della Figuta 6 8(b), si evince che se E N = 1, allora O U T = In, co
me nel caso di un buffet notmale Se E N - 0 luscita assumet lo stato di alta impedenza
indipendentemente dal valote di IN
Le usate di un buffet a tte stati possono essete connesse insieme per ottenete in
uscita una linea come da un mukiplexet La Figuta 6 9 (a) mostra due buffer a tte stati le
cui uscite sono state connesse per fotmare ununica uscita OL interessante valutate d
valore assunto dall'uscita di questa sttuttura in funzione dei valon assunti dai quattto in
gtessi ENI , ENG, IN I , e INO II compottamento delluscita tipottato nella tabella di
venta della Figura 6 9(b) Pet ENI = ENO = 0, entrambe le usate dei buffer sono nello
stato di alta impedenza Poich enttambe le usate si compottano come circuiti aperti,

I N ------EN--------

(a) Simbolo
Figura 6 8 Buffer a tre stati

-------OUT

EN

IN

OUT

Hi Z

(b) Tabella di verit

63

Circuiti di memoria RAM

EN1

ENO

INI

INO

OL

Hi Z
0

INO

_ ENQ
0
i
i
0

i
(S)

EN1
0

(a) Diagramma logico

1
0

(fa) Tabella di verit


Figura 6 9 Uso di buffer tri stato per costituire una linea m multiplex

anche OL un circuito aperto Pee EN \ = 0 e ENO - 1, luscita del buffet in posizione


pi alta INO e Fuscita del buffet in posizione pi bassa Hi-Z (alta impedenza) Poich
il valore di INO combinato con un circuito aperto ancora INO, I uscita OL INO, come
riportato nella seconda e nella terza riga della tabella di verit
Un caso analogo si ha quando ENI = 1 e ENO = 0, con OL che assume il valore
INI, come riportato nella quatta e quinta riga della tabella Pet ENI = 1 ed ENO = 1, la
situazione risulta pi complicata se INI = INO, alota OL assumer il valore comune, ma
se 7An.Fi/M), si crea un conflitto sull uscita Dal punto di vista elettrico, il conflitto ge
nera una corrente che patte dal buffet, con uscita 1, ed ditetta verso il buffet con usci
ta 0 La corrente generata pu danneggiare il circuito a causa del grande calore sviluppa
to, come sottolineato dal simbolo del fumo, riportato nella tabella di verit
Ovviamente una situazione del genere deve essere evitata Poich i valori assunti da INO
e IN I sono prevedibili, lunico modo pet evitate questo caso si ottiene impedendo che
ENI ed ENO non assumano contemporaneamente il valore 1 In generale, per n buffer
tte stati, collegati tra di loto da un bus, E N pu assumete il valore 1 soltanto per uno dei
buffet e deve essete pan a 0 per tutti gli altri Ci si pu ottenete utilizzando un decodi
fcatote pet la generazione dei segnali EN Nel caso di due buffet, il decodificatote si ti
duce a un semplice invettet con impulso di selezione S, come mostrato nella parte trat
teggiata della Figuta 6 9(a)
interessante esaminare i casi in cui presente 1invertitore, identificati dallarea
scuta della tabella di venta riportata nella Figura 6 9(b) La tabella di verit coinciden
te con quella che si ottettebbe da un multiplexet a doppia via, con ingresso di selezione
S Pertanto, un insieme di n buffer a tre stati con le uscite connesse tra di loro e gli in
gtessi E N connessi, a loro volta, alle uscite di un decodificato te, fornisce una selezione
n 1, cosi come avviene per un notmale multiplexer n 1

317

318

Capitolo 6

Memorie e dispositivi logici programmabili

Utilizzando buffet a tte stati pet le uscite dei banchi di memotia RAM, possibile
connetterle insieme in modo da avete sull uscita dell intera memotia RAM, la patola
proveniente dal chip selezionato pet lalettuta I segnali di abilitazione, visti in pteceden
za, corrispondono agli ingressi Chip Select dei banchi di memotia Pet leggete una pato
la da un particolare banco, il valore del relativo segnale Chip Select deve essere 1 men
tte, pet tutti gli altti banchi collegati alla stessa uscita, il segnale Chip Select deve essete
0 Un circuito decodificatore garantisce, in tutti 1casi, che le combinazioni di bit da con
nettete ai Chip Select contengano un solo 1

Selezione per coincidenza

Airintetno di un banco di memoria RAM, il decodificatore con k ingressi e 2k uscite, ne


cessita di 2k porte AND con k ingressi pet ciascuna porta, se si adotta 1approccio pi
semplice pet la sua progettazione Inoltre, se il numero di parole della memoria grande
e se tutti i bit, considerando una specifica posizione della parola di memoria sono con
tenuti in una singola RAM bit shce, allora il numero di celle che condividono 1circuiti
di lettura e di scrittura anchesso grande Le propriet elettriche, derivanti da queste
due situazioni, fanno diventare eccessivamente lungo il tempo di accesso e di scrittura
della memoria RAM
Il
numero totale di porte logiche presenti nel decodificatore il numero di ingress
pet potta e il numero di celle pet RAM bit shce possono essete ridotti utilizzando due
decodificatoti collegati insieme secondo lo schema a selezione per coincidenza (coincident
selection) Una possibile configurazione utilizza due decodificatori a k!2 ingressi, invece
di un decodificatore a k ingressi Un decodificatore controlla le linee di selezione per le
parole e laltro controlla le linee di selezione per bit II risultato uno schema di seie
zione a matrice bidimensionale Se il chip RAM ha m parole con un bit pet patola il cit
culto seleziona la cella RAM all intersezione della riga Word Select e della colonna Bit
Select Poich adesso il "Word Select non pi un selezionatore di parole, il suo nome vie
ne cambiato in Row Select Luscita proveniente dal decodificatore che seleziona uno o
pi RAM bit shce denominata Column Select
Il
circuito di selezione coincidente pet un banco di memoria RAM mostrato nel
la Figura 6 10 II chip formato da quattto RAM bit shce, da quattro bit ciascuno e ha
un totale di 16 celle RAM, disposte secondo una matrice bidimensionale I due bit pi
significativi dell indirizzo passano attraverso il decodificatote di riga 2A in modo da se
lezionate una delle quattto righe della mattice I due bit meno significativi dell indirizzo
passano attraverso il decodificatote di colonna 24, in modo da selezionare una delle co
lonne (RAM bit shces) della matrice II decodificatore di colonna abilitato dall ingtes
so Chip Select Quando il segnale Chip Select 0 tutte le uscire del decodificatore sono
0 e non viene selezionata alcuna cella si evitano, in questo modo, sctittuie non volute
nelle celle RAM Quando invece il segnale Chip Select 1 viene selezionato un solo bit
della RAM
Pet esempio, nel caso dell indirizzo 1001 i due bit pi significativi dellindinzzo se
lezionano, attraverso il decodificatore di riga la riga 10 (21o) della RAM I due bit meno
significativi dell indirizzo selezionano attraverso il decodificatore di colonna, la colonna
01 (1 jo) della RAM La cella RAM che viene selezionata si trova all intersezione della ri

63

Circuiti di memoria RAM

Figura 6 10 Diagramma di una RAM 16 x 1 che utilizza un insieme 4 x 4 di celle RAM

ga 2 e della colonna 1 della matrice ed la cella 9 (102 012) Avendo selezionato una ti
ga e una colonna, e quindi una cella 16 X 1, lingtesso ReadJWnte determina il tipo di
operazione (lettura o scrittura) che si vuole eseguite sulla memoria Durante {operazione
di lettura (Read/Wrtte - 1), il bit selezionato giunge, attraverso la porta OR, al buffer a
tre stati Si noti che la porta disegnata secondo la simbologia stabilita nella Figura 6 1
Poich il buffet abilitato dal segnale Chip select, il valore letto appare sull uscita Data
Output Durante loperazione di scrittura (Read/Wrtte = 0), il bit presente sulla linea Da
ta Input trasferito nella cella selezionata Le celle di memoria non selezionate sono di
sabilitate e 1loro valori binari, precedentemente immagazzinati, non cambiano

319

320

Capitolo 6

Memorie e dispositivi logici programmabili

Dectxior d riga

Za

nata Oulpui 0
Data Output 1
Read/Wr te

Aq

OhpSelect

Figura 611 Diagramma di una RAM 8 x 2 che utilizza un insieme 4 x 4 di celie RAM

Nella Figura 6 11, la stessa matrice bidimensionale viene utilizzata come elemento
per creare un banco di memoria RAM 8 x 2 , con otto parole, ciascuna composta da due
bit II decodificatore di riga rimane quello visto nella Figura 6 10, gli unici cambiamenti
si hanno, invece, per il decodificatore di colonna e per la logica di uscita Poich ci sono
soltanto tre bit di indirizzo e due di loro sono trattati dal decodificatore di riga, il deco
dlficatore di colonna ha come ingressi un bit dell indirizzo e il segnale Chip Select e ha
come uscite due segnali Column Selea Nella memoria vengono scritti o letti due bit al
la volta per cui due segnali Colunm Select interessano coppie adiacenti di RAM bit sii

63

Circuiti di memoria RAM

ce, inoltre, due segnali di ingresso, Dara Input 0 e Data Input 1, sono collegati all in
gresso Data In delle coppie adiacenti Infine, le uscite delle vane coppie di RAM bit sii
ce corrispondenti (Data Out) condividono la porta OR di uscita e i buffer a tre stari, e
generano sulle linee di uscita segnali Data Output 0 e Data Output 1 dellinrera me
moria II funzionamento di questa struttura pu essere analizzato, applicando al suo in
gresso 1indirizzo 3 (0112) I pnmi due bit dellindirizzo, 01, selezionano la nga 1 della
matrice, mentre il bit finale, 1, seleziona la colonna 1, cio il bit slice 2 (102) e il bit slice
3 ( 112) La parola, da scrivere o da leggete, si ttova, quindi, nelle celle 6 e 7 (011 02 e
011 12) della memotia RAM, le quali contengano tispettivamente il bit 0 e il bir 1 della
parola 3
Pet dimostrare il risparmio introdotto dall utilizzo della selezione per coincidenza,
analizziamo una RAM statica pi realistica avente come dimensione 32 K X 8 pan a 256
Kbit Al fine di rendere il numero di righe e il numero di colonne uguale, occorre consi
derare la radice quadrata di 256 K, cio 512 = 29 Pertanto, 1primi nove bit dell mdmz
zo sono dedicati al decodificatore di riga e 1 restanti sei al decodificatore di colonna
(32 768 - 2 15) Senza 1utilizzo della selezione per coincidenza il singolo decodificatore
dovrebbe avere 15 ingressi e 32 768 usate Con Futilizzo della selezione per coinciden
za, si ha un decodificatore 9 512 e un decodificatore 6 64 Adottando 1approccio pm
semplice per la progettazione del decodificatore, nel primo caso si avrebbero 32 800 por
te, mentre nel secondo caso (selezione per coincidenza) il numero totale di porte 608
considerando entrambi decodificatori II numero di porte viene ridotto di un fattore
maggiore di 50 Inoltre, sebbene siano richiesti pi circuir! di lettura!'scrittura (maggiori
di un fattore 64), si ha come vantaggio che la selezione di colonna pu essere fatta rra le
celle RAM e 1circuiti letturaJscrittura, nducendo 1circuiti necessari soltanto agli otto ori
ginali (memoria 32 K X 8) Infine grazie al numero ridotto di celle RAM collegate a ogni
circuito lettura!scrittura il tempo di accesso al banco risulta migliore

RAM dinamiche
Le RAM dinamiche (DRAM) hanno la caratteristica di fornire, a basso costo, notevoli
capacit di immagazzinamento, dominano perci nelle applicazioni in cui sono richieste
grandi quantit di memoria ivi comprese le RAM primarie dei calcolatori Le DRAM
sono molto simili alle SRAM, la loro progettazione elettronica tuttavia molto pi inte
ressante, tenendo conto dei circuiti elettronici utilizzati per implementare le celle Inol
tre, come si deduce dal termine dinamiche presente nel nome, limmagazzinamento
delle informazioni solo temporaneo, di conseguenza deve essere eseguita periodica
mente unoperazione di refresh m modo da simulare il comportamento di un immagaz
ztnamento di tipo statico La necessit di cicli periodici di refresh la principale diffe
renza tra il comportamento delle DRAM e quello delle SRAM Di seguito si esaminer
il funzionamento delle celle RAM dinamiche la circuiteria logica richiesta per effettuare
1operazione di refresh e limpatto delle operazioni di refresh sulle operazioni della me
moria

322

Capitolo 6

Memorie e dispositivi logici programmabili

Figura 6 1 2 Cella RAM dinamica analogia idraulica del funzionamento modello della cella

Nella Figura 6 12(a) riportaro il circuito di una cella di una RAM dinamica, for
maro da un condensatore C e da un transistor T II condensatore C utilizzato per im
magazzinare cariche elettriche Se nel condensatore sraro immagazzinaro un sufficiente
numero di cariche elettriche, la cella pu essere considerata come un elemento di me
moria contenente un 1 logico, in caso conrrario si comporta come un elemento di me
moria contenente uno 0 logico II Transistor funziona in modo simile a un inrerruttore,
nello sresso modo delle porte di trasmissione presenrare nel Capitolo 2 Quando linter
rutrore aperto la carica immagazzinata nel condensarore rimane fssa Quando linter
rutrore chiuso la carica pu fluire dentro e fuori il condensarore, attraverso la linea B
esterna (Bit Line) Il flusso di carica consenre quindi di scrivere, nelle celle, 1 o 0 e di es
sere successivamente lerte
Per capire le modalir con cui avvengono le operazioni di lettura e scritrura si uti
lizzer unanalogia idraulica in cui si appresenter la carica come acqua, il condensarore
come un piccolo serbaroio per 1immagazzinamento e il transistor come una valvola Poi
ch la Bit Line ha una grande capacit, essa verr rappresentata da un grande serbatoio,
doraro di pompe che possono riempirlo e svuorarlo rapidamente L'analogia rappresenrata nelle Figure 6 12(b) e 6 12(c) in cui le valvole sono chiuse Si noti che in un caso il
serbatoio piccolo pieno e ci rappresenta, in questa analogia, la memorizzazione di un
1, mentre nellalrro caso il serbatoio vuoto e ci rappresenta la memorizzazione di uno
0 Si supponga a quesro punto di voler scrivere un 1 logico nella cella in questo caso la
valvola sar aperta e la pompa riempir il serbatoio grande Lacqua fluendo attraverso la
valvola riempir il serbatoio piccolo, come illustrato nella Figura 6 12(d) Dopo questa
operazione, la valvola verr chiusa lasciando il serbatoio pieno, che rappresenta la me
morizzazione di un 1 logico Utilizzando lo stesso tipo di operazione pu essere scritto
uno 0, tenendo presente che in questo caso la pompa svuoter il serbatoio grande (Figu
ra 6 12(e))

63

Circuiti di memoria RAM

Si supponga di voler leggere il valore immagazzinato nella cella e che esso sia un 1
corrispondente, nell analogia al serbatoio pieno Con il serbaroio grande a un livello in
termedio noto e opportuno, la valvola viene aperta Poich il serbatoio piccolo pieno,
1 acqua fluisce dal serbatoio piccolo al serbaroio grande aumentando il livello di acqua
nel serbaroio grande come si vede dalla Figura 6 12(f) Laumento di livello viene nter
pretato come la lettura di un 1 dal serbatoio di immagazzinamento Come riportato nel
la Figura 6 12(g), se il serbatoio di immagazzinamenro inizialmente vuoro ci sar un
leggero abbassamento di livello nel serbatoio grande, che viene interpretato come la lettu
ra di uno 0 dal serbatoio di immagazzinamento
Nell operazione di lettura appena descritta, le Figure 6 12(f) e 6 12(g) mostrano
che, indipendenremente dal valore iniziale immagazzinato nel serbaroio di immagazzina
menro, adesso esso connene un valore intermedio che non consentir cambiamenti si
gnifcativi nel livello del serbaroio esterno e quindi non consentir di rilevare ancora una
volta, la presenza di uno 0 o di un 1 in esso contenuto Loperazione di lettura ha di
strutro il valore immagazzinato ed denominata lettura distruttiva (destructwe read) Per
essere in grado di leggere nuovamente il valore originale immagazzinato, necessaria una
operazione di ripristino (restare) necessario cio riportare il serbatoio di immagazzina
menro al livello originale Per eseguire il resrore di un 1 logico, gi letto, il serbatoio
grande veri riempir dalla pompa e il serbaroio piccolo si riempir attraverso la valvola
aperta Per eseguire il restore di uno 0 logico, gi Ietto, il serbatoio grande verr svuotato
dalla pompa e il setbatoio piccolo si svuoter atrraverso la valvola aperta
Nella struttura reale delle celle esistono altri percorsi (paths) attraverso cui la carica
pu fluire I percorsi sono analoghi a piccole perdire che possono presentarsi in un ser
batolo di immagazzinamento A causa di quesre perdite, pu accadere che il serbatoio
piccolo, gi pieno, si svuoti sino al punto in cui I aumento di livello del serbaroio gran
de, dopo una operazione di letrura, non pu pi essere considerara come tale Infarti, se
il livello del serbaroio piccolo minore della met della massima possibile che, duran
re loperazione di Iertura, si verifichi addirittura una diminuzione del livello del serbaroio
grande Per compensare le perdite il serbaroio piccolo, che conriene un 1, deve essere periodicamenre riempito Loperazione denominara operazione di refresh (refresh) dei
contenuri delle celle Ogni cella deve subire una operazione di refresh prima che il hvel
lo di carica si abbassi ad un punto tale che il valore in essa immagazzinaro non sia pi os
servabile
Lanalogia idraulica ha consenriro di spiegare il modo di operare di una DRAM
Come per la SRAM, si urilizzera ora per le celle DRAM un modello logico Nel model
lo riportato nella Figura 6 12(h), la presenza di un latch D consente la memorizzazione
di un bir Lingresso di controllo Cdel latch D il segnale Select, mentre lingresso dati
D del latch D il segnale B Per modellare lusata delia cella DRAM si utilizzer un buf
fer a tre stati, che usa Selecr come ingresso di conrrollo e C come uscita Nel circuito elet
tronico originale della cella DRAM, riportato nella Figuta 6 12(a) i segnali B e C sono
coincidenti, mentre nel modello logico essi risultano separati al fine di evitare di connet
tere insieme uscite e ingressi

323

324

Capitolo 6

Memorie e dispositivi logici programmabili

Linea dati
Ingresso/uscita

Figura 6 1 3 Diagramma a blocchi di una DRAM con logica di aggiornamento

Partendo dal modello logico per la cella DRAM, si pu costruire il modello per il
bir slice DRAM (Figura 613) Questo modello simile a quello del bit shce SRAM, ri
portato nella Figura 6 6 evidente che, a parte la struttura della cella, i due bit shce so
no simili a livello logico Dal punto di vista del costo per bir, essi risultano invece molro
differenti Una cella DRAM formata da un condensatore e da un transistor Una cella
SRAM connene, Tipicamente, sei transistor ed quindi pi complessa (di un fattore 3)
della corrisponderne cella DRAM Se un chip ha dimensione prefissata, il numero di cel
le SRAM che possono essere contenure in un chip meno di un rerzo di quelle che si
avrebbero utilizzando celle DRAM II costo per bit di una DRAM e quindi meno di un
terzo del costo per bit di una SRAM e ci giustifica l'utilizzo delle celle DRAM in me
morie di grandi dimensioni
Le recniche di refresh del contenuto delle celle DRAM devono essere ancora di
scusse Prima per necessario descrivere la tipica struttura utilizzata per indirizzare le
celle DRAM Poich solitamenre una memoria DRAM composta da molti banchi si
vuole raggiungere lobiettivo di ridurre la grandezza fsica del singolo banco DRAM
Grandi memorie DRAM richiedono 20 o pi bit di indirizzo e quindi sarebbero richie
sti almeno 20 piedini di indirizzo per ciascun banco Per ridurre il numero di piedini,
lindirizzo di una DRAM viene inviato serialmente, diviso in due para si invia prima
lindirizzo di riga e dopo lindirizzo di colonna Ci pu essere ottenuro poich 1indinz
zo di riga necessario, nel normale funzionamento, prima dellindirizzo di colonna Per
mantenere lindirizzo di riga per tutto il ciclo di lettura o di scrittura esso viene imma

63

Word Select 0

Circuiti dr memoria RAM

Select

(a) Diagramma logico

Figura 6 1 4 Modello di una bit shce di una DRAM

gazzinaro in un registro, come illustrato nella Figura 6 14 Anche 1indirizzo di colonna


viene immagazzinato in un registro II segnale di caricamento (load) per il registro degli
indirizzi di riga RAS (Row Address Strabe), mentre per gli indirizzi di colonna CAS
(Column Address Strobe) Oltre al segnale RAS e al segnale CAS, i segnali di controllo per
il chip DRAM comprendono xsegnali R/W (Read/Wnte) e OE [Output Enable) Si noti
anche che in questo progetto sono srari utilizzati segnali attivi al livello basso LOW (0)

325

326

Capitolo 6

Memorie e dispositivi logici programmabili

Ind rizzo

Indlrizzorga

^ In d r zzo colonna

RAS

CAS
Output Enable

Read/
Write

Ingresso dati

Ind rizzo

Ind r zzo r ga

Ind nzzo colonna'

\
Output Enable

Read/
Write

Uscita dat

(b) Ciclo di lettura

Figura 6 15 Diagramma di temporizzazione del ciclo di scrittura e lettura per la DRAM

Il
diagramma Temporale per le operazioni di scrittura e di lettura per una memori
DRAM riportare nella Figura 6 15 (a) Lindirizzo di riga inviaro alle linee di indiriz
zo della memoria e successivamente il segnale RAS commuta da 1 a 0, caricando 1indi
rizzo di riga nel registro degli indirizzi di riga Questo indirizzo inviato al decodificato
re degli indirizzi d i riga al fine di selezionare una riga di celle DRAM Nel frattempo,
viene inviato lindirizzo di colonna e successivamente il segnale CAS commuta da 1 a 0,

63

Circuiti di memoria RAM

327

caricando 1indirizzo di colonna nel regisrio degli indirizzi di colonna Questo indirizzo
inviato al decodificatore degli indirizzi di colonna che seleziona un numero di colonne
della RAM, pan al numero di bit dei dati memorizzati nella RAM I dati di ingresso
quando ReadiWnte - 0 (scrittura) sono disponibili per un nrervallo di tempo uguale ai
1 intervallo in cui disponibile l'indirizzo di colonna I dati binari che devono essere me
monzzati sono prima inviati allinsieme di linee selezionate dal decodificatore degli indi
rizzi di colonna e successivamente inviati alle celle DRAM della riga selezionata
Quando l segnali CAS e RAS ritornano ai valore 1, il ciclo di scritrura completo e le
celle DRAM contengono i nuovi dati Si noti che dari immagazzinari in rutte le altre
celle nella riga indirizzata sono sran ripristinati
Il
diagramma temporale delloperazione di letrura riportato nella Figura 6 15(b)
Si noti che 1andamenro delle operazioni di indirizzamento lo sresso In questo caso
non viene inviato alcun dato e si ha che il segnale Read/Wnte = 1 invece di 0 I dati con
tenuti nelle celle DRAM della riga selezionata sono inviati alle linee dari e individuati
utilizzando un opportuno circuito che svolge la funzione di sensore (Sense Amphfier) Il
decodificarore degli indirizzi di colonna seleziona valori da inviare al Data Output che
abilitato dai segnale di abilitazione Output Enable Durante loperazione di lettura tut
ri l valori della riga indirizzara sono ripristinati
Per consentire loperazione di refresh, occorre aggiungere alla cella DRAM una lo
gica appropriata, evidenziata con il colore grigio nel diagramma a blocchi della Figura
6 13 Nel diagramma sono visibili un Contatore di refresh (Refresh Counter) e un Con
trailer di refresh (Refresh Controller) 11 contatore utilizzato per fornire 1indirizzo di ri
ga delle celle DRAM sulle quali effettuare il refresh Ci essenziale nei casi in cui lope
razione di refresh richieda che lindirizzo sia fornito direttamenre dallinterno del chip II
contarore viene incrementato a ogni ciclo di refresh e, quando raggiunge 2 1, dove n
rappresenta il numero di righe nellarray DRAM, al refresh successivo si porr al valore
0 I segnali standard da cui dipende un ciclo di refresh e le corrispondenti tipologie sono
di seguir riportari
1 Refresh del solo segnale RAS Un indirizzo di riga inviato alle linee di indirizzo e
il segnale RAS portare a 0 In questo caso, gli indirizzi di refresh devono essere
forniti dall esrerno, di solito da un circuito integrato (IC), che svolge la funzione di
conrroller della DRAM (DRAM controller)
2 Refresh del segnale CAS prima del refresh del segnale RAS II segnale CAS por
taro da 1 a 0 ed seguito da una commutazione, da 1 a 0, del segnale RAS Ulre
rio ri cicli di refresh possono essere eseguiti, cambiando il segnale RAS senza cam
biare il segnale CAS Gli indirizzi di refresh, in quesro caso, provengono dal
contatore di refresh, che viene incrementare dopo ogni ciclo
3 Refresh nascosto Dopo una normale operazione di lettura o scrittura, il segnale CAS
lasciato al valore 0, menrre il segnale RAS commura ciclicamente Quesre sono le
condizioni della modalit di refresh del segnale CAS prima del refresh del segnale
RAS Durante quesro tipo di refresh i valori delle uscite, assunti in corrispondenza
della precedente lettura, rimangono validi giustificando, pertanto, il nome di refresh
nascosto Sfortunatamente, il tempo richiesto da questo tipo di refresh percepibile

328

Capitolo 6

Memorie e dispositivi logici programmabili

In tutti i casi descritti, 1operazione di refresh controllata dai segnali CAS e RAS Si no
ri che ciascuna riga del chip DRAM richiede comunque che loperazione di refresh av
venga entro un rempo massimo specificato (refresh time), che di solito oscilla tra 16 e 64
millisecondi (ms) Le operazioni di refresh possono essere eseguite in istanti equispaziati
nel refresh time (refresh disrnbuito) o in alternativa, uno dopo laltro (burst refresh, refre
sh a raffica) Una memoria DRAM 4M X 4 ha un refresh rime di 64 ms e 4096 righe sul
le quali effertuare un refresh II tempo richiesto per eseguire un singolo refresh di 60 ns
e lintervallo di refresh, nel caso di refresh distribuir, pan a 64 ms/4096 = 15,6 micro
secondi (jis) Per eseguire il refresh di tutre le celle occorre un rempo effettivo di 0,25 ms,
a fronre di un refresh rime, rempo max destinato al refresh, di 64 ms Per la stessa
DRAM, anche il refresh a raffica impiega 0 25 ms II conrroller della DRAM deve dare
inizio a una operazione di refresh ogni 15 6 jLls nel caso del refresh distribuito e a 4 096
refresh sequenziali ogni 64 ms nel caso di refresh a raffica Durante un qualunque ciclo
di refresh, non si possono avere operazioni di lettura o scrittura Poich lunlizzo del re
fresh a raffica fermerebbe le operazioni del calcolatore per un periodo piuttosto lungo si
preferisce unlizzare il refresh distribuir
Oggi sono in uso diverse varianti della memoria RAM di base Per esempio, la
RAM dinamica sincrona SDRAM (Synchronous Dynamic RAM), usa un clock esrerno
ed esegue letture multiple in rapida successione da indirizzi successivi con lo sresso indi
rizzo di riga

6.4

Memoria RAM a banchi

Le memorie RAM a banchi sono realizzate utilizzando circuiti integrati (RAM chip) che
sono disponibili con diverse capacit Se 1unit di memoria, necessaria per una applica
zione, pi grande della capacit di un singolo circuir integrato necessario unlizzare
pi circuiti per formare lunir di memoria della grandezza richiesta La capacit della
memoria dipende da due parametri il numero di parole e il numero di bir per parola
Un aumenro nel numero delle parole richiede un aumento della lunghezza dellindirizzo
ogni bir aggiunro raddoppia il numero di parole della memoria Un aumento del nume
ro dei bit della parola richiede anche un aumenro del numero delle linee dati in ingresso
e in uscita, anche se la lunghezza in bit dellindirizzo rimane uguale
Per descrivere una unir di memoria RAM multibanco si consideri, inizialmenre, il
simbolo grafico della Figura 6 16, relativo a un banco di memoria di capacit pan a 64 K
parole di orto bit ciascuna II banco , quindi carartenzzato da un indirizzo di 16 bit, ot
to linee di ingresso e otro di uscita Nel simbolo le 16 linee per lindirizzo e le otro linee
per dati (ingresso e uscir) sono indicare con una linea, detta bus, nella quale si specif
ca la dimensione con una etichetta (uno slash seguito dal numero di linee) Lingresso CS
[Chip Select) seleziona il banco RAM, mentre lingresso i&'W'stabilisce, una voIra selezio
nato il banco, se sar effettuala unoperazione di letrura o di scrittura II piccolo tnango
lo, in corrispondenza delle uscite, il simbolo grafico standard per le uscite a tre stati
(three state) Lingresso CS della RAM controlla il comportamento delle linee dati in

64

Memoria RAM a banchi

RAM 64 K X 8
Data Input-----
Address

DATA

-Data Output

ADRS

Chip Select

CS

Read/Writ

R/W

Figura 6 16 Simbolo per un chip RAM 64 K x 8

uscir se CS = 0 il banco non selezionato e rutre le uscite sono nello stato di alta impe
denza, se CS = 1 la memoria pilora il bus di uscita e ciascuna linea di usata avr d valore
del bit corrispondenre della parola selezionata
Si supponga di voler aumentare il numero complessivo di parole della memoria,
utilizzando due o pi banchi RAM II numero di parole indirizzagli di una memoria au
menta, seguendo la potenza del 2, in quanro ciascun bir aggiunto allindirizzo raddoppia
il numero binario che si pu costruire Per esempio, usando due banchi RAM, invece di
uno, si raddoppiano il numero di parole e occorre aggiungere un bir airindinzzo Usan
do quattro banchi RAM, invece di uno, si quadruplica il numero di parole ed occorre ag
giungere due bir allindirizzo
Supponiamo di voler costruire una memoria RAM di 256 K X 8 usando quattro
banchi di 64 K X 8, come mostrato nella Figura 6 17 Tutti i banchi sono collegati alle
otto linee dari di ingresso Le usate three state possono essere connesse insieme per fr
mare le otto linee dati di uscir dell intera memoria Questa modalir di connessione del
le uscire possibile soltanto con le uscite three state Dal momento che, in un qualunque
momenro, sar attivo un solo ingresso CS e gli altri tre banchi saranno disabilitati, il ban
co selezionaro piloter le uscire con bit della parola selezionata, mentre le usare degli al
tri banchi si presenteranno come circuiri aperti, poich in stato di alta impedenza (three
state)
Una memoria di 256 K parole richiede un indirizzo formaro da 18 bit 116 bit me
no signifcarivi dell indirizzo sono applicati agli ingressi indirizzo di tutti i banchi (indiriz
zi di colonna) I due bit pi significativi sono applicati a un decoder 24, le cui quattro
uscite pdotano lingresso CS dei quattro banchi (indirizzi di riga) La memoria disabili
tara quando lingresso E N del decoder uguale a 0, in questo caso le quartro uscire del de
coder sono uguali a 0 e nessuno dei banchi selezionaro Se il decoder abihtaro, i bit 17
e 18 dellindirizzo individuano il banco selezionato Se questi bit sono ambedue uguali a
0, viene selezionato il primo banco, restanti 16 bir dellindirizzo selezionano all interno
del banco, una parola il cui indirizzo oscilla fra 0 e 65535 Le successive 65536 parole ap
partengono al secondo banco che deve essere selezionato utilizzando un indirizzo i cui pri
m i due bit sono 01 mentre successivi 16 bit provengono dalle linee di indirizzo comuni
Lintervallo di indirizzi in decimale riportato, per ciascun banco, nella figura in corri
spondenza al simbolo telativo

329

330

Capitolo 6

Memorie e dispositivi logici programmabili

Indirizzi
Linee

Linee 015

Data Input

196 608 262 143


Figura 6 17 Diagramma a blocchi di una RAM 256 K x 8

Data Output

64

Memoria RAM a banchi

16 Linee Ingresso dati

16 Linee Uscita dati


Figura 6 1 8 Diagramma a blocchi di una RAM 64 K x 16

anche possibile combinare due banchi in modo da formare una memoria che
contenga lo stesso numero di parole di un singolo banco ma con un numero doppio di
bit per parola La Figura 6 18 mostra linterconnessione di due banchi 64 K X 8 per for
mare una memoria 64 K X 16 Lingresso dati a 16 bit e le linee dati di uscita (16 bit) so
no divisi tra due banchi Entrambi ricevono lo stesso indirizzo a 16 bit e gli stessi in
gressi di controllo CS e R /W
Le due tecniche appena descritte possono essere combinate per assemblare un siste
ma di memoria di qualunque dimensione, connettendo opportunamente banchi denti
ci La memoria avr un numero di bit per parola che multiplo del numero di bit per pa
rola del singolo banco II numero totale di parole aumenter di un fattore pari al doppio
della capacit del singolo banco Un decodificatore esterno provvede a selezionare i di
versi banchi, in base al valore dei bit pi significativi dell indirizzo
Per ridurre il numero di piedini di un singolo circuito integrato (chip), sono spesso
usati terminali in comune per dati di ingresso e per dati di uscita I terminali in co
mune si chiamano bidirezionali, il che significa che, nella fase di lettura, agiscono come
uscite mentre, nella fase di scrittura, agiscono come ingressi Le linee bidirezionali sono
costruite con buffer three state e sono controllati da una combinazione dei segnali CS e
R /W

332

Capitolo 6

Memorie e dispositivi logici programmabili

Unit di memoria RAM dinamica


Molti dei principi di progettazione visri per le memorie SRAM (RAM sratiche) sono urilizzabili per la progettazione delle memorie DRAM (RAM dinamiche) Esistono tuttavia
alcune differenze nel controllo e nell indinzzamenro della DRAM, da tenere presenti
nella progetrazione del conrtoller Le funzioni che il controller deve svolgere sono
1 controllare la separazione degli indirizzi di riga e di colonna rendendoli disponibi
li nella opportuna finestra temporale
2 generare, con la remporizzazione opporruna, segnali GAS e RAS per consennre le
operazioni di lettura, scnrtura e refresh
3 eseguire le operazioni di refresh negli mrervalli specificati
4 generare segnali relativi allo staro della memoria per il resto del sisrema, indican
do, per esempio, lo staro busy durante l intervallo di refresh della memoria
Il controller della memoria DRAM pertanto un complesso circuir sequenziale, sin
cronizzato dal segnale di clock della CPU esterna

6.5

Dispositivi logici programmabili______________

Nelle successive quartro sezioni si descnveranno cinque npi di dispositivi logici pro
grammabili, PLD memorie a sola lettura (ROM, read only memory), 1 dispositivi a ma
rnce logica programmabile (PLA programmable logie array), dispositivi logici a matrice
programmabile (PAL, programmable array logie), dispositivi logici complessi program
mabih (CPLD, complex programmable logie devici) e 1 dispositivi a matrice di porte pr
grammabih sul campo (FPGA,fieldprogrammable gate array) Nei PLD tecniche diverse
di programmazione sono utilizzate per creare o interrompere interconnessioni, costruire
tabelle di ricerca (lookup table) e controllare la commurazione dei transistor Nel seguito,
si far riferimento alle varie Tecnologie relative a queste rie applicazioni
La prima applicazione che viene analizzata il conrrollo delle connessioni La ree
nologia di programmazione pi antica basata sull utilizzo di diodi fusibili In un PLD
ciascuno dei punti di programmazione una connessione formata da un diodo Quando
una tensione pi elevata del normale viene applicata al diodo, lalta corrente che si origi
na nrerrompe la connessione fondendo il diodo 1 due stati di connessione, CHIUSO e
APERTO, sono rappresentari rispettivamente dal fusibile inratto o bruciato
Una seconda tecnologia di programmazione per il controllo delle connessioni de
nominata programmazione a maschera, o maskprogramming Viene eseguita direttameli
te dal produttore, durante gli ultimi passi del processo di fabbricazione del chip Le con
nessioni vengono fatte o non fatte negli strati di metallizzazione, che rappresentano lo
strato conduttore del chip La struttura di questi strati determinata in dipendenza del
la funzione del chip e viene realizzata durante il processo di fabbricazione La procedura

65

Dispositivi logici programmabili

costosa poich il venditore addebita al cliente, una rantum, anche il cosro per la petso
nalizzazione del dispositivo Per questa ragione il mask programming economico sol
tanto se vengono ordinate grandi quantit di PLD che usano la stessa configurazione in
modo da suddividere su pi pezzi il costo per la personalizzazione
Una rerza Tecnologia di programmazione per il controllo delle connessioni deno
minata antifuse (aree dieletrriche non conduttrici) Come si intuisce dal nome, la nuova
tecnologia rappresenta lopposro della tecnica basata sull utilizzo del fusibile Lelemento
base una piccola arca in cui due conduttori sono separati da materiali ad alta resisten
za, che agisce come circuito APERTO Applicando ai due conduttori una tensione pi
elevata del normale, il marenale che separa condutron si fonde ed assume una resisten
za elettrica molro bassa agendo, di fatto, come una connessione CHIUSA
Le rre tecnologie appena presentate sono permanenti ed essendo la loro program
mazione il risultato di un processo fisico irreversibile, dispositivi ortenuti non sono riprogtammabili In caso di programmazione errata, il dispositivo non pu essere rmtiliz
zato e va quindi scartato
Unaltra tecnologia di progtammazione, applicabile al controllo della connessione,
basata sulluso di una cella SRAM da un bit che pilota la base di un transistor MOS n
channel, posizionara nel punro che, utilizzando la programmazione, sar connesso o non
connesso Se il bit memorizzato nella cella 1 il transistor in conduzione e la connes
sione tra source e drain corrisponde a un circuito chiuso Se il bir memorizzato 0 il
transistor spenro e la connessione tra tra source e drain corrisponde a un circuito aper
ro Poich il conrenuro della cella SRAM pu essere modifcaro elettronicamente il di
sposirivo facilmente riprogrammabile Per contro la memoria SRAM volatile per cui
anche la configurazione dei PLD volatile, il dispositivo va quindi programmato ad
ogni accensione
La tecnologia SRAM ideale, oltre che per il controllo delle connessioni, anche per
la costruzione di tabelle di consultazione (look up tables) utilizzate per la programma
zione In questo caso, gli ingressi della tabella sono gli indirizzi per leggete la SRAM e le
usate della tabella sono le uscire dati della SRAM, cio 1 valori immagazzinati in corri
spondenza delle parole indirizzate
Una terza applicazione delle tecnologie di programmazione riguarda il controllo
della commutazione dei rransisror La tecnologia pi diffusa prevede 1immagazzinamen
ro di una carica su un particolare condensatore, denominarci porta galleggiante [floating
gate) La porta posizionata sotto la base di un transistor MOS, isolata tramite dielettn
co Una canoa negativa immagazzinata sul floating gate impedisce al transistor di passa
re in conduzione, cio nello stato ON In assenza di tale carica, applicando sulla sua ba
se una tensione a livello logico HIGH, il transistor passa in conduzione (stato ON)
Poich il processo di accumulazione e scarica del floating gate reversibile, possibile la
cancellazione e la successiva riprogrammabilit del dispositivo I PLD basati su questa
tecnologia sono denominati cancellabili (erasabl) o elettricamente cancellabili (electn
caily erasable) Per i PLD cancellabili, la cancellazione avviene per esposizione a intensi
raggi ultravioletti per un certo periodo di tempo I PLD cancellati possono essere pr
grammati in modo usuale utilizzando, per fissare le cariche sui transistor, livelli di ten
sione pi elevati dei valori nominali

333

334

Capitolo 6

Memorie e dispositivi logici programmabili

I
PLD elettncamenre cancellabili possono essere cancellati utilizzando un process
simile al processo di programmazione applicando vaioli di Tensione pi elevati di quelli
usati per I alimentazione Poich 1 transisror di controllo prevengono o consentono una
connessione tra so uree e drain, la tecnica appena descritra rappresenra una forma di con
trollo della connessione, consentendo di scegliere rra (1) sempre APERTO oppure (2)
APERTO o CHIUSO, in dipendenza del livello di tensione (HIGH o LOW) applicara
al Transistor
Nel seguir saranno prese in considerazione quartro Tipologie di dispositivi logici
programmabili Per ognuno di essi si descriver la struttura e si indicheranno le remolo
gie di programmazione tipicamente urihzzate per la loro implementazione

6.6

Memorie a sola lettura (ROM)

Una memoria a sola Iertura ROM (read only memory) un dispositivo in cui sono m
magazzinare informazioni binarie in modo permanente Le informazioni sono annegare
(embedded) nel circuir e ne fanno parte integiante II progertisra, infetti, una volra co
nosciute le informazioni da memorizzare, utilizzando una procedura di programmazio
ne, costruisce le necessarie interconnessioni Le ROM cos cosrruite manrengono le
informazioni, anche in assenza di alimentazione, da qui lappartenenza alla classe delle
memorie non volarili
Nella Figura 6 19 riportaro il diagramma a blocchi di una ROM con k ingressi ed
n uscire Gli ingressi sono utilizzati per fornire lindirizzo mentre le uscire forniscono 1
bit della parola immagazzinata, selezionata tramite lindirizzo stesso li numero di parole
di una ROM limitato dal numero k di linee di indirizzo con le quali si possono selezio
nare 1 k parole Poich non sono consentite operazioni di scrirtura, le ROM non posseg
gono ingressi per introdurre dati 1 circuiri inregrati ROM hanno nolrre uno o pi in
gressi abiliranri e uscire a rre stati per facilitare la cosrruzione di strutture mulriple di
maggiori dimensioni
Per esempio, una memoria ROM di 32 parole di 8 bit ciascuna, usa cinque linee di
ingresso che generano 32 combinazioni binarie, da 0 a 31 La Figura 6 20 mostra I orga
nizzazione logica interna di una memoria ROM I cinque ingressi usati per gli indirizzi
di memoria vengono decodificati in 32 uscire distinre da un decoder 5-32 Le 32 uscite
sono connesse a ciascuna delle otto porte OR, per mezzo di connessioni programmabili
Nel diagramma viene urilizzara, allo scopo, la simbologia delle porte logiche con ingres
si a marrice, ripica dei circuiti logici complessi (vedere la Figura 6 1) Ciascuna porta OR

k Ingressi (indinzzo)-

ROM 2k x n

Figura 6 1 9 Diagramma a blocchi di una ROM

n uscite (dati)

66

Memorie a sola lettura (ROM)

335

Figura 6 20 Logica interna di una ROM 32 x 8

ha 32 ingressi e ciascuna usata del decodificatore connessa a uno degli ingressi di eia
scuna porta OR per mezzo di un fusibile Dal momenro che ciascuna porta OR ha 32
connessioni programmabili interne e dal momento che ci sono otto porte OR, la ROM
contiene 32 X 8 = 256 connessioni programmabili In generale una ROM conrerr un
decodificatore interno k - 2k linee e n porte OR ciascuna con 2k ingressi, connessi, ar
Traverso connessioni programmabili, a ognuna delle uscite del decodificatore
Il
contenuto di una ROM descritto da una tabella di venta che riporta, per furti
gli indirizzi possibili, il contenuro della parola memorizzara Per esempio la tabella di ve
rit (Tabella 6 2) riporta cinque ingressi e i corrispondenti 32 indirizzi possibili, ciascu
no relativo a una parola di 8 bit II contenuto di ogni parola riportato nella parte destra
della tabella, ciascun bit sotto la cornspondenre linea di uscir Per semplicit la Tabella
6 2 mostra solranto le prime quattro e le ultime quattro parole contenute nella memoria
La tabella completa includer 1 elenco di tutte le 32 parole
Una procedura hardware incide la memoria ROM secondo le connessioni riporta
re dalla tabella di verit La programmazione di una ROM secondo la Tabella di verit
6 2, genera le configurazioni riportate nella Figura 6 21 In corrispondenza di ciascuno
0, presente nella Tabella di verit, si ha un circuito APERTO mentre in corrispondenza
di ciascun I si ha un circuir CHIUSO
Per esempio, la tabella richiede che la parola a 8 bit 10110010 sia memorizzata nel
lindirizzo 00011 I quartro 0 presenri nella parola sono programmati con allertanti cir
culti aperri tra lusata 3 del decodificatore e gli ingressi delle porte OR associate con le
uscite Afa A$, A 2, e A 0 I quattro 1 presenti nella parola sono invece marcati con altrer
ranre croci nel diagramma e, conseguentemente, verranno programmati con dei circuiti
chiusi in corrispondenza delle uscite del decoder A7, A 5>A4, e Ai Quindi se lingresso

336

Capitolo 6

TABELLA 62

Memorie e dispositivi logici programmabili

Tabella di venta (parziale) della R O M


Uscite

Ingressi
14

fo

A*

A5

A4

A3

A2

A,

Aq

lo

0
0

della ROM 00011, turre le usare del decodificatore saranno 0, ad eccezione delluscita
3 che sara uguale ad 1 In queste condizioni il segnale si propagher, attraverso circuiti
chiusi, alle porre OR e quindi alle uscite^, A$, A4, c A h menrre le altre quattro uscire
resteranno a 0 Come risultaro, la parola 10110010 immagazzmara nella memoria verr
inviata alle orto uscire dari
Per programmare una ROM si utilizzano quattro tecnologie Se si utilizza la pr
grammazione tramite le maschere durante la fabbricazione, la ROM denominata semplicemenre ROM Se si utilizzano fusibili, la memoria pu essere programmata dall'u
rente e in quesro caso essa denominata PROM (ROMprogrammabile) Se si utilizza la
Tecnologia cancellabile con base fluttuante, la memoria denominata EPROM (erasable
programmale ROM, ROM cancellabile e programmabile) Infine se si utilizza la tecno
logia cancellabile elettricamente, la memoria denominata EEPROM ovvero E2PROM
(electncally erasable, programmable ROM, ROM programmabile e cancellabile elettrica
menre) La scelta della Tecnologia da utilizzare dipende da tanri fartori, incluso il nume
ro di ROM identiche da produrre, quanto rempo deve durare la programmazione effer
tuata, il grado di nprogrammabiht e le prestazioni, in termini di nrardo

Implementazione d circuiti combinatori mediante ROM


Come gi visto nel Paragrafo 3 5, un decodificatore, con ir variabili di ingresso, genera 2k
mintermim Inserendo porte OR per sommare 1mintermmi, ottenuti con le k variabili, si
pu costruire una qualunque funzione booleana e quindi il relativo arcuito combinato
rio Una memoria ROM essenzialmente un dispositivo composto da un decodificatore e
da porte OR. Connettendo solo 1 mintermini che fanno parte della funzione speafcata,
la ROM si comporter, dal punto di vista delle usate, come un circuito combinatorio

66

Memorie a sola lettura (ROM)

In termini del suo funzionamento interno, una ROM pu essere interpretata in


due modi diversi come strumenro di memoria che immaga2zina un insieme fsso di pa
role e come circuito che implementa una funzione combinatoria Da quesrultimo pun
to di vista, ciascun terminale duscir luscita di una funzione boolena espressa come
somma di minrermmi La ROM della Figura 6 21 pu quindi essere considerata come
un circuir combinatorio con otto uscite, in cui ciascuna uscir funzione delle cinque
variabili di ingresso Luscita A 7, per esempio, la somma dei mintermim di seguito ri
porrata (i puntini rappresentano i mmtermim da 4 a 27, non riportati, per semplicit,
nella figura)
A 7(I4, /* / 2, / 70) = 2 m{0, 2, 3, , 29)
Una connessione (circuito chiuso) include il relativo mintermine nella somma, menrre
una non connessione (circuito aperto) non include il mintermine dalla somma
Le memorie ROM sono ampiamente utilizzate per implementare, in modo semph
ce e diretto, circuiri combinatori complessi, a partire dalla loro rabella di verir e sono
utili per effettuare le conversioni da un codice a un altro (per esempio dal codice Gray al
codice BCD), oppure possono implementare operazioni aritmetiche complesse come la
moltiplicazione e la divisione In generale, le memorie sono utilizzate in tutte le applica
zioni che richiedono un moderato numero di ingressi e un grande numero di uscire

Figura 6 21 Programmazione della ROM secondo la Tabella 6 2

337

338

Capitolo 6

Memorie e dispositivi logici programmabili

In pratica, quando si prevede di realizzare un circuito combinarono mediante


ROM, non necessario progettare la logica o illustrare le connessioni interne dell unit II
progettista deve soltanto specificare la ROM che deve essere utilizzata (per nome o per co
dice) e fornire la tabella di verit La tabella di verit contiene gi tutte ie informazioni per
programmare una memoria ROM e non necessita di alcun diagramma logico aggiuntivo
Progetto di un circuito combinotorio utilizzando uno ROM

Ptogertare un circuito combinarotio utilizzando una ROM II circuito da proger


tare riceve in ingtesso un numeto bmatio a 3 bit e deve date m uscir un numero
binario pan al quadrato del valore applicare all mgtesso
Il pnmo passo quando si vuole progertare un citcuito combinarono, prevede la
cosrruzione della tabella di vent e nella maggior parre dei casi, questo tutro
ci che serve In alrti casi invece, si pu utilizzare soltanto una parre della tabella
di verit, sftuttando opportune ptopnet delle variabili uscita Nella Tabella 6 3
riportata la tabella di verit del citcuiro combinatorio da progerrate Per il citcui
to m esame, per comprendere tutu possibili casi, sono necessan tte ingtessi e sei
uscite Si noti pet che 1uscir B0 sempte uguale all ingresso A0, pet cui basta
connettete B0con A0 menrre 1uscita Bl sempre 0, per cui questa usata pu es
sete implementata come una cosranre La ROM deve quindi generare soltanto
quatrro uscire menrte le aJrte due sono disponibili immediaramenre La gran
dezza minima tichiesra per la ROM 8 x 4, dal momento che la ROM deve ave
re rre ingressi, che specificano orro parole, e quanto uscite Nella Figuta 6 22 il
lusrtata rimplemenrazione della ROM il diagramma a blocchi della Figuta
6 22(a) illusrta le connessioni ticinesi pet il circuir combinatolo, menrte la ta
bella di vent della Figura 6 22(b), tiporta le informazioni necessarie per pr
grammare la ROM

TABELLA 6 3

Tabella di verit per il circuito dell Esempio 6 1

Ingressi

Uscite
4

b3

Bj

Bo

Deamale

0
1
0
1

0
0
1
1

1
1
0
1

0
1
0
0

0
0
1
0

0
0
0
0

0
1
0
1

4
9
16
25
36
49

A2

A,

Ao

Bs

0
1
1
1
1

0
0
1
1

66

0
0
0
1
1
1
1

Memorie a sola lettuta (ROM)

Ai

Aq

0
0
1
1
0
0
1
1

0
1
0
1
0
1
0
1

Bs
0
0
0
0
0
0
1
1

0
0
0
0
1
1
0
1

B3
0
0
0
1
0
1
0
0

b2

0
0
1
0
0
0
1
0

(b) Tabella di venta della ROM

(a) Diagramma a blocchi

Figura 6 22 Implementazione della ROM dell Esempio 6 1

Le PROM rappresentano uno dei tre tipi pi importano di PLD I diversi tipi di PLD
differiscono tra di loro per la posizione delle connessioni progtammabili della matrice
AND OR La Figura 6 23 mostra la disposizione delle connessioni per tre casi La me
mona programmabile a sola lertuta (PROM) catattenzzata da una matrice di AND fs
sa, cosutuita da un decodificatore e da connessioni programmabili per le porre OR di
uscita Le PROM implementano le funzioni booleane nella forma somma di mintermi
ni I dispositivi logici a marnce programmabile (PAL) sono caratterizzati da una marn
ce di AND con connessioni programmabili e da una matrice di OR fssa Le porte AND

Ingressi

Griglia fissa
di perte AND
(deceder)

C on n o rs oni
preqr

nrr ah i

Griglia
programmabile
di perte OR

Uscite

(a) Memorie programmabili a sola lettura (PROM programmable read only memory)

(b) Dispositivi a griglia di logica programmabile (PAL programmable array logie)

(c) Dispositivi a griglie programmabili di logica (PLA programmable logie array)

Figura 6 23 Configurazione di base dei tre tipi di dispositivi in logica programmabile

339

340

Capitolo 6

Memorie e dispositivi logici programmabili

sono programmate per fornire 1rermini prodotto per le funzioni booleane, le quali sono
sommare logicamente in ciascuna porta OR I disposinvi a mattice logica programmabi
le (PLA) sono 1 PLD pi flessibili, in quanto sono caratterizzati da connessioni program
mabili sia per la matrice di AND che per quella di OR I termini prodotto, generari dal
la matnce di AND, possono essere condivisi da qualunque porta OR al fine di costruire
la somma di prodotto richiesta Le varie denominazioni PLA, PAL sono nare per indi
care dispositivi, non molto diversi, prodorti durante lo sviluppo iniziale dei PLD Lim
plemenrazione di circuiri combinaton con dispositivi PLA e PAL sar discussa nelle
successive due sezioni

6.7

Dispositivi a matrice logica programmabile

Un circuir PLA concettualmenre simile a una PROM, ma, a differenza di questulti


ma, non genera la decodifica completa delle variabili di ingresso e, quindi* non genera
tutti mintermini II circuito decodificatore sostituito da una marrice di porte AND
che pu essere programmata per generare alcuni termini prodotto delle variabili di in
gresso I rermini prodorto ottenuti sono poi connessi seletnvamente alle porte OR per
costtuire le somme corrispondenti alle funzioni booleane nchiesre
La logica inrerna di un PLA con tre ingressi e due uscite riporrara nella Figura
6 24 II circuir troppo piccolo per essere economicamente conveniente, ma viene ri
portare per analizzare una ripica configutazione logica del PLA II diagramma utilizza la
simbologia delle matrici di porte logiche Ciascun ingresso passa sia atrtaverso un buffer
sia attraverso un invertirore, entrambi rappresenrari nei diagramma da un simbolo grafi
co composito che genera la variabile sia in forma diretra che in forma negara, rigeneran
do il fan our dellingresso Un primo gruppo di connessioni programmabili connette
turte le variabili di ingresso (sia dirette che negare) agli ingressi di ciascuna porta della
matrice di AND, cos come indicato dallintersezione rra le linee vemcali e orizzontali
Un secondo gruppo di connessioni programmabili connette le uscite delle porte
AND agli ingressi di ciascuna porta della matrice di OR Ciascuna porta OR connessa
poi a una porta XOR a due ingressi, in cui il secondo ingresso pu essere programmato sul
livello logico ALTO (1) o BASSO (0), a seconda che sivoglia invertire o meno la somma
di prodotti realizzata Infatti, ricordando che X 1 ~X, f uscir viene invertita quando il
secondo ingresso della relativa porta XOR connesso a 1 Analogamenre, ricordando che
X 0 =X, luscita rimane invariata quando il secondo ingresso della relativa porta XOR
connesso a 0 Le funzioni booleane implementate nel PLA della figura sono
Fi = AB + A C + ABC
F2 = AC + BC
Nella figura, rermint prodotto generati da ciascuna porta AND sono etichetran sull uscita della porta corrispondente II termine prodotto costruito a partire dalle variabili di
ingresso collegare, con connessioni CHIUSE (una croce), agli ingressi della porta AND
Luscita della porta OR fornisce la somma logica dei termini prodotto selezionati Lusci

67

Dispositivi a matrice logica programmabile

Figura 6 24 PLA con tre ingressi, quattro termini prodotto e due uscite

ra pu essere in forma diretta o complemenrata, in base alla programmazione della con


nessione relativa al secondo ingresso della porta XOR
La mappa delle bruciature per un circuir PLA pu essere specificata in forma tabel
lare La tabella di programmazione relativa al PLA della Figura 6 24 riportata nella Ta
bella 6 4 La tabella consisre di tre sezioni nella prima sezione sono elencati gli indici dei

TABELLA 6 4

Tabella dt programmazione per la PLA della Figura 6 24


Ingressi

AB
AC
BC
ABC

Uscite

Termine
prodotto

tn
Fi

w
F2

341

Capitolo 6

Memorie e dispositivi logici programmabili

termini prodotto, la seconda sezione specifica quali connessioni sono necessarie tra gli in
gressi (diretti o negati) e le porte AND, la terza sezione specifica le connessioni tra le por
te AND e le porte OR. Per ciascuna variabile dusara, la forma diretta o negata indivi
duata con 1etichetta T (true) o C (complemenr) nella colonna cornspondenre Ci
stabilisce se la connessione del secondo ingresso della porta XOR, relanva alla variabile di
usara, deve essere un 1 o uno 0 logico, rispettivamente I termini prodotto, riportati sul
la sinistra, non fanno parte della tabella, ma sono inclusi soltanto per riferimento Per cia
scun termine prodorto, gh ingressi sono etichetta con 1, 0 o (tratto) Se una variabile
appare nel rermine prodotto in forma diretta, la variabile dingresso corrispondente eti
chettara con 1, se la variabile appare complementata, la variabile dingresso cornsponden
re erichettata con un 0, se la variabile assente, essa etichettata con un tratto
Le connessioni tra gli ingressi e le porte AND sono specificate nella tabella sorto la
colonna Input In questa colonna un 1 specifica un circuir CHIUSO che connerte la
variabile dingresso, m forma diretta, alla porta AND, uno 0 specifica un circuir
CHIUSO che connette la variabile d ingresso, in forma complementara, alla porta
AND, mentre un tratto specifica un circuir APERTO tra la variabile di ingresso, sia in
forma direrta che in forma complemenrata, e la porta AND Si assume che un terminale
APERTO sullingresso di una porta AND si comporti come un 1 logico
Le connessioni tra le porte AND e OR sono specificate nella colonna Output Nel
la colonna relanva a una variabile di uscita, si trover un 1 per i Termini prodotto che so
no inclusi nella funzione In questo caso, un circuito CHIUSO connetter luscita della
porra AND e 1ingresso della porta OR cornspondenre I termini prodotto etichettati
con un tratto specificano invece un circuito APERTO, assumendo che il circuito aperto
subingresso di una porta OR si comporti come uno 0 logico Infine, una uscita etichet
tata con T (rrue) denota che il secondo ingresso della porta XOR cornspondenre con
nesso a 0, mentre C (complemenr) specifica una connessione a 1
La dimensione di un circuito PLA definita dal numero di ingressi, dal numero di
termini prodo tro e dal numero di uscite Un tipico circuito PLA ha 16 ingressi, 48 ter
mini prodotto e 8 uscite Per n ingressi, k termini prodotto e m uscire, la logica nrerna
del PLA consiste di n porte buffer mverrer, porte AND, m porte OR e m porte XOR
Esistono 2 n x k connessioni programmabili tra gli ingressi e la matrice di AND, k x m
connessioni programmabili tta la matrice di AND e la matrice di OR ed m connessioni
programmabili associate alle porte XOR
Per progettare un circuito PLA, non necessario mostrare le connessioni interne
dellunir, come visro m precedenza nella Figura 6 24, serve solranto la tabella di pr
grammazione che contiene le informazioni necessarie per implementare le funzioni logi
che nchiesre Cos come per la ROM, un circuito PLA pu essere programmato o m mo
do permanente, dal produttore in base alle specifiche del clienre o diretramente
dallurente In quesrultimo caso il PLA viene chiamaro circuito FPLA {field programma
ble logtc array, marnce logica programmabile sul campo), e per la sua programmazione
nchiesro luso di un apposiro apparato
Durante la fase di progettazione di un circuito combinatorio da realizzare con un
PLA, opportuno ridurre il numero di prodotti disrmti, e quindi la complessit del cir
cuito Un numero ridotto di prodotti pu essere ottenuto minimizzando, con le note
Tecniche, la funzione booleana In realt poich sono disponibili tutte le variabili di in

67

Dispositivi a matrice logica programmabile

gresso, il numero di letterali presenti in un prodotto poco importanre sempre op


portuno, comunque, evitare lerterali aggiuntivi che causano problemi nella fase di venfica del circuito e ne riducono la velocita Infine dovrebbero essere semplificate entrambe
le forme, dirette e negate, di ciascuna funzione per vedere quale di esse pu essere espres
sa con il minor numero di termini prodotto e quale di esse pu fornire rermmi prodotro
da condividere con le altre funzioni
Progetto di un circuito combinotorio con l'uso di un PLA

Implementare con un PLA le due funzioni booleane


F M B C) = 2w (0, 1,2 4)
F2(A B C) = 2 m(0 5 ,6 ,7 )

Le due funzioni, sia in forma diretta sia in forma negata sono state semplificate
utilizzando la mappe di Karnaugh riportate nella Figura 6 25 La combinazione
che fornisce il minimo numero di termini, nella forma di somma di prodotto
Fi = AB + AC + BC
F2 AB + AC + ABC

sBC

A \

xBC

01

11

10

01

11

10

A \

B
00

00

Fj = AB + AC + ABC
F2 = AC + AB + ABC

F-j = AB + AO + BO
e AB + AO + BO

Tabella di programmazione del PLA


Uscite
Termini Ingressi (C)
prodotto
ABC
F:
AB

1 1 -

(T)

F2
1

AC

1 - 1

BC

- 1 1

ABC

0 0 0

Figura 6 25 Mappe di Karnaugh e tabella di programmazione per l Esempio 6 2

343

344

Capitolo 6

Memorie e dispositivi logc programmabili

La semplificazione d come risultato quattro termini prodotto distinti AB, AC


BC, e ABC La tabella di programmazione per questa combinazione, riportata
sempre nella Figura 6 25 Si noti che 1uscita F\ 1usata desiderata, anche se,
nella tabella, essa enchertata da una C II circuir AND-OR, infatti genera la
funzione Fx che disponibile allusata della porta OR La porta XOR compie
menra quindi la funzione F\ per produrre 1uscita vera Fi
Il circuir dell'Esempio 6 2 staro presenraro solo a fini didartici ed rroppo semplice
perch sia economicamenre conveniente implementarlo con un circuito PLA Un ripico
PLA ha numerosi ingressi e numerosi termini prodotto La semplificazione di funzioni
booleane complesse, con molte variabili effettuata per mezzo di programmi di sempli
fcazione auromanci che girano su calcolatori elerrronici Un programma di progerrazio
ne assistira provvede, infarti, alla semplificazione delle funzioni, sia in forma diretta sia
negara, e alla ricerca della implementazione economicamenre pi vantaggiosa La rabella
di programmazione del circuito PLA quindi generara auromaricamenre e la mappa di
connessione viene esrrarra auromaricamenre dalla tabella e applicata al FPLA lappa
rato di programmazione infine che include o rimuove le connessioni nel circuito nre
graro

6.8

Dispositivi logici a matrice programmabile

I dispostivi logici a marnce programmabile PAL appartengono alla categoria del di


spositivi a marrice programmabile PLD e si cararrerizzano per la presenza di una matrice
di porre OR fssa e di una matrice di porre AND programmabile Poich solranro le por
re AND sono programmabili, i circuiti PAL sono pi facili da progerrare ma anche me
no flessibili dei PLA La Figura 6 26 mostra la configurazione logica di un ripico dispo
sirivo PAL con quarro ingressi e quattro uscite Ciascun ingresso ha una porta
buffer-inverter e ciascuna uscita generara da una specifica porta OR. Il dispositivo ha
quarrro sezioni, ciascuna delle quali composta da un albero AND OR a tre rami, owe
ro con tre porre AND programmabili Ciascuna porta AND ha 10 connessioni di in
gresso programmabili, indicare nel diagramma da 10 linee verricali, ciascuna delle quali
interseca una linea orizzontale cornspondenre allingresso multiplo della porta AND
Una delle uscite riportata in ingresso, rramire una porta bufifer-inverter, e pu essere
connessa in retroazione allingresso delle alrre sezioni
I
dispostivi PAL disponibili in commerciali hanno moire pi porre del dispositivo
della Figura 6 26 Un piccolo circuito integrato PAL ha tipicamente otto ingressi, orto
uscire e orro sezioni, ciascuna delle quali consisre di un albero AND-OR a orro rami
Ciascuna uscir poi pilotata da un buffer three-srare e rerroazionara in ingresso Uriliz
zando un segnale variabile che pilota e abilita il buffer three-srare, rutti gli ingressi e le
uscite del dispositivo possono essere nprogrammare per essere soltanro ingressi, soltanto
uscire o bidirezionali Tra la marnce logica e i buffer rhree stare di uscita, sono spesso in
clusi alcuni fhp flop, questo consente la realizzazione di circuir! sequenziali dal momen
to che ciascuna uscita rerroazionata in ingresso fino alla marnce di AND, trami re una
porta buffer inverter

68

Dispositivi logici a matrice programmabile

Ingressi porte AND

Figura 6 26 Dispositivo PAL con quattro ingressi quattro uscite e struttura a tre AND OR

Nella progettazione basara su dispositivi PAL, le funzioni booleane devono essere


semplificare per essere conrenure in una singola sezione Non sempre ci possibile
Conrrariamenre ai PLA, un rermine prodorro non pu essere condiviso rra due o pi
porre OR, quindi, ciascuna funzione deve essere semplificata senza considerare termini

345

346

Capitolo 6

Memorie e dispositivi logici programmabili

prodotto, eventualmente comuni a pi uscite II numero di prodotti per ciascuna sezio


ne fisso e se il numero di termini della funzione troppo grande, potrebbe essere ne
cessario utilizzate due o pi sezioni per implementare una singola funzione booleana In
questo caso, vantaggiosa la presenza di eventuali termini comuni
Progetto di un circuito combinotorio utilizzondo un PAL

Come esempio di programmazione di un dispositivo PAL che fa parte del pr


getto di un circuito combinatorio si considerino le seguenti funzioni booleane
date come somme di minternimi
WA, B C D) = 2 m(2 12, 13)
X(A B, C D) = 2 m{7, 8 9,10 11 12, 13 14 15)
Y{A B C D) = 2 m(0, 2, 3, 4 , 5 , 6 , 7 8 10 11, 15)

Z(A B, C D) = 2 m{ 1 2 8 12 13)
Semplificando le funzioni in modo che esse abbiano il minimo numero di termi
ni prodotto, si ottiene
W= ABC+ ABCD
X = A + BCD
Y =AB+CD + BD
Z - ABC + AB CD + A C D + ABCD = W + A D + ABCD
Si non che la funzione Z ha quattro termini prodotto ma la somma logica di due
di questi uguale alla funzione W Pertanto, utilizzando 1uscita W, possibile ri
durre da quattro a tre il numero dei termini di Z in modo che la funzione possa
essere contenuta nel dispositivo PAL della Figura 6 26
La tabella di programmazione per un circuito PAL simile alla tabella utilizzata per i
PLA, tranne che qui solo gli ingressi delle porte AND devono essere programmati La
Tabella di programmazione 6 5 relativa al circuito PAL della Figuta 6 26 La tabella
divisa in quattro sezioni con tre termini prodotto per ciascuna sezione, in modo da esse
re conforme al dispositivo PAL della Figura 6 26 Le prime due sezioni sono caratteriz
zate da due termini prodotto che implementano solo le funzioni Booleane (W c X ) Po
sizionando W nella prima sezione del dispositivo, la connessione in retroazione da .FI
alla matrice di ingresso riduce la funzione Z a tre termini
Nella Figura 6 27 riportata la mappa delle connessioni (connection map) per il
disposirivo PAL Nel diagramma, per ciascuno 1 o 0 presenti nella tabella si etichetta la
connessione corrispondente (variabile diretta o negara, rispettivamente) con il simbolo
di circuir CHIUSO Per ciascun tratto ( ), invece, si etichetta 1ingresso corrispondente,
sia diretto che negaro, con connessioni a circuito APERTO Se la porta AND non uri
hzzara, si lasciano turti suoi ingressi come circuiri CHIUSI Infatti, in quesro caso la
porta riceve in ingresso sia ja forma diretta che la forma negara di ciascuna variabile e
quindi, ricordando che A A = 0, luscita della porta AND sempre 0

69

TABELLA 6 5

Dispositivi logici programmabili VLSI

Tabella di programmazione per I Esempio 6 3


Ingresso AND

Termine
prodotto

Uscite

ABC
+ BCD

3
4
5

A
+ BCD

10

11

12

y=

AB
+ CD
+ BD
W
+a c d
+ BCD

Come per tutti i PLD, la progettazione di dispositivi PAL facilitata dall utilizzo di
tecniche assistite da calcolatore La realizzazione delle connessioni si effettua con una
unit di programmazione hardware esterna

6.9

Dispositivi logici programmabili VLSI________

Il vantaggio di utilizzare dispositivi PLD nella progettazione di sistemi digitali legato


alla possibihr che essi hanno di implementate una funzione logica complessa all interno
di un singolo circuito integrato, mediante programmazione delle connessioni Per fun
zioni ancora pi complesse, la tecnologia pi appropriata la tecnologia di integrazione
su larga scala VLSI {very large scale integration) con la quale si progettano sistemi digitali
che contengono milioni di porte allinterno di un singolo chip
Esisrono rre modi per la progettazione di circuiti VLSI La progetrazione fu ll
custom, prevede che per un intero chip essa sia condotta completamente, fino al pi pie
colo dettaglio del layour Questa modalit molro costosa e pu essere giustificata sol
tanto per circuiri integrati veloci, molro compatti e da realizzare in grandi quantit Una
tecnica relativamente simile la progettazione con librerie standard (standard celi design),
in cui gran parte del progerto staro gi messo a punro in precedenza oppure faceva par
te di progetti precedenri Le patti gi progettate sono quindi connesse per formare il cir
cuito integrato desidetato La progettazione con librerie standard offre una minore den-

347

348

Capitolo 6

Memorie e dispositivi logici programmabili

Ingressi porte AND

Figura 6 27 Mappa di connessione del dispositivo PAL dell Esempio 6 3

sit di integrazione e minori prestazioni rispetto alla progettazione full custom carat
terizzata da livelli di costo intermedio II terzo approccio alla progettazione VLSI usa ma
trici di porte logiche {gate array), cio una struttura di porte logiche costruite su silicio e

69

Dispositivi logici programmabili VLSI

ripeture migliaia di volte In dipendenza della tecnologia utilizzata un circuito integraro


conrerra da 1 000 fino a qualche milione di porte logiche La progettazione di disposiri
vi gare array deve individuare sia la modalit di interconnessione delle porte sia la loro
disposizione nel chip Molti passi del processo di fabbricazione sono indipendenri dalla
funzione logica finale riuscendo in questo modo ad essere poco costosi poich riutilizza
bili in numerosi progetti Alrn passi sono per necessari per nrerconnettere le porte lo
giche al fine di personalizzare il gate array al particolare circuito da realizzare Infine cosi
come accade per rutn progetti complessi, il processo di progettazione fortemente au
roraarizzaro grazie allutilizzo di programmi CAD
Recentemente, nell ambir dei dispositivi PLD, sono stari sviluppari nuovi approc
ci per la progettazione VLSI per gestire progetti che in passato venivano implementati su
piccoli chip oppure con gare array avenri da mille a un milione di porre Questi nuovi
approcci hanno prodotto dispositivi logici programmabili ad alra capacit denominati
disposine logici complessi programmabili CPLD (complex programmable logtc device) o
dispostavi a matrice di porte programmabili sul campo FPGA (fieldprogrammable gate
array) Queste due srrutture solitamente sono caratterizzate dalle seguenti propriet
1 un numero elevato di circuiti logici combinatori personalizzabili
2 disponibilit di flip flop
3 connessioni programmabili rra logica combinatoria, fip flop e linee ingresso/uscita
del chip
A parte queste propriet comuni a tuta i PLD realizzati con tecnologia VLSI disposi
tivi specifici differiscono da cosrrutrore a cosrrurtore Per illustrare le caratteristiche di ra
li strutture, si analizzer la struttura di un tipico CPLD prodotto dalla ditta Altera e di
un FPGA prodotto dalla ditta Xihnx

Struttura dei CPLD Altera MAX 7000


Una famiglia dei CPLD costruiti da Altera basata sulla tecnologia a base fluttuante
EEPROM Nella Figura 6 28 riportala lintera struttura di un CPLD Altera MAX
7000 11 dispositivo composto da 16 blocchi logici identici, le cui uscite aderiscono
alla matrice di interconnessioni programmabili Alla matrice afferiscono anche le usare
dei blocchi di controllo I/O, che agiscono da interfaccia con lesterno e consentono il
rrasfenmento dei dati da e verso il CPLD Le connessioni possono essere programmate
secondo necessit, essendo possibile connettere qualunque segnale della matrice delle in
terconnessioni agli ingressi della matrice dei blocchi logici
Ciascun blocco logico contiene 16 macrocelle, ciascuna delle quali ha un flip flop e
una struttura logica combinatoria di tipo PLD Alcune delle porte AND allinterno del
le macrocelle, sono utilizzate per il controllo del flip flop (per esempio per il controllo
del Preset, del Clear e del Clock Enable) Lo stesso flip flop pu essere programmato pet
comportarsi come un flip flop di tipo D, T, J K o SR. Inoltre connessioni speciali con
sentono alle porte AND di altre macrocelle di essere utilizzate per una particolare ma
crocella e alle porte NAND di essere condivise dagli ingressi in tutte le macrocelle Que

349

350

Capitolo 6

Memorie e dispositivi logici programmabili

Figura 6 28 Struttura de! circuito ALTERA MAX 7000 (ristampato con permesso di Altera Corp )

ste caratteristiche consentono di gestite ptobleml in cui le funzioni chiedono pi ter


mini AND dei cinque disponibili nella patte combjnatotla di ciascuna mactocella
Per quanto riguarda 11/0, come evidente dall esame della Figuta 6 28, ciascuna
mactocella, che fa parte dei blocchi logici disposti intotno al petlmetro estetno della
sttuttuta Altera, connessa ai blocchi di conttollo I/O Questi consistono di un piedi
no I/O pilotato da un buffer thtee state che ha come Ingtesso I usata della mactocella II
conttollo del buffet parte da una potta AND nella mactocella Due connessioni di in
gtesso, ptovenienti una dall ingresso e 1altta dallusata del buffer thtee state, entrano
nella mattice di interconnessioni programmabile del CPLD

69

l'v.

*r-

Dispositivi logici programmabili VLSI

&Z^

Figura 6 29 Struttura FPGA della XILINX XC4000 (adattato con permesso di Xilinx Ine )

Struttura dello Xilnx XC4000


Nella Figuta 6 29 tipottata la sttuttuta di un FPGA Xiltnx XC4000 La logica in
terna del dispositivo contenuta in una matrice dt blocchi logici programmabili deno
mtnatt blocchi logici confgutabtlt CLB (configurable loge block) Lingresso e 1uscita da
e verso la mattice gestita dai blocchi ingresso/usata IOB (inputfoutput block) dtspostt
lungo botdt della matrice I blocchi CLB e IOB sono tta loto interconnessi con strut
ture progtammabtli Le connessioni da e verso t blocchi CLB e IOB possono essere pr
gtammate e si possono, tnoltte, programmare i percorsi da un blocco allaltro, uttltzzan
do una matrice dt blocchi di connessioni (switch matrice)

351

352

Capitolo 6

Memorie e dispositivi logici programmabili

Xihnx utilizza la Tecnologia SRAM per memorizzare 1 bit di configurazione Dopo


aver alimentato il circuir, i dati del programma, che definiscono la configurazione logi
ca, devono essere caricati nella SRAM Esistono diversi modi per caricare le informazioni
Infetti, un dispositivo FPGA contiene una logica dedicata al caricamento delle informa
zioni da una PROM a una SRAM Non appena il programma caricato, il dispositivo
cambia il proprio stato di funzionamento, passando dallo stato di programmazione alio
stato operarivo, in cui disponibile la logica confgurara dal programma La configurazio
ne rimarr attiva fino a quando il dispositivo non verr riprogrammato oppure spenro La
riprogrammabilit consente di implementare, in rempi successivi, funzioni logiche diver
se, sulla stessa FPGA, ci rende questi dispositivi esrremamente flessibili
I bit di una cella SRAM controllano la logica implementata m un dispositivo FP
GA Xilinx, utilizzando le tre tecniche mostrate nella Figura 6 30 controllo con un tran
sistor di connessione {pass transistor), controllo con multiplexer e implementazione di
una tabella di consultazione (lookup tabl)
La Figura 6 30(a) mostra una cella SRAM che pilota il terminale della porta (G) di
un transistor MOS a canale n (si veda il Paragrafo 2 9) Un transistor organizzato per co
struire una connessione bidirezionale pilotabile per il passaggio di un segnale tra due seg
menti conduttori, denominato transistor di connessione {pass transistor) I due seg
menti conduttori sono connessi uno alla source S del transistor e laltro al dram D
Quando la cella SRAM contiene uno 0, il transistor OFF ed d circuito tra due con
duttori APERTO Quando la cella contiene un 1, il transistor ON e si crea un cir
cuito CHIUSO tra i due conduttori che permette il passaggio dei segnali Un tipico di
spositivo della serie XC4000 contiene decine di migliaia di tali transistor di connessione
Nella Figura 6 30(b), una cella SRAM connessa allingresso di selezione S di un
multiplexer 2 1 Se la cella SRAM contiene uno 0, il valore sullingresso 0 viene rrasfe

M
<L

__
M
M
Mj
A
M
B ---M
C---M
M

(a) Controllo dei pass transistor

(b) Controllo dei multiplexar

-----F(A B C)

(o) Implementazione delle tavole di consultazione (look up table)

Figura 6 30 Uso dei bit SRAM in un FPGA di XILINX

69

Dispositivi logici programmabili VLSI

rito alluscita del multiplexer, mentre se la cella SRAM conriene un 1, viene trasferito al
luscita del multiplexer il valore dell ingresso 1 Questa strutrura utilizzata per effettua
re la selezione tra due segnali Qualche volta possibile trovare due celle SRAM che pi
lotano un multiplexer 4-1 Infine, nei casi m cui dati m ingresso al multiplexer sono X
e X, il multiplexer sostiruito da una porr XOR con il segnale X applicaro a un ingres
so e la cella SRAM sullaltro
Le celle SRAM si possono utilizzare per la costruzione di tabelle di consultazione,
come mostraro nella Figura 6 30(c) Nella figura riportata una rabella per una funzio
ne a tre variabili F(A,B, C) Le celle SRAM memorizzano la tabella di verit della fiinzio
ne, m modo tale che ciascuna cella contenga il valore della funzione F per il minrermine
corrispondente La tabella di consultazione funzionalmente equivalente a un multi
plexer m cui bit delle celle SRAM sono applicati agli ingressi dati e le variabili A B C
sono applicati agli ingressi di selezione Con riferimento allesempio, se (A,B,Q = 010, il
valore contenuto nella cella SRAM 2 (corrispondente decimale del numero binario 010)
sar trasferito alluscita del circuito La tabella di consultazione rappresenta quindi limplementazione con multiplexer di una funzione logica combinatoria, in cui le celle
SRAM forniscono dati di ingresso al multiplexer

Interconnessioni Xilinx
Le connessioni tra 1 blocchi CLB e tra blocchi CLB e i blocchi IOB sono ottenute uti
lizzando vari conduttori disposti intorno ai blocchi, in direzione orizzontale e verricale I
conduttori sono di lunghezza diversa quelli che percorrono I intera matrice m lunghez
za o m larghezza sono denominati long Ime e sono mostrati nella Figura 6 29 Altri seg
menti sono lunghi quanro un singolo CLB e possono essere interconnessi utilizzando le
matrici di scambio riportate nella stessa figura
Nella Figura 6 31 (a) riportato un esempio di matrice di scambio Nel punto in
cui segmenti si incontrano, sono presenti sei transistor di connessione, rappresentati da

Figura 6 31 Esempio di matrice di connessione in un FPGA di XILINX (adattato con permesso


di Xilinx Ine )

353

354

Capitolo 6

Memorie e dispositivi logici programmabili

un segmento gtigio uno verticale, il secondo otizzontale e quattto sono in diagonale


La connessione tta due segmenti risulta CHIUSA se un 1 memotizzato nella cella
SRAM che pilota la porta del ttansistot, mentte sar APERTA se uno 0 a essere memo
tizzato nella cella SRAM Nella Figuta 6 31 (b) sono illusttati divetsi esempi di connes
stoni Si noti che nel punto 1, quattto segmenti sono connessi insieme, chiudendo tre
ttansistor In questo caso, si sarebbeto potuti chiudere tutti sei ttansistor per fotmate
una connessione con una resistenza elettrica minore Nel punto 2, si sono fotmati, mve
ce, due distinti petcotsi di conduzione Pet connettere blocchi CLB e IOB, si estendo
no i segmenti dai blocchi di ingtesso e duscita atttavetso i canali di connessione adia
centi Neirintetsezione tta questi segmenti e segmenti petpendicolati aHintetno dei
canali si ttovano ttansitot di connessione, conttollati da celle SRAM
Oltte alle connessioni a lunghezza singola e massima (single e long Unes) tipottati
nella Figuta 6 29, esistono connessioni a lunghezza doppia, intetconnessioni speciali pet
il clock, buffet thtee-state come ingtessi pet alcune delle connessioni a lunghezza massi
ma e citcuiteria speciale pet implementare porte AND di gtandi dimensioni nei canali di
connessione

Logica Xlinx
La maggior parte dei circuiti logici di un FPGA Xlinx si ttova allintetno dei blocchi
CLB e IOB Enttambi queste sttuttute sono intetamente programmabili e piuttosto
complesse Nel seguito si studiet in dettaglio la struttuta di un blocco CLB e le catatte
ristiche di un blocco IOB
Nella Figuta 6 32 riportato un diagtamma semplificato di un blocco CLB Sono
ptesenti 13 ingtessi, incluso il clock K Non tiportato il segnale Global Set/Reset che
connesso con tutti i flip flop della FPGA, Due flip flop e la logica associata sono eviden
ziati in blu La parte testante del blocco CLB utilizzata pet implementate la logica
combinatoti a
Nella fguta, tre tabelle di consultazione implementano alttettante funzioni combi
natotie Due tabelle a 4 ingressi implementano due funzioni, etichettate con F ' e G'
Questi due blocchi pilotano una terza tabella di consultazione che a sua volta imple
menta una funzione a tre variabili di F \ C' e un ingtesso H I Pilotando cotrettamente
due multiplexet 2 1, qualunque coppia di funzioni, scelte tta F \ G' e H r (la funzione
implementata dalla terza lookup table), pu essete assegnata alle due uscite, X e Y, del
CLB Con questa sttuttuta possono essete implementate due funzioni con un massimo
di quattto variabili e funzioni particolati con un massimo di nove vatiabih
I due flip flop D pilotano ditetramente le uscite XQ e YQ Ciascuno ingtesso D
I uscita del telativo multiplexet e pu assumete uno dei valoti comptesi tta F \ G \ H ' e
I ingtesso DIN I multiplexer consentono a una qualunque funzione combinatotia m
plementata di pilotare i flip flop Inoltte, nei casi in cui le funzioni combinatorie sono
utilizzate direttamente come uscite e non pilotano flip flop, D IN pub essere seleziona
to come ingresso, cteando una connessione di tetta al flip flop che pu essete utilizzata

69

Dispositivi logici programmabili VLSI

355

Figura 6 32 Diagramma semplificato di un blocco logico riconftgurabile in un FPCA di XILINX


(adattato con permesso di Xilinx Ine )

per la memorizzazione di valoti provenienti da altre sotgenti I due XOR consentono di


selezionare individualmente ciascun flip flop e di tendetli attivi sul ftonte positivo o ne
gativo del clock I due blocchi SR Conttol consentono di utilizzare il segnale S/R come
segnale di Set o Reset asinctono pet ciascun flip flop Questa impostazione conttolla an
che gli effetti del Global Set/Reset sullo stato dei flip flop Infine, due multiplexet consen
tono allingresso EC di agite come il segnale di Clock ENABLE pet ciascun flip flop
Il
blocco IOB aneti esso programmabile e offre al ptogettista un cetto numeto di
scelte Per semphficit, si ptenderanno in considerazione sepatatamente le due sezioni di
ingressa e duscita del blocca IOB cosi come llusttato nella Figuta 6 33

356

Capitolo 6

Memorie e dispositivi logici programmabili

Three state TS -

jo"
Uscita dati O Interno
FPGA

t CLR

Piedino
di i/O

Ingresso dati 1 -

PRE

Ingresso dati 2 CLR


INGRESSO

Figura 6 33 Diagramma di massima della struttura IOB in un FPGA della XILINX {adattato con
permesso di Xilinx, Ine )

La sezione di uscita di IOB pu canalizzate le uscite dellFPGA sul piedino I/O In


alternativa esso pu fomite in uscita un valore memotizzato in un fhp flop Un buffer th
tee-state sulluscita consente al piedino I/O di essere utilizzato come ingresso, come usci
ta o come ingtesso/uscita
Nella sezione di ingresso dell IOB, il segnale proveniente dal piedino I/O viene in
viato al buffet di ingresso II segnale pu essere inviato ditettamente allingtesso dati 1 o
allingtesso dati 2, i quali tapptesentano le due linee di ingtesso pet il dispositivo FPGA
In alternativa, uno o entrambe le linee di ingresso possono essere pilotate dal vaio te pte
sente nel piedino di I/O o dal suo complemento
Lintera struttura delle mrerconnessioni, dei blocchi CLB e IOB complicata, so
prattutto per un progettista che deve operare con centinaia di blocchi CLB e IOB e mi
gliaia di punti di interconnessioni in un FPGA, Gli strumenti CAD sono molto utili
perch partono dallo schema circuitale o dalla descrizione HDL del progetto e automa
ticamenre lo partizio nano oppottunamente in sezioni (adatte a essere implementate nei
CLB), posizionano i blocchi in specifici CLB e creano le connessioni tra CLB e IOB II
risultato del processo una srnnga di cenrtnaia di migliaia di bir di informazione che
possono essere caricati sul disposirivo FPGA per la sua programmazione in modo da m
plemenrare la logica desiderata

610

6.10

Sintesi del capitolo

Sintesi del capitolo___________________________

Vi sono due tipi di memotia le memorie ad accesso casuale RAM (random accesi
memory) e le memoria a sola lettuta ROM (read only memory) Pet enttambi i tipi di me
mona si invia un indirizzo pet selezionare le celle da cui leggete o in cui scrivere i dati Le
opetaziom di lettuta (read) e sctittura (wnt) avvengono seguendo specifici passi e sono
catatteazzati da parametti di tempotizzazione, come il tempo di accesso e il tempo del
ciclo di scrittura Le memorie possono essete statiche o dinamiche, volatili o non volati
li Un banco di memoria RAM costituito da una matace di celle RAM, da decodifica
toti, da circuiti di scattuta, da citanti di lettura e da citanti di uscita Una singola cella
RAM e la telativa citcuitena di scattura e lettuta possono essere modellate come una
RAM bit slice Divetse RAM bit shce possono essete, a loto volta, combinate per fotma
te mattici bidimensionali di celle RAM, che con laggiunta di decodificatoti e citanti di
uscita, costituiscono gli elementi fondamentali pet un banco di memotia RAM Pet feci
litare la connessione di banchi di memotia RAM, senza laggiunta di ultetiote logica,
citanti di usata utilizzano buffet three state Nei banchi di memotia DRAM, a causa
della necessit di reftesh, necessario inseate un ultetiore citcuito dedicato
Le memorie ROM, capaa di implementare un circuito combinatorio, sono pi
semplici dispositivi logici programmabili (PLD), poich essi semplicemente immagazzi
nano una tabella di vetit. I dispositivi logici a mattice logica progtammabile (PLA) e
quelli a logica con matrice programmabile (PAL) rappresentano altte forme dementati
di PLD Da questo punto di vista, una memoria ROM ha una mattice di potte OR pto
gtaxnmabile, una PAL ha una mattice di potte AND ptogrammabile e un PLA ha en
trambe le mattia AND e OR programmabili 11 compito pancipale pet un progettista di
citanti logici quello di conoscere ciascun PLD e le telative limitazioni e adattate d pr
getto alle catattetistiche del PLD ptescelto
Pet logiche pi complesse sono pi adatti PLD a larga scala di integrazione, (VLSI
PLD) Un VLSI PLD possiede una ampia sezione di logica combinatoria confgurabile
molti flip flop e complesse sttuttute di interconnessione progtammabili Sttuttutalmen
te, tanto dispositivi quanto le tecniche di programmazione, variano fortemente da co
struttore a costruttore La progettazione con PLD sia semplici che complessi agevolata
dalluso di appositi strumenn CAD, che liberano i progettisti dalla grande complessit
dei dettagli dell implementazione
ESSISI I codia a rilevazione e correzione di errore, spesso basati su codici Hamming sono
urilizzati per rilevare o correggere errori nei dati immagazzinati nelle memo ne RAM
Mareriale urile, rratto dalla prima edizione, che analizza quesn codici, disponibile nel
Prennce Hall Companion Website Gallery all indirizzo hrrp //www prenhall com/kime
KatfAYj II materiale che riguarda le descrizioni VHDL e Verilog per le memorie anch esso
disponibile nel Prentice Hall Companion Website Gallery airindtnzzo
hrtp //www prenhall com/kime

357

358

Capitolo 6

Memorie e dispositivi logici programmabili

Riferimenti bibliografici

_____________ _ _ _ _ _

1 WESTE, N H E , AND ESHRAGHIAN, K Pnnciples ofCM OS VLSI Design A Syj


tems Perspective, 2a ed Readtng, MA, Addtson-Wesley, 1993
2 HODGES, D A , AND JACKSON, H G Analysis and Design ofDigital Integrated
Circuits, 2a ed New Yotk, McGraw-HtU, 1988
3 HAZNEDAR, H Digital Microelectromcs Redwood City, CA, Benjamtn/Cum
mtngs, 1991
4 WKERLY, J F Digital Design Pnnciples and Practices, 3a ed Upper Saddle Rivet,
NJ, Prentice Hall, 1999
5 N elson , V P, N agle , H T, C arroll , B D , a n d I r w in , J D Digital Logic
Circuit Analysis and Design Englewood Cliffs, NJ, Ptenttce Hall, 1995
6

KlTSON, B Programmale Array Logic Handbook Sunnyvale, CA, Advanced Mi


eto Devices, Ine, 1984

7 TrIMBERGER, S M , ED Field-Programmable Gaie Array Technology Boston,


Kluwet Academic Publishers, 1994
8 Altera Data Book San Jose, Alteta Cotpotatton, 1998
9 The Programmable Logic Data Book, 2a ed San Jose, Xiltnx, Ine , 1994

Esercizi
m t l II segno ptu (+) indica esetczt con un gtado dt complessit pi elevato Pasterisco (*)
che una soluztone dtspombtle sul sito web che accompagna il testo
6 1 * Le seguenti memotie sono specificate dal numeto di parole e dal numeto dt bit
pet patola Quante ltnee tndittzzo e linee datt tngtesso/uscita sono necessati tn et
som caso1*(a) 8 K x 32, (b) 256 K x 64, (c) 32 M x 32, (d) 4 G x 8
6 2 Fotnite il numeto dt byte memotizzabtlt nelle memotie elencate nell Esetctzto 6 1
6 3 * La patola numero (633) to nella memotia della Ftguta 6 3, contiene 1equtvalen
te binano dt (2731)to Scrivete 1tndt tizzo a 10 bit e tl vaiote a 16 bit della patola
6 4 Un banco di memoria RAM 32 K x 8 uttltzza la decodifica coincidente dtvtden
do il decodifcatote tntetno tn selezione dt tiga e seleztone di colonne (a) Assu
mendo che la matrice dt celle RAM quadrata, quai la grandezza dt ctascun de
codifcatote e quante porte AND sono necessarie pet decodtficate un indirizzo*
(b) Detetmtnate le linee di seleztone dt ttga e di colonna che sono abilttate quan
do Findttizzo in tngtesso Tequtvalente binano di (21000)lo
6 5 + Assumere che il decodtfcatore pi grande che pu essere utilizzato tn un banco
di memoria RAM m x l , abbia 13 ingressi per ltndtttzzo e che sta utiltzzata la co
difca coincidente Allo scopo di costruire banchi di memotta RAM che conten

Esercizi

gono pi parole da 1 bit ttspetto alle m ptevtste, sono tnclusi nel banco matrici
multtple dt celle RAM con decodificatoti e cttcuttt di lettuta/scttttura
(a) Date le testrizioni del decodtfcatote, quante mattici dt celle RAM sono ne
cessatte pet costrutte un chtp RAM da 256 M x P
(b) Defintre le carattettsttche del decodificatote achiesto pet selezionare le matact di
RAM nel banco e le connesstont per indittzzare bit e i decodificatori dt colonna
6 6 Una DRAM ha 12 piedtm dt ndtrizzo e la ttga indirizzo ptu lunga dt 1 bit ti
spetto alla colonna indttizzo Quanti tndtrtzzt ha la DRAM tn totale
6 7 Una DRAM da 256 Mb utthzza dati a 4 bit e ha tndittzzi dt ttga e colonna di
uguale lunghezza Quantt ptedini indtttzzo possiede la DRAM?
6 8 Una DRAM ha un tempo di tefresh di 128 ms e ha 4096 ttghe Qual linterval
lo tra t vari reftesh per un tefresh dtstnbutto5 Qual il numero mtntmo dt piedt
ni tnditizzo della DRAM?
6 9 * (a) Quanti banchi dt memorta RAM da 32 K x 8 sono necessari pet costrutte
una memotta delia capactt dt 1 Mbyte?
(b) Quante linee di tndittzzo devono essete utilizzate pet accedete a 1 Mbyte1*
Quante di queste linee sono connesse agli tngtesst indtttzzo dt tuttt 1bancht5
(c) Quante ltnee devono essete decodificate per gli tngtessi chip select5 Specifica
re la grandezza del decodtficatote
6 10 Utilizzando tl banco di memotta RAM 64 K x 8 della Ftguta 6 16 ptu un decodt
ficatote, costrutte il dtagtamma a blocchi per una RAM 256 x 32
6 1 1 Dato un banco di memoaa ROM 256 x 8 con un ingresso abilttante, mosttare le
connessioni esterne necessarie pet costrutte una ROM 2 K x 8 con otto banchi e
un decodificatore
6 12 Come mostrato nella Figura 6 34, la ROM 32 x 6 e la Itnea 2 convertono un nu
mero btnaao a 6 btt nel cotttspondente numero BCD a due cifre Pet esempto, il
binano 100001 st converte nel BCD 011 0011 (decimale 33) Spectfcate la ta
bella dt veut pet la ROM

Figura 6 34 Convertitore ROM binario decimale

359

360

Capitolo 6

Memorie e dispositivi logici programmabili

6 1 3 Specificare la grandezza di una ROM (numero di parole e numero di bir per pa


rola) che deve contenere la tabella di verit dei seguenti circuiti combinatori
(a) un sommatore sotrrattore a 8 bit con Cm e Qiut
(b) un molriplicatore
binario per due numeri a 8 bit
(c) un convertiroredi
codice da numeri BCD a 4 cifre
a numeri binari
6 14 Scrivere la tabella di verit per una ROM 8 x 4 , che implemenra le seguenti quar
tro funzioni booleane
A (X Y, Z ) = 2 m (3, 6, 7)
B(X, U ) = ^ ( 0 , 1, 4, 5, 6)
C{X, Y, Z ) = 2 m(2 , 3, 4)
D (X Y Z ) = 2 m{2, 3, 4, 7)
6 15 Ricavare la tabella di programmazione per un PLA che implementa le quattro
funzioni booleajne elencate nellEsercizio 6 1 4 Minimizzare il numero di termini
prodotro e urihzzare il maggior numero di termini comuni tra le funzioni, consi
derando anche le uscite negate (C)
6 16 Derivare la tabella di programmazione per un PLA che implementa un circuito
combinarono che calcola il quadrato di un numero a tre bit Minimizzare il nu
mero di rermmi prodotto (si veda la Tabella 6 3 e la Figura 6 22 per limplemenrazione equivalerne su una ROM)
6 17 Ricavare la rabella di programmazione per un PLA che implementa il convertito
re di codice da BCD a eccesso-3, le cui funzioni booleane sono semplificate nella
Figura 3 10
6 1 8 Ripetere lEsercizio 6 17, utilizzando un dispositivo PAL
6 1 9 Di seguito riportata la tabella di venta per quattro funzioni booleane a tre in
gressi Ricavare la tabella di programmazione per un PAL e indicare fusibili da
bruciare utilizzando un diagramma simile a quello riportato nella Figura 6 26

Ingressi

Uscite

0
0
0
0
1
1
1
1

0
0
1
1
0
0
1
1

0
1
0
1
0
1
0

0
1
1
0
1
0
1

1
1
0
1
0
0
1
1

0
1
1
0
1
0
1
1

0
1
1
1
0
1
0
1

Esercizi

6 20 Fornire gli ingressi FI, FI, F e F4, Gl, G l, G e <74, H I e le tabelle di verit per
F \ G e H \ per implemenrare la seguente coppia di funzioni in un dispositivo Xi
linx con singolo CLB
X = A K + BK + C D K + AEJL
Y = AB (C + D)
6 21 + Fornire gli ingressi F i, FI, F e F4, Gl, G2, G3 e G4, H I e le tabelle di verir
per F , G ' e H ' e i valori per rum i bit SRAM della Figura 6 32, nel caso dellim
plementazione del arcuito sequenziale descritto dal diagramma di stato della Fi
gura 4 23 Assumere che flip flop siano attivi sul fronte di salita e gli ingressi sin
croni SJR dei flip flop siano entrambi in RESET possibile implementare
interamenre quesro circuir in un singolo CLB, includendo la logica per luscita Y>
kvAVAVi Gli esercizi che trattano la descrizione VHDL e Venlog dei dispositivi di memoria so
no disponibili nel Prentice Hall Companion Websire Gallery all indirizzo
http //wwwprenhall com/mano

361

fi

i
I

I
I

j
I

Indice analitico

A
Addizione
BCD 158
Binaria 22
Esadecimale 10 13, 15, 25-27
Numeri binari con segno, 150, 153, 155
Ottale, 10 11, 16,19 25 122, 127
Algebra booleana, 30,34-35, 38,40, 90
Principali identit 36
Analisi, 197
Aritmetica decimale, 157
Uso del complemento, 149
ASCII, 23 25,28,163, 191 264,303
Bit di parit 24 25 28 80 81,95 101
Caratteri di controllo, 23

B
Banco di prova 107 164
Base, 3 8 10 13 16, 107, 146
BCD
Addizione 21 22 28
Sommatore, 143 158, 191
Sottrazione, 14, 28, 144 145,148 149,
151 152 154 155,181 190
Binano, 5 8,10,12 15,17,23 28,34,
116 117 122, 126, 128,138, 146,
150 151 153, 156,159
Addizione, 21 22 28
Divisione, 27 337

Moltiplicazione, 15 16 18 31 38 156
181,337
Sottrazione 14, 28 144 145 148 149
151 152 154 155,181,190
Bit, 6 8 9 14, 24 25, 28, 80 82 95,101
116, 136 153,155 268,283,287,289
Bit di parit, 24 25, 28, 80 81, 95 101
Blocchi, 8 25 82,99,102 103 105 106
113 180 198,305,349
Blocchi predefniti, 103 113,180
Blocchi primitivi, 103,105
Blocchi riutilizzabili, 102, 180
Byte, 24 28 90 101,307 308 358
c
Cache esterna, 2 7 8
Cache interna, 7
Calcolatore elettronico, 3 4, 7 150
Caratteri di controllo, 24
Celle, 4 50 52, 54 57 62, 66,79, 118,
306 307 312 313 316 353 354, 357-359
Celle adiacenti, 50 52, 54, 57, 66
Cifra meno significativa, 9 17,160
Cifra pi significativa, 9, 12, 14,17 18, 21,
145,154

Indice analitico

Circuiti combinatori, 99 100, 113 125,


132, 172, 180 181,188, 191, 198,241,
249,305, 336 337, 340 360
Procedura di sintesi, 115
Circuiti di memoria, 312
Circuiti digitali, 3 6, 29 30 38,68,82 84,
99 161 172,197 198,256
Circuiti integrati, 8,29 30,82 83 86 87,89,
104 106 122 125,134,305 328,334,347
Circuiti logici combinatori, 29, 35,99,
180 349
Circuiti NAND, 70,73
Implementazione multilivello 94
Circuiti NOR, 74
Implementazione multilivello, 94
Codice eccesso 3, 117 119,191
Codici alfanumerici, 22
Codici binario decimali, 19
Codificatore, 127-128
Codificatore con priorit, 128
Codificatori, 181
Complementi, 92,95,110,122, 146, 160,
181
Complemento a 1,147,149-152,154,189
Complemento a 2, 189
Condizioni, 67,226,232,235,237
Condizioni di non specificazione, 65,264,
293 294
Contaron BCD, 158
Controllo di parit, 80 81,89
Convertitori di codice, 99, 116

D
Datapath, 6,8
Decoder, 122, 136,163,329,334 335
Decodificatore, 120,123 127, 129, 132, 186
Decodificatori, 122
Demultiplexer, 135 136, 187
Descrizione strutturale, 105 161 164,172,
174,178,192,194,303

Descrizioni gerarchiche, 168


Disco fisso, 7
Display a sette segmenti, 121
Dissipazione di potenza, 84
Divisione binaria, 22
Duale, 37 40 42 64,74 87,95
Esptessione 36

E
Encoder, 99
Esadecimale, 16
Addizione, 21 22, 28
Moltiplicazione 15 16 18,31,38,156
181, 337
Sottrazione, 14,28 144 145,148 149,
151 152,154 155 181 190
Esadecimale, 26

F
Famiglie logiche, 83, 89, 122
Fan in, 83,89 188,306
Fan out, 83,89,95, 340
Forme canoniche, 42,73,88
Full adder, 136-138, 140, 142 157, 169,
178,259,275 276
Parziale, 140
Funzione booleana, 34 35 42,44-46,
48-49, 55,60, 62,65,68, 70,73 74,77,
79, 110,132,159, 181,336 342, 346
Funzione di propagazione del riporto, 140
Funzione dispari, 79 81 101 104 138, 220
Funzioni non completamente specificate,
60, 65, 89

G
G (Giga), 10,308
Gerarchia, 99 101, 103, 113, 140, 168, 216,
304
Gerarchla di progettazione, 101
Gerarchici, 178

Indice analittco

Half adder, 136 137, 169, 178


HDL, 105,, 172 241,249
Analisi 107,109,162 215,220
Banco di prova, 107, 164
Descrizione strutturale, 105,161 164,
172, 174, 178,192, 194 303
laboraztone 107,267
lmzializzazione, 107, 299
Simulatore, 237
Simulazione 107,110,113 U 4 ,163 164
167,191,202,207,237,256,264, 303

M (Meg^), 10 308
Manipolazioni algebriche, 38 111
Mappe, 29,48 51 57,60 62, 89 116,119,

I
Indicatore di negazione, 68
Pallino 68 70 72
Indicatore di polarit, 87
Ingresso/uscita, 7 8, 164,166, 227,229,
306, 349, 351, 356
Integrazione, 82 347 348
Grandissima scala di 82
Intervalli numerici, 13
Istanza, 104, 174, 293
K
K (Kilo), 10, 308

L
Leggi commutative, 37
Letterale, 39,42,46-48, 53,58,60 64 76
Librerie, 104 105,109, 113, 248, 347
Linguaggio Venlog, 107
Livello alto, 84
Livello basso, 84
Logica, 105 107 109, 119, 124 125, 140,
142 143 152,159, 180,198,214,229
240 272 274,306 312,332,340, 342,
344,347, 352
Logica negativa, 86 87,89
Logica positiva, 86 87,89

365

121

Due variabili, 49, 51


Manipolazioni 38, 111
Quattro variabili, 46, 49 56 58
Tre variabili, 50, 52, 56 57
Margine di rumore, 84
Maxtermine, 43-44
Memoria
Bit, 6, 8 9, 14 24 25,28 80 82,95, 101,
116, 136,153, 155,268,283,287, 289
Memoria ad accesso casuale, 7 308
Mintermine, 42 44,46 4 9 51, 55, 57,
59 60 63, 66,124,128, 132 337 353
Mintermim, 43
Moltiplicatori, 99, 156
Moltiplicatori binari, 156
Moltiplicazione
Binaria 22
Esadecimale, 10 13,15 25 27
Ottale, 10 11, 16, 19, 25, 122 127
MSI, 82 104
Multiplexer, 99,130 132 135,146, 161
168,172,176, 181, 214,278, 316 317
352 355

N
Netlist, 107,109, 113 164, 174
NOR, 68,183
NOR Esclusivo, 29 78,174
NOR-Esclusivo, 68
Numeri binari con segno, 150,153,155
Numeri con segno, 25,150 152, 154 155
Rappresentazione m modulo e segno 190
Numeri decimali, 14,20,44 45,136,147,
156 157 160,190 293
Complemento a 10, 190
Complemento a 9,190
Numeri decimali in binario, 19,26
Numeri decimali in complemento, 160

-,
i

366

Indice analitico

Operatore XOR, 78
Identit 78
Operazioni aritmetiche, 6, 99,106 136,
144,157, 197,299, 337
Operazioni m virgola mobile, 7
Ottale
Addizione, 21 22, 28
Moltiplicazione 15 16, 18,31,38 156
181,337
Sottrazione 14 28 144 145, 148 149
151-152,154 155, 181,190
Overflow, 154 155, 170, 189

Radice, 9 188, 321


RAM
Circuiti di memoria 312
Circuiti integrati, 8 29 30 82 83,86 87,
89, 104 106,122, 125, 134, 305 328,
334 347
Rappresentazione schematica, 101
Regola di selezione, 63
Ritardo di propagazione, 84, 108 115,
140, 198,202 207,210,214
Ritardo di trasporto, 84 85
Ritardo inerziale, 84 85

Panta, 24 25 29,80-81
Bit di 14 24 25 28,80 81,95, 101 153,
268
Controllo 80 81, 89
Porta di trasmissione, 87, 89. 186, 205
Porta NAND, 95 96 122, 126, 164 174
Porta XOR, 68,78, 88, 101, 137, 150, 155,
287,302,340 342 344,353
Porte logiche, 29 30 32, 34, 38,47, 68 82,
88,100 101 103,109-110, 163, 166, 198,
292 303, 306, 318, 334, 340, 348
Simboli 32 34, 68 70, 74, 87> 103, 105
134,211,214 316
Primi implicanti, 60 61, 63,121
Regola di selezione 63
Primi implicanti essenziali, 60 61,63
Primi imolicann non
si *">

Scala di integrazione, 82 357


Schema, 3,6 99 103, 105, 108 109 113
132, 140 142,163,166 173,273,318 356
Segnali, 4,25,30 32 35 47 82,86 134,
165, 188, 199,205 213, 240,255,274
280,290 308
Semplificazione 29 38 40 46,48, 55,60
62 89,116 147 237, 344
Condizioni di non specificazione, 65, 264
293 294
Mappe 29,48 51, 57,60, 62 89 116,
119,121
Prodotto di somme 48 49
Somma di prodotti, 46 63 65, 70 72 73,
88 340
Semplificazione di ptodotto di somme, 64
oh grafa
>rte 29 30 32,34 38 47, 68 82, 88
100 101 103 109 110,163 166,292
303 306 318,334,340 348
latore logicef, 106 237
lazione logica, 110,113,202, 207,256
1 logica 101 107, 122
ia digitale, 4 198 214,233,268 273

Indice analitico

Sistema numerico
Binano, 5 8 10, 12 15 17 21 23,28
34 116 117, 122,126, 128,138 146,
151 153,156 159
Decimale, 9
Esadectmale 10 13, 15, 25 27
Ottale, 10 11,16, 19, 25 122, 127
Somma binaria, 21 136
Somma di mintermini, 44 46 55,126
230,286
Sommatore con riporto anticipato, 143
Sommatore con riporto m cascata, 143
Sommato binari, 159,181
Sottrazione
BCD, 21, 158
Binaria 22
Esadecimale, 10 13, 15, 25 27
Mediante complemento, 148
Numen binari con segno 150,153 155
Numeri senza segno, 144 145 148,
150 151,154 155 190,295
Ottale, 10 11 16, 19, 25,122, 127
Stato
Tabella, 128 130 167,182,201,223,
236, 316 317,335 338,353,357

T
Tabella di verit, 32, 128,130 167 182,
201,223,236 316 317,335 338,353,357
Tastieta, 2, 8
Tempo di reiezione, 84 85
Tensione di ingresso, 4-5
Tensione di uscita, 4 5,84
Teorema del consenso, 40-41
Teotema di DeMotgan, 41-42,70,72,76
Tetmine prodotto, 121,128 129,340,342,
345
Tipo logico, 163
Transizione, 188,198,200, 204 207, 209
210, 213-214, 222, 224 225,234,236,
240, 271, 280, 283, 310

Unit a virgola mobile, 7


Unit centrale di elaborazione, 6
Unit di controllo, 6
Venlog, 99 105 107 172 174, 180 181
191,249,264 297 303
Commenu, 172
Descrizione dataflow 166, 193
Descrizione funzionale 179
Descrizione strutturale 105, 161 164,
172 174,178, 192, 194 303
Introduzione, 180, 197, 247 254
Libreria, 106 109, 163, 191 295
Module 173
Output 173
Panoramica 181
Vettori, 165
Wire, 174 249
VHDL, 99, 105 106, 161 163 165
170 171, 181,191 257,264 295,303
Begin 164
Commenti 172
Delta Urne, 164
Descrizione dataflow, 166, 193
Descrizione funzionale 179
Descrizione strutturale, 105, 161-164,
172,174, 178 192,194, 303
End, 163, 242
Entity, 162
Introduzione, 180, 247, 254
Istruzione when else, 295
Libreria, 106, 109, 163, 191,295
Others, 248
Package, 163, 191 192
Panoramica, 181
Port map, 164
Signal, 241
Stdjogic, 165,244,247 248
St<Llogic_vectors 165
VLSI, 82,101,347 349
VLSI vedi anche Integrazione
Grandissima scala dt, 82

367

Xlllnx Student Edition Software version 4 21


Installation Notes
To snsu s the spttmum uss and speratlon o1 your new dsslgn tools
Install Studsrit Ed tion v4 2t on 1ha recomrnsndad nordwsro w 1h
sufflclsnl msmsry (RAM and hard d sk swap spaco) 11you
oxperisncoproblsms wth tho nstalation oporattsn or vsitficatson
olyourInstsllaton s s s hlto.//xup.msu.eduforFAQssnd nkslo
mo o support

Supported Operating Systems


Tho Studont Ed 1lsn v4 2 soltwo o supports Iho 1o Isw ng spo a1 ng
systems and vsrsJons
P atformand SystemRequ ements
IBMPC o Compa bo
Wndows 9SSE NT40 (WithSorvfcoPack4-6a( ME 2000
The mommy requ omonts both HAMand ha d <fsk space w: Ivary
depond ngon you targe device fam)y andslzo as wol as Dieun qua
characie siics of you deggn

1<x

Equipment and Permissions


The fsllow ng tabls providss nlormstten aboul related oqu pmsnt
porm sa ons and nstwork conned ons
Mom
Requtramsnt
D ectoiy Pormlssrons
Wmo porm sslsns musl ax s11or al
d odor os containing dss gn f os to
bo sd ted
Nolo To vtsw snd/or od 1 iho
oxsmp o p o]eds Insludsd n tho
SXlUNXUSEoxamptes d rsctsry tho
directory must be writabts Msvo 1ho
prsjects 1o a wrrtsbls d rectory
bofore working sn thorn n ths ISE
Projod Navlgstsr Cpen tho projsct
tn ISE To movs tho project to a
wiilabls locstsn setact
ProjocLSavo As
X nx rscommsnds thai ysu hsvs sn
Hsrdwaxo Componsnl
IBM compat bio pantium class
maoh no
Msn tsr
Co or VGA operating n 1hs fallowing
modos.
M n mum Rssoluton 640 x 480
M n mum Recommcndsd 1024 x 768
Mouse
You should have o 2-button
(M crosott W ndows compatlbls) or 3buKen (Microsoft compatib o) msuso
You should have sn IS09660
CDDnvo
compltanl dnva on your system
Ports
You shsuld havo two ports (ons for a
msuso and ons psral ol port ter ihe
ps si ol download cabto 11nsedod)
Nstworic Compstibll ty
Tho XI nx Installation program
supports TCPrtP networks Hyou
arauslngaWndows NT opera) ng
systom Disn 1he TCP/IP protocol
needs to bs nstal sd 1lrst For more
nformstlon sos iho solutfsn record
at tho 1s lowing Iscatton
httpVAww.suoaoTtxitinx.com/techdocsf2510.htm

System Memory Requirements


RAM 128 MB to 256 MB (dspendent on dsv ce)
Vrtual Memory 128 MB 1s 256 MB (dspondont on devtcs)
Note DuetothsslzOondoomploiutyoltheWexandVrtojc
Udevices X nx noaxnmends that these designs be comp lad
using a M|}h-periormnnce oompws 128 MBoi flAMas wo I
as 12a MB ot virtual memory Is reined tocomple XC9500
dosigns ForSpaitan 11and viitax devices upto 300Kga!os
Xlllnx recommends 258 MB e! RAM
Virtual momory slzs requ romonts also vary wrth ttiB design snd
constro nt set size By aefsuh Windows 95/98 manages its swap
filesize automal cally but tor Windows NT you may noed 1s
incresse 11 Typ cally
ndows NT swap 111b size shsuld be
tw ce as largo as yoursystsm RAM Bmsunl
It Is mpcrtant to nolo 1hat slower systems or systems with less than
1ha recommonded RAM and/or swap space may exh b t tsngor
runtimes
Requ rod disk space 2 GB recommended

yourVi

Running Setup
1 To slart (ho Insts atisn Insert 1hs CD #1 Into 1ho CD ROM
dnvo
2 Run tho Insiallat on program Ths nstallor should
outomotfcs!!y slart when the CD s nserted tf 1doss nol
1romW ndsws solsc! S1srt_Run Typs D >se1up oxs In Iho
Opsn I s d sf iho Run w ndow and si ck CK (11you CD
ROM drrvo s nsl ths D dnvo substitute ths sppropr a1o
dnvo dos gnsl on)
3 Tho Welcome window will open prompting you isregstor
e thor v a tho Wsbsho E Me I or FAX Registration lo NDT
required for thts product Clck Nsxt tocontnus
4 Accspl 1hs ssltwsfo license sgrssment by sllsk ng tho wtilts
box next to I accspt 1hs terms of 1h s ssftwaro I conso " ss
ttiat a chock mark appsars CIsK NoxT1ocon1lnuo
5 tn ihs Reglstral sn w ndow ontsr ysur Reg stral
ID 99906970 9169 Cl sk Noxf to csnl nuo
6 E thor shssso ths dotault d rsstory (rscommsnded) or sslect
anolher directory for tho nstailation CIcK Next locsnttnuo
(Nols 1hs1ff another vsrssn of X nxsoftware s nstslsdln
ths indlcaied d roctory you w I bs promptsd to uninstall 1hs
prevlsus version)
7 PsrtormaTyptcat nstallstlon Click Nsxt to continue
6 C ck sn 1hs wh te bsx 1o p sea a chsck msrk nsxt 1o ossh
device fsm ly that you wish to Inslsl Nsts ihst sach dsv co
famty requ sso certain smount o1 memory On ysur systsm
Cl ck N sxfis cont nus tf you havo ss scted to tnstalfiho
V rtox 2 Pro dov ce you nesd to accspt 1tio V rtox 2 Pro
License Agroomsnl Cl ck ths wh Is box noxt to sccept he
Isftns o1 th s software t csnse sc 1hat a chsck msrk sppears
Click "OK"
9 Whsnlhe Updeis Era/lrsnmsntwridswopeire loavsths
dsfsu 1ssttings and cl ck Nex1 1e cen1 nue
10 On tiio fsl ow ng screen si ok on Install to nstalMhs
software
11 Aftsr tho Das gn Eiwlronmsm Is Instsl sd you w I bs
prompted to nssrt ths XI nx Docs CD tt you wish 1o nsts!
tho documsntal on Insert CD #t and si ck CK olhsrw ss
dick Cancel Whsn complots rsmsvelhs CD #1
12 tf you havo nstallsd ths Documsntation you will be prompted
to nsert 1ho XI Inx ISE Dss gn Envlrsnment Too s CD into tho
CD dnvo whon Instal al sn o1 ths Dsoumsntai nn is complste
Inssrt CD #1 back Into 1he CD drivo snd cl ck OK
13 The MuIbLtNX cable InsJaller wi t start 11you use 1h s cable
for dsvstopmsnl click Yss ts instsli 1hs dnvers othsrwlss
dick No
You may need to rebost your PC to allsw 1hs nsw/mod Ce<i
onvironmsnl vsriabjes and path slstsmont to take offoct betoro ysu
can run 1ho doslgn implsmsntot sn 1os s Tho install program will
ntorni you 11ysu need to rebool

on

Service Packs
Downlsad 1hs latest serv ce pscks fsr XSE 4 2! st
http.ffunwersrtv.xltlnxcomAinwfrse42.html Ths dswnloads w It
Include a ssrvice pack tor iho XSE tools and an IP updato tor Core
Gsneratof To Install 1he
ce pack 1erthoXSE1sos double-dick
on 1he oxsculablo 1lo and run tho installsr to completion To Inslsll
ttie IP Updals oxtract 1he contsnts s1 tho Ztp 11s using Wlnztp 7 0
SR-1 or lator snd oxtrsct tho contorts ot the 15o to iho tSE
Installation d rectory Fsr moro ntomnabon sboul tnslatl ng ths
sorv ce pscks as well as ths installation procsss vis t the on! no
lutonoT a1 http.//xuo, msu.edu/license/v42iflndex. him

son

Modelslm
Modolsim Is not Included w 1h ths Student Edition Modsts m can
be dnwntoadsd at http.//www.xtlinx.com/isa/mi(e2 For Information
about nslall ng and llcens ng Modelslm vis t tho onl no tutorial at
h1tT3y/xue.nisu.edu/l!cense/v4SMndex.htm

Licensing
im p o r t a n t -
If you reg star and reooive e license 1le v o small 0 0 NOT
INSTALL IT Studsnt Edrtisn does not raqu re a I censs filo to run
thB software

Technical Sopport
There are no update* and no tlve technical support for this
product For technical support abide by the fallow ng process (1)
r rst contact your Professor and then (2) refer to tho Xllirsx
University Resource Cantor at http.//xuo.msu.adu