Skifteregister (digital elektronik)

I den digitale elektronik er et skifteregister et digitalt kredsløb der fungerer som en speciel form for hukommelse: det kan opbevare og administrere en "kø" af bits, og kan konstrueres til at aflevere og modtage disse bits i både seriel og parallel form. Skifteregistre bruges derfor ofte til opgaver hvor digitale signaler skal "oversættes" fra seriel til parallel form eller omvendt.

Sådan virker skifteregisteret 
Skifteregisteret består af en række ens flip-flops af "D"-typen, der er "kædeforbundet" med hinanden så den "sande" udgang fra én flip-flop føres til data-indgangen ("D") på den efterfølgende. Data-indgangen på den første flip-flop i "kæden" fungerer som hele skifteregisterets indgang for serielle data.
Hver D-flip-flop har desuden en indgang for synkroniseringssignaler ("clock-impuls"), som i skifteregisteret alle er forbundet til en og samme signalkilde.

Hver gang der forekommer en enten stigende eller faldende flanke på den fælles forbindelse til flip-floppernes synkroniseringsindgange, vil hver flip-flop aflæse "nabo-flip-floppens" tilstand ("0" eller "1"), og selv antage samme tilstand. Da der for en praktisk flip-flop altid går lille smule tid fra den registrerer en ændring og til dens udgange "reagerer" på ændringen, "når" alle flip-flops netop at registrere naboens "gamle" tilstand, inden denne selv evt. skifter sin egen tilstand.

Resultatet er, at hele den række af "0'er" og "1'er" som flip-flopperne indeholdt før flanken indtraf, flyttes én flip-flop længere væk fra den første flip-flop i rækken. Denne vil til gengæld have "modtaget" den bit der i mellemtiden har været til stede på skifteregisterets føromtalte serielle indgang.

Omsætning mellem parallelle og serielle datastrømme 
Det skifteregister der er beskrevet ovenfor, kan bruges til at "oversætte" binære data der ankommer i seriel form, til et parallelt format: Den serielle data-linje forbindes til skifteregisterets serielle indgang (dvs. data-indgangen på første flip-flop i "kæden"), og det tilhørende synkroniseringssignal (hvis et sådant forefindes – ellers må det fremskaffes) til den fælles synkroniseringslinje i skifteregisteret: Hvis der er n flip-flops i skifteregisteret, kan man på flip-floppernes udgange "aflæse" de n senest ankomne bits "side om side", dvs. i parallel form.

Ved at bruge flip-flops der virker både som D- og R/S-flip-flops, kan man lave et skifteregister der "oversætter" parallelle data til en seriel "række" af bits med tilhørende synkroniseringssignaler: De parallelle bits indlæses i rækken af n flip-flops under brug af særlige "set"- og "reset"-indgange, hvorefter man kan "hente" én bit ad gangen fra udgangen på den sidste flip-flop ved at forsyne kredsløbet med synkroniseringsimpulser.

Matematik med et skifteregister 
Da skifteregistret arbejder med det binære talsystem, vil man kunne bruge det til multiplikation og division. Et binært tal, der læses parallelt ind i et skifteregister og skiftes en plads mod venstre, vil, udlæst parallelt, være dobbelt så stort. Hvis mest betydende bit er '1', vil den skiftes 'ud af tallet' og kunne overføres som mente.

Hvis man i stedet skifter registret 1 plads mod højre, vil tallet deles med 2, og en eventuel mindst betydende bit kan overføres som ½.

Digitale kredsløb