Presentation laddar. Vänta.

Presentation laddar. Vänta.

William Sandqvist Vad kännetecknar ett sekvensnät? Ett sekvensnät kännetecknas av att nätets utsignaler inte bara beror av det just rådande.

Liknande presentationer


En presentation över ämnet: "William Sandqvist Vad kännetecknar ett sekvensnät? Ett sekvensnät kännetecknas av att nätets utsignaler inte bara beror av det just rådande."— Presentationens avskrift:

1 William Sandqvist Vad kännetecknar ett sekvensnät? Ett sekvensnät kännetecknas av att nätets utsignaler inte bara beror av det just rådande tillståndet hos insignalerna utan även av tidigare tillstånd. Skillnaden mellan ett sekvensnät och ett kombinatoriskt nät är att utgångarna "återkopplas" till nätets ingångssida. Då uppkommer självhållningseffekter i nätet på samma sätt som hos SR- latchen. Detta är förklaringen till att en och samma insignal kan ge upphov till skilda utsignaler vid olika tillfällen. Sekvensnät styr i hissar, trafikljus och i datorernas CPU.

2 William Sandqvist Moore-automat En vanlig typ av sekvensnät är Moore-automaten. Nätets ”minnesfunktion” sitter i ett Tillståndsregister uppbyggt av D-vippor. Ett logiknät – Nästa tillståndsavkodaren – förutsäger det kommande tillståndet utifrån det nuvarande tillståndet och insignalerna. När klockpulsen CP kommer hamnar man i det nya tillståndet.

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

4 William Sandqvist Tillståndsregistret – D-vippor D-vippor har ofta också låskretsingångar av SR-typ. Klockpulsflankerna och D- ingången styr vippan, men bara om SR-ingångarna "tillåter" det. SR-ingångarna är Asynkrona, direktverkande, oberoende av klockan, medan D-ingången är synkron, och beroende av klockpulserna. Sådana R-ingångar brukar ofta användas till nollställning av kretsarna vid systemstart. ( PR står för Preset och CLR för Clear ) Kombinationskrets, D-vippa och låskrets.

5 William Sandqvist Kaffeautomaten

6 William Sandqvist Exempel: En kaffeautomat Nästa tillståndsavkodaren ska förutsäga nästa tillstånd – ungefär som oraklet i Delfi förutsäger framtiden! Uppgiften är inte omöjlig, det finns en systematisk metod som steg för steg leder till målet. Första steget är att rita ett Tillstånds- diagram. Cirklarna Z0 Z1 och Z2 är tillstånden. Pilarna är möjliga övergångar mellan tillstånden och texten vid pilarna är vilkoret för övergången. Bredvid cirklarna står vad som ska hända i tillstånden. !coin betyder inverterat vilkor 1 betyder alltid

7 William Sandqvist Tillståndsdiagrammet, insignaler Kaffeautomaten har två insignaler. coin från myntinkastet som anger att en pollett passerat en fotocell där. full från en givare som ”övervakar" plastmuggen under fyllningen. coin = 1 när myntet passerar. full = 1 när muggen blir full.

8 William Sandqvist Tillståndsdiagrammet, utsignaler Kaffeautomaten har två utsignaler. drop_cup till en matarenhet för plastmuggar. coffee till en magnetventil för påfyllning av kaffet. Mataren matar fram en mugg var gång drop_cup blir "1", och kaffe fylls på så länge som coffee = 1.

9 William Sandqvist Tillståndsdiagrammet, övergångar I första tillståndet, Z0, gäller för ut- signalerna att man inte släpper någon kopp ( !drop_cup ), och inte häller i någon dryck ( !coffee ) förrän man fått betalning ( coin ). I andra tillståndet, Z1, släpps plast- muggen ( drop_cup ). "1" betyder här "alltid uppfyllt” så nästa klockpuls (om 1 sek) lämnar man således Z1 för Z2. Lämplig klockfrekvens 1 Hz I det tredje tillståndet, Z2, återställs mataren för plastmuggar ( !drop_cup ) och koppen börjar fyllas med dryck ( coffee ). Detta pågår tills muggen är full ( full ). Vi hamnar då åter i utgångsläget.

10 William Sandqvist Kaffeautomaten som Moore-automat Beteckningar. D-vippornas utgångar betecknas med q l q 0, ingångarna, som bär nästa tillstånds signalen, brukar betecknas q l + q 0 + där plustecknet står för det "kommande" tillståndet. Sekvensnätets utgångar och ingångar betecknas u l u 0, i l i 0. Om vippornas utgångar styr utsignalerna direkt slipper man utgångsavkodaren! Tillståndsdiagrammet har tre tillstånd. Tillståndsregistret måste innehålla minst tre olika kombination- er. Det behövs två D- vippor ( 2 2 = 4 >3).

11 William Sandqvist Kodad tillståndstabell ( q l + q 0 + ) = f ( q l q 0, i l i 0 ) Observera att tabellen är uppställd som ett Karnaughdiagram. Detta kommer att under- lätta framtagandet av grindnäten senare! Så här bygger man upp den kodade tillståndstabellen steg för steg … Z0: !full och !coin. Vi väntar på betalning och det finns inte någon full kopp i automaten. Nästa tillstånd blir att stanna kvar, q l + q 0 + = 00. Z0: !full och coin. Den andra kolumnen innebär att betalningen har kommit, nästa tillstånd blir således Z1, q l + q 0 + = 01. Z0: full och coin. Tredje kolumnen innebär att betalningen har kommit, men att en gammal full kopp tydligen finns kvar. Om det är osäkert om någon avlägsnar den bör nästa tillstånd bli att stanna kvar i Z0 (00). Z0: full och !coin. Full kopp (gamla) och inget mynt; stanna kvar i Z0 (00). Z1: Enligt det tidigare presenterade tillståndsdiagrammet ska man från Z1 gå direkt till Z2. Är detta så välbetänkt? !full och !coin. Gå till Z2 (10). Z1: !full och coin. Gå till Z2 (10).Z1: full och coin. En gammal full mugg finns kvar. Släpp inte ner den nya muggen i den gamla! Stanna kvar i Z1 (01). Z1: full och !coin. En gammal full mugg finns kvar. Släpp inte ner den nya muggen i den gamla! Stanna kvar i Z1 (01). ??: I tillståndsdiagrammet har vi glömt bort ett fjärde tillstånd! Det ska normalt inte kunna inträffa, men sekvensnätet kan naturligtvis utsättas för en störning. Tillståndet innebär att automaten kontinuerligt "fyller" kaffe, varför det måste förhindras. Att gå till Z0 (00) oavsett insignal är mest lönsamt ( för automatägaren ). Z2: I de två sista kolumnerna har koppen blivit full och vi ska gå till Z0 (00). I de två första kolumnerna stannar man kvar i Z2 (10) och fortsätter att fylla på dryck.

12 William Sandqvist Ett mer genomtänkt tillståndsdiagram Detta enkla exempel visar den stora fördelen med en systematisk syntes- metod; man tvingas överväga alla möjligheter för att därmed se till att sekvensnätet gör det bästa av varje situation, även sådana som "egentligen" inte ska kunna hända (men som vi alla vet ändå kommer att hända …). Vi kan nu "rätta till" det ursprungliga tillståndsdiagrammet.

13 William Sandqvist Från tabell till grindnät Tabellen kan splittras upp i två Karnaughdiagram, ett för q l + = f ( q l q 0, i l i 0 ) och ett för q 0 + = f ( q l q 0, i l i 0 ). Hoptagningar i Karnaughdiagrammen ger:

14 William Sandqvist Färdig kaffeautomat

15 William Sandqvist Programmerbar logik Programerbar logik. PAL16R4 innehåller fyra D-vippor som har grindnät med programmer- bara AND-grindar. En sådan krets räcker gott och väl till kaffeautomaten …

16 William Sandqvist Programmering av AND-matrisen Nu för tiden programmerar man inte längre kretsarna för hand!

17 William Sandqvist (Hjälp till web-uppgiften …) Så här tolkar Du beteckningarna vid pilarna. Så här överför man Karnaughdiagrammets hoptagningar till "korsningspunkter" i AND- matrisen. Systemet är så konstruerat att Du inte behöver bry dig om vilka rader Du använder eller i vilken ordning Du för in hoptagningarna. Vad innebär XOR-grinden?

18 William Sandqvist Programmeringsspråket VHDL next_state_decode: process ( present_state, COIN, FULL ) begin case present_state is when Z0 => if (NOT COIN OR NOT FULL) = '1' then next_state if FULL = '1' then next_state if FULL = '0' then next_state next_state <= Z3 ; end case ; end process ; end architecture behavior ; library IEEE; use IEEE.std_logic_1164.all; entity coffee_machine is port ( COIN, FULL : in std_logic ; DROP_CUP, COFFEE : out std_logic ) ; end coffee_machine ; architecture behavior of coffee_machine is type state is ( Z0, Z1, Z2, Z3 ) ; signal present_state, next_state : state ; state_register: process ( CLK ) begin if rising_edge( CLK ) then present_state DROP_CUP DROP_CUP DROP_CUP DROP_CUP <= '1' ; COFFEE <= '1' ; end case ; end process ; Entity State register Output decoder Next State Decoder Kaffeautomaten direkt från tillståndsdiagrammet

19 William Sandqvist PIC-processorn. Programkod från tillståndsdiagrammet Vanligen använder man ” switch() case: ” satser. switch(State) { case Z0: if( coin||full ) State = Z0; if( coin&&!full ) State = Z1; break; case Z1: if( full ) State = Z1; if( !full ) State = Z2; break; case Z2: if( full ) State = Z0; if( !full ) State = Z2; break; case Z3: State = Z0; }

20 William Sandqvist

21 Laboration med Moore-automat Kör en motor fram/back varannan gång. Tre olika realiseringar.  Bygg automaten med logikkretsar  Programmerbar logik och VHDL  PIC-processor och tillståndsdiagram

22 William Sandqvist Laborationens automat liknar Pentiums ”Hoppgissare” Pentiums hoppgissning: Det krävs ”två i rad” utförda hopp eller uteblivna hopp för att hoppgissningen ska ändras. - Gissar man hopp laddas pipelinen med instruktioner från hoppdestinationen. - Gissar man uteblivet hopp laddas pipelinen med efter- följande instruktioner. Gissar man rätt sparar man tid – gissar man fel måste pipelinen ”startas om”.

23 William Sandqvist Laboration. - wait - cw - wait - ccw … Fortsätt själv vid labben …

24 William Sandqvist Bara NAND-grindar! OR AND och INV går att framställa med NAND-grindar. För logik- funktioner på SP-form kan man byta AND-OR grindarna mot NAND- NAND "rakt av". Kostnaden i antal grindar blir densamma! Kommer Du ihåg ”Komplett logik NAND-NAND” ?

25 William Sandqvist - wait - cw - wait - ccw -

26 William Sandqvist Laboration, med grindar Med de direktverkande SR- ingångarna kan man styra sekvensnätet som om det vore ett vanligt kombinatoriskt nät! Bra för att kontrollera om man kopplat rätt!

27 William Sandqvist

28 Laboration. Prova programmerbar logik och VHDL Programmet Galaxy dir_ctrl.vhd VHDL  jedec

29 William Sandqvist Laboration. Prova programmerbar logik och VHDL Kretsprogrammeraren ALL 11 jedec-fil waccess jedec  chip

30 William Sandqvist Laboration. Prova PIC- processorprogram switch(State) { case Z0: if( button == OFF ) State = Z0; if( button == ON ) State = Z1; break; case Z1: if( button == OFF ) State = Ooops!; if( button == ON ) State = Ooops!; break; case Z2: if( button == OFF ) State = Z2; if( button == ON ) State = Z3; break; case Z3: if( button == OFF ) State = Z0; if( button == ON ) State = Z3; } toggle628.c

31 William Sandqvist Användningsområden Logikkretsar – numera nästan bara ”lab” i skolor Programmerbar logik – när det är nödvändigt med snabbhet PIC-processor – för praktisk problemlösning


Ladda ner ppt "William Sandqvist Vad kännetecknar ett sekvensnät? Ett sekvensnät kännetecknas av att nätets utsignaler inte bara beror av det just rådande."

Liknande presentationer


Google-annonser