Professional Documents
Culture Documents
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
L
(d)
_ r
Diagramma di temporizzaztone
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)
52
Registri
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
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
Clock
Shift
Ingresso C
T,
T2
T3
T4
273
274
Capitolo 5
Registri e contatori
TABELLA 5 1
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
276
Capitolo 5
Registri e contatori
53
Registri a scorrimento
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
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
53
(a)
Registri a scorrimento
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
Nessun cambiamento
Scorrimento in avanti
Scorrimento Indietro
Caricamento parallelo dei dati
279
280
Capitolo 5
5.4
Registri e contatori
Contatori a cascata
54
Contatori a cascata
1 Logico
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
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
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
283
TABELLA 5 5
Stata presente
Stato futura
3 q 2 Q, Oo
03 o 2 Qi Qo
X
1
284
Capitolo 5
Registri e contatori
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
55
285
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
286
Capitolo 5
Registri e contatori
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
55
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)
287
288
Capitolo 5
Registri e contatori
Q2
C2
03
_ o
(a) Gatng seriale
Ca
co
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
289
S_EN
S E N + Qq Qi S E N
Q2 S E N + Qq Qi
Q2 s EN
Qi
Qi
Q2 Q3 S E N
Qi Q $ E N
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)
Capitolo 5
Registri e contatori
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
291
Ingressi di controllo
0
1
Nessun cambiamento
Conteggio
Caricamento parallelo dei dati
CTR 4
Ctock-
Load
Count
(Logic 0) |
D0
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
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
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
56
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
TABELLA 5 8
Tabella dt stato e ingressi ai flip flop per un contatore con sequenza arbitraria
Stata presente
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
57
5.7
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
295
296
Capitolo 5
Registri e contatori
58
5,8
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
297
298
Capitolo 5
Registri e contatori
5.9
Riferimenti bibliografici
299
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
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:
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
So
Azione
0
0
0
1
0
1
Nessun cambiamento
Azzeramento tegistto
Scorrimento
Caricamento patallelo
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
303
304
Capitolo 5
Registri e contatori
Capitolo 6
Memorie
e dispositivi logici programmabili
306
Capitolo 6
6.1
-H 4 +
(a) Simbolo convenzionale
62
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
n Ingressi dati
k linee indmzzo
Read (lettura)
Wnte (scrittura)
Unit di memoria
2k parole
n bit per parola
,rn uscite dati
307
308
Capitolo 6
moria
62
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
2 invio dei dati binati che devono essere immagazzinati nella memoria alle linee di
ingresso dari
3
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
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
1
1
0
1
Nessuno
Scrittura su parola selezionata
Lettura da parola selezionata
309
310
Capitolo 6
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
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
311
Clock
Ingresso Ind nzzo E S S *
Memory Enable
(Ab tazone)
Read/Wr te
\_____________________ /
Ingresso dall
Dat vald
Clock
Uscita dat
(b) C ci di lettura
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
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
6.3
63
Select (Selezione)
p
?V
1yb*- -xt <
} i.
. K >' jj" A
!?
K
#/*
*\
-B----'L
jlyi
V- s
[
W*
^ &R
i ^or|---- J
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
Word_Select 0
{Seleztone_parola_0)
Select
(Selezione)
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
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,
316
Capitolo 6
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
I N ------EN--------
(a) Simbolo
Figura 6 8 Buffer a tre stati
-------OUT
EN
IN
OUT
Hi Z
63
EN1
ENO
INI
INO
OL
Hi Z
0
INO
_ ENQ
0
i
i
0
i
(S)
EN1
0
1
0
317
318
Capitolo 6
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
63
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
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
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
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
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
Linea dati
Ingresso/uscita
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
Select
325
326
Capitolo 6
Ind rizzo
Indlrizzorga
^ In d r zzo colonna
RAS
CAS
Output Enable
Read/
Write
Ingresso dati
Ind rizzo
Ind r zzo r ga
\
Output Enable
Read/
Write
Uscita dat
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
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
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
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
RAM 64 K X 8
Data Input-----
Address
DATA
-Data Output
ADRS
Chip Select
CS
Read/Writ
R/W
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
Indirizzi
Linee
Linee 015
Data Input
Data Output
64
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
6.5
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
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
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
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
n uscite (dati)
66
335
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
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
66
337
338
Capitolo 6
TABELLA 6 3
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
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
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)
339
340
Capitolo 6
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
67
Figura 6 24 PLA con tre ingressi, quattro termini prodotto e due uscite
TABELLA 6 4
AB
AC
BC
ABC
Uscite
Termine
prodotto
tn
Fi
w
F2
341
Capitolo 6
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
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
1 1 -
(T)
F2
1
AC
1 - 1
BC
- 1 1
ABC
0 0 0
343
344
Capitolo 6
6.8
68
Figura 6 26 Dispositivo PAL con quattro ingressi quattro uscite e struttura a tre AND OR
345
346
Capitolo 6
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
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
347
348
Capitolo 6
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
349
350
Capitolo 6
Figura 6 28 Struttura de! circuito ALTERA MAX 7000 (ristampato con permesso di Altera Corp )
69
l'v.
*r-
&Z^
Figura 6 29 Struttura FPGA della XILINX XC4000 (adattato con permesso di Xilinx Ine )
351
352
Capitolo 6
M
<L
__
M
M
Mj
A
M
B ---M
C---M
M
-----F(A B C)
69
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
353
354
Capitolo 6
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
355
356
Capitolo 6
Three state TS -
jo"
Uscita dati O Interno
FPGA
t CLR
Piedino
di i/O
Ingresso dati 1 -
PRE
Figura 6 33 Diagramma di massima della struttura IOB in un FPGA della XILINX {adattato con
permesso di Xilinx, Ine )
610
6.10
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
Riferimenti bibliografici
_____________ _ _ _ _ _
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
359
360
Capitolo 6
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
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
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
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
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
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 *">
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
367
1<x
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