INF227 Sekvensiell Logikk
Hovedpunkter Definisjoner Portforsinkelse Shift register Praktiske Eksempler Latch SR D Flip-Flop D JK T Tilstandsmaskiner Tilstandsdiagrammer Reduksjon av tilstand Ubrukte tilstander Eksempler Omid Mirmotahari 2
Definisjoner Kombinatorisk logikk Utgangsverdiene er entydig gitt av nåværende kombinasjon av inngangsverdier. Sekvensiell logikk Inneholder hukommelse (låsekretser). Utgangsverdiene er gitt av nåværende kombination av inngangsverdier, samt sekvensen (tidligere inngangs-/utgangsverdier) Omid Mirmotahari 3
Sekvensiell Logikk Omid Mirmotahari 4
I synkrone sekvensielle kretser skjer endringen(e) i output samtidig med endringen i et klokkesignal. I asynkrone sekvensielle kretser skjer endringen(e) i output uten noe klokkesignal. Nesten alle kretser er synkrone. Et klokkesignal er et digitalt signal som veksler mellom og med fast takt. Klokkeperiode Stigende flanke Fallende flanke Omid Mirmotahari 5
Synkron logikk I større digitale system har man behov for å synkronisere dataflyten. Til dette bruker vi et globalt klokkesignal Uten global synkroniskering ville det vært total kaos Omid Mirmotahari 6
Den omvendte av klokkeperioden kalles (klokke)frekvensen, altså frekvens = klokkeperioden Ønsker så høy klokkefrekvens som mulig, fordi hver enkelt operasjon da bruker så kort tid som mulig. Maksimal klokkefrekvens bestemmes av flere faktorer, blant annet: Lengde på signalveiene Last Forsinkelse gjennom porter (delay) Teknologi. NB: Hastighet er ikke direkte proporsjonal med klokkefrekvens. Omid Mirmotahari 7
Portforsinkelse / tidsforsinkelse a b F a b F Omid Mirmotahari 8
Logisk dybde Logisk dybde: Antall porter et signal passerer fra inngang til utgang. Ved å redusere logisk dybde reduseres forsinkelsen gjennom kretsen. Eksempel: a b E c F Omid Mirmotahari 9
Internt i en CPU trengs en fleksibel type lagercelle som kan lagre et bit. Data in Clock Load -bits lagercelle Data out Som regel trenger man å lagre hele byte, halvord eller ord, og gjøre samme operasjon på alle bitene. Load-signalet bestemmer om ny verdi skal lastes inn eller ikke. Ved å sette sammen -bits celler i parallell, får man et register. Hvis man i tillegg kan laste data over i nabocellen, kalles det et skiftregister. Omid Mirmotahari
Shiftregister - enkel Data Data out in Data in Clock Load Shift enable Shift left Data in Clock Load Shift enable Shift left bit Kontroll logikk bit Kontroll logikk Data out Data out Load Omid Mirmotahari Shift Enable Shift Left X X Ingen endring X Data out := Data in Shift right Shift left
Praktiske eksempler Logikk som behandler signaler fra fysiske sensorer: IR-lys Varmefølende persondetektor IR sensor / Reset S R Låse krets Q / 24V relé Alarm sirene Når IR-lyset varierer mottat logikken et ras av kortvarige er pulser (msek). Logikken skal sette sirenen permanent på første mottatte puls. Omid Mirmotahari 2
Praktiske eksempler Logikk som behandler signaler fra fysiske sensorer: Laserbasert tyveridetektor Laser Lysbrudd Lys sensor / Reset S R Låse krets Q / 24V relé Alarm sirene Når laserlyset blir brutt mottar logikken en eller flere er pulser. Logikken skal sette sirenen permanent på første mottatte puls. Omid Mirmotahari 3
Praktiske eksempler Kontaktprelling fra mekanisk bryter. Mekaniske brytere gir ikke rene logiske nivå ut i overgangsfasen. Slike signaler må ofte renses ved bruk av låsekretser. Typisk spenningsforløp Omid Mirmotahari 4
SR-latch funksjonell beskrivelse ) Kretsen skal sette Q til hvis den får på inngang S. Når inngang S går tilbake til skal Q forbli på S R Q 2) Kretsen skal resette Q til når den får på inngang R. Når inngang R går tilbake til skal Q forbli på 3) Tilstanden på både S og R brukes normalt ikke SR S R Q låst Omid Mirmotahari 5
SR-latch funksjonell beskrivelse S (set) R (reset) Q Spenning S R Q SR S R Q låst Tid Omid Mirmotahari 6
SR-latch Portimplementasjon NOR S Q Øvre NOR S Q Q Nedre NOR Q R Q R Q *Signalet Q er ikke invertert av Q for tilstand S=, R= Omid Mirmotahari 7
SR-latch Analyse Tilstand S=, R=: En NOR port med fast inn på en av inngangene er ekvivalent med NOT S= Q R= Q = Q SR S R Q Øvre NOR S Q Q Nedre NOR Q R Q Q Ser bort i fra tilstand S= og R= Omid Mirmotahari 8
SR-latch Analyse Tilstand S=, R=: En NOR port med fast inn på en av inngangene gir alltid ut S= Q R= Q = Q SR S R Q Øvre NOR S Q Q Nedre NOR Q R Q Q= Omid Mirmotahari 9
D-Latch Dataflyten gjennom en D-latch kontrolleres av et klokkesignal ) Slipper gjennom et digital signal så lenge klokkeinngangen er (transparent) 2) I det øyeblikket klokkeinngangen går fra til låser utgangen seg på sin nåværende verdi. Forandringer på inngangen vil ikke påvirke utgangsverdien så lenge klokkesignalet er D Clk Q Omid Mirmotahari 2
D-Latch Clk = : kretsen slipper gjennom signalet Clk = : kretsen holder (låser) utgangssignalet D Q Clk D Clk Q Logisk verdi på D i det øyeblikk Clk går i fra til bestemmer verdien som holdes på Q Omid Mirmotahari 2
Flip-flop Flip-Flop er kommer i to varianter: Positiv flanketrigget Negativ flanketrigget På en positiv flanketrigget Flip-Flop kan utgangen kun skifte verdi i det øyeblikk klokkesignalet går fra til. Hakk, indikerer flanketrigget D Clk Q På en negativ flanketrigget Flip-Flop kan utgangen kun skifte verdi i det øyeblikk klokkesignalet går fra til. D Clk Q Omid Mirmotahari 22
D-Flip-Flop En D latch er transparent for Clk= D Q Clk D Clk Q En positiv flanketrigget D flip-flop sampler verdien på D i det øyeblikk Clk går fra til (positiv flanke). Denne verdien holdes fast på utgangen helt til neste positive flanke D Q Clk D Clk Omid Mirmotahari 23 Q
Karakteristisk tabell/ligning For flip-flop er kan man generelt beskrive neste utgangsverdi Q(t+) som funksjon av nåværende inngangsverdi(er), og nåværende utgangsverdi Q(t) Karakteristisk tabell for D flip-flop D Clk D Clk Q Q D Q(t+) Karakteristisk ligning for D flip-flop Q(t+) = D Omid Mirmotahari 24
D-Flip-Flop En positiv flanketrigget D flip-flop kan lages av to D-latcher (Master-Slave) Master Slave D D Clk Q D2 Clk2 Q2 Q = D Clk D Clk Q Q Clk Under Clk= er første D latch (master) transparent Under Clk= er siste D latch (slave) transparent Omid Mirmotahari 25
D-Flip-Flop kompakt versjon Omid Mirmotahari 26
D-Flip-Flop, eksempel En rippeladder vil i et kort tidsrom gi gal sum ut. Styring av signalflyt med D flip-flops kamuflerer dette Clk A 3 Clk B 3 Clk A 2 Clk B 2 Clk A Clk B Clk A Clk B D FF D FF D FF D FF D FF D FF D FF D FF Clk D FF C 4 Fulladder C 3 C 2 Fulladder Fulladder Halvadde r Clk Clk Clk Clk D FF D FF D FF D FF C C 4 S 3 S 2 S S På positiv Clk flanke kommer nye data inn til adderen. I samme øyeblikk leses forrige (stabiliserte) sum ut. Omid Mirmotahari 27
D-Flip-Flop, eksempel Seriell adder Fulladder 2 8
JK Flip-Flop Kretsoppbygging Grafisk symbol Q Q Omid Mirmotahari 29
JK Flip-Flop En JK flip-flop har følgende egenskaper J=, K=: Utgang låst Q J=, K=: Resetter utgang til J=, K=: Setter utgang til J=, K=: Inverterer utgang Q Q Utgangen kan kun forandre verdi på stigende klokkeflanke En JK flip-flop er den mest generelle flip-floppen vi har J K Q Q(t+) Q(t) Q (t) Omid Mirmotahari 3 Q(t+) = JQ (t) + K Q(t)
T Flip-Flop Kretsoppbygging Grafisk symbol Q Q Q Q Omid Mirmotahari 3
T Flip-Flop En T flip-flop har følgende egenskaper T=, Utgang låst T=, Inverterer utgang Q Q Utgangen kan kun forandre verdi på stigende klokkeflanke Det er lett å lage tellere av T flip-flop er T Q(t+) = T Q(t) Q Q Q(t+) Q(t) Q (t) Omid Mirmotahari 32
Tilstandsmaskin En tilstandsmaskin er et sekvensielt system som gjennomløper et sett med tilstander styrt av verdiene på inngangssignalene Tilstanden systemet befinner seg i, pluss evt. inngangsverdier bestemmer utgangsverdiene Tilstandsmaskins-konseptet gir en enkel og oversiktlig måte å designe avanserte system på Omid Mirmotahari 33
Tilstandsmaskin Generell tilstandsmaskin basert på D flip-flops N-stk flip-flops gir 2 N forskjellige tilstander Utgangssignalene er en funksjon av nåværende tilstand pluss evt. inngangsverdier Omid Mirmotahari 34
Tilstandsdiagram Tilstandsdiagram = grafisk illustrasjon av egenskapene til en tilstandsmaskin Eksempel nr.: Inngangsverdi x som medfører ny tilstand, samt utgangsverdi y for opprinnelig tilstand med inngangsverdi x x / y Tilstand Q A Q B / / / / / / / / Omid Mirmotahari 35
Tilstandstabell Tilstandstabell = sannhetstabell for tilstandsmaskin Eksempel nr.: En inngang, en utgang og 2 stk. D flip-flops Nåværende tilstand Inngang Neste tilstand Q A Q B Utgang for nåværende tilstand Q A Q B x y Omid Mirmotahari 36
Eksempel nr. x D A Q A Q A Tilstandsmaskin der utgang y er en funksjon av tilstanden gitt av verdiene til Q A og Q B, samt inngangen x clk D B Q B Q B y Omid Mirmotahari 37
Eksempel nr.2 x y D A Q A To innganger x og y, en utgang som bare er gitt av tilstanden Q A Nåværende tilstand Innganger x y Q A clk Neste tilstand Q A Utgang for nåværende tilstand Q A Omid Mirmotahari 38
Eksempel nr.2 Tilstandsdiagram, /, /, / Liste av inngangskombinasjoner som gir ny tilstand / utgangsverdi for nåværende tilstand*, / *Merk at i dette tilfelle er utgangsverdien kun avhengig av tilstanden (uavhengig av inngangsverdiene) Omid Mirmotahari 39
Eksempel nr.3 design av sekvensdetektor Ønsker å lage en krets som finner ut om det har forekommet tre eller flere ere etter hverandre i en klokket bit-sekvens x Klokket bit-sekvens: Binært signal som kun kan skifte verdi synkront med et klokkesignal Klokkesignal x Utgang Omid Mirmotahari 4
Eksempel nr.3 design av sekvensdetektor Tilstandsdiagram Velger å ha 4 tilstander. Lar hver tilstand symbolisere antall ere som ligger etter hverandre i bit-sekvensen. / / / / Inngang: bit-sekvens x Utgang: gitt av tilstanden, for tilstand -2, for tilstand 3 / / / / Omid Mirmotahari 4
Eksempel nr.3 Bruker D flip-flops Utgang for D A og D B settes til de Nåværende tilstand Neste nåværende verdiene man ønsker at Q A Inngang tilstand tilstand og Q B skal ha i neste tilstand Q A Q B x y Q A Q B D A = Q A Q B x + Q A Q B x + Q A Q B x D B = Q A Q B x + Q A Q B x + Q A Q B x y = Q A Q B Omid Mirmotahari 42
Eksempel nr.3 Forenkler uttrykkene med Karnaugh-diagram x D A Q A D A = Q A x + Q B x D B Q B D B = Q A x + Q B x y = Q A Q B clk Q B y Omid Mirmotahari 43
Reduksjon av tilstander En tilstandsmaskin gir oss en eller flere utgangssignal som funksjon av en eller flere inngangssignal Hvordan dette implementeres internt i maskinen er uinteressant sett utenifra I noen tilfeller kan man fjerne tilstander (forenkle designet) uten å påvirke inngangs/utgangs-funksjonene Omid Mirmotahari 44
Reduksjon av tilstander Hvis to tilstander har samme utgangssignal, samt leder til de samme nye tilstandene gitt like inngangsverdier, er de to opprinnelige tilstandene like. En tilstand som er lik en annen tilstand kan fjernes. Omid Mirmotahari 45
Reduksjon av tilstander Eksempel: Tilstand G er lik tilstand E Nåværende tilstand Inngang Neste tilstand Utgang A B A B B C B D C A C D D E D F E E A F F F G G G F A F Omid Mirmotahari 46
Reduksjon av tilstander Eksempel: Fjerner tilstand G. Erstatter hopp til G med hopp til E Nåværende tilstand Inngang Neste tilstand Utgang A B A B B C B D C A C D D E D F E E F F A F E F Omid Mirmotahari 47
Reduksjon av tilstander Eksempel: Nå er tilstand F lik tilstand D Fjerner tilstand F Nåværende tilstand Inngang Neste tilstand Utgang A B A B B C B D C A C D D E D F E E F F A F E F Omid Mirmotahari 48
Reduksjon av tilstander Eksempel: Har fjernet tilstand F Nåværende tilstand Inngang Neste tilstand Utgang A B A B B C B D C A C D D E D D E E A D Omid Mirmotahari 49
Tilordning av tilstandskoder I en tilstandsmaskin med M tilstander må hver tilstand tilordnes en kode basert på minimum N bit der 2 N M Kompleksiteten til den kombinatoriske delen avhenger av valg av tilstandskode Anbefalt strategi for valg av kode: prøv-og-feil i tilstandsdiagrammet / / Tilstand nr. Kode: / Tilstand nr.2 Kode: Omid Mirmotahari 5
Ubrukte tilstander I en tilstandsmaskin med N flip-flopper vil det alltid finnes 2 N tilstander. Designer man for M tilstander der M < 2 N vil det finnes ubrukte tilstander. / Problem: Under oppstart (power up) har man ikke full kontroll på hvilken tilstand man havner i først. Havner man i en ubrukt tilstand som ikke leder videre til de ønskede tilstandene vil systemet bli låst. Løsning: Design systemet slik at alle ubrukte tilstander leder videre til en ønsket tilstand. / /,/ / / / / Omid Mirmotahari 5
Generell designprosedyre basert på D flip-flops ) Definer tilstandene, inngangene og utgangene 2) Velg tilstandskoder, og tegn tilstandsdiagram 3) Tegn tilstandstabell 4) Reduser antall tilstander hvis nødvendig 5) Bytt tilstandskoder hvis nødvendig for å forenkle 6) Finn de kombinatoriske funksjonene 7) Sjekk at ubrukte tilstander leder til ønskede tilstander 8) Tegn opp kretsen Omid Mirmotahari 52
Design eksempel nr.4 Designer en teller som teller sekvensen 5,4,3,2,,. Etter skal telleren gjenta sekvensen (telle rundt). Telleren skal kunne resettes til 5 med ett reset signal. ) Velger en tilstand for hvert tall ut. Systemet har reset inngang, og trenger 3 utganger for å representere tallene 5 til. 2) Velger tilstandskoder som direkte representerer tallene ut. Tallene ut blir gitt av tilstandene Omid Mirmotahari 53
Eksempel nr.4 2) Tegner tilstandsdiagram / / / / /,/ / / / / / Registrerer at vi har to ubrukte tilstander Omid Mirmotahari 54
Eksempel Nåværende tilstand / utgang Q A Q B Q C Inngang R Neste tilstand Q A Q B Q C nr.4 3) Tegner tilstandstabell 4) Ingen reduksjonsmulighet 5) Velger å ikke bytte tilstandskoder da utgangene i såfall må omformes Ubrukte tilstander X X X X X X X X X X X X Omid Mirmotahari 55
Eksempel nr.4 6) Setter inn i karnaughdiagram og finner forenklede funksjoner D A Q C R Q A Q B x x x x D B Q C R Q A Q B x x x x D C Q C R Q A Q B x x x x D A = R + Q A Q B Q C + Q A Q C D B = Q B Q C R + Q A Q C R D C = Q C + R Omid Mirmotahari 56
Eksempel nr.4 6) Sjekker at ubrukte tilstander leder til ønskede tilstander ok Nåværende tilstand / utgang Inngang Q A Q B Q C R Neste tilstand Q A Q B Q C D A = R + Q A Q B Q C + Q A Q C D B = Q B Q C R + Q A Q C R D C = Q C + R Omid Mirmotahari 57
Eksempel nr.4 6) Alle ubrukte tilstander leder til ønskede tilstander, viser med diagram / / / / /,/ / / / / / / / / / Omid Mirmotahari 58
Eksempel nr.4 Q A Q B Q B Q A Q C D A Q A R Q clk A 7) Tegner opp krets Q A, Q B og Q C blir tellerens utganger Q B Q C R Q A Q C R clk D B Q B Q B Telleren resettes ved å sette R= Q C R D C Q C clk Q C Omid Mirmotahari 59
Eksempel nr.5 - trafikklys Ønsker å bruker tilstandsmaskin for å styre trafikklys Krysset har to vanlige trafikklys A og B. Disse styres med de binære signalene R A, G A, Gr A samt R B, G B, Gr B. Setter man G A til lyser det grønt i lys A osv. For å generere lyssekvensene bruker vi en repeterende bit-sekvens s som vist under. Avstanden mellom er pulsene gir intervallene mellom skifte fra grønt i lys A til grønt i lys B og motsatt. Klokkesignal Bit-sekvens s Omid Mirmotahari 6 periode
Eksempel nr.5 - trafikklys Systemet har en induktiv sensor i bakken som registrerer biler den ene veien. Bil over sensoren gir I= ellers har vi I= R A / G A / Gr A R B / G B / Gr B Vi ønsker at bil registrert av sensoren skal gi grønt lys i A så fort som mulig R B / G B / Gr B R A / G A / Gr A Induktiv sløyfe I Omid Mirmotahari 6
Eksempel nr.5,2) Velger følgende forenklede tilstander: - Grønt lys i A, rødt lys i B - Gult lys i A og B. Skifter mot grønt lys i B. - Rødt lys A, grønt lys i B - Gult lys i A og B. Skifter mot grønt lys i A. Innganger: s, I Utganger: R A, G A, Gr A, R B, G B, Gr B Lar utgangene kun være en funksjon av tilstanden Omid Mirmotahari 62
Eksempel nr.5 x = Omid Mirmotahari 63
Eksempel nr.5 /,, / 2) Tilstandsdiagram XX / XX / X don t care si / R A G A Gr A R B G B Gr B / X / Omid Mirmotahari 64
Nåværende tilstand Innganger 6) Finner kombinatoriske Q A Q B s I funksjoner D A = Q A Q B D B = Q A Q B I + Q B si R A = Q A Q B G A = Q B Gr A = Q A Q B R B = Gr A G B = G A Gr B = R A Neste tilstand Q A Q B R A G A Gr A R B G B Gr B Utganger Omid Mirmotahari 65
Eksempel nr.5 Q A Q B D A Q A 7) Tegner opp krets clk Q A D A = Q A Q B D B = Q A Q B I + Q B si R A = Q A Q B Q A Q B I Q B s I clk D B Q B Q B G A = Q B Gr A = Q A Q B R B = Gr A G B = G A Gr B = R A Q A Q B Q A Q B QB R A Gr B Gr A R B G A G B Omid Mirmotahari 66