SR, D, JK og T flip-flops - oppbygning, sannhetstabeller og bruksområder.
Introduksjon
I førre kapittel lærte vi om kombinatoriske kretsar som AND, OR og NOT portar. Desse kretsane har éi viktig avgrensing: dei har inga hugsing. Output er berre avhengig av noverande input.
I dette kapittelet skal vi utforske sekvensiell logikk - kretsar som kan hugse tidlegare tilstandar. Dette er fundamentet for alt frå enkle teljarar til avanserte prosessorar. Vi skal lære om flip-flops (den grunnleggjande minnecella), teljarar som kan halde styr på talet på hendingar, og skiftregister som flyttar data bit for bit.
Sekvensiell logikk: Output er avhengig av BÅDE noverande input OG tidlegare tilstand (minne). Har minnefunksjon, kan lagre informasjon, og blir brukt i teljarar, register og dataminne. Byggjer på flip-flops.
Klokkesignal: Sekvensiell logikk bruker ofte eit klokkesignal (clock) - ein periodisk puls (t.d. 1 MHz = 1 million pulsar per sekund) som synkroniserer endringar og sikrar at alle delar blir oppdaterte samtidig.
Forklar skilnaden mellom ein kombinatorisk og sekvensiell krets ved hjelp av praktiske eksempel.
Når du trykkjer på lysbrytaren, lyser lampa. Når du slepper, sløkkjer ho.
- Input: Brytarposisjon (på/av)
- Output: Lys (på/av)
- Inga hugsing - output følgjer input direkte
Sekvensiell eksempel - Togglande lysbrytar:
Første trykk: Lyset går på og blir verande på
Andre trykk: Lyset går av og blir verande av
- Kretsen "hugsar" førre tilstand
- Same input (trykk) gir ulikt resultat avhengig av noverande tilstand
- Dette krev ein flip-flop for å hugse om lyset er på eller av
Kva kjenneteiknar sekvensiell logikk samanlikna med kombinatorisk logikk?
Ein flip-flop er den grunnleggjande lagringseininga i digital elektronikk. Han kan lagre éin bit (0 eller 1).
SR Flip-Flop (Set-Reset): To inngangar S (Set) og R (Reset). S=1 set Q=1, R=1 resettar Q=0, S=R=0 held tilstand, S=R=1 er ugyldig.
D Flip-Flop (Data): Éin data-inngang (D) og éin klokke-inngang (CLK). Ved stigande klokkeflanke får Q verdien til D. Blir brukt til å lagre 1 bit.
JK Flip-Flop: To inngangar J og K, pluss klokke. J=1,K=0 set Q=1, J=0,K=1 resettar Q=0, J=K=0 held, J=K=1 togglar (byter tilstand).
T Flip-Flop (Toggle): Éin inngang T og klokke. T=1 byter tilstand ved kvar klokkepuls. Blir mykje brukt i teljarar.
Edge-Triggered: Reagerer berre på stigande eller fallande flanke av klokka, ikkje på nivået til klokka.
Ein D flip-flop har D=1 og får ein stigande klokkeflanke. Kva skjer med output Q? Deretter blir D endra til 0, men ingen ny klokkepuls kjem. Kva er Q no?
- Q får verdien til D
- Q = 1
Steg 2: D blir endra til 0, men ingen klokkepuls
- Q held verdien sin (dette er "minnet")
- Q = 1 (framleis!)
Konklusjon: D flip-flop lagrar verdien som var på D ved siste stigande klokkeflanke. Endringar på D mellom klokkepulsar påverkar ikkje Q.
Dette er essensielt for synkronisert dataoverføring - data blir "sampla" berre ved klokkeflanken.
Forklar kva ein D flip-flop gjer og kvifor han blir kalla ei "1-bit minnecelle".
Kva skjer i ein JK flip-flop når J=1 og K=1?
Ein teljar er ein krets som tel talet på klokkepulsar.
Asynkron teljar (Ripple Counter): Flip-flops blir kopla i serie, output frå éin driv klokka til neste. Enkel å byggje, men har "ripple effect" - forseinking gjennom kaskaden.
Synkron teljar: Alle flip-flops får same klokkesignal. Alle endrar tilstand samtidig - raskare og meir påliteleg, men krev meir logikk.
Binær teljar: Tel i binære tal: 0000 → 0001 → 0010 → ... → 1111 → 0000. Ein 4-bits teljar tel 0-15.
BCD-teljar: Tel frå 0-9 (0000-1001), deretter tilbake til 0. Blir brukt for 7-segment display.
Opp/ned-teljar: Kan telje både opp (inkrement) og ned (dekrement), kontrollert av retningssignal.
Ein 3-bits binær teljar startar på 000. Vis alle tilstandane han går gjennom før han startar på nytt.
Ein 3-bits teljar har 2³ = 8 moglege tilstandar:
| Klokkepuls | Binær | Desimal |
|---|---|---|
| Start | 000 | 0 |
| 1 | 001 | 1 |
| 2 | 010 | 2 |
| 3 | 011 | 3 |
| 4 | 100 | 4 |
| 5 | 101 | 5 |
| 6 | 110 | 6 |
| 7 | 111 | 7 |
| 8 | 000 | 0 (wrap) |
Teljaren "wrappar" tilbake til 000 etter å ha nådd 111. Dette blir kalla overflow.
Ein 4-bits binær teljar startar på 1010 (binært). Kva blir verdien etter 3 klokkepulsar? Oppgi svaret både binært og desimalt.
Kva er hovudskilnaden mellom ein asynkron og synkron teljar?
Eit skiftregister er ein krets som flyttar data bit for bit ved kvar klokkepuls.
SISO (Serie-Inn, Serie-Ut): Data blir mata inn og ut éin bit om gongen. Blir brukt til å forseinke data.
SIPO (Serie-Inn, Parallell-Ut): Data blir mata inn serielt, men alle bits er tilgjengelege ut samtidig. Konverterer seriell til parallell data.
PISO (Parallell-Inn, Serie-Ut): Alle bits blir lasta inn samtidig, kjem ut serielt. Konverterer parallell til seriell data.
PIPO (Parallell-Inn, Parallell-Ut): Data blir lasta inn og ut parallelt. Blir brukt som dataregister.
Bruksområde: Seriell kommunikasjon (UART, SPI), LED-striper (74HC595), datalagring, tidsforseinking.
Du mottek 4 bits serielt: 1, 0, 1, 1 (i den rekkjefølgja). Vis korleis eit 4-bits SIPO skiftregister fyller seg opp, og kva den parallelle utgangen blir.
SIPO = Serie-Inn, Parallell-Ut. Data blir skuva inn frå venstre.
| Klokkepuls | Inn | Q3 | Q2 | Q1 | Q0 |
|---|---|---|---|---|---|
| Start | - | 0 | 0 | 0 | 0 |
| 1 | 1 | 1 | 0 | 0 | 0 |
| 2 | 0 | 0 | 1 | 0 | 0 |
| 3 | 1 | 1 | 0 | 1 | 0 |
| 4 | 1 | 1 | 1 | 0 | 1 |
Parallell utgang etter 4 klokkepulsar: Q3=1, Q2=1, Q1=0, Q0=1
Den serielle datastraumen 1,0,1,1 er no tilgjengeleg parallelt som 1101.
Forklar kva eit SIPO skiftregister gjer og gi eit praktisk bruksområde.
Kva skiftregister blir brukt for å konvertere parallell data til seriell data?
Oppsummering
I dette kapittelet har vi lært om sekvensiell logikk - kretsar med hugsing:
Flip-flops er dei grunnleggjande byggjeklossane:
- D flip-flop lagrar éin bit ved klokkeflanke
- JK flip-flop har toggle-funksjon (J=K=1)
- T flip-flop togglar ved kvar klokke (blir brukt i teljarar)
- SR flip-flop har set/reset-funksjonalitet
Teljarar held styr på talet på hendingar:
- Asynkrone teljarar er enkle men har forseinking
- Synkrone teljarar er raskare og meir presise
- Binære teljarar tel 0 til 2^n-1
- BCD-teljarar tel 0-9 for display
Skiftregister flyttar data:
- SIPO: Seriell inn, parallell ut
- PISO: Parallell inn, seriell ut
- Blir brukte i seriell kommunikasjon og LED-styring
Sekvensiell logikk er fundamentet for datamaskiner - alt frå enkle teljarar til prosessorar byggjer på desse prinsippa.
Dette kapitlet er skrevet av Anthropics toppmodeller (Claude Opus og Claude Fable) og er foreløpig ikke manuelt gjennomgått — kvalitetskontrollen gjøres av uavhengige KI-agenter, og innmeldte feil rettes fortløpende. Funnet en feil? Meld fra, så retter vi den. Les mer om hvordan innholdet lages.