IE1205 Digital Design: F10: Synkrona tillståndsautomater del 2

Relevanta dokument
Sekvensnät Som Du kommer ihåg

Digital Design IE1204

IE1205 Digital Design: F9: Synkrona tillståndsautomater

Digital Design IE1204

Digitalteknik 7.5 hp distans: 5.1 Generella sekvenskretsar 5.1.1

Repetition och sammanfattning av syntes och analys av sekvensnät

Asynkrona sekvensmaskiner

Digital Design IE1204

Digital Design IE1204

Sekvensnät i VHDL del 2

Flaskautomaten Ett design-exempel av Ingo Sander

IE1204 Digital Design

Digital Design IE1204

IE1205 Digital Design: F13: Asynkrona Sekvensnät (Del 2)

Programmerbar logik och VHDL. Föreläsning 4

Laboration D159. Sekvensnät beskrivna med VHDL och realiserade med PLD. Namn: Datum: Epostadr: Kurs:

SEKVENSKRETSAR. Innehåll

IE1205 Digital Design: F11: Programmerbar Logik, VHDL för Sekvensnät

F5 Introduktion till digitalteknik

Digital- och datorteknik

Tentamen IE1204 Digital Design Måndag 15/

Tentamen i Digitalteknik, EITF65

Tenta i Digitalteknik

Tentamen med lösningar för IE1204/5 Digital Design Torsdag 15/

Tenta i Digitalteknik

Tentamen IE Digital Design Fredag 13/

Tentamen IE Digital Design Fredag 15/

DESIGN AV SEKVENTIELL LOGIK

Omtentamen med lösningar i IE1204/5 Digital Design Fredag 10/

Tentamen IE Digital Design Måndag 23/

Omtentamen IE Digital Design Måndag 14/

LEJON LABORATION3. Laborationens syfte

Tentamen med lösningar i IE1204/5 Digital Design Måndag 27/

TSEA22 Digitalteknik 2019!

IE1204/IE1205 Digital Design

Repetition TSIU05 Digitalteknik Di/EL. Michael Josefsson

Repetition delay-element

Laboration D184. ELEKTRONIK Digitalteknik. Sekvensnät beskrivna med VHDL och realiserade med PLD

DIGITALTEKNIK I. Laboration DE2. Sekvensnät och sekvenskretsar

Tentamen med lösningar IE Digital Design Fredag 13/

Tentamen i IE1204/5 Digital Design onsdagen den 5/

Tenta i Digitalteknik

Digital Design IE1204

Tentamen i IE1204/5 Digital Design onsdagen den 5/

Exempel på LAX-uppgifter

Digital Design IE1204

Tentamen med lösningar i IE Digital Design Fredag 15/

Tentamen med lösningar IE Digital Design Måndag 23/

Digitalteknik F12. Några speciella automater: register räknare Synkronisering av insignaler. Digitalteknik F12 bild 1

Tentamen i IE1204/5 Digital Design Torsdag 29/

Tentamen i IE Digital Design Fredag 21/

TSEA22 Digitalteknik 2019!

Digital Design IE1204

-c wc. Pre- Next state Out- Vi ser att tillstånden är redan sorterade i grupper med olika utsignaler,

Tentamen i IE1204/5 Digital Design måndagen den 15/

Tenta i Digitalteknik

Tentamen med lösningar i IE1204/5 Digital Design Torsdag 29/

IE1204/5 Digital Design typtenta

Tentamen. TSEA22 Digitalteknik 5 juni, 2015, kl

Institutionen för systemteknik, ISY, LiTH. Tentamen i. Tid: kl

Styrteknik: Grundläggande logiska funktioner D2:1

Tentamen med lösningar i IE Digital Design Fredag 21/

Digital Design IE1204

Omtentamen med lösningar IE Digital Design Måndag 14/

Laboration i digitalteknik Introduktion till digitalteknik

Laborationshandledning

Laborationshandledning

D2 och E3. EDA321 Digitalteknik-syntes. Fredag den 13 januari 2012, fm i M-salarna

Tenta i Digitalteknik

IE1204 Digital Design

Programmerbar logik (PLD) Programmeringsspråket VHDL Kombinatoriska funktioner i VHDL för PLD Sekvensfunktioner i VHDL för PLD

IE1205 Digital Design: F4 : Karnaugh-diagrammet, två- och fler-nivå minimering

IE1204/5 Digital Design typtenta

Quine McCluskys algoritm

Digital elektronik CL0090

Lösningförslag till Exempel på tentamensfrågor Digitalteknik I.

+5V. start. Styrsystem. stopp. Tillståndsmaskiner

Digitalteknik F9. Automater Minneselement. Digitalteknik F9 bild 1

DIGITALTEKNIK. Laboration D172

Avkodning av minnen (och I/O)

+5V. start. Styrsystem. stopp. Tillståndsmaskiner

Tentamen i Digital Design

Sekvensnät. William Sandqvist

Digital Design IE1204

Minnet. Minne. Minns Man Minnet? Aktivera Kursens mål: LV3 Fo7. RAM-minnen: ROM PROM FLASH RWM. Primärminnen Sekundärminne Blockminne. Ext 15.

Konstruktionsmetodik för sekvenskretsar

Läsminne Read Only Memory ROM

IE1205 Digital Design: F8: Minneselement: Latchar och Vippor. Räknare

Grundläggande Datorteknik Digital- och datorteknik

Tenta i Digitalteknik

Mintermer. SP-form med tre mintermer. William Sandqvist

Avkodning av minnen (och I/O)

SMD033 Digitalteknik. Digitalteknik F1 bild 1

Konstruktionsmetodik för sekvenskretsar. Föreläsning 7 Digitalteknik Mattias Krysander Institutionen för systemteknik

Försättsblad till skriftlig tentamen vid Linköpings universitet

Digital- och datorteknik

Lösningsförslag till tentamen i Digitalteknik, TSEA22

Tentamensskrivning 11 januari 2016

Tenta i Digitalteknik

Kodlås. Kopplingsschema över kodlåset PAL-18

Transkript:

IE1205 Digital Design: F10: Synkrona tillståndsautomater del 2

Sekvensnät Om en och samma insignal kan ge upphov till olika utsignal, är logiknätet ett sekvensnät. Det måste då ha ett inre minne som gör att utsignalen påverkas av både nuvarande och föregående insignaler!

Grundläggande metod för konstruktion av statemaskiner 1. Analysera specifikationen för kretsen 2. Skapa tillståndsdiagram 3. Ställ upp tillståndstabellen 4. Minimera tillståndstabellen 5. Tilldela koder för tillstånden 6. Välj typ av vippor 7. Realisera kretsen mha Karnaugh-diagram Exempel: Flaskautomat

Moore-Automat Tillstånd (State) Ingångssignaler Nästa tillstånd (NEXT STATE DECODER) Tillståndsregister (STATE REGISTER) Utgångsavkodare (OUTPUT DECODER) Utgångssignaler Clk I en Moore-automat beror utgångssignalerna bara på nuvarande tillstånd 4

Input vs Output - Moore Tillståndet (State) ändras här (på klockflanken) Input-sekvens I 1 I 2 O 1 O 2 Output-sekvens Output syns efter att tillståndet (state) har ändrats

Mealy-Automaten (forts.) Tillstånd (State) Ingångssignaler Nästa tillstånd (NEXT STATE DECODER) Tillståndsregister (STATE REGISTER) Utgångsavkodare (OUTPUT DECODER) Utgångssignaler Clk I en Mealy-Automat beror utgångssignalerna både på nuvarande tillstånd och ingångarna 6

Input vs Output - Mealy Tillståndet (State) ändras här (på klockflanken) Input-sekvens I 1 I 2 O 1 O 2 Output-sekvens Output syns direkt efter att input har ändrats

Överblivna tillstånd Ibland får man några states över när man väljer kod. Överblivna states måste tas om hand så att inte statemaskinen låser sig vid uppstart (om man inte använder sig av reset vill säga)

Exempel: Sekvensräknare (0,0,1) 3 tillstånd => 2 vippor. Ett tillstånd över... Farlig övergång (automaten låser sig) S3 - S1 0 S0 0 Om maskinen råkar starta eller hamna i detta tillstånd vill vi att den så snart som möjligt hittar in i sekvensen. S2 1

Räknaren som automat Q + 1 D 1 Q 1 Nästa Tillstånds avkodare Q + 0 D 0 Q 0 Utgångs avkodare f Clock

Nextstate-funktionen S0 S1 S2 Nuv. värde Utsignal Nästa värde D-vippa Q 1 Q 0 f Q + + 1 Q 0 D 1 D 0 0 0 0 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 0 0 0 1 1 - - - (ej 11) - -

( RESET-generator chip ) Matningsspänning på ger RESET i 200 ms Om matningsspänningen får problem, eller sjunker under viss nivå, så blir det RESET Bättre än att behöva skaffa extra skydd, är att designa förebyggande och från början ta hand om alla tillstånd

Karnaughdiagram Q 0 Q 1 0 1 0 0 1 1 0-1 Q 0 Q 1 0 1 0 1 0 1 0-0 Q 0 Q 1 0 1 0 0 0 1 1 - Q 1 D1 Q0 Q 0 D0 Q1 Q0 f Q 1 OK, 10 inte 11!

State-tabell efter Karnaugh-minimering Nuv. värde Utsignal Nästa värde D-vippa Q 1 Q 0 f Q + + 1 Q 0 D 1 D 0 0 0 0 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 0 0 0 1 1 1 1 0 (ej 11) 1 0 Dvs, det extra tillståndet går in i S2 i huvudsekvensen...

Exempel: Sekvensräknare (0,0,1) S3 1 S0 0 S1 0 Om maskinen råkar starta i detta läge så kommer den att gå rakt till S2. S2 1 Bättre: Meddela att ett fel har inträffat!

Räknaren Q + 1 D 1 Q 1 Q1 Q 0 Q Q 0 1 Q0 Q + 0 D 0 Q 0 f Q 1 f Clock

Grindnät för sekvensen Q1 Q 0 Q + 1 D 1 Q 1 f Q 1 f Q Q 0 1 Q0 Q + 0 D 0 Q 0 Clock

Grindnät för sekvensen f Q 1 Q 0 Q 1 Q 0 Clk Alternativt sätt att rita

Tillståndsminimering När man konstruera komplexa tillståndsmaskiner så kan det lätt hända att det finns ekvivalenta och därmed redundanta tillstånd som kan tas bort för att få en effektivare implementering z=0 z=1 z=0 z=1 A B A B D C z=1 z=0 19

Exempel Tillståndsminimering A z = 1 B z = 1 D z = 1 C z = 0 F z = 0 G z = 0 E z = 0 Använder denna Moore-Automat minimalt antal tillstånd? 20

Tillståndsminimering Hur kan vi visa att två tillstånd är ekvivalenta? S i och S j är ekvivalenta om och endast om de, för varje möjlig insekvens, genererar identisk utsekvens oberoende om S i eller S j är ursprungligt tillstånd

Blockminimering Metod för att minimera antalet tillstånd 1. Börja med ett block 2. Gruppera tillstånd som har olika utsignaler 3. För varje tillstånd i respektive grupp, dela upp i nya grupper beroende på om dess efterföljande tillstånd är i olika grupper 4. Repetera tills föregående uppdelning ekvivalent med nuvarande

Tillståndsminimering Följande exempel illustrerar en minimeringsmetod för att förstå konceptet för tillståndsminimeringen Syntesverktyg använder andra algoritmer 23

Exempel Tillståndsminimering A z = 1 B z = 1 D z = 1 C z = 0 F z = 0 G z = 0 E z = 0 (Moore-Automat) 24

Tillståndsminimering Grundidé Två tillstånd är inte ekvivalenta om de har olika utgångsvärden, om 1. de har olika utgångsvärden A z = 1 B z = 0 25

Tillståndsminimering Grundidé Två tillstånd är inte ekvivalenta om de har olika utgångsvärden, 2. om åtminstone en av tillsåndsövergångarna går till olika efterföljande tillstånd A z = 1 B z = 1 w=1 w=1 C z = 1 D z = 0 26

Tillståndstabell Present Next state Output state z A B C 1 B D F 1 C F E 0 D B G 1 E F C 0 F E D 0 G F G 0 Ursprungligt tillståndsdiagram Ursprunglig tillståndstabell

Exempel Tillståndsminimering Start Bara en block med alla tillstånd P 1 =(ABCDEFG) 28

Exempel Tillståndsminimering Steg 1 Vilka tillstånd har olika utsignaler? ABD har utsignal z = 1 CEFG har utsignal z = 0 => P 2 =(ABD)(CEFG) 29

Exempel Tillståndsminimering Steg 2 Vilka tillstånd har olika följdtillstånd? Block ABD O-successor: A > B, B > D, D > B (alla övergångar till samma block) 1-successor: A > C, B > F, C > G (alla övergångar till samma block) Block CEFG O-successor: C > F, E > F, F > E, G > F (alla övergångar till samma block) 1-successor: C > E, E > C, F > D, G > G (F > D går till ett annat block) => P 3 =(ABD)(CEG)(F) 30

Exempel Tillståndsminimering Steg 3 Vilka tillstånd har olika följdtillstånd? I föregående iteration var alla övergångar från ABD till samma block (CEFG), men eftersom detta block ändrats (till (CEG)(F)) måste vi analysera ABD igen: Block ABD O-successor: A > B, B > D, D > B (alla övergångar till samma block) 1-successor: A > C, B > F, C > G (B > F går till ett annat block) => P 4 =(AD)(B)(CEG)(F) 31

Exempel Tillståndsminimering Steg 4 Vilka tillstånd har olika följdtillstånd? (Vi behöver bara analysera (CEG) Block CEFG O-successor: C > F, E > F, G > F (alla övergångar till samma block) 1-successor: C > E, E > C, G > G (alla övergångar till samma block) Iterationen är avslutat Fyra tillstånd behövs: P 4 =(AD)(B)(CEG)(F) 32

Slutgiltig Tillståndstabell Present Nextstate Output state z A B C 1 B A F 1 C F C 0 F C A 0 33

Slutgiltig Tillståndsdiagram A z = 1 C z = 0 B z = 1 F z = 0 34

Tillståndsminimering A z = 1 B z = 1 D z = 1 A z = 1 B z = 1 C z = 0 F z = 0 G z = 0 C z = 0 F z = 0 E z = 0 Före minimering Efter minimering

Analys av sykrona sekvensnät Given en implementering av en synkron krets, vi kan ta fram funktionen genom att göra syntesstegen I omvänd ordning! 1. Ta fram uttrycken för nästa-tillståndsavkodare utgångsavkodare 2. Ta fram tillståndstabellen 3. Rita tillståndsdiagrammet 36

Exempel Analys av sykrona sekvensnät Y 1 D Q y 1 z w Q Y 2 D Q y 2 Clock Q Resetn 37

Exempel Analys av sykrona sekvensnät Y 1 D Q y 1 z w Q Y 2 D Q y 2 Y Alt: 1 1 wy1 wy2 Clock Resetn Q Y Alt: 2 1 wy1 wy2 Y Alt: 3 1 wy1 wy2

Exempel Analys av sykrona sekvensnät 1. Ta fram uttrycken för nästa-tillståndsavkodare utgångsavkodare Y Y 1 2 z wy wy 1 1 y 1 y wy wy 2 2 2 39

Exempel Analys av sykrona sekvensnät 2. Ta fram tillståndstabellen Next State Present Output state y 2 y 1 z Y 2 Y 1 Y 2 Y 1 0 0 0 0 01 0 0 1 0 0 10 0 1 0 0 0 11 0 1 1 0 0 11 1 Present Next state Output state z A A B 0 B A C 0 C A D 0 D A D 1 40

Tillståndsdiagram Present Next state Output state z A A B 0 B A C 0 C A D 0 D A D 1 w 0 A z = 0 w 1 B z = 0 Rita färdigt tillståndsdiagrammet själv. (På övning 6 löser vi ett liknande problem kretsen är en tre i rad - krets). C z = 0 D z = 1

Tillståndsdiagram Present Next state Output state z A A B 0 B A C 0 C A D 0 D A D 1 Ibland kan man behöva ändra ordningen på tillstånden för att få ett tydligare diagram w 0 w 0 A z = 0 C z = 0 w 1 w 0 w 1 w 1 w 0 B z = 0 D z = 1 w 1

Tillståndsdiagram Present Next state Output state z A A B 0 B A C 0 C A D 0 D A D 1 C och D har bytt plats snyggare, inga korsande tillståndspilar w 0 w 0 A z = 0 D z = 1 w 1 w 0 w 1 B z = 0 w 0 w 1 C z = 0 w 1

ASM-Charts För att beskriva större tillståndsmaskiner används ofta ett annat diagram: Algorithmic State Machine (ASM) Charts Det är ett flödesdiagram med tre element Tillståndslåda (State Box) Beslutslåda (Decision Box) Villkorlig utgångslåda (Conditional Output Box) 44

ASM-Charts En ASM-Chart är ett flödesdiagram med tre element State name 0 (False) Condition 1 (True) expression Output signals or actions (Moore type) Conditional outputs or actions (Mealy type) (b) Decision box (a) State box (c) Conditional output box 45

ASM-Charts Tillståndslåda (State Box) Representerar ett tillstånd i ett FSM utgångsvärden för tillståndet anges här (Moore-outputs) Beslutslåda (Decision Box) Beroende på värden på insignaler bestäms övergången till nästa tillstånd Villkorlig utgångslåda (Conditional outputs) Här anges värden av utgångarna vid en tillståndsövergång (Mealy-outputs) 46

två i rad Moore Reset 0 A w 1 Reset Clk w w z C B 0 w 1 C z 0 1 w Bara i tillstånd C har z värdet 1

två i rad Mealy 0 A: Z = 0 W 1 Reset z = 0 A Reset Clk w w z C z = 0 z = 1 B B: Z = W z = 0 0 1 W Bara vid tillståndsövergången B-till-B med har z värdet 1

två i rad Mealy Reset 0 A w 1 Reset z = 0 A Reset Clk w w z C z = 0 z = 1 B B 0 1 w z z = 0 Bara vid tillståndsövergången B-till-B med har z värdet 1

Tillståndsautomater Formell Model För att behandla tillståndsmaskiner matematisk behöver man en formell model Följande model kan beskriva både Moore- och Mealy-automaten 50

Tillståndsautomater Formell Model w 1 z 1 Inputs w n Combinational circuit z m Outputs y k Y k Present-state variables Next-state variables y 1 Y 1 51

Tillståndsautomater Formell Model En tillståndsmaskin kan formell definieras med M ( W, Z, S, j, ) W, Z, och Y beskriver ingångarna, utgångarna och tillsånd j beskriver tillståndsövergångsfunktionen S( t 1) j [ W( t), S( t)] λ beskriver utgångsfunktion Z [ W( t), S( t)] Z [ S( t)] Mealy maskin Moore maskin 52

Formell modell för tillståndsautomat ),,,, ( j S Z W M )) ( ), ( ( ) ( )) ( ( ) ( )) ( ), ( ( ) ( t S t W t t S t t S t W t t S Mealy Moore j )...,... (... )... (... )...,... (... ) ( 1 1 1 1 1 1 1 1 y y w w z z Z y y z z Z y y w w Y Y t t S k n m Mealy k m Moore k n k j

Tillståndsmaskiner Överblivna tillstånd Tillståndsminimering ASM-chart Formell modell