Forelesning 7 Tilstandsmaskin
Hovedpunkter Tilstandsmaskin Tilstandstabell Tilstandsdiagram Analyse av D flip-flop basert tilstandsmaskin Reduksjon av antall tilstander Tilordning av tilstandskoder Designprosedyre for tilstandsmaskin basert på D flipflops 2
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å 3
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 4
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 5
Tilstandstabell 6 Tilstandstabell = sannhetstabell for tilstandsmaskin Eksempel nr.: En inngang, en utgang og 2 stk. D flipflops Utgang for nåværende tilstand Nåværende tilstand Q A Q B Inngang x Neste tilstand Q A Q B y
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 / / / / / 7
8 Eksempel nr.2 To innganger x og y, en utgang som bare er gitt av tilstanden Q A x y Nåværende tilstand Q A Innganger x y clk Neste tilstand Q A D A Utgang for nåværende tilstand Q A Q A
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), / 9
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
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 / / / /
Eksempel nr.3 Bruker D flip-flops D A og D B settes til de verdiene man ønsker at Q A og Q B skal ha i neste tilstand 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 Nåværende tilstand Q A Q B Inngang x Neste tilstand Q A Q B Utgang for nåværende tilstand y 2
Eksempel nr.3 Forenkler uttrykkene med Karnaugh-diagram D A = Q A x + Q B x x D A D B Q A Q B D B = Q A x + Q B x y = Q A Q B clk Q B y 3
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 4
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. 5
Reduksjon av tilstander 6 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
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 7
Reduksjon av tilstander Eksempel: 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 Nå er tilstand F lik tilstand D D Fjerner tilstand F 8
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 9
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: 2
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. / /,/ / / / / / 2
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) Skjekk at ubrukte tilstander leder til ønskede tilstander 8) Tegn opp kretsen 22
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 23
Eksempel nr.4 2) Tegner tilstandsdiagram / / / / /,/ / / / / / Registrerer at vi har to ubrukte tilstander 24
25 Eksempel nr.4 3) Tegner tilstandstabell 4) Ingen reduksjonsmulighet 5) Velger å ikke bytte tilstandskoder da utgangene i såfall må omformes Ubrukte tilstander Nåværende tilstand / utgang Q A Q B Q C Inngang R Neste tilstand Q A Q B X X X X X X X X Q C X X X X
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 26
Eksempel nr.4 6) Sjekker at ubrukte tilstander leder til ønskede tilstander ok Nåværende tilstand / utgang Q A Q B Q C Inngang 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 27
Eksempel nr.4 6) Alle ubrukte tilstander leder til ønskede tilstander, viser med diagram / / / / /,/ / / / / / / / / / 28
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 29
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 3 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 3
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 32
Eksempel nr.5 x = 33
Eksempel nr.5 / 2) Tilstandsdiagram,, / XX / X don t care XX / si / R A G A Gr A R B G B Gr B / X / 34
35 6) Finner kombinatoriske 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 Nåværende tilstand Innganger Q A Q B s I Neste tilstand Q A Q B R A G A Gr A R B G B Gr B Utganger
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 Q A Q B R A Gr B R B = Gr A G B = G A Gr B = R A Q A Q B Q B Gr A R B G A G B 36
Oppsummering Tilstandsmaskin Tilstandstabell Tilstandsdiagram Analyse av D flip-flop basert tilstandsmaskin Reduksjon av antall tilstander Tilordning av tilstandskoder Designprosedyre for tilstandsmaskin basert på D flipflops 37