Download presentation
Presentation is loading. Please wait.
1
Mäluga süsteemide disain
L12. Mäluga süsteemid, abstraktne automaat L13. Automaatide realiseerimine. L14. Automaatide realiseerimine, minimeerimine ja tükeldamine © Peeter Ellervee I207 - Digitaalloogika ja -süsteemid - L13
2
I207 - Digitaalloogika ja -süsteemid - L13
Disaininäide Neli kahend-sisendit ja -väljundit nt. 4 lülitit (S1-S4) ja 4 valgusdioodi (L1-L4) Sisendite muutumine muudab väljundeid kui S1=1 & S2=0, siis L1←1, muidu L1←0 kui S1=0 & S3↑, siis V++ (V[1]≡L2, V[0]≡L3) kui S1=1 & S2=1 & S4↓, siis L4← ┐L4 Võimalik programm int s3p=0, s4p=0, v=0; l4=0; while (1) { if (s1&!s2) l1=1; else l1=0; if (!s1&((s3^s3p)&s3)) v++; if (v>3) v=0; l2=v/2; l3=v%2; if (s1&s2&((s4^s4p)&!s4)) l4~=l4; s3p=s3; s4p=s4; wait_100ms(); } s1…s4 – lülitid DIP1…DIP4 programmis l1…l4 – LED-d (tuled) leds – kõik 4 ühes sõnas! üksikute bittidega manipuleerimine? © Peeter Ellervee I207 - Digitaalloogika ja -süsteemid - L13
3
Disaininäide – mikrokontroller
Esialgne programm leds: and -> ‘0’; or -> ‘1’ dubleeritud lugemine char leds=0,dip3p=0,dip4p=0,v=0; // Initialiseerimine while (1) { if (DIP1&&!DIP2) leds|=0b1000; else leds&=0b0111; if (!DIP1&&((DIP3^dip3p)&&DIP3)) v++; if (v>3) v=0; leds=(leds&0b1001)|(v<<1); if (DIP1&&DIP2&& ((DIP4^dip4p)&&!DIP4)) leds^=0b0001; dip3p=DIP3; dip4p=DIP4; led_out(leds); delay_100ms; } ROM – 548 / RAM – 81 Optimeeritud programm ~~ Shannoni arendus char leds=0,dip3p=0,dip4p=0,v=0; // Initisialiseerimine while (1) { if (DIP1) { if (DIP2) { if ((DIP4^dip4p)&&!DIP4) leds^=0b0001; leds&=0b0111; } else leds|=0b1000; else { if ((DIP3^dip3p)&&DIP3) v++; if (v>3) v=0; leds=(leds&0b0001)|(v<<1); dip3p=DIP3; dip4p=DIP4; led_out(leds); delay_100ms; ROM – 518 / RAM – 81 © Peeter Ellervee I207 - Digitaalloogika ja -süsteemid - L13
4
I207 - Digitaalloogika ja -süsteemid - L13
Disaininäide – skeem Tegevused kui S1=1 & S2=0, siis L1←1, muidu L1←0 kui S1=0 & S3↑, siis V++ (V[1]≡L2, V[0]≡L3) kui S1=1 & S2=1 & S4↓, siis L4← ┐L4 Kolm parallelset osa kombinatsioon-skeem loendur + loogika T-triger + loogika Kombinatsioonskeem L1 ← S1 & !S2 Loendur + loogika D-tiger – S3p ← S3 v++ ← !S1 & !S3p & S3 siis L2 ←V[1]; L3 ← V[0] T-triger + loogika D-tiger – S4p ← S4 !L4 ← S1 & S2 & S4p & !S4 Asünkroonsed pisihädad takti ja signaali muutuse sünkroniseerimine vt. S3 muutmist… © Peeter Ellervee I207 - Digitaalloogika ja -süsteemid - L13
5
I207 - Digitaalloogika ja -süsteemid - L13
Disaininäide – skeem © Peeter Ellervee I207 - Digitaalloogika ja -süsteemid - L13
6
I207 - Digitaalloogika ja -süsteemid - L13
Digitaalsüsteem Operatsioonosa + juhtosa (e. automaat) © Peeter Ellervee I207 - Digitaalloogika ja -süsteemid - L13
7
I207 - Digitaalloogika ja -süsteemid - L13
Abstraktne automaat Automaat on viisik (quintuple) – M = (S,I,O,d,l) S: (sise)olekute hulk (states) I: sisendite hulk (inputs) O: väljundite hulk (outputs) d: siirdefunktsioon (transition) - d: S I S l: väljundfunktsioon - l: S I O Hulgad on lõplikud ja (üldjuhul) mittetühjad hulkade ja funktsioonide erijuhud – automaatide erijuhud Lähteolek s0 – M = (S,I,O,d,l,s0) © Peeter Ellervee I207 - Digitaalloogika ja -süsteemid - L13
8
I207 - Digitaalloogika ja -süsteemid - L13
Automaatide erijuhud Mealy automaat - M = ( S, I, O, d, l ) S, I, O, d:SIS, l:SIO Moore automaat - M = ( S, I, O, d, l ) S, I, O, d:SIS, l:SO © Peeter Ellervee I207 - Digitaalloogika ja -süsteemid - L13
9
I207 - Digitaalloogika ja -süsteemid - L13
Automaadi süntees J.F. Wakerly “Digital Design: Principles and Practices” – Automaadi olekudiagrammi / tabeli genereerimine (süntees) tabeli süntees plokk-skeemist (plokk-diagrammist) plokk-skeemi genereerimine kõrgtaseme keeltest Automaadi süntees olekudiagrammist / tabelist sisendite, väljundite ja olekute kodeerimine siirde- ja väljundfunktsiooni süntees ja minimeerimine sõltub valitud mäluelementide tüübist (tüüpidest) © Peeter Ellervee I207 - Digitaalloogika ja -süsteemid - L13
10
I207 - Digitaalloogika ja -süsteemid - L13
Automaadi süntees Algoritm programmeerimiskeel (PL) riistvara kirjelduskeel (HDL) Plokk-skeem Automaadi tabel / olekudiagramm käsitsi kirjutamine PL-st / HDL-st / plokk-skeemist Automaadi (olekute) minimeerimine Olekute (sisendite, väljundite) kodeerimine sümbolite asendamine bittidega (bitivektoritega) © Peeter Ellervee © Peeter Ellervee I207 - Digitaalloogika ja -süsteemid - L13 10
11
I207 - Digitaalloogika ja -süsteemid - L13
Algoritm (#1) process type states is (s0, s1, s2); variable state: states := s0; begin wait on clk until clk=’1’; case state is when s0 => outputs<=”001”; state:=s1; when s1 => if inputs=”--00--” then outputs<= ”010”; else state:=s2; end if; when s2 => if inputs=”-1--0-” then output<=”110”; state:=s2; else output<=”101”; state:=s1; end if; end case; end process; © Peeter Ellervee I207 - Digitaalloogika ja -süsteemid - L13
12
I207 - Digitaalloogika ja -süsteemid - L13
Algoritm (#2) process fsm (x1,x2,x3,x4,y1,y2,y3,y4,y5) bit in x1,x2,x3,x4; bit out y1,y2,y3,y4,y5; { while (!x1) out (y1); out (y2); if (x2) { out (y2,y3); if (!x3) { out (y4); goto L1; } } else { if (x3) out (y3,y4); else out (y3); } out (y4); L1: while (!x4); out (y5); © Peeter Ellervee I207 - Digitaalloogika ja -süsteemid - L13
13
Algoritm plokk-skeem
... if (x2) { out (y2,y3); if (!x3) { out (y4); goto L1; } else { if (x3) out (y3,y4); else out (y3); out (y4); © Peeter Ellervee I207 - Digitaalloogika ja -süsteemid - L13
14
I207 - Digitaalloogika ja -süsteemid - L13
Plokk-skeem Algus & lõpp plokid begin / end üldjuhul kumbagi täpselt üks Tingimuslikud plokid kahendtingimuse kontroll väline või andmeosast Operatsioonide plokid signaal täitursõlmele väline või andmeosale © Peeter Ellervee I207 - Digitaalloogika ja -süsteemid - L13
15
Plokkskeemi genereerimine
Automaatne genereerimine kõrgtaseme kirjeldusest programmeerimiskeel riistvara kirjelduskeel ... if (inp==”-0--”) { outp= ”0010”; if (inp==”--1-”) outp= ”0101”; } else outp= ”1000”; © Peeter Ellervee I207 - Digitaalloogika ja -süsteemid - L13
16
Süntees plokkskeemist
Tabeli / olekudiagrammi süntees Algoritmi graaf-skeem (GSA) Behavioral FSM © Peeter Ellervee I207 - Digitaalloogika ja -süsteemid - L13
17
Mealy automaadi süntees
Mealy automaat kahe väljundploki vahel peab olema olek tsükkel peab sisaldama olekut © Peeter Ellervee I207 - Digitaalloogika ja -süsteemid - L13
18
Moore automaadi süntees
Moore automaat väljundplokk on olek tsükkel peab sisaldama olekut © Peeter Ellervee I207 - Digitaalloogika ja -süsteemid - L13
19
I207 - Digitaalloogika ja -süsteemid - L13
Automaadi süntees Olekute (sisendite, väljundite) kodeerimine Siirde- ja väljundfunktsiooni süntees Siirde- ja väljundfunktsiooni minimeerimine Skeemi süntees © Peeter Ellervee I207 - Digitaalloogika ja -süsteemid - L13
20
Automaadi tabeli süntees
Moore automaat väljundplokk on olek tsükkel peab sisaldama olekut © Peeter Ellervee I207 - Digitaalloogika ja -süsteemid - L13
21
I207 - Digitaalloogika ja -süsteemid - L13
Moore automaat © Peeter Ellervee I207 - Digitaalloogika ja -süsteemid - L13
22
I207 - Digitaalloogika ja -süsteemid - L13
Moore automaat © Peeter Ellervee I207 - Digitaalloogika ja -süsteemid - L13
23
Automaadi tabeli süntees
Mealy automaat kahe väljundploki vahel peab olema olek tsükkel peab sisaldama olekut Soovitus – olek enne (esimest) tingimuslikku plokki © Peeter Ellervee I207 - Digitaalloogika ja -süsteemid - L13
24
I207 - Digitaalloogika ja -süsteemid - L13
Mealy automaat © Peeter Ellervee I207 - Digitaalloogika ja -süsteemid - L13
25
I207 - Digitaalloogika ja -süsteemid - L13
Mealy automaat © Peeter Ellervee I207 - Digitaalloogika ja -süsteemid - L13
26
I207 - Digitaalloogika ja -süsteemid - L13
Olekute asukohad? Probleem – mis saab siis, kui enne ja pärast väljundplokki on sama sisendsignaal? osa teid jääb katmata!!! Antud juhul on mõlemad variandid õiged Lahendus – olek väljundploki järel (ehk enne esimest tingimust) Olekute arv jääb samaks, vt. ka “ümbersuunamist” © Peeter Ellervee I207 - Digitaalloogika ja -süsteemid - L13
27
I207 - Digitaalloogika ja -süsteemid - L13
Olekute kodeerimine Leida olekutele sellised koodid, et siirde- ja väljundfunktsioonid oleksid minimaalsed peaeesmärk – osaliselt määratud funktsioonid Intuitiivne lähenemine D-trigerid: olek, millesse toimub kõige rohkem siirdeid, peaks olema ainult 0-dest koosneva koodiga – siis pole vastavaid konjunktsioone vaja realiseerida SR-, JK-trigerid: mida vähem muutub olekukood siirdel, seda rohkem on siirdefunktsioonis 0 ja määramatusi – ideaalne oleks naaberkodeering, kuid sobib ka sellele lähedane T-trigerid: sobib samuti naaberkodeering – siis on muutusi, st. 1-d siirdefunktsioonis kõige vähem © Peeter Ellervee I207 - Digitaalloogika ja -süsteemid - L13
28
I207 - Digitaalloogika ja -süsteemid - L13
Olekute kodeerimine Uue oleku koodi sõltuvus eelmisest koodi muutus määrab trigeri sisendi(te) väärtuse(d) © Peeter Ellervee I207 - Digitaalloogika ja -süsteemid - L13
29
Moore automaat – kodeerimine
D-trigerid Siirete arv S1 - 2, S2 - 1, S3 - 1, S4 - 1, S5 - 1, S6 - 3, S7 - 1, S8 - 3, S9 - 3 © Peeter Ellervee I207 - Digitaalloogika ja -süsteemid - L13
30
Mealy automaat – kodeerimine
JK-trigerid Naabrid: S1-S2, S2-S3, S3-S4, S3-S5, S4-S6, S5-S6, S6-S1 © Peeter Ellervee I207 - Digitaalloogika ja -süsteemid - L13
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.