Reti logiche
Esempi reti sequenziali
Capitolo 7:
esempi di progetto logico sequenziale
Reti Logiche
Contemporary Logic Design
Randy H. Katz
University of California, Berkeley
May 1993
Trasparenze tradotte da:
Luciano Lavagno
Universita’ di Udine
Settembre 1998
© R.H. Katz 7-1
Motivazione
Reti logiche
Esempi reti sequenziali
• Flipflop: blocchi logici sequenziali primitivi disponibili come
componenti integrati.
• Blocchi funzionali sequenziali piu’ complessi:
Registri di memoria, registri a scorrimento, contatori
Disponibili come componenti nel catalogo TTL
• Come rappresentare e progettare semplici circuiti
sequenziali: i contatori
• Problemi ed errori piu’ comuni lavorando con i contatori:
Stato iniziale
Logica sincrona ed asincrona
© R.H. Katz 7-2
Sommario del capitolo
Reti logiche
Esempi reti sequenziali
Esaminiamo circuiti sequenziali disponibili come componenti
• Registri di memorizzazione ed a scorrimento
• Memorie ad accesso diretto (Memorie ad accesso diretto, RAM)
• Contatori
Metodo di progetto per contatori
• Macchina a stati finiti molto semplice ma utile
• Diagramma di stato, tabella di transizione, funzioni di stato futuro
• Tabelle di eccitazione per realizzazione con vari tipi di flipflop
Contatori sincroni ed asincroni
• Contatori a riporto e sincroni
• Azzeramento e caricamento sincrono ed asincrono
© R.H. Katz 7-3
Reti logiche
Esempi reti sequenziali
Tipi di registri e contatori
Registri di memorizzazione
Gruppo di elementi di memoria letti e scritti insieme
Registro a 4 bit costituito da 4 FF D
Clock e clear condivisi
Simbolo per schemi
171
12 CLK
13 CLR
11
5
4
14
D3
D2
D1
D0
Q3
Q3
Q2
Q2
Q1
Q1
Q0
Q0
9
10
7
6
2
3
1
15
TTL 74171 4 D FF con clear
(i numeri rappresentano i piedini)
© R.H. Katz 7-4
Reti logiche
Esempi reti sequenziali
Tipi di registri e contatori
Vari schemi di ingressi ed uscite
Capacita’ di caricamento in parallelo
Uscite tri-state ed open collector
Uscite complementate e non
377
11
1
18
17
14
13
8
7
4
3
CLK
EN
D7
D6
D5
D4
D3
D2
D1
D0
374
Q7
Q6
Q5
Q4
Q3
Q2
Q1
Q0
19
16
15
12
9
6
5
2
74377 8 FF D
con caricamento parallelo
EN deve essere basso
(attivo) quando il clock ha
un fronte di salita
per caricare un nuovo valore
11
18
17
14
13
8
7
4
3
CLK
H
QH
G QG
F
QF
E
QE
D
QD
C
QC
B
QB
A
QA
OE
1
19
16
15
12
9
6
5
2
74374 8 FF D
con abilitazione in uscita
OE deve essere basso
(attivo) per fornire il valore
dei FF sui piedini di uscita;
se no, uscite tri-state
© R.H. Katz 7-5
Reti logiche
Esempi reti sequenziali
Tipi di registri e contatori
Matrici di registri (register file)
Matrici bidimensionali di flipflop
Indirizzo seleziona una parola specifica
Il contenuto della parola viene letto o scritto
670
11
4
5
12
13
14
3
2
1
15
Abilitazioni di lettura e scrittura separate
Indirizzi di lettura e scrittura separati
Ingressi D, uscite Q
RE
RB
RA
WE
WB
WA
D4
D3
D2
D1
Q4
Q3
Q2
Q1
6
7
9
10
Contiene 16 FF D, organizzati in
4 righe (parole) di 4 elementi (bit)
74670 Matrice 4x4 di registri
con uscite tri-state
© R.H. Katz 7-6
Reti logiche
Esempi reti sequenziali
Tipi di registri e contatori
Registri a scorrimento (shift register)
Memorizzazione + capacita’ di trasferire dati tra elementi
\Reset
Shift Direction
Shift
CLK
CLK
CLK
CLK
Shift
Shift
Shift
\Reset
Q1
Q2
Q3
Q4
1
0
0
0
0
1
0
0
0
0
1
0
0
0
0
1
Dati scorrono da sinistra a destra
(da un elemento all’altro)
su ogni transizione in salita
dell’ingresso di scorrimento
I dati tornano dall’ultimo elemento
a destra al primo a sinistra
FF master/slave: campionano ingressi
con clock alto; cambiano uscite
con clock basso
© R.H. Katz 7-7
Reti logiche
Esempi reti sequenziali
Tipi di registri e contatori
Ingressi ed uscite dei registri a scorrimento
Ingressi e/o uscite seriali
Ingressi e/o uscite paralleli
Direzione di scorrimento: sinistra/destra
Ingressi seriali: LSI, RSI
Ingressi paralleli: D, C, B, A
Uscite parallele: QD, QC, QB, QA
Ingresso di azzeramento (clear)
FF attivi sul fronte di salita
74194 4-bit Universal
Shift Register
S1,S0 determinano la funzione
S1 = 1, S0 = 1: carica il dato parallelo
sul fronte di salita
S1 = 1, S0 = 0: scorrimento a sinistra sul
fronte, LSI entra al posto di D
S1 = 0, S0 = 1: scorrimento a destra sul
fronte, RSI entra al posto di A
S1 = 0, S0 = 0: mantiene lo stato
Multiplexer all’ingresso di ogni FF!
Questi registri vanno bene per conversioni serie/parallelo
come le comunicazioni tra terminale e calcolatore
© R.H. Katz 7-8
Reti logiche
Tipi di registri e contatori
Esempi reti sequenziali
Uso di registri a scorrimento: conversioni serie/parallelo
Ingressi
paralleli
Uscite
parallele
Trasmissione seriale
© R.H. Katz 7-9
Reti logiche
Tipi di registri e contatori
Esempi reti sequenziali
Contatori
Sequenza ben definita di stati in risposta al segnale di conteggio
Crescente a 3 bit: 000, 001, 010, 011, 100, 101, 110, 111, 000, ...
Decrescente a 3 bit: 111, 110, 101, 100, 011, 010, 001, 000, 111, ...
Contatori binari, BCD ed a codice Gray
Un contatore e’ una rete logica sequenziale speciale
in cui lo stato e’ l’unica uscita
© R.H. Katz 7-10
Reti logiche
Esempi reti sequenziali
Tipi di registri e contatori
Contatore Johnson
+
1
0
+
+
\Res et
J S Q
CLK
K
Q
R
Q1
J S Q
CLK
K
Q
R
Q2
J S Q
CLK
K
Q
R
Q3
J S Q
CLK
K
Q
R
Ricircolo
Q4
Shift
+
100
Shift
Q1
1
1
1
1
0
0
0
0
Q2
0
1
1
1
1
0
0
0
Q3
0
0
1
1
1
1
0
0
Q4
0
0
0
1
1
1
1
0
8 stati possibili, cambia un bit per stato, utile per evitare alee
© R.H. Katz 7-11
Tipi di registri e contatori
Contatori standard TTL
7 P
10 T 163
15
2 CLK RCO
6
5
4
3
D
C
B
A
9
LOAD
1
CLR
QD
QC
QB
QA
11
12
13
14
74163 contatore
crescente a 4 bit
sincrono
Reti logiche
Esempi reti sequenziali
Ingressi di caricamento ed azzeramento (clear)
sincroni
FF attivi sul fronte di salita
Caricamento parallelo dei dati da D, C, B, A
Ingressi di abilitazione P, T: devono essere attivi
entrambi per abilitare il conteggio
RCO: attivo quando il contatore entra nell’ultimo
stato (1111), usato per contatori in cascata
"Ripple Carry Output"
74161: simile funzione, ma con caricamento ed azzeramento asincroni
© R.H. Katz 7-12
Reti logiche
Esempi reti sequenziali
Tipi di registri e contatori
Diagramma temporale dettagliato del 74163
CLR
LOAD
A
B
C
D
CLK
P
T
QA
QB
QC
QD
RCO
Clear
12
Load
13
14
15
Count
0
1
2
Inhibit
© R.H. Katz 7-13
Reti logiche
Metodo di progetto per contatori
Esempi reti sequenziali
Introduzione
Questo metodo puo’ essere generalizzato per realizzare qualsiasi
rete logica sequenziale
I contatori sono semplici come esempio iniziale:
nessuna decisione sullo stato futuro
lo stato presente e’ l’uscita
Esempio: contatore crescente a 3 bit
Stato
presente
Stato
futuro
Ingressi
flipflop
Decidiamo di
realizzarlo con flipflop T
Quali ingressi
vanno forniti
ai flipflop T per
far assumere il
valore voluto?
Diagramma
degli stati
Tabella degli
Tabella
stati
ingressi flipflop
Questo passo e’ detto
“trasformazione della
funzione di
stato futuro”
© R.H. Katz 7-14
Reti logiche
Metodo di progetto per contatori
Esempi reti sequenziali
Introduzione
Questo metodo puo’ essere generalizzato per realizzare qualsiasi
rete logica sequenziale
I contatori sono semplici come esempio iniziale:
nessuna decisione sullo stato futuro
lo stato presente e’ l’uscita
Esempio: contatore crescente a 3 bit
Stato
presente
Stato
futuro
Ingressi
flipflop
Decidiamo di
realizzarlo con flipflop T
Quali ingressi
vanno forniti
ai flipflop T per
far assumere il
valore voluto?
Diagramma
degli stati
Tabella degli
Tabella
stati
ingressi flipflop
Questo passo e’ detto
“trasformazione della
funzione di
stato futuro”
© R.H. Katz 7-15
Metodo di progetto per contatori
Esempio (continua)
Mappe di Karnaugh
per ingressi toggle:
Reti logiche
Esempi reti sequenziali
Circuito finale:
CB
A
00
11
10
11
10
01
0
1
TA =
CB
A
00
01
0
1
TB =
CB
A
00
01
11
10
0
1
TC =
© R.H. Katz 7-16
Reti logiche
Esempi reti sequenziali
Metodo di progetto per contatori
Esempio (continua)
Mappe di Karnaugh
per ingressi toggle :
+
C
CB
A
Circuito finale:
00
01
11
10
0
1
1
1
1
1
1
1
1
1
TS Q
CLK Q
R
B
TA = 1
QA
T S Q
CLK Q
R
QB
QC
T S Q
CLK Q
R
\Reset
C
CB
00
01
11
10
0
0
0
0
0
1
1
1
1
1
A
B
TB = A
100
QC
00
01
11
10
0
0
0
0
0
1
0
1
1
0
A
Forme d’onda:
\Res et
C
CB
Count
QB
QA
Count
B
TC = A • B
© R.H. Katz 7-17
Reti logiche
Esempi reti sequenziali
Metodo di progetto per contatori
Contatori piu’ complicati
Passo 1: derivare il diagramma degli stati
Sequenza di conteggio: 000, 010, 011, 101, 110
Stato
presente
Stato
futuro
Passo 2: Tabella degli stati
© R.H. Katz 7-18
Reti logiche
Esempi reti sequenziali
Metodo di progetto per contatori
Contatori piu’ complicati
Passo 1: derivare il diagramma degli stati
Sequenza di conteggio: 000, 010, 011, 101, 110
Stato
presente
Stato
futuro
Passo 2: Tabella degli stati
Notate i don’t care
© R.H. Katz 7-19
Reti logiche
Esempi reti sequenziali
Metodo di progetto per contatori
Contatori piu’ complicati
Passo 3: Mappe di Karnaugh per le funzioni di stato futuro
B+
C+
A+
© R.H. Katz 7-20
Reti logiche
Esempi reti sequenziali
Metodo di progetto per contatori
Contatori piu’ complicati
Passo 4: Scegliere il tipo di flipflop per la realizzazione
Tabelle di eccitazione per trasformare le funzioni di stato futuro
Stato
presente
Ingressi
toggle
Tabella di eccitazione
flipflop T
Funzioni di stato futuro
trasformate
© R.H. Katz 7-21
Reti logiche
Esempi reti sequenziali
Metodo di progetto per contatori
Contatori piu’ complicati
Passo 4: Scegliere il tipo di flipflop per la realizzazione
Tabelle di eccitazione per trasformare le funzioni di stato futuro
Stato
presente
Ingressi
toggle
Tabella di eccitazione
flipflop T
Funzioni di stato futuro
trasformate
© R.H. Katz 7-22
Reti logiche
Esempi reti sequenziali
Metodo di progetto per contatori
Contatori piu’ complicati
Mappe di Karnaugh trasformate
CB
A
00
01
11
CB
10
A
0
0
1
1
TC
00
01
11
10
TB
CB
A
00
01
11
10
0
1
TA
TC =
TB =
TA =
© R.H. Katz 7-23
Reti logiche
Esempi reti sequenziali
Metodo di progetto per contatori
Contatori piu’ complicati
Mappe di Karnaugh trasformate
TB
TC
TA
TC = A C + A C = A xor C
TB = A + B + C
TA = A B C + B C
© R.H. Katz 7-24
Reti logiche
Esempi reti sequenziali
Metodo di progetto per contatori
Contatori piu’ complicati
Rete logica finale:
5 porte
13 letterali +connessioni
con flipflop
TC
Count
T
S Q C
TB
CLK Q
\C
R
B
T S Q
CLK Q
\B
R
TA
A
T S Q
CLK Q
\A
R
\Reset
Forme d’onda:
100
Count
\Res et
C
0
0
0
0
1
1
0
B
0
0
1
1
0
1
0
A
0
0
0
1
1
0
0
© R.H. Katz 7-25
Contatori auto-inizializzanti
Stati iniziali
Reti logiche
Esempi reti sequenziali
All’accensione del circuito, il contatore puo’ essere in qualsiasi stato
Il progettista deve garantire che (ad un certo punto) entri in uno valido
E’ un problema per contatori che non usano tutti i 2n stati
Soluzione auto-inizializzante:
Progettare un contatore che ad un certo punto
entri comunque in uno stato valido
Realizzazione
nella figura
precedente!
Due diagrammi auto-inizializzanti
per il contatore dell’esempio precedente
© R.H. Katz 7-26
Reti logiche
Contatori auto-inizializzanti
Esempi reti sequenziali
Funzioni di transizione con opportuna assegnazione dei don’t’care
Inputs to Toggle Flip-flops
State Changes
TC
C+
State Transition Table
Present
State
TB
TA
B+
C B A
0 0 0
0 0 1
0 1 0
0 1 1
1 0 0
1 0 1
1 1 0
1 1 1
Next
State
C+
0
1
0
1
0
1
0
1
B+
1
1
1
0
1
1
0
0
A+
0
1
1
1
1
0
0
1
A+
© R.H. Katz 7-27
Reti logiche
Esempi reti sequenziali
Realizzazione con diversi tipi di FF
Latch R-S
Continuiamo con l’esempio 000, 010, 011, 101, 110, 000, ...
Stato
presente
Stato
futuro
Stato futuro trasformato
Q+ = S + R Q
Tabella di eccitazione RS
Funzioni di stato futuro trasformate
© R.H. Katz 7-28
Reti logiche
Esempi reti sequenziali
Realizzazione con diversi tipi di FF
Latch RS
CB
A
CB
00
01
11
10
A
0
0
1
1
00
RC
11
10
RC =
SC
CB
A
01
SC =
CB
00
01
11
10
A
00
01
11
10
0
0
RB =
1
1
SB =
RB
SB
CB
A
RA =
CB
00
01
11
10
A
0
0
1
1
RA
00
01
11
10
SA =
SA
© R.H. Katz 7-29
Reti logiche
Esempi reti sequenziali
Realizzazione con diversi tipi di FF
Latch RS
RC
SC
RC = A
SC = A
RB
SB
RB = A B + B C
SB = B
RA = C
SA = B C
RA
SA
© R.H. Katz 7-30
Reti logiche
Esempi reti sequenziali
Realizzazione con diversi tipi di FF
Latch RS
\A
A
R
Q
CLK
Q
S
C
RB
R
Q
CLK
Q
S
\B
\C
Count
A
C
B
B
C
SA
\B
RB
R
Q
CLK
Q
S
A
\A
B
\C
SA
Realizzazione logica finale:
3 porte, 11 letterali + connessioni con flipflop
© R.H. Katz 7-31
Reti logiche
Esempi reti sequenziali
Realizzazione con diversi tipi di FF
Flipflop JK
Stato
presente
Stato
futuro
Stato futuro trasformato
Q+ = J Q + K Q
Tabella di eccitazione
del J-K
Funzioni di stato futuro trasformate
© R.H. Katz 7-32
Reti logiche
Esempi reti sequenziali
Realizzazione con diversi tipi di FF
Flipflop JK
CB
A
CB
00
01
11
10
A
0
0
1
1
00
01
11
10
JC =
JC
KC
CB
A
KC =
CB
00
01
11
10
A
0
0
1
1
00
11
10
JA =
KB
CB
KA =
CB
00
01
11
10
A
0
0
1
1
JA
JB =
KB =
JB
A
01
00
01
11
10
KA
© R.H. Katz 7-33
Reti logiche
Esempi reti sequenziali
Realizzazione con diversi tipi di FF
Flipflop JK
JC
KC
JC = A
KC = A
JB = 1
JB
KB
KB = A + C
JA = B C
KA = C
JA
KA
© R.H. Katz 7-34
Reti logiche
Esempi reti sequenziali
Realizzazione con diversi tipi di FF
Flipflop JK
+
A
\A
J
Q C
CLK
K Q
KB
\C
J
Q B
CLK
K Q
\B
JA
C
J Q A
CLK
K Q
\A
Count
A
C
KB
B
\C
JA
Realizzazione logica finale:
2 porte, 10 letterali + connessioni con flipflop
© R.H. Katz 7-35
Reti logiche
Esempi reti sequenziali
Realizzazione con diversi tipi di FF
FF D
Progetto piu’ facile: non serve trasformazione!
DC = A
DB = A C + B
DA = B C
A
D
Q
CLK Q
C
\C
DB
D
Q
CLK Q
B
\B
DA
D
Q
CLK Q
A
\A
Count
\C
\A
DB
\B
B
\C
DA
Realizzazione logica finale:
3 porte, 8 letterali + connessioni con flipflop
© R.H. Katz 7-36
Realizzazione con diversi tipi di FF
Confronto tra le varie realizzazioni
Reti logiche
Esempi reti sequenziali
• I flipflop T vanno bene per contatori semplici
ma hanno richiesto la rete piu’ complessa in questo caso!
• Non c’e’ ragione per preferire RS a JK, poiche’ hanno meno funzioni
I flipflop R-S in ogni caso non esistono!
I flipflop J-K danno la rete migliore in questo caso
Spesso sono i migliori per logica TTL a componenti discreti
(se il numero di porte e’ la cosa piu’ importante)
• I flipflop D hanno il metodo di progetto piu’ semplice
In questo caso danno anche il numero di letterali minimo
Flipflop D sono molto efficienti in VLSI (pochi transistor MOS)
Sono i migliori quando e’ importante minimizzare porte/letterali
© R.H. Katz 7-37
Reti logiche
Esempi reti sequenziali
Contatori sincroni ed asincroni
Contatori a riporto (ripple counter)
Sono molto piu’ semplici dei corrispondenti contatori sincroni
T
Q
T
Q
A
CLK Q
T
Q
B
CLK Q
C
CLK Q
Count
Il segnale di conteggio e’ riportato da sinistra a destra
Transizioni di stato non precise!
Puo’ causare alee nella logica combinatoria
che decodifica le uscite!
© R.H. Katz 7-38
Reti logiche
Contatori sincroni ed asincroni
Esempi reti sequenziali
Contatori sincroni in cascata con riporti (carry) interconnessi
L’uscita RCO
del primo stadio
abilita il conteggio
del secondo
RCO attivo subito
dopo che il contatore
entra nello stato 1111
dipende anche
dall’abilitazione T
Il secondo stadio
e’ piu’ lento nella
transizione
da 1111 a 0000
Ha effetto sul periodo
e sulla logica di
decodifica
© R.H. Katz 7-39
Reti logiche
Contatori sincroni ed asincroni
Esempi reti sequenziali
L’utilita’ dell’azzeramento e caricamento sincrono
Contatori con valore iniziale diverso da zero:
e.g., 0110, 0111, 1000, 1001, 1010, 1011, 1100, 1101, 1111, 0110, ...
100
D C B A
Cloc k
Load
1
6
3
P
+
R
Q Q QQ
C
D CBA
C
O
L
T K DCBA
D
L
O C
A L
D R
C
B
A
+ Load 0 1
0110
e’ lo stato
iniziale da
caricare
Usare RCO per caricare di nuovo lo stato iniziale
L’ingresso Load del 74163 e’ sincrono, quindi
lo stato cambia solo al prossimo fronte di salita
© R.H. Katz 7-40
Contatori sincroni ed asincroni
L’utilita’ dell’azzeramento e caricamento sincrono
Reti logiche
Esempi reti sequenziali
Contatori con valore finale diverso da zero:
e.g., 0000, 0001, 0010, ..., 1100, 1101, 0000
CLR
D C
B
Il segnale di azzeramento (Clear) ha effetto
al primo fronte di salita di Count
A
1 R Q Q Q Q
D C B A L
6 CC
O C
O
3
L
A L
PT
K
DCBA
D R
1
0
Decodificare lo stato
in cui ri-inizializzare
il contatore a zero
Sostituire il '163 con il '161, contatore con
Clear asincrono: il Clear ha effetto subito!
© R.H. Katz 7-41
Reti logiche
Esempi reti sequenziali
Memorie ad accesso diretto
RAM statica
Modo efficiente per realizzare memoria con pochi transistor
RAM piccola: 256 parole di 4 bit
RAM grande: 64 milioni di parole di 1 bit
(nel 1998; cresce di un fattore 2 ogni 1.5 anni)
Analizzeremo una RAM con organizzazione 1024 x 4
Data
Data j
j
Word Enable
i
Parole = righe
Cella di RAM statica
Cella di RAM statica
Cella di RAM statica
Colonne = bit (codificate “dual rail”)
© R.H. Katz 7-42
Memorie ad accesso diretto
Reti logiche
Esempi reti sequenziali
Organizzazione RAM statica
Abilitazione (Chip Select; attivo basso)
Scrittura (Write Enable; attivo basso)
10 fili per l’indirizzo
4 fili bidirezionali per i dati
10 24 x 4 SRAM
CS
WE
A9
A8
A7
IO3
A6
IO2
A5
IO1
A4
IO0
A3
A2
A1
A0
© R.H. Katz 7-43
Reti logiche
Esempi reti sequenziali
Memorie ad accesso diretto
Organizzazione RAM statica
Strutture lunghe e strette non sono le migliori sul silicio
A9
A8
Alcuni bit
di indirizzo
scelgono
la riga
Storage
Storage Matrix
Array
Matrice
quadrata
64 x 64
A7
A6
64 x 16
A5
A4
A3
Altri bit
di indirizzo
scelgono
la colonna
entro la riga
Address
Buffers
A2
64 x 16
64 x 16
64 x 16
Row
Decoders
Address
Buffers
Amplificatori
e mux/demux
Sense Amplifiers
A1
A0
Column
Decoders
CS
Data Buffers
WE
I/O0
I/O1
I/O2
I/O3
© R.H. Katz 7-44
Reti logiche
Esempi reti sequenziali
Memorie ad accesso diretto
Tempistiche delle RAM
WE
CS
Tempistica (semplificata)
in lettura
Indirizzo
Indirizzo valido
Tempo di accesso
Dati uscita
Dati uscita
WE
CS
Tempistica (semplificata)
in scrittura
Tempo di ciclo
Indirizzo
Dati ingresso
Indirizzo valido
Dati ingresso
© R.H. Katz 7-45
Memorie ad accesso diretto
Reti logiche
Esempi reti sequenziali
RAM dinamiche
1 transistor ed 1 condensatore
come elemento di memoria
Word Line
Lettura: attivare Word Line, leggere Bit Line
Scrittura: pilotare Bit Line, attivare Word Line
Lettura distruttiva
Bit Line
Servono cicli di “rinfresco”:
la memorizzazione sparisce in alcuni msec
Circuiti interni per leggere una parola e riscriverla
© R.H. Katz 7-46
Reti logiche
Esempi reti sequenziali
Memorie ad accesso diretto
Organizzazione DRAM
Righe lunghe semplificano
il rinfresco
Due nuovi segnali: RAS, CAS
Matrice di memoria
Decod.
di riga
64 x 64
Row Address Strobe
(memorizza indirizzo riga)
Column Address Strobe
(memorizza indirizzo col.)
Row Address
Sostituiscono Chip Select
A11
. . .
A0
RAS
CAS
WE
Indirizzo di colonna e
segnali di controllo
Latch di colonna
Multiplexer/demultiplexer
Logica
di
controllo
DOUT
DIN
© R.H. Katz 7-47
Reti logiche
Esempi reti sequenziali
Memorie ad accesso diretto
Indirizzamento con RAS, CAS
Per leggere 1 bit, bisogna leggere l’intera riga da 64 bit!
Separiamo l’indirizzamento in due cicli: riga e colonna
Riduce il numero di pin, accelera l’accesso a bit uno dopo l’altro!
Indirizzo
Indir. riga
Indir. colonna
RAS
Ciclo di lettura
CAS
Valido
Dout
Lettura riga
Memorizzazione
indirizzo riga
Leggere bit entro riga
Memorizzazione
indirizzo colonna
Uscite
tornano in
tri-state
© R.H. Katz 7-48
Reti logiche
Esempi reti sequenziali
Memorie ad accesso diretto
Tempistica ciclo scrittura
Indirizzo
Indir. riga
Indir. colonna
RAS
(1) Memorizzazione
indirizzo riga
Lettura riga
CAS
WE
(2) WE attivo (basso)
Din
Valido
(3) CAS attivo (basso):
sostituzione bit scritto
(4) RAS alto: riscrivere la riga modificata
(5) CAS alto: completa il ciclo di memoria
© R.H. Katz 7-49
Memorie ad accesso diretto
Rinfresco della RAM dinamica
Reti logiche
Esempi reti sequenziali
Frequenza di rinfresco:
RAM da 4096 parole -- rinfresco di ogni parola ogni 4 ms
Supponiamo un tempo di ciclo di 120ns
Un rinfresco ogni 976 ns (1 accesso alla DRAM su 8)!
Ma la RAM in realta’ e’ organizzata in 64 righe (parole)
Cio’ implica un rinfresco ogni 62.5 µs (1 accesso alla DRAM su 500)
DRAM piu’ grandi hanno 256 righe, e quindi rinfrescano ogni 16 µs
Rinfresco usando solo RAS (ciclo RAS, non ciclo CAS)
Un controllore esterno ricorda l’ultima riga rinfrescata
Alcune DRAM includono il puntatore alla riga di rinfresco
Rinfresco “CAS prima di RAS”: se CAS attivo per primo, rinfresco
© R.H. Katz 7-50
Memorie ad accesso diretto
Vari tipi di DRAM
DRAM “a pagine” (page mode)
Reti logiche
Esempi reti sequenziali
Permette di leggere/scrivere bit in una riga senza attivare RAS
RAS, CAS, CAS, . . ., CAS, RAS, CAS, ...
Ogni ciclo di CAS specifica la colona su cui operare
RAM a colonne statiche:
come “page mode”, ma il cambio di indirizzo indica l’indirizzo
di colonna (invece del ciclo di CAS)
in scrittura, disattivare il circuito o il segnale di CAS mentre
le colonne cambiano
DRAM a gruppi di 4 bit (“nibble”):
come “page mode”, ma un ciclo di CAS indica il prossimo gruppo
di colonne
non c’e’ bisogno di specificare la colonna dopo il primo CAS
funzionz 4 bit alla volta (di qui il termine “nibble”, 1/2 byte)
RAS, CAS, CAS, CAS, CAS, RAS, CAS, CAS, CAS, CAS, . . .
© R.H. Katz 7-51
Riassunto del capitolo
Reti logiche
Esempi reti sequenziali
• Vari tipi di circuiti integrati sequenziali
Registri di memorizzazione ed a scorrimento, contatori, RAM
• Contatori: semplici macchine a stati finiti
• Metodo di progetto per contatori
1. derivare il diagramma degli stati
2. derivare la tabella di transizione
3. determinare le funzioni di stato futuro
4. trasformare le funzioni di stato futuro per il tipo di flipflop scelto
usando le tabelle di eccitazione
5. minimizzare la logica
• Diversi tipi di FF nei contatori
J-K e’ il migliore per ridurre le porte in logica a componenti discreti
D e’ il piu’ facile da progettare, ed il migliore per ridurre l’area in VLSI
• Contatori sincroni ed asincroni
Evitare contatori a riporto! Le transizioni di stato non sono precise!
Attenzione ai problemi mettendo contatori sincroni in cascata
Contatori con partenza e fine diverse da zero: facili da realizzare
con preset e clear sincroni
Non usare mai contatori con clear asincrono per queste applicazioni!
© R.H. Katz 7-52
Scarica

Capitolo 7