Presentation is loading. Please wait.

Presentation is loading. Please wait.

Mäluga süsteemide disain

Similar presentations


Presentation on theme: "Mäluga süsteemide disain"— Presentation transcript:

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:SIS,   l:SIO Moore automaat - M = ( S, I, O, d, l ) S,   I,   O,   d:SIS,   l:SO © 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


Download ppt "Mäluga süsteemide disain"

Similar presentations


Ads by Google