Upload
others
View
6
Download
0
Embed Size (px)
Citation preview
Circuiti Sequenziali
Corrado Santoro
Dipartimento di Matematica e [email protected]
Corso di Architettura degli Elaboratori
Corrado Santoro Circuiti Sequenziali
Circuiti Sequenziali
Circuiti Sequenziali
I Circuiti Sequenziali sono reti di porte logiche le cui uscite dipendononon solo dagli ingressi ma anche dal tempo
In particolare, le uscite all’istante di tempo t∗ dipendono:Dal valore degli ingressi all’istante t∗
Da valore delle uscite stesse agli istanti precedenti, cioe al tempot < t∗
Le uscite dipendono dunque dagli ingressi e dalle uscite stesse
Cio viene ottenuto aggiungendo ad un rete combinatoria unmeccanismo di feedback
ReteCombinatoria
y1
ym
x1
xn...
...
Rete Sequenziale
Corrado Santoro Circuiti Sequenziali
Circuiti Sequenziali
Circuiti Sequenziali
Le tabelle di verita dei circuitisequenziali includono dunque:
I valori degli ingressiI valori delle usciteall’istante precedenteI nuovi valori delle usciteall’istante attuale
ReteCombinatoria
y1
ym
x1
xn...
...
Rete Sequenziale
x1 . . . xn y1(t − 1) . . . ym(t − 1) y1(t) . . . ym(t)0 . . . 0 0 . . . 0 0 . . . 10 . . . 0 0 . . . 1 0 . . . 11 . . . 0 0 . . . 1 1 . . . 01 . . . 0 1 . . . 0 1 . . . 0
Corrado Santoro Circuiti Sequenziali
Il Flip-Flop Set-Reset
Il Flip-Flop Set-Reset
Il Flip-Flop Set-Reset e un tipico circuito sequenziale, ed e la base dacui vengono derivati tutti i circuiti sequenziali usati in un calcolatore
Il nome “flip-flop” indica che si tratta di un circuito in grado dicommutare tra due stati: flip⇔flop
L’aggiunta “set-reset” indica i nomi dei due ingressi che permettonoappunto di effettuare l’operazione di set e reset (dettagli piu avanti)
S
R
Q
Q
Corrado Santoro Circuiti Sequenziali
Analisi del Flip-Flop Set-Reset
Consideriamo gli ingressi S = 0, R = 1
S = 0
R = 1
Q
Q
01 S = 0
R = 1
Q
Q
01
1
10
S = 0
R = 1
Q = 1
Q = 0
01
1
10
0
Corrado Santoro Circuiti Sequenziali
Analisi del Flip-Flop Set-Reset
Passaggio degli ingressi da {S = 0, R = 1} a {S = 1, R = 1}
S = 0
R = 1
Q = 1
Q = 0
01
1
10
0S = 1
R = 1
Q = 1
Q = 0
11
1
10
0
Corrado Santoro Circuiti Sequenziali
Analisi del Flip-Flop Set-Reset
Passaggio degli ingressi da {S = 1, R = 1} a {S = 1, R = 0}
S = 1
R = 0
Q = 1
Q = 0
11
1
00
0S = 1
R = 1
Q = 1
Q = 0
11
1
10
0
S = 1
R = 0
Q = 1
Q = 1
11
1
01
1S = 1
R = 0
Q = 0
Q = 1
10
0
01
1
Corrado Santoro Circuiti Sequenziali
Analisi del Flip-Flop Set-Reset
Passaggio degli ingressi da {S = 1, R = 0} a {S = 1, R = 1}
S = 1
R = 0
Q = 0
Q = 1
10
0
01
1S = 1
R = 1
Q = 0
Q = 1
10
0
11
1
Corrado Santoro Circuiti Sequenziali
Flip-Flop Set-Reset
Tabella Verita FF-SR
S R Q(t) Q(t)0 1 1 0 Stato di “Set”1 0 0 1 Stato di “Reset”1 1 Q(t − 1) Q(t − 1) Stato mantenuto0 0 1 1 instabile!
Automa a Stati Finiti FF-SR
Q = 0Q = 1
Q = 1Q = 0
S = 1R = 1
S = 1R = 0
S = 0R = 1
S = 1R = 1
S = 0R = 1
S = 1R = 0
Q = 1Q = 1
S = 0R = 0
S = 0R = 0
Corrado Santoro Circuiti Sequenziali
Il Flip-Flop Set-Reset “Gated”
Il Flip-Flop Set-Reset “Gated”
Modifichiamo il FF-SR introducendo altre due porte NAND chevincolano gli ingressi ad un ulteriore ingresso che chiamiamo Clock
Quando il Clock vale 0, avremo S′ = 1 e R′ = 1, pertanto qualunquevariazione sugli ingressi S e R non avra alcun effetto sullo stato delflip-flop
Quando il Clock vale 1, gli ingressi S e R saranno propagati negati suS′ e R′, cioe S′ = S e R′ = R, il flip-flop potra cambiare stato
S'
R'
Q
Q
S
R
CLK
Corrado Santoro Circuiti Sequenziali
Gated Flip-Flop Set-Reset
Tabella Verita Gated FF-SR
S R Clk S′ R′ Q(t) Q(t)X X 0 1 1 Q(t − 1) Q(t − 1) Stato mantenuto1 0 1 0 1 1 0 Stato di “Set”0 1 1 1 0 0 1 Stato di “Reset”0 0 1 1 1 Q(t − 1) Q(t − 1) Stato mantenuto1 1 1 0 0 1 1 instabile!
Gated FF-SRS'
R'
Q
Q
S
R
CLK
Corrado Santoro Circuiti Sequenziali
D-Type Flip-Flop
Modifichiamo il circuito come segue:
S'
R'
Q
Q
S
R
CLK
D
Tabella Verita D-Type FF
D Clk S R S′ R′ Q(t) Q(t)X 0 D D 1 1 Q(t − 1) Q(t − 1) Stato mantenuto0 1 0 1 1 0 0 1 Stato di “Reset”1 1 1 0 0 1 1 0 Stato di “Set”
Corrado Santoro Circuiti Sequenziali
D-Type Flip-Flop
S'
R'
Q
Q
S
R
CLK
D
Tabella Verita D-Type FF
Consideriamo solo gli ingressi D, CLK e l’uscita Q:D Clk Q(t)X 0 Q(t − 1) L’uscita mantiene il valore0 1 0 L’uscita “copia” l’ingresso D1 1 1 L’uscita “copia” l’ingresso D
Corrado Santoro Circuiti Sequenziali
D-Type Flip-Flop e Memoria a 1 Bit
D-Type FF e Memoria a 1 Bit
Consideriamo solo gli ingressi D, CLK e l’uscita Q:D Clk Q(t)X 0 Q(t − 1) L’uscita mantiene il valore0 1 0 L’uscita “copia” l’ingresso D1 1 1 L’uscita “copia” l’ingresso D
Lo stato (uscita) del FF cambia solo quando Clock = 1
Quando Clock = 1, l’uscita ricopia il valore dell’ingresso D
Quando Clock = 0, l’uscita manitiene il vecchio valore
Il circuito opera da memoria a un bit
Corrado Santoro Circuiti Sequenziali
Registro a 8 bit
8 Bit RegisterCollegando insieme 8 flip-flop D-type siottiene un elemento di memoria a 8 bitdenominato registro (a 8 bit)
I Clock sono collegati tutti insieme inmodo da avere un unico segnale per la“scrittura” (write) del dato in ingresso
Dn WR Qn(t)X 0 Qn(t − 1)X 1 Dn
D-TypeFF
Q
Q
D
CLK
D0 Q0
D-TypeFF
Q
Q
D
CLK
D1 Q1
D-TypeFF
Q
Q
D
CLK
D7 Q7
...
CLKWR
......
8-bit Register
Corrado Santoro Circuiti Sequenziali
Flip-Flop e Edge Triggering
D-Type e Clock
Il FF-D-Type “memorizza” il bit su D quando Clock = 1
Tuttavia, se, quando Clock = 1, l’ingresso D dovesse cambiare, alloral’uscita cambiera di conseguenza, come mostrato in figura negli istantiC, D ed E
Questo comportamento costringe a mettere vincoli sul timing deisegnali D e CLK
D
CLK
Q
Write 1 Write 0Write 0
Write 1 Write 0
A B C D E
Corrado Santoro Circuiti Sequenziali
Flip-Flop e Edge Triggering
D-Type Master-Slave
Se tuttavia colleghiamo in serie due FF-D-Type come in figuraotteniamo che:
Quando CLK ∗ = 1 il segnale su D∗ si propaga sull’uscita delprimo FF (Master)
Quando CLK ∗ = 0 il l’uscita del primo FF (Master) si propagasull’uscita del secondo FF (Slave) e quindi su Q∗
Il circuito complessivo memorizza il dato (D∗ → Q∗) quando il segnaleCLK ∗ passa dallo stato 1 allo stato 0, cioe su un fronte di discesadel segnale
D-TypeFF
Q
Q
D
CLKD-TypeFF
Q
Q
D
CLK
D*
CLK*
Q*
Master Slave
Corrado Santoro Circuiti Sequenziali
Flip-Flop e Edge Triggering
Edge Triggered D-Type
Il simbolo sulla destra e quello che si adotta per i FF di tipo“edge-triggered”, cioe il cui Clock agisce su un fronte del segnalepiuttosto che sul livello
Il “triangolo” indica il fronte di salita CLK 0→ 1
Il “triangolo con pallino” indica il fronte di discesa CLK 1→ 0
D-TypeFF
Q
Q
D
CLKD-TypeFF
Q
Q
D
CLK
D*
CLK*
Q*
Master Slave
Q*
D Q
Q
Corrado Santoro Circuiti Sequenziali
Flip-Flop e Edge Triggering
Falling Edge Triggered D-Type
Il FF “memorizza” il bit su D quando il Clock passa dallo stato 1 allostato 0 (falling edge)
D
CLK
Q
D Q
Q
Corrado Santoro Circuiti Sequenziali
Flip-Flop e Edge Triggering
Rising Edge Triggered D-Type
Il FF “memorizza” il bit su D quando il Clock passa dallo stato 0 allostato 1 (rising edge)
D
CLK
Q
D Q
Q
Corrado Santoro Circuiti Sequenziali
D-Type Flip-Flop
Simboli dei vari FF D-Type
D Q
Q
D Q
Q
D Q
Q
D Q
Q
CLK CLK
Level-Trigger, on CLK = 1 Level-Trigger, on CLK = 0
Edge-Trigger, on rising edge Edge-Trigger, on falling edge
Corrado Santoro Circuiti Sequenziali
D-Type Flip-Flop with Clear and Preset
Varianti dei FF D-Type
D Q
Q
Edge-Trigger, falling edgewith (async) clear
CLR
D Q
Q
Edge-Trigger, falling edgewith (async) clear and preset
CLR
SET
A volte i FF possono presentare degli ingressi di CLEAR o di PRESET chepermettono di forzare le uscite indipendentemente dagli ingressi di D eCLOCK
D CLK CLR SET Q(t) Q(t)X X 0 1 0 1 output clearX X 1 0 1 0 output set0 ↓ 1 1 0 1 D copied to output1 ↓ 1 1 1 0 D copied to outputX X 1 1 Q(t − 1) Q(t − 1) unchanged
Corrado Santoro Circuiti Sequenziali
Altri Flip-Flop costruiti sui D-Type
FF T-Type
D Q
QCLR
CLR
CLK
Q
CLR clears the output CLK falling edge toggles the output
Q
Se, in un D-type, colleghiamo l’ingresso D all’uscita Q otteniamo unflip-flop denominato T-type (toggle)
Ad ogni “colpo di clock”, l’uscita Q viene “copiata” su Q
Otteniamo cioe che (ad ogni colpo di clock) Q(t) = Q(t − 1)
In altri terimini, ad ogni colpo di clock le uscite cambiano stato (toggle)
Corrado Santoro Circuiti Sequenziali
Circuiti costruiti sui Flip-Flop
D Q
QCLR
D Q
QCLR
D Q
QCLR
CLR
CLKIN
Q0 Q1 Q2
Serie di FF T-Type
Realizziamo un circuito in cuimettiamo 4 FF T-type “in serie”,ovvero l’uscita del FF n diventa ilclock del FF n + 1
Analizziamo la sequenzatemporale
CLR
CLK
Q0
Q1
Q2
Corrado Santoro Circuiti Sequenziali
Circuiti costruiti sui Flip-Flop
D Q
QCLR
D Q
QCLR
D Q
QCLR
CLR
CLKIN
Q0 Q1 Q2
Serie di FF T-Type
Etichettiamo con 0 e 1 i vari statilogici delle uscite Q0, Q1 e Q2
CLR
CLK
Q0
Q1
Q2
0
0
0
1
0
0
0
1
0
1
1
0
0
0
1
1
0
1
0
1
1
1
1
1
Corrado Santoro Circuiti Sequenziali
Il Contatore a 3 bit
D Q
QCLR
D Q
QCLR
D Q
QCLR
CLR
CLKIN
Q0 Q1 Q2
CLRCLKQ0Q1Q2
000
100
010
110
001
101
011
111
Contatore a 3 bit
Ruotiamo la figura di 90 gradi edanalizziamo le sequenzeprodotte nel tempo da Q0, Q1 eQ2
Esse costituiscono lerappresentazioni binarie dellasequenza di numeri 0, 1, 2, . . . , 7
Q2 Q1 Q0 Base 100 0 0 00 0 1 10 1 0 20 1 1 31 0 0 41 0 1 51 1 0 61 1 1 7
Corrado Santoro Circuiti Sequenziali
Il Contatore a 3 bit
D Q
QCLR
D Q
QCLR
D Q
QCLR
CLR
CLKIN
Q0 Q1 Q2
CLRCLKQ0Q1Q2
000
100
010
110
001
101
011
111
Contatore a 3 bit
Abbiamo dunque realizzato uncircuito contatore binario a 3bit
Q2 Q1 Q0 Base 100 0 0 00 0 1 10 1 0 20 1 1 31 0 0 41 0 1 51 1 0 61 1 1 70 0 0 0. . . . . . . . . . . .
Corrado Santoro Circuiti Sequenziali
Circuiti costruiti sui Flip-Flop
D Q
QCLR
D Q
QCLR
D Q
QCLR
CLR
CLK
Q0 Q1 Q3
D Q
QCLR
Q2
DIN
Serie di FF D-Type / Shift-Register
Realizziamo un circuito in cui mettiamo 4 FF D-type “in serie”, ovverol’uscita del FF n diventa il D del FF n + 1
Colleghiamo inoltre i CLK e i CLR tutti insieme
Ad ogni colpo di clock, il dato memorizzato nel FF n “passera” al FFn + 1, e il dato presente su DIN sara memorizzato sul primo FF
Ovvero: Q2→ Q3, Q1→ Q2, Q0→ Q1, DIN → Q0
Abbiamo realizzato un registro a scorrimento o shift register a 4 Bit
Corrado Santoro Circuiti Sequenziali
Shift Register
Shift-Register, Serial-to-Parallel
Uno degli impieghi degli shift registers e nelle periferiche dicomunicazione
Essi sono in grado di trasformare un “treno di bit” in un pattern completo(serial-to-parallel)
D Q
QCLR
D Q
QCLR
D Q
QCLR
CLR
CLK
Q0 Q1 Q3
D Q
QCLR
Q2
DIN1 0 1 1
1
D Q
QCLR
D Q
QCLR
D Q
QCLR
CLR
CLK
Q0 Q1 Q3
D Q
QCLR
Q2
DIN0 1 1
10
Corrado Santoro Circuiti Sequenziali
Shift Register
Shift-Register, Serial-to-Parallel
Uno degli impieghi degli shift registers e nelle periferiche dicomunicazione
Essi sono in grado di trasformare un “treno di bit” in un pattern completodi n bit (serial-to-parallel)
D Q
QCLR
D Q
QCLR
D Q
QCLR
CLR
CLK
Q0 Q1 Q3
D Q
QCLR
Q2
DIN1 1
D Q
QCLR
D Q
QCLR
D Q
QCLR
CLR
CLK
Q0 Q1 Q3
D Q
QCLR
Q2
DIN1
101
1011
Corrado Santoro Circuiti Sequenziali
Shift Register
Shift-Register, Parallel-to-Serial
Modifichiamo uno shift-register aggiungendo un multiplexer nel pathtra un FF e il successivo
Il multiplexer permette di scegliere se inviare all’ingresso D del FF nl’uscita del FF n − 1 oppure un bit da un ingresso esterno
Tutti i mux sono controllati dallo stesso segnale che chiamiamoSHIFT/LOAD
D Q
QCLR
D Q
QCLR
D Q
QCLR
CLR
CLK
Q0 Q1 Q3
D Q
QCLR
Q2
DIN 0
1
0
1
0
1
0
1
D0 D1 D3D2
SHIFT/LOAD
Corrado Santoro Circuiti Sequenziali
Shift Register
Shift-Register, Parallel-to-Serial
Quando SHIFT/LOAD = 0, i MUX connettono i FF in serie, pertanto ilcircuito agisce da shift-register
D Q
QCLR
D Q
QCLR
D Q
QCLR
CLR
CLK
Q0 Q1 Q3
D Q
QCLR
Q2
DIN 0
1
0
1
0
1
0
1
D0 D1 D3D2
SHIFT/LOAD = 0
Corrado Santoro Circuiti Sequenziali
Shift Register
Shift-Register, Parallel-to-Serial
Quando SHIFT/LOAD = 1, i MUX connettono gli ingressi D dei FF agliingressi Dn del circuito
Il circuito (al colpo di clock) memorizza il pattern binario suD0,D1,D2,D3 il quale potra poi essere shiftato successivamente
D Q
QCLR
D Q
QCLR
D Q
QCLR
CLR
CLK
Q0 Q1 Q3
D Q
QCLR
Q2
DIN 0
1
0
1
0
1
0
1
D0 D1 D3D2
SHIFT/LOAD = 1
Corrado Santoro Circuiti Sequenziali
Uso degli Shift Register
Uso degli Shift-Register
Periferiche di comunicazione
Prodotto di un numero binario per le potenze del 2:0 0 1 0 1 0 0 1 × 4 =
0 0 1 0 1 0 0 1 shift left 2 times =
1 0 1 0 0 1 0 0
Divisione (intera) di un numero binario per le potenze del 2:0 0 1 0 1 0 0 1 / 4 =
0 0 1 0 1 0 0 1 shift right 2 times =
0 0 0 0 1 0 1 0
Corrado Santoro Circuiti Sequenziali
Circuiti Sequenziali
Corrado Santoro
Dipartimento di Matematica e [email protected]
Corso di Architettura degli Elaboratori
Corrado Santoro Circuiti Sequenziali