Tilbake
2.5
Flip-flops og vipper

2.5 Flip-flops og vipper

SR, D, JK og T flip-flops - oppbygning, sannhetstabeller og bruksområder.

60 min
7 oppgaver
SR flip-flopD flip-flopJK flip-flopT flip-flopKlokke-signal
Du leser den tradisjonelle versjonen
Din fremgang i kapitlet
0 / 7 oppgaver

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.

Kombinatorisk vs sekvensiell logikk
Kombinatorisk logikk: Output avhenger BARE av nåværende input. Eksempler er AND, OR, NOT porter. Ingen minnefunksjon - output endres umiddelbart når input endres.

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.

✏️Kombinatorisk vs sekvensiell - lysbryter vs minnekrets

Forklar forskjellen mellom en kombinatorisk og sekvensiell krets ved hjelp av praktiske eksempler.

Kombinatorisk eksempel - Lysbryter:
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

📝Oppgave 1

Hva kjennetegner sekvensiell logikk sammenlignet med kombinatorisk logikk?

Flip-flops

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å.

✏️D Flip-Flop som 1-bit minne

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å?

Steg 1: Ved stigende klokkflanke med D=1
- 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.

📝Oppgave 2

Forklar hva en D flip-flop gjør og hvorfor den kalles en "1-bit minnecelle".

📝Oppgave 3

Hva skjer i en JK flip-flop når J=1 og K=1?

Tellere

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.

✏️3-bits binær teller

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:

KlokkpulsBinærDesimal
Start0000
10011
20102
30113
41004
51015
61106
71117
80000 (wrap)

Telleren "wrapper" tilbake til 000 etter å ha nådd 111. Dette kalles overflow.

📝Oppgave 4

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.

📝Oppgave 5

Hva er hovedforskjellen mellom en asynkron og synkron teller?

Skiftregistre

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.

✏️SIPO skiftregister for seriell-til-parallell konvertering

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.

KlokkpulsInnQ3Q2Q1Q0
Start-0000
111000
200100
311010
411101

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.

📝Oppgave 6

Forklar hva et SIPO skiftregister gjør og gi et praktisk bruksområde.

📝Oppgave 7

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.