Konsepter:Latch
Fra CodeWiki
I datamaskinsammenheng er en Latch en elektronisk krets som har to mulige stabile tilstander og kan derfor lagre 1 bit informasjon. En krets som implementerer Latch sin tilstand kan være avhengig av ikke bare den nåværende input, men også tidligere inputs, noe som kjennetegnes ved sekvenskretser. Sekvenskretser er altså i stand til å huske hvilke verdier som har vært lagt inn. Har vi gjort en operasjon på inngangen huskes verdien som ble lagt inn der utover i tid, selv om vi tok vekk betingelsene for inngangen. Denne verdien er lagret helt til vi bevisst legger inn noe annet.
Innhold |
Sekvenskretser
Synkron SR-latch
SR Latch (også kalt enkel SR flip-flop eller SR-Vippe), hvor S og R står for set og reset. Den består av et par krysskoblete NOR-porter. Den lagrede bit`en er markert Q.. Vi bruker SR-Latcher når vi ønsker å bestemme tidspunktet når S og R inngangene skal legges om. Om CLK-inngangen settes til 1, vil S og R inngangene forplante seg inn til kjernen i hukkomelseselementet (NOR-portene) slik at dette settes, resettes eller forblir uforandret. Mens CLK-inngangen er 1, vil endringene på S og R-inngangene reflekteres til utgangene. Når CLK-inngangen blir 0 vil utgangen fra hukommelseselemementet låses til en tilstand bestemt av tilstanden på R og S rett før CLK-inngangen gikk lavt. Så lenge CLK er høy, vil endring av verdiene til S og R påvirke utgangen Q.
Så har vi at S=0 og R=1 resetter vi vippen, og Q = 0. Når S=1 og R=0 setter vippen, og Q = 0. Problemet er at hvis S=R=1, så er Q udefinert. Denne problemstillingen behandles av JK-FlipFlop.
Data-latch (D-Latch)
Hvis vi ser for oss at vi kobler sammen S og R-inngangene i den Synkrone SR-Latchen med en inverter får vi en krets som vist til høyre.
Ettersom S og R-inngangene er koblet sammen med en inverter får vi bare en inngang, som vi her kaller D-inngangen (Data-inngangen). Ser vi på tilstandstabellen ser vi at vi kun har tilstander der S og R er henholdsvis 0 og 1, eller 1 og 0. Dette betyr at hukommelseselementet husker en 0 hvis D-inngangen er satt til 0, eller den husker en 1'er om D-inngangen er satt til en 1'er. Så hvis D=0, blir Qn+1 (neste Q)=0. Hvis D=1, blir Qn+1=1. I siste tilfelle får vi i realiteten en 1'er på J, som dermed blir invertert til en 0 på K, og da har vi tilfellet hvor J=1 og K=0, og da blir Q=1.
JK-FlipFlop
(Også kjent som JK-vippe). SR-Latchen hadde en svakhet. Nemlig at tilstanden S=R=1 er udefinert For å ordne dette kan vi benytte en JK-FlipFlop (JK-FF). Denne er også synkron siden vi har en Clk-inngang. K-inngangen fungerer som en Reset, mens J-inngangen fungerer som en set-inngang. Ser vi på tilstandstabellen ser vi at om vi legger 1 på begge inngangene vil vippen slå om til det motsatte av det den sto i. Tilstandstabellen er nesten identisk med SR-Vippen, bare at her får vi at når J=K=1 får vi at Q=Q'
Toggle Vippe (Toggle-FF)
Også kjent som T-Vippe. En slik vippe får vi ved å kortslutte J og K-inngangene. Vi har da kun èn inngang i tilleg til CLK-inngangen. Denne kalles T-Inngangen. studerer vi tilstandstabellen for denne vippen og sammenlikner den med JK-vippen blir resultatet som vist i tabellfiguren til høyre.
Registre
Vi skal nå se litt på sekvenskretsene, som vi har gått igjennom ovenfor, satt i et system.
Parallelt Register
Hvis vi ser for oss et 4 bits register satt samen av 4stk Data-FF. Data legges inn i alle data-FF'ene samtidig eller parallelt når CLK-pulsen (klokkepulsen) kommer. Data fra de ulike kretsene leses ut samtidig.
Serielt register
Et alternativ til det parallele registeret er et serielt register. Her mates data inn serielt på en serie-inn-inngang og leses ut på en "serie-ut"-inngang på andre siden av registeret. For hver klokkepuls vil bitmønsteret forflytte seg en bitposisjon mot høyre, ettersom utgangen fra en Data-FF er koblet til inngangen på neste data-FF. Bitmønsteret vi får er 0110.

