Digital Design IE1204

Relevanta dokument
Sekvensnät Som Du kommer ihåg

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

Digital Design IE1204

IE1205 Digital Design: F9: Synkrona tillståndsautomater

Digital Design IE1204

Digital Design IE1204

Digital Design IE1204

Digital Design IE1204

Digital Design IE1204

IE1204 Digital Design

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

Asynkrona sekvensmaskiner

Digitalteknik 7.5 hp distans: 5.1 Generella sekvenskretsar 5.1.1

Digital Design IE1204

Digital Design IE1204

Digital Design IE1204

IE1204 Digital Design

Digital Design IE1204

Repetition och sammanfattning av syntes och analys av sekvensnät

Digital Design IE1204

Digital Design IE1204

Digital Design IE1204

Digital Design IE1204

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

Tentamen i IE1204/5 Digital Design onsdagen den 5/

Tentamen i IE1204/5 Digital Design onsdagen den 5/

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

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

IE1204/IE1205 Digital Design

Omtentamen IE Digital Design Måndag 14/

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

Programmerbar logik och VHDL. Föreläsning 4

Tentamen IE Digital Design Fredag 15/

Tentamen i IE1204/5 Digital Design Torsdag 29/

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

F5 Introduktion till digitalteknik

Flaskautomaten Ett design-exempel av Ingo Sander

Repetition TSIU05 Digitalteknik Di/EL. Michael Josefsson

Sekvensnät i VHDL del 2

Mintermer. SP-form med tre mintermer. William Sandqvist

SEKVENSKRETSAR. Innehåll

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

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

Tenta i Digitalteknik

Tentamen IE Digital Design Måndag 23/

Tentamen IE Digital Design Fredag 13/

Digital Design IE1204

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

Tentamen i Digital Design

Digital Design IE1204

Digitala system EDI610 Elektro- och informationsteknik

Tenta i Digitalteknik

Tenta i Digitalteknik

IE1204/5 Digital Design typtenta

Tentamen i IE Digital Design Fredag 21/

Repetition delay-element

Tentamen IE1204 Digital Design Måndag 15/

SMD033 Digitalteknik. Digitalteknik F1 bild 1

Grundläggande Datorteknik Digital- och datorteknik

Avkodning av minnen (och I/O)

DIGITALTEKNIK I. Laboration DE2. Sekvensnät och sekvenskretsar

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

Avkodning av minnen (och I/O)

TSEA22 Digitalteknik 2019!

IE1204/5 Digital Design typtenta

DESIGN AV SEKVENTIELL LOGIK

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

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

Tentamen i Digitalteknik, EITF65

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

Digital- och datorteknik

EDA451 - Digital och Datorteknik 2010/2011. EDA Digital och Datorteknik 2010/2011

Exempel på tentamensfrågor Digitalteknik

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

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

Tenta i Digitalteknik

Maurice Karnaugh. Karnaugh-diagrammet gör det enkelt att minimera Boolska uttryck! William Sandqvist

TSEA22 Digitalteknik 2019!

Definition av kombinatorisk logik Olika sätt att representera kombinatorisk logik Minimering av logiska uttryck

IE1204 Digital Design

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

Tentamen med lösningar IE Digital Design Fredag 13/

Styrteknik: Grundläggande logiska funktioner D2:1

Sekvensnät. William Sandqvist

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

Tentamen. TSEA22 Digitalteknik 5 juni, 2015, kl

Digital Design IE1204

TSIU05 Digitalteknik. LAB1 Kombinatorik LAB2 Sekvensnät LAB3 System

Tenta i Digitalteknik

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

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

Grundläggande digitalteknik

D0013E Introduktion till Digitalteknik

Digital- och datorteknik

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

Tenta i Digitalteknik

Quine McCluskys algoritm

DIGITALTEKNIK. Laboration D172

Digital Design IE1204

Digital Design IE1204

Transkript:

Digital Design IE1204 F10 Tillståndsautomater del II william@kth.se

IE1204 Digital Design F1 F3 F2 F4 Ö1 Booles algebra, Grindar MOS-teknologi, minimering F5 F6 Ö2 Aritmetik Ö3 KK1 LAB1 Kombinatoriska kretsar F7 F8 Ö4 F9 Ö5 Multiplexor KK2 LAB2 Låskretsar, vippor, FSM F10 F11 Ö6 KK3 LAB3 FSM, VHDL introduktion F12 Ö7 F13 Asynkron FSM Ö8 F14 tentamen Minnen Föreläsningar och övningar bygger på varandra! Ta alltid igen det Du missat! Läs på i förväg delta i undervisningen arbeta igenom materialet efteråt!

Detta har hänt i kursen Decimala, hexadecimala, oktala och binära talsystemen AND OR NOT EXOR EXNOR Sanningstabell, mintermer Maxtermer PS-form Booles algebra SP-form demorgans lag Bubbelgrindar Fullständig logik NAND NOR CMOS grindar, standardkretsar Minimering med Karnaughdiagram 2, 3, 4, 5, 6 variabler Registeraritmetik tvåkomplementrepresentation av binära tal Additionskretsar Multiplikationskrets Divisionskrets Multiplexorer och Shannon dekomposition Dekoder/Demultiplexor Enkoder Prioritetsenkoder Kodomvandlare VHDL introduktion Vippor och Låskretsar SR-latch D-latch D-vippa JK-vippa T-vippa Räknare Skiftregister Vippor i VHDL Moore-automat Mealy-automat Tillståndskod

Sekvensnät Som Du kommer ihåg

Designmetodik Grundläggande designmetodik för tillståndsmaskiner. 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.

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 För Moore-automaten beror utsignalerna på det inre tillståndet.

Moore: input och output 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 t

Mealy-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 Mealy-Automat beror utgångssignalerna både på nuvarande tillstånd och ingångarna

Mealy: input och output 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 t

Överblivna tillstånd? Ibland får man några states över när man väljer kod. (Totala antalet states är alltid potenser av 2) Överblivna states måste tas om hand så att inte statemaskinen låser sig vid uppstart Ett annat sätt är att man alltid (tex. automatiskt) gör RESET vid uppstart.

( 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

Ex. räknare {0,1,2} 3 tillstånd 2 vippor 2 2 = 4 tillstånd. Ett tillstånd blir över... Farlig övergång ( automaten låser sig ) S3 - S0 0 S1 0 Om maskinen råkar starta i S3 så 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-funktion 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) - - Vi kan specifiera vad som helst här utom att stanna kvar ( dvs. ej 11 )!

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!

Minimerad kodad tillståndstabell 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 till S2 i huvudsekvensen...

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

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

Slutgiltigt tillståndsdiagram S3 1 S0 0 S1 0 Om maskinen råkar starta i detta läge så kommer den nu att gå rakt till S2. S2 1

Tillståndsminimering När man konstruerar 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.

Minimeringsmetod Följande exempel illustrerar en manuell minimeringsmetod syftet är att förklara begreppet tillståndsminimering Observera att CAD-syntesverktyg använder andra (effektivare) algoritmer

Ex. Tillståndsminimering A z = 1 w = 0 B z = 1 w = 0 w = 0 D z = 1 w = 1 w = 1 w = 1 w = 1 C z = 0 w = 0 F z = 0 w = 0 G z = 0 w = 1 w = 1 w = 0 w = 1 w = 0 E z = 0 (Moore-Automat) 7- tillstånd kräver 3 vippor (2 3 = 8)

Inte ekvivalenta tillstånd Det är mycket enklare att skilja ut tillstånd som absolut inte kan vara ekvivalenta än att direkt leta reda på ekvivalenta tillstånd

Minimeringens grundidé Två tillstånd är inte ekvivalenta om de har olika utgångsvärden, dvs. om: 1. de har olika utgångsvärden A z = 1 B z = 0

Minimeringens grundidé Två tillstånd är inte ekvivalenta om de har lika utgångsvärden, men 2. om någon av tillståndsövergångarna leder till olika efterföljande utgångsvärden A z = 1 B z = 1 w=1 w=1 C z = 1 D z = 0

Tillståndstabell Present Next state Output state w = 0 w = 1 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

Minimera tillstånd Partitioner. Grupper av tillstånd. Start P 1. Från början utgör alla tillstånd ett enda block, P 1 = (ABCDEFG)

Minimera tillstånd P 1 = (ABDCDEFG) Steg 2 Gruppera nu tillstånden i grupper efter samma utsignal Vilka tillstånd har samma utsignal? ABD har utsignalen z = 1 CEFG har utsignalen z = 0 P 2 = (ABD)(CEFG) Tillstånden A, B, D kan därför aldrig vara ekvivalenta med något av tillstånden C, E, F, G eller tvärtom

Minimera tillstånd Steg 3 P 2 = (ABD)(CEFG) Vilka följdtillstånd har tillstånden? Block (ABD) w = 0: 0-successor : A (ABD), B (ABD), D (ABD) alla är övergångar till samma block (ABD ) w = 1: 1-successor : A (CEFG), B (CEFG), D (CEFG) alla är övergångar till samma block (CEFG ) P = (ABD)(CEFG) ingen ändring av blocken Block (CEFG) w = 0: 0-successor : C (CEFG), E (CEFG), F (CEFG), G (CEFG) alla är övergångar till samma block (CEFG ) w = 1: 1-successor : C (CEFG), E (CEFG ), F (ABD), G (CEFG) C E G går till samma block F avviker, går till ett annat block P 3 = (ABD)(CEG)(F)

Minimera tillstånd Steg 4 P 3 = (ABD)(CEG)(F) Vilka följdtillstånd har tillstånden? Block (ABD) w = 0: 0-successor : A (ABD), B (ABD), D (ABD) alla är övergångar till samma block ABD w = 1: 1-successor : A (CEG), B (F), D (CEG) A C, D G är övergångar till samma block B F avviker, går till ett annat block P 4 = (AD)(B)(CEG)(F) ny indelning av blocken Block (CEG) w = 0: 0-successor : C (F), E (F), G (F) alla är övergångar till samma block (F) w = 1: 1-successor : C (CEG), E (CEG), G (CEG) alla är övergångar till samma block (CEG ) P 4 = (AD)(B)(CEG)(F) ingen ändring av blocken

Minimerat Nästa partition P 5 blir densamma som P 4. Processen är därför klar. AD respektive CEG är ekvivalenta. A blir en ny beteckning för AD, C blir ny beteckning för CEG. P 4 = (AD)(B)(CEG)(F) = (A )(B)(C )(F)

Minimerad tillståndstabell P 4 = (AD)(B)(CEG)(F) = (A )(B)(C )(F) A är ny beteckning för AD, C är ny för CEG. Present Nextstate Output state w = 0 w = 1 z A B C 1 B A F 1 C F C 0 F C A 0

Minimerat tillståndsdiagram A z = 1 C z = 0 w = 1 w = 0 w = 0 w = 1 w = 0 w = 0 B z = 1 F z = 0 w = 1 w = 1 4 tillstånd kräver 2 vippor (2 2 = 4).

Jämförelse

Värdet av tillståndsminimering? Det är inte säkert att färre tillstånd leder till ett enklare nät! Fördelen med tillståndsminimering ligger i stället i att det blir enklare att skapa det ursprungliga tillståndsdiagrammet när man inte behöver anstränga sig för att det dessutom ska bli minimalt från början! CAD-verktygen minimerar sedan det ursprungliga tillståndsdiagrammet till ett slutgiltigt.

Analys av sekvensnät y 1 Y 1 D Q y 1 y 1? z w Q y 2 y 1 y 2 Clock Resetn Y 2 D Q Q y 2 Svårt att direkt ur schemat fundera ut vad ett sekvensnät gör!

Tänk Moore-automat!

Analysera grindnäten w y 1 w y 2 wy 2 wy 1 Y + 1 = wy1 wy2 z = y 1 y 2 w y 1 wy 1 Y + 2 = wy1 wy2

Fyll i Karnaughdiagram Kan Du fylla i Karnaughdiagrammen med funktionerna? Y 2 + wy = wy1 2 Y 1 = wy1 + wy2 z = y 1 y2

Ifyllda Karnaughdiagram Ifyllda Karnaughdiagram y 1 y 2 Y 2 + wy = wy1 2 Y 1 = wy1 + wy2 z = y 1 y2

Kodad tillståndstabell Slå ihop Karnaughdiagrammen till en kodad tillståndstabell

Kodad tillståndstabell Next State Present Output state w = 0 w = 1 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 Graykod Binärkod ( BV använder binärkod )

Tillståndstabell Kodad tillståndstabell Next State Present Output state w = 0 w = 1 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 Tillståndstabell Present Next state Output state w = 0 w = 1 z A A B 0 B A C 0 C A D 0 D A D 1 Den okodade tillståndstabellen är utgångspunkt om man vill byta till en annan tillståndskodning.

Tillståndsdiagram Present Next state Output state w = 0 w = 1 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 w = 0 w = 1 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 w = 0 w = 1 z A A B 0 B A C 0 C A D 0 D A D 1 w = 0 A z = 0 w = 0 w =1 w = 0 B z = 0 w = 0 w = 1 C och D har bytt plats snyggare, inga korsande tillståndspilar w =1 D z = 1 w =1 C z = 0 Att kräva samma insignal tre gånger i rad är en ofta använd säkerhetsåtgärd.

ASM-charts För att beskriva större tillståndsmaskiner används ofta ett annat diagram: Algorithmic State Machine (ASM) Charts

ASM-chart, tre byggstenar Ett ASM-chart är ett flödesdiagram som byggs upp av tre olika byggstenar. 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

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)

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 Reset 0 A w 1 w = 0 z = 0 Reset A Reset Clk w w z w = 1 z = 0 C B w = 1 z = 1 B 0 1 w z w = 0 z = 0 Bara vid tillståndsövergången B-till-B med w = 1 har z värdet 1

Formell modell för tillståndsautomat För att behandla tillståndsmaskiner matematiskt behöver man en formell modell Följande modell kan beskriva både Moore- och Mealy-automaten

Formell modell för tillståndsautomat 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

Formell modell för tillståndsautomat En tillståndsmaskin kan formellt definieras med M = ( W, Z, S, ϕ, λ) W, Z, och S beskriver ingångarna (W), utgångarna (Z) och tillstånd (S) φ beskriver tillståndsövergångsfunktionen λ beskriver utgångsfunktion

Formell modell för tillståndsautomat ),,,, ( λ ϕ S Z W M = )) ( ), ( ( ) ( )) ( ( ) ( )) ( ), ( ( ) ( t S t W t t S t t S t W t t S Mealy Moore λ λ λ λ ϕ = = = + )...,... (... )... (... )...,... (... ) ( 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 λ λ ϕ = = = = = = + Nu har Du sett hur man uttrycker detta i matematikämnet!

Exempel på automater Exemplet med dryckesautomaten Demo tre i rad krets är det tillräckligt säkert?