SR, D, JK og T flip-flops - oppbygning, sannhetstabeller og bruksområder.
Introduksjon
I forrige kapittel lærte vi om kombinatoriske kretser som AND, OR og NOT porter. Disse kretsene har én viktig begrensning: de har ingen hukommelse. Output avhenger kun av nåværende input.
I dette kapitlet skal vi utforske sekvensiell logikk - kretser som kan huske tidligere tilstander. Dette er fundamentet for alt fra enkle tellere til avanserte prosessorer. Vi skal lære om flip-flops (den grunnleggende minnecellen), tellere som kan holde styr på antall hendelser, og skiftregistre som flytter data bit for bit.
Sekvensiell logikk: Output avhenger av BÅDE nåværende input OG tidligere tilstand (minne). Har minnefunksjon, kan lagre informasjon, og brukes i tellere, registre og dataminne. Bygger på flip-flops.
Klokksignal: Sekvensiell logikk bruker ofte et klokksignal (clock) - en periodisk puls (f.eks. 1 MHz = 1 million pulser per sekund) som synkroniserer endringer og sikrer at alle deler oppdateres samtidig.
Forklar forskjellen mellom en kombinatorisk og sekvensiell krets ved hjelp av praktiske eksempler.
Når du trykker på lysbryteren, lyser lampen. Når du slipper, slukker den.
- Input: Bryterposisjon (på/av)
- Output: Lys (på/av)
- Ingen hukommelse - output følger input direkte
Sekvensiell eksempel - Togglende lysbryter:
Første trykk: Lyset går på og forblir på
Andre trykk: Lyset går av og forblir av
- Kretsen "husker" forrige tilstand
- Samme input (trykk) gir ulikt resultat avhengig av nåværende tilstand
- Dette krever en flip-flop for å huske om lyset er på eller av
Hva kjennetegner sekvensiell logikk sammenlignet med kombinatorisk logikk?
En flip-flop er den grunnleggende lagringsenheten i digital elektronikk. Den kan lagre én bit (0 eller 1).
SR Flip-Flop (Set-Reset): To innganger S (Set) og R (Reset). S=1 setter Q=1, R=1 resetter Q=0, S=R=0 beholder tilstand, S=R=1 er ugyldig.
D Flip-Flop (Data): Én data-inngang (D) og én klokk-inngang (CLK). Ved stigende klokkflanke får Q verdien av D. Brukes til å lagre 1 bit.
JK Flip-Flop: To innganger J og K, pluss klokk. J=1,K=0 setter Q=1, J=0,K=1 resetter Q=0, J=K=0 beholder, J=K=1 toggler (bytter tilstand).
T Flip-Flop (Toggle): Én inngang T og klokk. T=1 bytter tilstand ved hver klokkpuls. Brukes mye i tellere.
Edge-Triggered: Reagerer bare på stigende eller fallende flanke av klokken, ikke på klokkens nivå.
En D flip-flop har D=1 og får en stigende klokkflanke. Hva skjer med output Q? Deretter endres D til 0, men ingen ny klokkpuls kommer. Hva er Q nå?
- Q får verdien av D
- Q = 1
Steg 2: D endres til 0, men ingen klokkpuls
- Q beholder sin verdi (dette er "minnet")
- Q = 1 (fortsatt!)
Konklusjon: D flip-flop lagrer verdien som var på D ved siste stigende klokkflanke. Endringer på D mellom klokkpulser påvirker ikke Q.
Dette er essensielt for synkronisert dataoverføring - data "samples" kun ved klokkflanken.
Forklar hva en D flip-flop gjør og hvorfor den kalles en "1-bit minnecelle".
Hva skjer i en JK flip-flop når J=1 og K=1?
En teller er en krets som teller antall klokkpulser.
Asynkron teller (Ripple Counter): Flip-flops kobles i serie, output fra én driver klokken til neste. Enkel å bygge, men har "ripple effect" - forsinkelse gjennom kaskaden.
Synkron teller: Alle flip-flops får samme klokksignal. Alle endrer tilstand samtidig - raskere og mer pålitelig, men krever mer logikk.
Binær teller: Teller i binære tall: 0000 → 0001 → 0010 → ... → 1111 → 0000. En 4-bits teller teller 0-15.
BCD-teller: Teller fra 0-9 (0000-1001), deretter tilbake til 0. Brukes for 7-segment display.
Opp/ned-teller: Kan telle både opp (inkrement) og ned (dekrement), kontrollert av retningssignal.
En 3-bits binær teller starter på 000. Vis alle tilstandene den går gjennom før den starter på nytt.
En 3-bits teller har 2³ = 8 mulige tilstander:
| Klokkpuls | 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) |
Telleren "wrapper" tilbake til 000 etter å ha nådd 111. Dette kalles overflow.
En 4-bits binær teller starter på 1010 (binært). Hva blir verdien etter 3 klokkpulser? Oppgi svaret både binært og desimalt.
Hva er hovedforskjellen mellom en asynkron og synkron teller?
Et skiftregister er en krets som flytter data bit for bit ved hver klokkpuls.
SISO (Serie-Inn, Serie-Ut): Data mates inn og ut én bit om gangen. Brukes til å forsinke data.
SIPO (Serie-Inn, Parallell-Ut): Data mates inn serielt, men alle bits er tilgjengelige ut samtidig. Konverterer seriell til parallell data.
PISO (Parallell-Inn, Serie-Ut): Alle bits lastes inn samtidig, kommer ut serielt. Konverterer parallell til seriell data.
PIPO (Parallell-Inn, Parallell-Ut): Data lastes inn og ut parallellt. Brukes som dataregister.
Bruksområder: Seriell kommunikasjon (UART, SPI), LED-striper (74HC595), datalagring, tidsforsinkning.
Du mottar 4 bits serielt: 1, 0, 1, 1 (i den rekkefølgen). Vis hvordan et 4-bits SIPO skiftregister fyller seg opp, og hva den parallelle utgangen blir.
SIPO = Serie-Inn, Parallell-Ut. Data skyves inn fra venstre.
| Klokkpuls | 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 klokkpulser: Q3=1, Q2=1, Q1=0, Q0=1
Den serielle datastrømmen 1,0,1,1 er nå tilgjengelig parallellt som 1101.
Forklar hva et SIPO skiftregister gjør og gi et praktisk bruksområde.
Hvilket skiftregister brukes for å konvertere parallell data til seriell data?
Oppsummering
I dette kapitlet har vi lært om sekvensiell logikk - kretser med hukommelse:
Flip-flops er de grunnleggende byggeklossene:
- D flip-flop lagrer én bit ved klokkflanke
- JK flip-flop har toggle-funksjon (J=K=1)
- T flip-flop toggler ved hver klokk (brukes i tellere)
- SR flip-flop har set/reset funksjonalitet
Tellere holder styr på antall hendelser:
- Asynkrone tellere er enkle men har forsinkelse
- Synkrone tellere er raskere og mer presise
- Binære tellere teller 0 til 2^n-1
- BCD-tellere teller 0-9 for display
Skiftregistre flytter data:
- SIPO: Seriell inn, parallell ut
- PISO: Parallell inn, seriell ut
- Brukes i seriell kommunikasjon og LED-styring
Sekvensiell logikk er fundamentet for datamaskiner - alt fra enkle tellere til prosessorer bygger på disse prinsippene.
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.