Digital Design IE1204

Relevanta dokument
Digital Design IE1204

IE1205 Digital Design: F9: Synkrona tillståndsautomater

Digital Design IE1204

Digital Design IE1204

Digital Design IE1204

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

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

Sekvensnät Som Du kommer ihåg

Digital Design IE1204

Digital Design IE1204

Digital Design IE1204

Digital Design IE1204

Digital Design IE1204

Digital Design IE1204

IE1204 Digital Design

Digitalteknik 7.5 hp distans: 5.1 Generella sekvenskretsar 5.1.1

Tentamen IE Digital Design Fredag 15/

Digital Design IE1204

IE1204 Digital Design

Tentamen IE Digital Design Måndag 23/

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

Digital Design IE1204

Digital Design IE1204

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

Tentamen i IE1204/5 Digital Design Torsdag 29/

Digital Design IE1204

Sekvensnät. William Sandqvist

Asynkrona sekvensmaskiner

Tentamen i IE1204/5 Digital Design onsdagen den 5/

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

DESIGN AV SEKVENTIELL LOGIK

Programmerbar logik och VHDL. Föreläsning 4

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

Tentamen i IE1204/5 Digital Design onsdagen den 5/

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

Tenta i Digitalteknik

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

TSEA22 Digitalteknik 2019!

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

Tenta i Digitalteknik

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

Repetition och sammanfattning av syntes och analys av sekvensnät

Omtentamen IE Digital Design Måndag 14/

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

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

Repetition delay-element

SEKVENSKRETSAR. Innehåll

Konstruktionsmetodik för sekvenskretsar

Tentamen i IE Digital Design Fredag 21/

Repetition TSIU05 Digitalteknik Di/EL. Michael Josefsson

Sekvensnät i VHDL del 2

Tentamen IE Digital Design Fredag 13/

Digital Design IE1204

Flaskautomaten Ett design-exempel av Ingo Sander

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

Digital Design IE1204

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

IE1204/IE1205 Digital Design

TSEA22 Digitalteknik 2019!

Digitala system EDI610 Elektro- och informationsteknik

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

Tenta i Digitalteknik

IE1204/5 Digital Design typtenta

DIGITALTEKNIK. Laboration D172

Tenta i Digitalteknik

Mintermer. SP-form med tre mintermer. William Sandqvist

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

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

DIGITALTEKNIK I. Laboration DE2. Sekvensnät och sekvenskretsar

Tentamen IE1204 Digital Design Måndag 15/

Tenta i Digitalteknik

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

F5 Introduktion till digitalteknik

Tenta i Digitalteknik

IE1204/5 Digital Design typtenta

Digitalteknik F9. Automater Minneselement. Digitalteknik F9 bild 1

VHDL 1. Programmerbara kretsar

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

Låskretsar och Vippor

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

Digital Design IE1204

Tentamen. TSEA22 Digitalteknik 5 juni, 2015, kl

Tenta i Digitalteknik

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

Tentamen i Digitala system - EDI610 15hp varav denna tentamen 4,5hp

IE1204 Digital Design

Digital Design IE1204

Programmerbara kretsar och VHDL 2. Föreläsning 10 Digitalteknik, TSEA22 Oscar Gustafsson Institutionen för systemteknik

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

Digital elektronik CL0090

Hjälpmedel: Appendix A. VHDL-syntax. (bifogas detta prov) Appendix B.2. IEEE-package (bifogas detta prov)

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

Grundläggande Datorteknik Digital- och datorteknik

Tentamen i Digital Design

Sekvensnät vippor, register och bussar

Grundläggande digitalteknik

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

Digital- och datorteknik

SMD033 Digitalteknik. Digitalteknik F1 bild 1

Transkript:

Digital Design IE1204 F9 Tillståndsautomater del1 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

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!

Moore-automat Tillstånd (State) Nästa tillstånd (NEXT STATE DECODER) Tillståndsregister (STATE REGISTER) Utgångsavkodare (OUTPUT DECODER) Ingångssignaler Utgångssignaler Clk För Moore-automaten beror utsignalerna på insignalerna och det inre tillståndet. Det inre minnet är tillståndsregistret som består av D-vippor.

Tillståndsregistrets D-vippor Tillståndsregistrets D-vippor bromsar upp kapplöpningen mellan signalerna tills värdet är stabilt. (Jämför med tullstationen).

Tillståndsregistrets D-vippor Tillståndsregistrets D-vippor bromsar upp kapplöpningen mellan signalerna tills värdet är stabilt. (Jämför med tullstationen).??

Tillståndsregistrets D-vippor Tillståndsregistrets D-vippor bromsar upp kapplöpningen mellan signalerna tills värdet är stabilt. (Jämför med tullstationen).?!?!

Snabbfråga Vippor Vilket av följande tidsdiagram är giltigt för en flanktriggad D flip-flop? In1 D Q Out In2 Clock In1 In2 Out In1 In2 Out In1 In2 Out Alt: A Alt: B Alt: C

Snabbfråga Vippor Vilket av följande tidsdiagram är giltigt för en flanktriggad D flip-flop? In1 D Q Out In2 Clock In1 In2 Out In1 In2 Out In1 In2 Out Alt: A D kopieras till utgången vid flanken, dvs när Clock går från 0 till 1 Alt: B Alt: C

Snabbfråga Latch Vilket av följande tidsdiagram är giltigt för en D Latch? In1 D Q Out In2 Enable In1 In2 Out In1 In2 Out In1 In2 Out Alt: A Alt: B Alt: C

Snabbfråga Latch Vilket av följande tidsdiagram är giltigt för en D Latch? In1 D Q Out In2 Enable In1 In2 Out In1 In2 Out In1 In2 Out Alt: A Alt: B Alt: C D kopplas till utgången när Enable är 1, låses när Enable är 0

Designexempel två i rad Sekvensdetektor. Om w har varit 1 under två (eller fler) klockcykler i rad skall z = 1. (Reset) Clk w w z C Specifikation Sekvenskretsen har en ingång w och en utgång z Om ingången w har varit 1 under nuvarande och föregående klockcykel så ska utgången z sättas till 1 Använd en Moore-automat med D-vippor för att realisera konstruktionen

Tillståndsdiagram två i rad Reset Tillstånd w = 1 w = 0 A z = 0 B z = 0 A ingen i följd B en i följd C två eller fler i följd w = 0 w = 0 w = 1 Tillståndsövergång Tillståndsbeteckning C z = 1 w = 1 Värde av utgångssignal

Tillståndstabell Present Next state Output state w = 0 w = 1 z A A B 0 B A C 0 C A C 1 Tre tillstånd två vippor behövs för att minnas tillståndets nummer!

två i rad som Moore-automat w Combinational circuit Y 1 y 1 Combinational circuit z Y 2 y 2 Clock

Designbeslut Designern måste bestämma vilka vippor som ska användas D-, T-, eller JK-vippa Designern måste välja koden för varje tillstånd

Designbeslut Denna gång givet: D-vippor Tillståndsavkodning A = 00, B = 01, C = 10 Koden 11 ska inte förekommer. Vi väljer don t care.

Kodad tillståndstabell A = 00 B = 01 C = 10 Next state Present state w = 0 w = 1 Output z y Y Y 2 y Y Y 1 2 1 2 1 A 00 00 01 0 B 01 00 10 0 C 10 00 10 1 11 dd dd d Y Y f ( y y w) z f ( y y ) 2 1 2 1 2 1

Nästa tillståndsavkodare ) ( ) ( ) ( ) ( 1 2 1 2 1 1 2 2 1 2 1 2 y y f z w y y f Y w y y f Y w y y f Y Y Nästa tillståndsavkodaren består av de två logiknäten som finns som ingångsnät till de två vipporna. För att kunna minimera logiknäten skriver man in sanningstabellerna i Karnaughdiagram.

Från kodad tillståndstabell till Karnaughdiagram Y2Y1 f ( y2 y1w) Y2 f ( y2 y1w) Y1 f ( y2 y1w) y y 2 1 Y 1 w 00 01 11 10 0 1 0 0 1 0 d d 0 0 Y 1 wy 1 y 2 y y 2 1 Y w 2 00 01 11 10 0 0 0 d 0 1 0 1 d 1 Y 2 wy w( y y ) 2 1 1 wy 2

Utgångsavkodaren z f ( y 2 y1) y 1 y 2 0 1 0 0 0 1 1 d z y 2

Implementeringen Y 2 wy 1 wy w( y1 y2) Y 1 wy 1 y 2 2 z y 2

Tidsdiagram två i rad Clock w y 1 y 2 z 1 0 1 0 1 0 1 0 1 0 t 0 t 1 t 2 t 3 t 4 t 5 t 6 t 7 t 8 t 9 t 10 Tillståndsöver -gångar sker bara på den positiva klockflanken!

Med andra beteckningar Nuvarande tillstånd y Nästa tillstånd y Övningshäfte och Hemert: y2 y1 f ( y2y1w) y2 f ( y2y1w) y1 f ( y2y1w)

Med annan uppställning y2 y1 f ( y2y1w) y2 f ( y2y1w) y1 f ( y2y1w) A B Övningshäftet C använder denna metod Man kan direkt ställa upp den kodade tillståndstabellen som ett Karnaugh-diagram.

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

Moore automaten Present Next state Output state w = 0 w = 1 z A A B 0 B A C 0 C A C 1

Mealy automaten Present Next state state w = 0 w = 1 Output z w = 0 w = 1 A A B 0 B A C 0 C A C 1 0 0 1 Två av tillstånden som bara skiljer i utsignal kan slås ihop insignalen kan användas för att skilja utsignalerna!

Mealy automaten Present Next state state w = 0 w = 1 Output z w = 0 w = 1 A A BC 0 BC A BC 0 0 1 Reset w = 1 z = 0 w = 0 z = 0 A BC w = 1 z = 1 w = 0 z = 0

Tillståndsdiagram Mealy Två i rad Tillståndsdiagrammet för Mealy-automaten behöver bara två tillstånd Utsignalen beror på både tillstånd och insignaler Reset w = 1 z = 0 Värde av ingångssignal w = 0 z = 0 A B w = 1 z = 1 Tillståndsbeteckning w = 0 z = 0 Värde av utgångssignal

Tillståndstabell Reset w = 1 z = 0 w = 0 z = 0 A B w = 1 z = 1 w = 0 z = 0 Present Next state Output z state w = 0 w = 1 w = 0 w = 1 A A B 0 0 B A B 0 1 Två tillstånd bara en vippa behövs!

Kodad tillståndstabell Y f ( y w) z f ( y w) Present Next state Output state w = 0 w = 1 w = 0 w = 1 A = 0 B = 1 y Y Y z z A 0 0 1 0 0 B 1 0 1 0 1 Direkt ur tabellen: Y w z yw

Implementeringen z w D Q y Clock Q Resetn

Tidsdiagram Utsignalen kan ändrar sig under hela klockperioden eftersom den är en funktion av insignalen Jämfört med Moore-automaten så reagerar Mealyautomaten tidigare (bitsekvensen detekteras i t 4 jämfört med t 5 i Moore-automaten) Clock w y z 1 0 1 0 1 0 1 0 t 0 t 1 t 2 t 3 t 4 t 5 t 6 t 7 t 8 t 9 t 10

Mealy med utgångsregister Nackdelen med Mealy-automaten är att utsignalen kan ändras under hela klockperioden Man kan lägga till en register (vippa) på utgången så för att synkronisera utgången med klockflanken z D Q Z w D Q y Q Q Clock Resetn

Tidsdiagram med utgångsregister Med ett utgångsregister så försvinner skillnaden mellan tidsdiagrammen! Clock w y z Z 1 0 1 0 1 0 1 0 1 0 t 0 t 1 t 2 t 3 t 4 t 5 t 6 t 7 t 8 t 9 t 10

Snabbfråga automater Vilket/vilka av följande tidsdiagram kan genereras från en Moore automat?

Snabbfråga automater Vilket/vilka av följande tidsdiagram kan genereras från en Moore automat?

Snabbfråga automater Vilket/vilka av följande tidsdiagram kan genereras från en Mealy automat?

Snabbfråga automater Vilket/vilka av följande tidsdiagram kan genereras från en Mealy automat?

Moore vs Mealy Moore-automatens utgångsvärden beror bara på det nuvarande tillståndet Mealy-automatens utgångsvärden beror på det nuvarande tillståndet och värden på ingångssignalerna Mealy-automaten behöver ofta färre tillstånd Mealy-automatens utsignaler är inte synkroniserade med klockan, varför man ofta lägger till ett utgångsregister

Val av tillståndskodning Valet av tillståndskodningen kan spela en stor roll för implementeringen eftersom den påverkar logiken för Next-state-decoder Utgångsavkodare

två i rad tillståndsdiagram Reset w = 1 w = 0 A z = 0 B z = 0 w = 0 w = 0 w = 1 C z = 1 w = 1

Tillståndskod = Binärkod A = 00 B = 01 C = 10 11 Next state Present state w = 0 w = 1 Output z y 2 y 1 Y 2 Y 1 Y 2 Y 1 A 00 00 01 0 B 01 00 10 0 C 10 00 10 1 11 dd dd d

Realisering (Binärkod) 2 D-vippor 2 AND-grindar 1 OR-grind

Tillståndskod = Graykod I Gray-koden ändras bara en bit åt gången, dvs 00, 01, 11, 10 Gray-koden är bra för räknare A = 00 B = 01 C = 11 10 Next state Present state w = 0 w = 1 Output z y 2 y 1 Y 2 Y 1 Y 2 Y 1 A 00 00 01 0 B 01 00 11 0 C 11 00 11 1 10 dd dd d

Realisering (Graykod) 2 D-vippor 1 AND-grind Y 2 D Q y 2 z Eftersom Graykoden lyckades bra har detta sekvensnät tydligen räknaregenskaper w Y 1 D Q Q y 1 Clock Q Resetn

One-Hot-kodning One-hot-kodningen använder en vippa per tillstånd För varje tillstånd är en bit hot (1), alla andra bitar är 0, dvs 0001, 0010, 0100, 1000 One-hot kodningen minimerar den kombinatoriska logiken men ökar antalet vippor

Vilken kod ska man välja? Det finns inte en kod som är den bästa i alla lägen, utan det beror helt på tillståndsdiagrammet Man kan även ha egna koder som passar till konstruktionen, t ex 00, 11, 10, 01

FSM-Demo Finite State Machine (FSM) Kör en motor fram/back varannan gång Automaten med logikkretsar Programmerbar logik och VHDL

Demo. - wait - cw - wait - ccw - Z0 Z1 Z 2 Z3 q q q q q q q q 2 1 2 1 2 1 2 1 0 0 0 1 1 1 1 0 wait cw wait ccw i= i q 2 q 1 Med denna tillståndskodning (Graykod) så behövs det ingen utgångsavkodare!

Demo. - wait - cw - wait - ccw - i q 2 q 1 i= Kan Du ställa upp den kodade tillståndstabellen och Karnaughdiagrammen själv?

Demo. - wait - cw - wait - ccw - i q 2 q 1 q 2 i q1 i q2 q1 i q1 i q2

- wait - cw - wait - ccw - q 2 i q1 i q2 q1 i q1 i q2 Med NAND-grindar

- wait - cw - wait - ccw - Med 74-seriens standardkretsar 7400 7400 7474 Det behövs också klockpulser. Tumregel: tre gånger högre frekvens än insignalernas. ( här ger 10 Hz tillräckligt snabb respons samtidigt som kontaktstudsar undertrycks)

CPLD (MAX)? Typiskt 64 Macroceller Teknik: AND-OR array (Större MAX har MUX-tree)

FPGA (Cyclone II)? Typiskt 50000 logikelement Teknik: MUX tree

Rätt verktyg Man skall väl inte skjuta mygg med luftvärnskanon när det finns myggsprej? Vilket är det rätta verktyget för digital designkursen

CPLD (MAX) Med ett breakoutboard kan man använda kopplingsdäck till komponenter som egentligen är avsedda för ytmontering på kretskort. Man kan enkelt prova olika kopplingar. På så sätt använder vi samma teknik som i övriga laborationer trots att vi nu går över till mer komplexa så kallade CPLD-kretsar och programmerar dem med VHDLspråket.

Programmerbar logik med VHDL MAX3000 QuartusII

VHDL-koden Tillståndsregister med D-vippor: state_register: -- (the flipflops) process(clk) begin if rising_edge(clk) then state <= nextstate; end if; end process; Vi behöver två vippor.

VHDL-koden next_state_decode: -- next state decoding part process(present_state, I, R) begin if I = '1' then case present_state is when 0 => next_state <= 1; when 1 => next_state <= 1; when 3 => next_state <= 2; when 2 => next_state <= 2; end case; else -- I = '0 case present_state is when 0 => next_state <= 0; when 1 => next_state <= 3; when 3 => next_state <= Ooops; when 2 => next_state <= Ooops; end case; end if ; end process;? Vad ska stå i stället för Ooops!

VHDL-koden next_state_decode: -- next state decoding part process(present_state, I, R) begin if I = '1' then case present_state is when 0 => next_state <= 1; when 1 => next_state <= 1; when 3 => next_state <= 2; when 2 => next_state <= 2; end case; else -- I = '0 case present_state is when 0 => next_state <= 0; when 1 => next_state <= 3; when 3 => next_state <= 3;! when 2 => next_state <= 0; end case; end if ; end process;

Pin-planering

Chip-programmering Har Du sett den här JTAG-kontakten på något datorkretskort?

Prova resultatet! Klockpulser 10 Hz För denna tillämpning

MAX-krets fungerar