Repetition och sammanfattning av syntes och analys av sekvensnät Sekvensnät = ihopkoppling av sekvenskretsar Består i praktiken av - minnesdel (sekvenskretsar) - kombinatorisk del. Sekvenskretsar = kretsar som kan ge olika utgångsvärden fastän inggsvärdena är lika. Utgångsvärdet beror av en sekvens av tidigare tillstånd [och ev. ingångsvärden] namnet sekvenskrets. En modell för sekvensnät är tillståndsmaskiner, som växlar mellan olika tillstånd i kontrollerade sekvenser. Sekvensnät måste kunna "minnas" det som skett tidigare. "Det som skett tidigare" representeras av tillstånd (eng. states). [Minnet är ändligt begränsat antal tillstånd. Sekvensnät kallas ibland [Finite] State Machines (FSM).] Tiden är viktig i sekvensnät. Systemet måste "få veta" att det har blivit ett nytt tillstånd. Ett [vanligt] sätt att åstadkomma det är med en klockpuls till vipporna. (Synkrona sekvensnät.) Syntes = att konstruera ett sekvensnät. Hur ska man tänka? - Vi har alltid nuvarande tillstånd. Vi vill komma till nästa tillstånd. För att göra det måste vi lägga bestämda signaler på vippornas ingångar. Var får vi dem ifrån? Tillgängliga signaler är nuvarande tillstånd och ev. insignaler. Dessa är också de signaler som måste kopplas in, eftersom de påverkar tillståndsbytena. Ev. kopplas de in via ett mer eller mindre komplicerat kombinatoriskt nät, för att ge de rätta tillståndsbytena. Exempelproblem Konstruera en automat som uppfyller följande specifikation: Automaten ska styras av insignalerna STANNA, CIRKULERA och BYTA, visa utsignalerna RÖD, GRÖN och GUL, och kunna inta 3 tillstånd HÄR, DÄR och BORTA. På insignal ska automaten och ge utsignal STANNA stå kvar i samma tillstånd RÖD CIRKULERA ändra tillstånd: HÄR ### DÄR DÄR ### BORTA BORTA ### HÄR GRÖN BYTA ändra tillstånd: HÄR ### BORTA DÄR ### HÄR BORTA ### HÄR GUL Vad är stegen? 1. Tillståndsdiagram (Att åstadkomma ett sekvensnät börjar med det svåraste momentet: att formellt beskriva nätets beteende med tillstånd. Finns olika metoder för det (och "dialekter" av metoder): grafiskt med tabell i textform (tex m.h.a. [programmeringsspråket?] VHDL.) Skapa tillståndsdiagram. Identifiera tillstånd utifrån specifikationen. (Ibland hamnar man direkt i punkt 2. Men ibland kan det vara vettigt att först sätta verbala namn på tillstånden.) cirklar pilar - tillstånd tillståndsövergångar Skriv namn på tillstånd. [& ingångar och utgångar]. 2. Koda (Ibland hamnar man direkt här eller går direkt hit. Dvs 1. och 2. bakas ihop. Ibland är kodningen given.) Låt alla namn i tillståndsdiagrammet representaras av binära koder. Det finns inte alldeles entydiga lösningar, men man kan följa vissa regler och få mindre komplexa nät. (Se separat papper.) Ibland vet man inte i förväg hur många tillstånd “som behövs“. Tillstånd [& ingångar och utgångar] måste kodas binärt för att kunna minnas digitalt (lagras i tillståndsregister) 1 tillståndssiffra kan koda 21 = 2 tillstånd (en variabel med 1 siffra kan ha 2 värden) 3 tillståndssiffror kan koda 23 = 8 tillstånd (en variabel med 3 siffror kan ha 8 värden) n tillståndssiffror kan koda 2n tillstånd Hur många siffrors bredd behövs för 3 tillstånd? 3. Vipp-typ & sanningstabell Bestäm typ av vippa. Givet, eller efter eget gottfinnande. Identifiera användbar sanningstabell el. motsv. 4. Tillståndstabell Poängen: Vilken signal på vippingång för att få nästa tillstånd? Utnyttja nuvarande tillstånd och ev. insignaler. Dvs ta med (ta hänsyn till) alla signaler som påverkar nästa tillstånd. Upprätta tillståndstabell. Plocka in info från tillståndsdiagrammet. Kombinera med info från sanningstabellen. Tillståndstabellen kan ha olika utseende. Ett vettigt mönster (Gå in för det!): Nuvarande tillstånd Nästa tillstånd 1 vippa/tillståndssiffra. 5. Minimera Gör 1 Karnaugh-diagram för varje vipp-ingång [& varje utgång i sekvensnätet]. Eller använd någon annan minimeringsmetod. 6. Logiska uttryck Upprätta [minimerade] logiska uttryck för alla vipp-ingångar [och utgångar i sekv.nätet] utifrån Karnaughdiagrammen. Detta ger nödvändiga kombinatoriska grindnät. 7. Rita schema Rita kretsschema\kopplingsschema. Använd mönstret gindmatrisnät. (Fullständigt kopplingsschema ska innehålla: • Kretsbeteckningar • Bennummer (IC-kretsar) • Uppgifter om matningsspänning[ar] och jord • Komponentvärden (resistorer, kondensatorer) ) ___________________ Försök nu lösa syntesuppgiften själv innan du läser lösningsförslaget. Sammanfattning av arbets-stegen finns i slutet av detta häfte. Analys = Gå från färdig koppling till teoretisk modell. I princip är det samma steg som syntes, fast omvänd ordning. Exempelproblem Hur fungerar kretsen? Redovisa funktionen med ett tillståndsdiagram. Visa hur du kom fram till resultatet. Vad är stegen? 1. Upprätta funktionsuttryck för vippingångar & ev utgångar ev vid alla tänkbara ingångskombinationer. 2. Bestäm vipp-typ. Identifiera användbar sanningstabell el. motsv. 3. Upprätta [tillstånds]tabell m.h.a. sanningstabell\excitationstabell. Sök nästa tillstånd. a) Nuvarande tillstånd => vippingångar => nästa tillstånd b) " " => utgångar 4. Rita tillståndsdiagram eller tidsdiagram eller annat för att redovisa funktionen. Sammanfattning av stegen Syntes 1. Skapa tillståndsdiagram. (Ibland ges det i uppgiften.) 2. Koda tillstånd och ev insignaler och ev utsignaler. 3. Ta ställning till vippor - typ och antal. Identifiera användbar sanningstabell/excitationstabell el. motsv. 4. Upprätta tillståndstabell. 5. Minimera kombinatoriska nät till ingångar till vippor ev utgångar 6. Ställ upp logiska funktionsuttryck för dessa signaler. 7. Rita kopplingsschema/kretsschema. Analys 1. Upprätta funktionsuttryck för vippingångar & ev utgångar ev vid alla tänkbara ingångskombinationer. 2. Bestäm vipp-typ. Identifiera användbar sanningstabell el. motsv. 3. Upprätta [tillstånds]tabell m.h.a. sanningstabell\excitationstabell. Sök nästa tillstånd. a) Nuvarande tillstånd => vippingångar => nästa tillstånd b) " " => utgångar 4. Rita tillståndsdiagram eller tidsdiagram eller annat för att redovisa funktionen.