07a -- sekvensiell logikk del 2 - universitetet i oslo...1-fase klokking omid mirmotahari 1 0 cycle...
TRANSCRIPT
INF1400
Sekvensiell logikk del 2
Oppsummering hittil
Låsekretser (latch´er) – SR latch med NOR-porter – S´R´ latch med NAND-porter – D-latch
Flip-flop – Master-slave D-flip-flop – JK flip-flop – T-flip-flop
Omid Mirmotahari 2
I synkrone sekvensielle kretser skjer endringen(e) i output samtidig med endringen i et klokkesignal.
I asynkrone sekvensielle kretser skjer endringen(e) i output uten noe klokkesignal.
Nesten alle kretser er synkrone.
Et klokkesignal er et digitalt signal som veksler mellom ´0 ́og ´1´ med fast takt.
Omid Mirmotahari
Klokkeperiode Stigende flanke
Fallende flanke
’1’
’0’
3
Den omvendte av klokkeperioden kalles (klokke)frekvensen, altså
Ønsker så høy klokkefrekvens som mulig, fordi hver enkelt operasjon da bruker så kort tid som mulig.
Maksimal klokkefrekvens bestemmes av flere faktorer, blant annet:
– Lengde på signalveiene
– Last
– Forsinkelse gjennom porter (delay)
– Teknologi.
NB: Hastighet er ikke direkte proporsjonal med klokkefrekvens.
Omid Mirmotahari
klokkeperioden frekvens = 1
4
Portforsinkelse / tidsforsinkelse
Omid Mirmotahari
a b F
’1’
’0’
’1’
’0’
’1’ a
b
F
5
Logisk dybde Logisk dybde: Antall porter et signal passerer fra inngang
til utgang.
Ved å redusere logisk dybde reduseres forsinkelsen gjennom kretsen.
Omid Mirmotahari
Eksempel: a b
c
E
F
6
Internt i en CPU trengs en fleksibel type lagercelle som kan lagre et bit.
Som regel trenger man å lagre hele byte, halvord eller ord, og gjøre samme operasjon på alle bitene.
Load-signalet bestemmer om ny verdi skal lastes inn eller ikke.
Ved å sette sammen 1-bits celler i parallell, får man et register.
Hvis man i tillegg kan laste data over i nabocellen, kalles det et skiftregister.
Omid Mirmotahari
Data in
Clock Data out
Load
1-bits lager- celle
7
Shiftregister - enkel
Omid Mirmotahari
Data in Clock Load
Shift enable Shift left
Data out
Data Data out in
1 bit
Kontroll logikk
Data in Clock Load
Shift enable Shift left
Data out
1 bit
Kontroll logikk
Load
Shift
Ena
ble
Shift
Lef
t
’0’ ’X’ ’X’ Ingen endring
’1’ ’0’ ’X’ Data out := Data in ’1’ ’1’ ’0’ Shift right ’1’ ’1’ ’1’ Shift left
8
9
Logic ...
Logic D Q
CLK CLK
D Q Input output D Q
Comb. Logic
Q D
CLK or CLKS
De fleste VLSI systemer er en kombinasjon av: (a) Pipeline (b) tilstandsmaskiner (FSM)
System (klokket)
1-fase klokking
Omid Mirmotahari 10
Cycle Time (Tc) Clock
Setup Time (Ts)
Hold Time (T ) h
data
Q
Clock-to-Q Delay (Tq)
Tc = klokkeperioden Ts = tiden før klokkeflanken hvor inngangen må være stabil og tilgjengelig Th = tiden etter klokkeflanken hvor inngangssignalet må fortsatt være stabil Tq = tiden det tar fra klokkeflanken til utgangen er klar
1-fase klokking eksempel
Omid Mirmotahari 11
s
CLK
clk D Q
0
1 D Q
System timing
Omid Mirmotahari 12
Register A
Combinational Logic
Td Register
B clock Tq Ts
Tq Td Ts
Tc >Tq + Td + Ts
System timing (alternativ)
Alternativt, kan man bruke latcher som lagrings element for å spare plass
Omid Mirmotahari 13
Latch A
Combinational Logic
Td
Combinational Logic
Td clock Tq Ts
Latch B
System timing
Omid Mirmotahari 14
Latch A
Combinational Logic Tda
Latch B clock
Tq Ts Latch c
Combinational Logic Tdb
A B
Tc1 Tco
Tqa Tda Tsb Tqb Tdb Tsc
Tc1>Tqa+Tda+Tsb Tco>Tqb+Tdb+Tsc If Tc=Tc1+Tco and Tc1=Tco, Tqa=Tqb, Tsb=Tsc
=> The limit is Tc = Tda + Tdb + 2(Tq+Ts)
Klokket latch i CMOS
Omid Mirmotahari 15
”liten” inverter (lav-gain, mindre W or større L)
ck
D Q
ck D
clk
clk
clk
clk
Typisk utlegg for latch
Omid Mirmotahari 16
D
Q
clk
clk
clk
clk
Q D
clk -clk
-clk
clk clk
-clk
D
VDD
VSS V SS
Q D
clk -clk
Omid Mirmotahari
Tilstandsmaskin - Teller
Synkron 3-bits teller har en modus signal M M = 0, teller oppover i binær sekvens M = 1, teller oppover i Gray Code sekvens
Binært: 000, 001, 010, 011, 100, 101, 110, 111 Gray: 000, 001, 011, 010, 110, 111, 101, 100
17
Et utvalg inputkombinasjoner
Omid Mirmotahari 18
Input M 0 0 1 1 1 0 0
Nåværende tilstand 000 001 010 110 111 101 110
Neste tilstand 001 010 110 111 101 110 111
Omid Mirmotahari
Tilstandsdiagram
19
S0 [000]
S1 [001]
S2 [010]
S3 [011]
S4 [100]
S5 [101]
S6 [110]
S7 [111]
reset
0
0 0 0 0 0 0 0 1
1
1 1
1 1
1 1