Fsm-moore

  • May 2020
  • PDF

This document was uploaded by user and they confirmed that they have the permission to share it. If you are author or own the copyright of this book, please report to us by using this DMCA report form. Report DMCA


Overview

Download & View Fsm-moore as PDF for free.

More details

  • Words: 2,791
  • Pages: 15
Konstruksjon av MOORE tilstandsmaskiner 1 Eksempel 1 1.1 BESKRIVELSE

2250mm

La oss se på et enkelt eksempel der vi skal konstruere en sekvenskrets som kontrollerer tilgangen til et felles prøverom mellom dame- og herreavdelingen i en klesbutikk. Det er 2 innganger til prøverommet, én fra hver avdeling. Dørene kan bare åpnes opp hvis det er ledig; dvs. at ingen av de 2 bryterne X og Y er aktivisert. De styrbare låsene for de 2 inngangene er kalt Q og P. Se skissen nedenfor.

3000mm.

P

Y

2250mm

3250mm

X

Q

900mm

Herrer

900mm

Damer

Det elektriske styresystemet kan skisseres som vist nedenfor. 2 innsignaler og 2 utsignaler. Vi skal designe dette systemet som en synkron sekvenskrets og trenger derfor et klokkesignal. Klokkesignalet betrakter vi her til å inngå i selve kretsen, slik at det ikke blir noen egen inngang på dette nivået.

Y

P

X

Q

1

1.2 TILSTANDSDIAGRAM Vi bestemmer oss videre for å designe kretsen som en MOORE sekvenskrets. Det betyr at utsignalene bare skal være direkte avhengige av kretsens tilstand og ikke av innsignalene. Virkemåten for kretsen kan da formaliseres i et tilstandsdiagram som vist: (not X) and (not Y)

PQ

TOM 00

X and (not Y)

Y

X

Y

DAM 01

HER 10

not X

not Y

Legg merke til at hvis det lite sannsynlige tilfellet at både X og Y aktiviseres samtidig inntreffer, vil Y prioriteres. Inne i tilstandsboblene er navnet på tilstanden skrevet sammen med verdiene til utsignalene P og Q.

1.3 NESTETILSTANDSTABELL PÅ SYMBOLSK FORM Basert på tilstandsdiagrammet, kan vi sette opp en nestetilstandstabell, som ikke er noe annet enn tilstandsdiagrammet på tabellform. Nåtilstand

Innsignaler

Nestetilstand

XY

Utsignaler PQ

TOM

0 0 1 1

0 1 0 1

TOM HER DAM HER

0 0 0 0

0 0 0 0

DAM

0 0 1 1

0 1 0 1

DAM DAM TOM TOM

0 0 0 0

1 1 1 1

HER

0 0 1 1

0 1 0 1

HER TOM HER TOM

1 1 1 1

0 0 0 0

2

Nestetilstandstabellen kan betraktes som en slags sannhetstabell, der Nåtilstanden og Innsignalene er de frie variablene og Nestetilstanden og Utsignalene er funksjonsverdiene. I MOORE-tilfellet er Utsignalene bare gitt av Nåtilstanden som vist.

1.4 TILSTANDSKODING Vi må nå bestemme antallet flipflopper vi ønsker å benytte i tilstandsminnet til kretsen. Antall flipflopper må være større eller lik det minste heltallet vi kan opphøye 2 i for å få antall tilstander. Vi har 3 tilstander i denne kretsen. Det betyr at vi må ha minst 2 flipflopper. Vi velger 2 flipflopper som er det mest økonomiske alternativet. Kaller flipfloppene A og B. Dette fører til at vi kan sette opp følgende modell for kretsen. Denne modellen vil være lik for alle MOORE sekvenskretser med 2 innganger, 2 utganger og 2 tilstandsvariable (flipflopper). Vå jobb blir nå å konstruere de to kombinatoriske logiske blokkene i figuren.

Y

D

SET

Q

P

A

X

CLR

Nestetilstandslogikk

D

SET

Q

Utgangslogikk Q

Q

B CLR

Q

Clk

Når vi kjenner antall flipflopper i kretsen, må vi for å komme videre, bestemme hvilke binærkoder som skal representere de enkelte tilstandene. Hvordan disse kodene velges, vil ha betydning for hvordan detaljene i kretsløsningen blir, men er ikke kritisk. Det finnes en del teori om hvordan denne kodingen kan gjøres optimalt, men vi skal velge kodingen ganske vilkårlig som vist nedenfor. Merk at utgangstilstanden som regel gis en kode med bare nuller. Dette gjøres for at det skal bli enkelt å sette kretsen i utgangstilstanden ved å aktivisere et felles Clear-signal til alle flipfloppene.

Tilstand

Kode AB

TOM

00

DAM

01

HER

11

3

Siden 2 bit gir 4 kombinasjoner, har vi en ubenyttet tilstandskode: 10. Vi trenger ikke denne, men vi må likevel forholde oss til denne fordi, de elektroniske kretsene ”ikke vet” at en av kodene ikke skal benyttes. Den komplette tabellen blir da som vist nedenfor med den ubenyttede tilstanden XXXX. Tilstand

Kode AB

TOM

00

DAM

01

XXXX

10

HER

11

1.5 TILSTANDSTABELL PÅ BINÆR FORM Nå kan vi sette opp tilstandstabellen på nytt, men denne gangen skal vi sette inn binærkodene for tilstandene i henhold til tabellene ovenfor. Nåtilstand

Innsignaler

Nestetilstand

Utsignaler

m

AB

XY

A+ B+

PQ

0 1 2 3

0 0 0 0

0 0 0 0

0 0 1 1

0 1 0 1

0 1 0 1

0 1 1 1

0 0 0 0

0 0 0 0

4 5 6 7

0 0 0 0

1 1 1 1

0 0 1 1

0 1 0 1

0 0 0 0

1 1 0 0

0 0 0 0

1 1 1 1

8 9 10 11

1 1 1 1

0 0 0 0

0 0 1 1

0 1 0 1

X X X X

X X X X

X X X X

X X X X

12 13 14 15

1 1 1 1

1 1 1 1

0 0 1 1

0 1 0 1

1 0 1 0

1 0 1 0

1 1 1 1

0 0 0 0

DA DB

Husk at flipfloppene A og B få verdier etter klokkepulsene som tilsvarer verdiene på Dinngangene når klokkepulsen inntreffer. Hvis vi konstruerer funksjoner for D-inngangene som tilsvarer nestetilstandene, kommer altså utgangene på flipfloppene ti å få riktige nestetilstandsverdier.

4

1.6 Nestetilstandsligninger og outputligninger Vi overfører nå verdiene fra tabellen til Karnaughdiagrammer for signalene DA, DB, P og Q og forenkler uttrykkene mest mulig.

1.6.1 Nestetilstandsligningene XY AB

00 00

0

01

4

11 10

01 1

10

3

2

5

7

6

12

13

15

8

X

1

1

11

X

9

1

11

1

14 10

X

X

11

10

DA

XY AB

00 0

00 01 11 10

4

1

12

01

1

1

3

1

5

7

13

15

1

1 x

8

2

1

6 14

1 x

DB

5

9

11

x

10

x

1.6.2 Outputligningene XY AB

00

01

11

10

00

0

1

3

2

01

4

5

7

6

12

11

1

10

x

8

13

1

9

x

15

1

11

14

1

10

x

x

11

10

P

XY AB

00 0

00 01 11 10

01

1

1

4

5

8

13 9

x

Q

6

2

7

1

1

12

x

3

15 11

x

6

1 14 10

x

1.7 Kretsløsning Nå kjenner vi de logiske utrykkene for alle variablene, og kan tegne opp den komplette løsningen på kretsen.

P Y

D

SET

Q

A CLR

X

D

SET

Q

Q

Q

B CLR

Q

Clk

Denne spesielle oppgan kan sikkert løses enklere ved å tenke gjennom hva som egentlig skal skje når signalene X og Y aktiveres. JK-flipflopper og andre hukommelseselementer kan benyttes for å huske om noen er inne i prøverommet eler ikke. Portkretser kan benyttes til å styre flipfloppene. Poenget med tilstandsmaskinkonstruksjoner, er at vi har innført en enhetlig metode for design av sekvenskretser enten de er enkle som denne eller kompliserte.

7

2 Eksempel 2 Dette eksempelet viser hvordan en låsemekanisme med trykknapper som skal aktiveres i en gitt sekvens, kan konstrueres. For at ikke eksempelet skal bli for stort, vises en konstruksjon med 2 knapper (X og Y) og 2 utsignaler (U og V). Etter er korrekt trykksekvens med X og Y åpnes låsen ved at et signal U aktiveres. Ved feil sekvens skal systemet gå i ”vranglås” og skal ikke kunne åpnes igjen på normal måte – signalet V aktiveres. Knappene kan trykkes ned så lenge man vil, hvis de bare trykkes riktig i forhold til hverandre: X – X (X og Y) Y X

U

Y

V

X Y U

Signalet U skal være et enkelt pulssignal. Når dette er blitt aktivert, kan går kretsen tilbake til utgangstilstanden og kan knappene kan trykkes på nytt. Signalet U kan dermed for eksempel kobles til klokkeinngangen på en T-vippe for å realisere låsing og åpning av en kodelås.

2.1 Tilstandsdiagram I dette tilstandsdiagrammet for kretsen er det forutsatt at alle inputkombinasjoner som ikke er vist, vil få systemet til å gå til tilstanden Err. 00

--

Start 00

10

XY 10

S1 00

UV OK 10

00 --

00

Err 01

00

S2 00

S5 00

01

10

01

S3 00

S4 00

10

11 11

Sekvenskretsen har 8 tilstander og er modellert som en MOORE-maskin.

8

2.2 Symbolsk nestetilstandstabell Tilstandsdiagrammet ovenfor kan overføres til følgende nestetilstandstabell. Nåtilstand

Innsignaler

Nestetilstand

XY

Utsignaler UV

Start

0 0 1 1

0 1 0 1

Start Err S1 Err

0 0 0 0

0 0 0 0

S1

0 0 1 1

0 1 0 1

S2 Err S1 Err

0 0 0 0

0 0 0 0

S2

0 0 1 1

0 1 0 1

S2 Err S3 Err

0 0 0 0

0 0 0 0

S3

0 0 1 1

0 1 0 1

Err Err S3 S4

0 0 0 0

0 0 0 0

S4

0 0 1 1

0 1 0 1

Err S5 Err S4

0 0 0 0

0 0 0 0

S5

0 0 1 1

0 1 0 1

OK S5 Err Err

0 0 0 0

0 0 0 0

OK

0 0 1 1

0 1 0 1

Start Start Start Start

1 1 1 1

0 0 0 0

Err

0 0 1 1

0 1 0 1

Err Err Err Err

0 0 0 0

1 1 1 1

2.3 Tilstandskoding Etter å ha satt opp tilstandstabellen, må man ta stilling til hvilken koding som skal benyttes for tilstandsvariablene i alle tilstander. Hovedregelen er at vi for starttilstanden (etter at spenning er satt på kretsen) velger at alle tilstandsvariablene skal ha verdien 0. Dette på grunn av enkel hardware reset av de benyttede flipfloppene. Siden det er 8 tilstander i systemet, må man minst benytte 3 flipflopper. Vi gå her for minimumsantallet. Deretter må man velge kodingen for disse 8 tilstander. Det finnes flere strategier for å velge koding, men for oversiktens skyld, skal vi her velge en ren binær tellerekkefølge:

9

Tilstand

Tilstandsvariable ABC

Start

000

S1

001

S2

010

S3

011

S4

100

S5

101

OK

110

Err

111

Setter så kodene for A, B og C inn for tilstandsnavnene i tilstandstabellen.

2.4 Binær nestetilstandstabell Nåtilstand

Innsignaler

Nestetilstand

Utsignaler

ABC

XY

A+ B+ C+

UV

0 0 0 0

0 0 0 0

0 0 0 0

0 0 1 1

0 1 0 1

0 1 0 1

0 1 0 1

0 1 1 1

0 0 0 0

0 0 0 0

0 0 0 0

0 0 0 0

1 1 1 1

0 0 1 1

0 1 0 1

0 1 0 1

1 1 0 1

0 1 1 1

0 0 0 0

0 0 0 0

0 0 0 0

1 1 1 1

0 0 0 0

0 0 1 1

0 1 0 1

0 1 0 1

1 1 1 1

0 1 1 1

0 0 0 0

0 0 0 0

0 0 0 0

1 1 1 1

1 1 1 1

0 0 1 1

0 1 0 1

1 1 0 1

1 1 1 0

1 1 1 0

0 0 0 0

0 0 0 0

1 1 1 1

0 0 0 0

0 0 0 0

0 0 1 1

0 1 0 1

1 1 1 1

1 0 1 0

1 1 1 0

0 0 0 0

0 0 0 0

1 1 1 1

0 0 0 0

1 1 1 1

0 0 1 1

0 1 0 1

1 1 1 1

1 0 1 1

0 1 1 1

0 0 0 0

0 0 0 0

1 1 1 1

1 1 1 1

0 0 0 0

0 0 1 1

0 1 0 1

0 0 0 0

0 0 0 0

0 0 0 0

1 1 1 1

0 0 0 0

1 1 1 1

1 1 1 1

1 1 1 1

0 0 1 1

0 1 0 1

1 1 1 1

1 1 1 1

1 1 1 1

0 0 0 0

1 1 1 1

10

For å lett kunne overføre tabellen til K-diagrammer når ligningene for utsignaler og eksiteringssignaler skal settes opp, bytter vi rekkefølgen på radene i tabellen, slik at variablene BC og XY listes på Gray-kodeform. (Dette er ikke nødvendig hvis man klarer å holde oversikten likevel.) Nåtilstand

Innsignaler

Nestetilstand

Utsignaler

A+ B+ C+ DA DB DC

UV

A

BC

XY

0 0 0 0

0 0 0 0

0 0 0 0

0 0 1 1

0 1 1 0

0 1 1 0

0 1 1 0

0 1 1 1

0 0 0 0

0 0 0 0

0 0 0 0

0 0 0 0

1 1 1 1

0 0 1 1

0 1 1 0

0 1 1 0

1 1 1 0

0 1 1 1

0 0 0 0

0 0 0 0

0 0 0 0

1 1 1 1

1 1 1 1

0 0 1 1

0 1 1 0

1 1 1 0

1 1 0 1

1 1 0 1

0 0 0 0

0 0 0 0

0 0 0 0

1 1 1 1

0 0 0 0

0 0 1 1

0 1 1 0

0 1 1 0

1 1 1 1

0 1 1 1

0 0 0 0

0 0 0 0

1 1 1 1

0 0 0 0

0 0 0 0

0 0 1 1

0 1 1 0

1 1 1 1

1 0 0 1

1 1 0 1

0 0 0 0

0 0 0 0

1 1 1 1

0 0 0 0

1 1 1 1

0 0 1 1

0 1 1 0

1 1 1 1

1 0 1 1

0 1 1 1

0 0 0 0

0 0 0 0

1 1 1 1

1 1 1 1

1 1 1 1

0 0 1 1

0 1 1 0

1 1 1 1

1 1 1 1

1 1 1 1

0 0 0 0

1 1 1 1

1 1 1 1

1 1 1 1

0 0 0 0

0 0 1 1

0 1 1 0

0 0 0 0

0 0 0 0

0 0 0 0

1 1 1 1

0 0 0 0

11

2.5 Logiske uttrykk med forenklinger 2.5.1 Nestetilstandsligninger Løser for DA:

A=0 XY BC

00 00

0

01

4

11

12

1

8

10

01

1 1

1 5

13

1 1

9

11 3

2

7

6

15

14

11

10

1 1 1 1

10

DA

A=1 XY BC

00 00

1

01

1

11

1

10

0 4

12

01

1 1 1

1 5

13

8

9

DA

12

11

1 1 1

3 7

15 11

10

1 1 1

2 6

14 10

Løser for DB:

A=0 XY BC

00 0

00 01

1

4

12

11

1

10

1

8

01

1 1

1 5

11

1 1

13

1

9

3

2

7

6

15

1

1

10

11

14

1

10

1

DB

A=1 XY BC

00 00

1

01

1

11

1

10

01

0

1

4

5

12

1

13

8

9

DB

13

11 3

1 1

7

15 11

10

1 1 1

2 6

14 10

Løser for DC:

A=0 XY BC

00 00

0

01

4

11

12

1

8

10

01

1 1

1 5

11

1 1

13 9

7

15

1 1

3

1

11

10

1 1

2 6

14

1

10

1

DC

A=1 XY BC

00 00

1

4

01 11 10

0

1

12

01

1 1 1

1 5

13

8

11

9

DC

14

3

1 1

7

15 11

10

1 1 1

2 6

14 10

2.5.2 Outputligninger BC A

00

01

11

0

0

1

3

1

4

5

7

10 2

1

6

U

BC A

00

01

11

0

0

1

1

4

5

1

10

3

2

7

6

V

2.6 Kretsskjema Siden dette er et ganske omfattende sekvenskrets, blir også det konkrete kretsskjemaet ganske stort. Den detaljerte kretsløsningen vises ikke, men kretsen realiseres etter følgende modell, der de logiske uttrykkene som er utviklet, bestemmer de logiske nettverkene på forsiden og baksiden av tilstandsminnet. I den aktuelle kretsen er det 3 flip-flopper: A, B og C. X

D

SET

Q

U

A

Y

Nestetilstandslogikk

CLR

Q

---------

D

SET

Q

V

C CLR

Clk

15

Utgangslogikk

Q