340 likes | 587 Views
Oversigt. Indhold mm.5: Latch’es og flip-flops Analyse af synkrone sekventielle kredsløb. Boolsk algebra, bygge-blokke, talsystemer. Sekventielle kredsløb, analyse. Kombinatoriske kredsløb, minimering. Synkrone sekventielle kredsløb, design. Kombina- torisk kredsløb. In. Out. In.
E N D
Oversigt • Indhold mm.5: • Latch’es og flip-flops • Analyse af synkrone sekventielle kredsløb Boolsk algebra, bygge-blokke, talsystemer Sekventielle kredsløb, analyse Kombinatoriske kredsløb, minimering Synkrone sekventielle kredsløb, design Kombina- torisk kredsløb In Out In Kombina- torisk kredsløb Out Hukom- melse Clk Out = funktion(In) til ”samme” tid Tilstand Out = funktion(AktuelTilstand, In) NæsteTilstand = funktion(AktuelTilstand, In)
Synkrone sekvensmaskiner – analyse vs. syntese Beskrivelse: Maskinen skal indlæse én bit for hver Clk-puls og for hver ottende puls, skal de sidste 8 indlæste bits sættes ud på 8 parallelle udgange. Syntese Analyse Fokus her In Kombina- torisk kredsløb Out Hukom- melse Clk Tilstand Out = funktion(Tilstand, In) NyTilstand = funktion(GammelTilstand, In)
Synkrone sekvensmaskiner Hukommelses element Hukommelses element Hukommelses element Hukommelses element Fælles clock-signal Synkrone vs. asynkrone sekventielle kredsløb: Kendetegnet for et synkront kredsløb er, at skift af tilstand sker samtidigt i alle hukommelseselementer.
Hukommelseselementer • Hukommelseselementer: • Grundpillen i sekventielle kredsløb er hukommelseselementet. Gennem tiden er en lang række af sådanne dukket op .. alle med mere eller mindre heldige og uheldige egenskaber .. og mere eller mindre forskellige egenskaber. • Eksempler på disse er fx: • S-R Latch • D Latch • J-K Latch • T Latch • Dem kigger vi lidt nærmere på før vi skal se lidt nærmere på hvorledes sekventielle kredsløb analyseres. • Tilsidst kommer et syntese eksempel.
Hukommelseselementer – bi-stabile elementer Meta-stabilitet Inverter baseret bi-stabilt element Stabile ”arbejdsområder” Principielt set har vi 3 stabile områder for det bi-stabile element. I praksis vil elementet dog ikke befinde sig i meta-stabilitet ret længe .. fx. vil kredsløbsstøj ødelægge ligevægtsbetingelserne på et eller andet tidspunkt, hvorefter elementet vil indtage en af de to stabile områder .. hvilken er helt tilfældig.
Hukommelseselementer – bi-stabile elementer (S-R Latch) Det inverter baseret bi-stabilt element tjener måske et formål som tilfældighedsgenerator, men udover det har vi ikke mulighed for at kontrollerer/styre elementets state. Ved at benytte NOR-gates er det muligt at styre staten.
Hukommelseselementer – S-R-latch S’R’-latch • SR Latch: • C = clock høj: Ændringer på indgangene S = set, R = reset giver ændringer på udgangene. • C lav: Ændringer på indgangene har ingen virkning. Udgangssignaler forbliver uændrede.
Hukommelseselementer – D-latch • D-Latch: • En D-latch er blot en SR-latch med S og R forbundet via en inverter. • C = clock høj: Ændringer på indgangen D = data føres igennem til udgangene. • C lav: Ændringer på indgangen har ingen virkning. Udgangssignaler forbliver uændrede. • Værdien af C gemmes/latches når clock går høj.
Hukommelseselementer – D-Flip-Flop Kant trigget • Positiv kanttrigget D-flip-flop: • Kombinerer 2 D-latches • Når Clk skifter fra lav til høj føres signalet på D-indgangen til udgangene og huskes til næste opadgående flanke på Clk. • D-indgangens værdi “på andre tidspunkter” er ligegyldig.
Hukommelseselementer – JK-Flip-Flop • Positiv kanttrigget JK-flip-flop: • Når Clk skifter fra lav til høj skiftes signalet på udgangene afhængigt af J- og K-indgangenes værdier og huskes til næste opadgående flanke på Clk. • J- og K- indgangenes værdier “på andre tidspunkter” er ligegyldige. • Karakteristisk ligning: Q’ = J*Q’ + K’*Q (mere om det senere …) PS: Der findes en anden udgave: Master-slave JK-flip-flop.
Hukommelseselementer - T-flip-flop • Positiv kanttrigget T-flip-flop: • Skifter tilstand hver gang Clk skifter fra lav til høj. • Toggle operationen kan fx. implementeres med en D-FF (a) eller en JK-FF (B). Resten af dette minimodul: Alle flip-flop’s antages at være (positiv) kanttriggede
Hukommelseselementer – Karakteristiske ligninger D-flip-flop: Q* = D Karakteristiske ligninger: Nu hvor vi har kredsløbselementer hvor output til et givet øjeblik afhænger af både det øjeblikkelige input OG det aktuelle output .. ja så kræves en lidt nøjere beskrivelse af elementerne. Til det kar vi den karakteristiske ligning. En karakteristisk ligning angiver Næste tilstand ud fra Aktuel tilstand og Inputs En naturlig måde hvorpå dette kan håndteres er at lade Qn+1 angive symbolværdi for næste tilstand mens Qn angiver den øjeblikkelige tilstand. For at følge Wakerly benyttes imidlertid Q* som indikator for næste tilstand. Tidligere er * brugt som symbol for AND operationen så for at undgå forvekslinger vil ‘C‘ symbolet herefter blive brugt som AND-operator.
Hukommelseselementer – Karakteristiske ligninger Karakteristiske ligninger angiver Næste tilstand ud fra Aktuel tilstand og Inputs Q* symbol for næste tilstand JK-flip-flop: Q* = JCQ’ + K’CQ T-flip-flop uden enable: Q* = Q’ T-flip-flop med enable: Q* = ENCQ’ + EN’ CQ
Mealy Moore Synkrone sekvensmaskiner – state maskiner Hukommelseselementet: Med alle disse hukommelseselementer har vi altså en række byggeblokke der hver især kan være i en eller flere states .. fx. kan Q = 1 eller Q = 0. Kredsløb med hukommelseselementer: Kombineres disse forskellige hukommelseselementer får vi altså et kredsløb der ligeledes kan være i en af flere states .. hvilken state og antallet af disse afhænger af den aktuelle implementation. Synkrone state maskiner: Kredsløb der består af hukommelseselementer hvor disse alle benytter et fælles clock signal. State maskine hukommelse: Hvis et kredsløb består af n hukommelseselementer vil dette kunne beskrive 2n forskellige states. Typer af state maskiner: Afhængingt af hvorledes outputtet fra en state maskine afhænger af nuværende state og/eller inputs opdeles i to typer af maskiner ..
Synkrone sekvensmaskiner - typer • Mealy sekvensmaskine : • Q* = Fkt(Q, Inputs) • Outputs = G(Q, Inputs) • Moore sekvensmaskine: • Q* = Fkt(Q, Inputs) • Outputs = G(Q) Moore maskinen har altså IKKE dette link !!!
Synkrone sekvensmaskiner - typer • Mealy kredsløb med outputsynkronisering: • Fordel: Alle udgange skifter samtidigt • Ulempe: Forsinkelse (1 Clk-periode) Mealy vs Moore: Dette er egentlig ikke så afgørende om det er den ene eller den anden type .. blot skal der være styr på output-strukturen og hvorledes denne skal implementeres for at imødekomme designkrav.
Synkrone sekvensmaskiner – karakteristiske ligninger De karakteristiske ligninger: Typen af hukommelseselement er helt og aldeles afgørende for en state maskines funktion, så for at kunne analysere denne er det vigtigt at kende de karakteristiske ligninger for de forskellige typer af hukommelseselementer. Husk at ’C’ indikerer en AND operation.
Procedure for analyse med D-flip-flops Q0 Q1 Q2 . . D0 D1 D2 . . I1 I2 I3 . . O1 O2 O3 . . Q0 Q1 Q2 . • Find exitations funktionen, F ud fra kredsløbsdiagrammet: • Di(I1, I2, ...Im, Q1, Q2, ...Qn, C, +) • Karakteristisk ligning for D-flip-flop: Qi* = Di • Find next-state funktioner (transitions- ligninger): • Qi* = • Di(I1, I2, ...Im, Q1, Q2, ...Qn, C, +) • Find output funktionen, G ud fra kredsløbsdiagrammet: • Oi(I1, I2, ...Im, Q1, Q2, ...Qn, C, +) • Lav en transition/output-tabel. • Denne tabel giver en fuldstændig specifikation for næste tilstand og output for enhver mulig kombination af aktuel tilstand og input. • (Option:) Tegn et tilstandsdiagram
Eksempel: D-FF Mealy XOR • Find exitations funktionen, F ud fra kredsløbsdiagrammet: • Di(I1, I2, ...Im, Q1, Q2, ...Qn, C, +) • Karakteristisk ligning for D-flip-flop (Qi* = Di) • Find next-state funktioner (transitions-ligninger): • Qi* = Di(I1, I2, ...Im, Q1, Q2, ...Qn, C, +) • Find output funktionen, G PS: Dette er en Mealy-maskine, da output er direkte afhængigt af input. • D0 = Q0CE’ + Q0’CE • D1 = Q1CE’ + (Q0xQ1)CE • Qi* = Di • Q0* = Q0CE’ + Q0’CE • Q1* = Q1CE’ + (Q0xQ1)CE • Out0 = Q0CE Out1 = Q1CE
Eksempel: D-FF Mealy • Lav en transition/output-tabel. • Denne tabel giver en fuldstændig specifikation for næste tilstand og output for enhver mulig kombination af aktuel tilstand og input. Q0* = Q0CE’ + Q0’CE Q1* = Q1CE’ + (Q0xQ1)CE Out0 = Q0CE Out1 = Q1CE NB: Out er angivet for aktuel tilstand
Eksempel: D-FF Mealy • Lav en transition/output-tabel. • Denne tabel giver en fuldstændig specifikation for næste tilstand og output for enhver mulig kombination af aktuel tilstand og input. Transition/output State State/output Symbolske navne for tilstande A = {Q1 Q0} = {00} B = {Q1 Q0} = {01} . .
Eksempel: D-FF Mealy E = 0 Out=00 E = 0 Out=00 E = 1 Out=00 A B E = 1 Out=01 E = 1 Out=11 E = 1 Out=10 D C E = 0 Out=00 E = 0 Out=00 Funktion: 2-bit binær op-tæller med enable .. Med E = 1 vil kredsløbet gennemløbe følgende tællesekvens {0, 1, 2, 3, 0, 1, 2, 3, ......} med skifte ved hver clk. • (Option:) Tegn et tilstandsdiagram (Mealy) State/output
Eksempel: D-FF Moore • (Option:) Tegn et tilstandsdiagram (Moore) • Output angives i tilstandsringene E = 0 E = 0 E = 1 A/0 B/0 E = 1 E = 1 E = 1 D/1 C/0 E = 0 E = 0
Procedure for analyse med JK-flip-flops • Find exitations funktioner ud fra kredsløbsdiagrammet: • Ji(I1, I2, ...Im, Q1, Q2, ...Qn, C, +) • Ki(I1, I2, ...Im, Q1, Q2, ...Qn, C, +) • Karakteristisk ligning for JK-flip-flop: • Qi* = JiCQi’ + Ki’CQi • Find next-state funktioner (transitions-ligninger): • Qi* = Ji(I1,..Im, Q1,...Qn, C, +)CQi’ + [Ki(I1,...Im, Q1,...Qn, C, +)]’CQi • Find output funktioner ud fra kredsløbsdiagrammet: • Oi(I1, I2, ...Im, Q1, Q2, ...Qn, C, +) • Lav en transition/output-tabel. • Denne tabel giver en fuldstændig specifikation for næste tilstand og output for enhver mulig kombination af aktuel tilstand og input. • (Option:) Tegn et tilstandsdiagram
Eksempel med JK-flip-flops • Find exitations funktionerne ud fra kredsløbs- diagrammet: • J0 = K0 = E • J1 = K1 = ECQ0’ • Karakteristisk ligning for JK-flip-flop: • Qi* = JiCQi’ + Ki’CQi • Find next-state funktioner (transitions- ligninger): • Q0* = ECQ0’ + E’CQ0 • Q1* = ECQ0’CQ1’ + [ECQ0’]’CQ1 • Find output funktionen ud fra kredsløbsdiagrammet: • Out0 = Q0’ • Out1 = Q1’ • Lav en transition/output-tabel.
Eksempel med JK-flip-flops Funktion: 2-bit binær op-tæller med enable. • Tegn et tilstandsdiagram (Moore) E = 0 E = 1 A/11 B/10 E = 0 E = 1 E = 1 E = 0 E = 1 D/00 C/01 E = 0
Eksempel: flere inputs Wakerly tabel 7-5: Flere input-vari- able giver flere søjler (Mealy): Wakerly tabel 7-4: Moore:
Eksempel 2 med JK-flip-flops næste tilstand, output, aktuel tilstand og input. • Find exitations funktionerne ud fra kredsløbs- diagrammet: • J0 = Q1 K0 = X • J1 = Q0 K1 = Y • Karakteristisk ligning for JK-flip-flop: • Qi* = JiCQi’ + Ki’CQi • Find next-state funktioner (transitions- ligninger): • Q0* = Q1 CQ0’ + X’CQ0 • Q1* = Q0 CQ1’ + Y’CQ1 • Find output funktionen ud fra kredsløbsdiagrammet: • Out = Q0xQ1 • Lav en transition/output-tabel
Eksempel 2 med JK-flip-flops næste tilstand, output, aktuel tilstand og input. • Tegn et tilstandsdiagram (Moore) 1 A/0 B/1 X=1 X=0 YX=10 YX=11 Y=1 Y=0 D/0 C/1 YX=01 YX=00
X = 0 11 10 X = 1 X = 1 X = 0 X = 0 X = 1 X = 1 00 01 X = 0 Syntese eksempel: 2-bit op/ned tæller • States: • En 2-bit tæller kræver 4 states {S0 = 00, S1 = 01, S2 = 10, S3 = 11} • Definition: • X = 1 -> tæl op • X = 0 -> tæl ned • State diagram:
D0 D1 Syntese eksempel: 2-bit op/ned tæller State og tilstandstabel: Karakteristiske ligninger: Hvis vi baserer designet på D-FF’s får vi Q* = D som vores karakteristiske ligning. Exitations ligninger: Q1Q0 X Q1Q0 X
D0 D1 Syntese eksempel: 2-bit op/ned tæller Exitations ligninger: Q1Q0 X Q1Q0 X D0 = Q1’CQ0’ + Q1CQ0CX’ + Q1CQ0’CX D1 = Q1CQ0’ + Q1’CQ0’CX’ + Q1’CQ0CX
Syntese eksempel: 2-bit op/ned tæller Endeligt diagram for 2-bit tæller:
Bemærkninger til opgaveregning ... Opgave 1-4: Skulle være lige til at gå til .. Opgave 5: Her be’r jeg om en minimum cost løsning hvilket vil sige, at I skal bruge så få gates som muligt. Her skal I huske på situationen med “don’t cares” fra sidste gang. Ved at inkluderer disse “don’t cares” ifbm. Karnaugh-kort reduktion finder I en minimum cost løsning. Hvis dette ikke gøres ender I op med en minimum risk løsning istedet. Ved en minimum cost løsning er det vigtigt at sikre sig, at det sekventielle kredsløb ikke låser når det møder en af disse “don’t cares” .. så det skal naturligvis kontrolleres. God fornøjelse ;)