30
1 I207 - Digitaalloogika ja - süsteemid - L19 © Peeter Ellervee Süsteemi- ja Süsteemi- ja kõrgtasemesüntees kõrgtasemesüntees J.F. Wakerly “Digital Design: Principles and Practices” - 1.5, 1.8-12 L17. Digitaalsüsteemide automaat- projekteerimine, sünteesi etapid. L18. VHDL ja süntees. L19. Süsteemi- ja kõrgtasemesüntees. L19. Süsteemi- ja kõrgtasemesüntees. L20. Füüsikalise taseme projekteerimine. Kompleksete süsteemide iseärasused.

Süsteemi- ja kõrgtasemesüntees

  • Upload
    frisco

  • View
    106

  • Download
    0

Embed Size (px)

DESCRIPTION

Süsteemi- ja kõrgtasemesüntees. J.F. Wakerly “Digital Design: Principles and Practices” - 1.5, 1.8-12 L18. Digitaalsüsteemide automaat- projekteerimine, sünteesi etapid. L19. Süsteemi- ja kõrgtasemesüntees. - PowerPoint PPT Presentation

Citation preview

Page 1: Süsteemi- ja kõrgtasemesüntees

1I207 - Digitaalloogika ja -süsteemid - L19© Peeter Ellervee

Süsteemi- ja Süsteemi- ja kõrgtasemesünteeskõrgtasemesüntees

J.F. Wakerly “Digital Design: Principles and Practices” - 1.5, 1.8-12

L17. Digitaalsüsteemide automaat- projekteerimine, sünteesi etapid. L18. VHDL ja süntees. L19. Süsteemi- ja kõrgtasemesüntees.L19. Süsteemi- ja kõrgtasemesüntees. L20. Füüsikalise taseme projekteerimine. Kompleksete süsteemide iseärasused.

Page 2: Süsteemi- ja kõrgtasemesüntees

2I207 - Digitaalloogika ja -süsteemid - L19© Peeter Ellervee

Sünteesi tasemedSünteesi tasemed

Tase Abstraktsioon Vahendid

Süsteem Käitumine ruumis ja ajas,väljaviigud, ajalised piirangud

Plokk-skeemid, diagrammid,kõrgtaseme keeled

Arhitektuur Funktsionaalsete üksusteüldine jaotus

HDL-d, pinnaplaneeringuvahendid ennustamiseks

Registersiire Andmevoo sidumine sõlmedeja mikrokäskudega

Süntees, simuleerimine,resursside kasutamine

Funktsionaalsedmoodulid

Primitiivsed operatsioonid jajuhtimisvahendid

Teegid, moodulitegeneraatorid, skeemisisestus

Loogika Loogikafunktsioonid, skeemidloogikaelementidest

Skeemisisestus, süntees jasimuleerimine, test

Lülitus Transistorskeemideelektrilised omadused

RC ekstraheerimine, ajastusekontroll ja analüüs

Pinnalaotus Geomeetrilised parameetrid Pinnalaotuse redaktor, DRC,laotus ja trasseerimine

Page 3: Süsteemi- ja kõrgtasemesüntees

3I207 - Digitaalloogika ja -süsteemid - L19© Peeter Ellervee

Sünteesi ülesandedSünteesi ülesanded

Süsteemitaseme süntees Klasterdamine / tükeldamine Liideste süntees

Kõrgtaseme süntees Resursside hõivamine Resurss- või aegpiiratud planeerimine Resursside sidumine

Registersiirete taseme süntees Andmeosa süntees Juhtosa süntees

Page 4: Süsteemi- ja kõrgtasemesüntees

4I207 - Digitaalloogika ja -süsteemid - L19© Peeter Ellervee

Sünteesi ülesandedSünteesi ülesanded

Loogikataseme süntees Loogika minimeerimine Optimeerimine Liiasuste eemaldamine

Füüsikalise taseme süntees Sidumine tehnoloogiaga Paigaldamine Trasseerimine

Page 5: Süsteemi- ja kõrgtasemesüntees

5I207 - Digitaalloogika ja -süsteemid - L19© Peeter Ellervee

Süsteemitaseme sünteesSüsteemitaseme süntees

Süsteem: kommunikeeruvad moodulid Sünteesi ülesanded

tükeldamine kommunikatsiooni täpsustamine meetodite täpsustamine

Erinevate lahenduste otsimine ennustamine

Funktsionaalne konveier paralleelsed ja ajas osaliselt kattuvad meetodid

Page 6: Süsteemi- ja kõrgtasemesüntees

6I207 - Digitaalloogika ja -süsteemid - L19© Peeter Ellervee

Disaini metodoloogiaDisaini metodoloogia

D. Gajski

Funktsionaalsuse kirjeldusFunktsionaalsuse kirjeldusPraegune praktika Soovitatav metoodika

Kirja-/kõnekeel TäidetavkeelEraldamineTükeldamineTäpsustamine

käsitsiteisendamine siin

Prots.funkts.

kirjeldus

ASICfunkts.

kirjeldus

ASICfunkts.

kirjeldus

Mälu&

muutujad

detailne siini protokoll

Prots.C-kood

ASICRTL

kirjeldus

ASICRTL

kirjeldus

Mälu&

aadressid

Funktsionaalne spetsifikatsioon

Süsteemi disainSüsteemi disain

Komponentide realiseerimineKomponentide realiseerimine

Page 7: Süsteemi- ja kõrgtasemesüntees

7I207 - Digitaalloogika ja -süsteemid - L19© Peeter Ellervee

Süsteemisünteesi ülesandedSüsteemisünteesi ülesanded

Funktsionaalsedobjektid

Hõivamine Tükeldamine Täpsustamine

Muutujad mälud muutujad mäludesse

aadressitegenereerimine

Käitumine protsessorid funktsioonid protsessoritesse

liidesed

Kanalid siinid kanalid siinidesse

protokollid

Page 8: Süsteemi- ja kõrgtasemesüntees

8I207 - Digitaalloogika ja -süsteemid - L19© Peeter Ellervee

Mälutasemete kasutamineMälutasemete kasutamine

Massiivide ülekattumine ruumis ja ajas lähteandmete massiiv asendatakse arvutuste käigus

tulemustega

Lokaalsed koopiad vähendavad pöördumisi põhimälu poole lisanduva lokaalse mälu kaal peab olema väiksem kokku

hoitud pöördumiste kaaludest

Õige baasaadressi valik vähendab vahemälu ebasobivat kasutamist vale aadress võib viia ühe ja sama vahemälu ploki

kasutamisele ühes tsüklis eri massiivide poolt

Page 9: Süsteemi- ja kõrgtasemesüntees

9I207 - Digitaalloogika ja -süsteemid - L19© Peeter Ellervee

Mälupesade elueadMälupesade eluead

B = f(A);C = g(B);

A

B

C

tüüpiline:a[i]=mem[i]b[i]=mem[b_b+i]c[i]=mem[b_c+i]

A

B

C

A

B

C

raisatud

tüüpiline:a[i]=mem[i]b[i]=mem[b_b+i]c[i]=mem[i]

Parendatudvariandid

tüüpiline:a[i]=mem[i]b[i]=mem[max-i]c[i]=mem[i]

A

B

C

Page 10: Süsteemi- ja kõrgtasemesüntees

10I207 - Digitaalloogika ja -süsteemid - L19© Peeter Ellervee

High-Level Synthesis Achitectural Synthesis

KõrgtasemesünteesKõrgtasemesüntees

Sisend digitaalsüsteemi funktsionaalsuse kirjeldus kitsenduste hulk

Väljund süsteemi struktuur andmeosa + juhtautomaat

Algoritmi objektid - operatsioonid

Behavioral Synthesis Silicon Compilation

Page 11: Süsteemi- ja kõrgtasemesüntees

11I207 - Digitaalloogika ja -süsteemid - L19© Peeter Ellervee

KõrgtasemesünteesKõrgtasemesüntees

Põhisammud planeerimine

operatsioonide sidumine kontrollsammudega, et rahuldada piiranguid ja minimeerida maksumust

hõivamine operatsioonide sidumine kindlat tüüpi

funktsionaalsete moodulitega sidumine

operatsiooni sidumine kindla mooduliga

Täitmise järjekord võib erineda

Page 12: Süsteemi- ja kõrgtasemesüntees

12I207 - Digitaalloogika ja -süsteemid - L19© Peeter Ellervee

KõrgtasemesünteesKõrgtasemesüntees

Põhisammud hõivamine

funktsionaalsete moodulite arv ja tüübid mäluelementide arv ja tüübid siinide arv ja tüübid

planeerimine operatsioonide sidumine kontrollsammudega

sidumine operatsioonide sidumine moodulitega muutujate sidumine registritega andmeülekandete sidumine siinidega

Page 13: Süsteemi- ja kõrgtasemesüntees

13I207 - Digitaalloogika ja -süsteemid - L19© Peeter Ellervee

KõrgtasemesünteesKõrgtasemesüntees

Järjestikuline ja/või paralleelne täitmine väiksus kiirus võimustarve jne.

Sisendkirjeldus (VHDL) sisestruktuur (CDFG) Teisendused sisestruktuuril

pindala

aeg

pindala piirang

aja piirang

min

OK

Page 14: Süsteemi- ja kõrgtasemesüntees

14I207 - Digitaalloogika ja -süsteemid - L19© Peeter Ellervee

Riistvara / TarkvaraRiistvara / Tarkvara

CPUProtsessor

Riistvara

Data partControl part

??

Page 15: Süsteemi- ja kõrgtasemesüntees

15I207 - Digitaalloogika ja -süsteemid - L19© Peeter Ellervee

NäiteülesanneNäiteülesanne

Diferentsiaalvõrrand

variable a,dx,x,u,y,x1,y1: integer;begin  cycles(sysclock,1); a:=inport;  cycles(sysclock,1); dx:=inport;  cycles(sysclock,1); y:=inport;  cycles(sysclock,1); x:=inport;  cycles(sysclock,1); u:=inport;  loop    cycles(sysclock,7);    x1 := x + dx; y1 := y + (u * dx);    u := u-5 * x * (u * dx) - 3 * y *

dx;    x := x1; y := y1;    exit when not (x1 < a);  end loop;

+5 x+3y = 0d2ydx2

dydx

Page 16: Süsteemi- ja kõrgtasemesüntees

16I207 - Digitaalloogika ja -süsteemid - L19© Peeter Ellervee

Tarkvaraline realisatsioonTarkvaraline realisatsioon

{  sc_fixed<6,10>

a,dx,y,x,u,x1,x2,y1;  while ( true ) {    wait(); a=inport.read();    wait(); dx=inport.read();    wait(); y=inport.read();    wait(); x=inport.read();    wait(); u=inport.read();    while ( true ) {      for (int i=0;i<7;i++) wait();      x1 = x + dx;  y1 = y + (u*dx);      u = u - 5*x*(u*dx) - 3*y*dx;      x = x1; y = y1;      if (!(x1<a)) break;    }    outport.write(y);  };}

# R1:a, R2:dx, R3:y, R4:x, R5:u,

# R6:x1, R7:x2, R8:y1, R9:tmp

    ...

_loop_$32:

    ADD.fx   R6, R4, R2      # x1=x+dx

    MUL.fx   R9, R5, R2      # tmp=u*dx

    ADD.fx   R8, R3, R9      # y1=y+tmp

    MUL.fx   R9, R4, R9      # tmp=x*tmp

    MUL.fx   R9, R9, $5      # tmp=5*tmp

    SUB.fx   R5, R5, R9      # u=u-tmp

    MUL.fx   R9, R3, R2      # tmp=y*dx

    MUL.fx   R9, R9, $3      # tmp=3*tmp

    SUB.fx   R5, R5, R9      # u=u-tmp

    ADD.fx   R4, R6, $0      # x=x1

    ADD.fx   R3, R8, $0      # y=y1

    SUB.fx   R9, R6, R1      # tmp=x1-a

    JMP.neg  _loop_$32       # ...break

    ...

Page 17: Süsteemi- ja kõrgtasemesüntees

17I207 - Digitaalloogika ja -süsteemid - L19© Peeter Ellervee

PlaneeriminePlaneerimine

CDFG - kontroll- ja andmevoo graaf

Page 18: Süsteemi- ja kõrgtasemesüntees

18I207 - Digitaalloogika ja -süsteemid - L19© Peeter Ellervee

PlaneeriminePlaneerimine

Minimaalne riistvara piiramatult aega...

* FU1

+/-/< FU2

+5 x+3y = 0d2ydx2

dydx

Page 19: Süsteemi- ja kõrgtasemesüntees

19I207 - Digitaalloogika ja -süsteemid - L19© Peeter Ellervee

PlaneeriminePlaneerimine

Minimaalne aeg piiramatult resursse... +5 x+3y = 0

d2ydx2

dydx

Page 20: Süsteemi- ja kõrgtasemesüntees

20I207 - Digitaalloogika ja -süsteemid - L19© Peeter Ellervee

PlaneeriminePlaneerimine

HU algoritm operatsioonide

märgistamine alt üles

operatsioonide järjestamine ülalt alla

ASAP as-soon-as-possible

ALAP as-late-as-possible

Märgistamine

Järjestamine

Page 21: Süsteemi- ja kõrgtasemesüntees

21I207 - Digitaalloogika ja -süsteemid - L19© Peeter Ellervee

Hõivamine ja sidumineHõivamine ja sidumine

Muutuja eluiga registrid eluiga – omistamisest viimase tarbimiseni

Täitursõlmed (FU)

Registrid

Page 22: Süsteemi- ja kõrgtasemesüntees

22I207 - Digitaalloogika ja -süsteemid - L19© Peeter Ellervee

Hõivamine ja sidumineHõivamine ja sidumine

Funktsionaalsed sõlmed ja registrid M1: h1.[u,dx], h3.[h1,h2], h6.[dx,h4]; M2: h2.[5,x], h4.[3,y] ALU: h5.[u,h3], x1.[x,dx], u1.[h5,h6], cc.[x1,a], y1.[h1,y] Ra; Rdx; R1 (u,u1,h5); R2 (x,y1); Ry; Rx1; R5 (h1,h3,h6); R6 (h2,h4)

Multiplekserid

M1.L - 3, M1.R - 2, M2.L - 2, M2.R - 2, ALU.L - 4, ALU.R - 3

M1-l on üks ja sama allikas mõlemas sisendis, st. multipleksoril (Rdx) Lahendus: vahetada sisendid esimesel sammul (taktid 1 ja 2)

Tulemus: M1.L - 2, M1.R - 2, M2.L - 2, M2.R - 2, ALU.L - 4, ALU.R - 3

Page 23: Süsteemi- ja kõrgtasemesüntees

23I207 - Digitaalloogika ja -süsteemid - L19© Peeter Ellervee

Kõrgasemesüntees - tulemusKõrgasemesüntees - tulemus

Kahesuunalised siinid

Page 24: Süsteemi- ja kõrgtasemesüntees

24I207 - Digitaalloogika ja -süsteemid - L19© Peeter Ellervee

Registersiirete taseme sünteesRegistersiirete taseme süntees

RTL - Register Transfer Level register funktsioon register

Moodulite struktuuri valik nt. summaatori sisestruktuur

Automaadi süntees kodeerimine, loogikafunktsioonide süntees

Andmevoo optimeerimine multiplekserite optimeerimine

Ajastuse optimeerimine – retiming

Page 25: Süsteemi- ja kõrgtasemesüntees

25I207 - Digitaalloogika ja -süsteemid - L19© Peeter Ellervee

Andmevoo optimeerimineAndmevoo optimeerimine

samm #1:    r1 c1(vi,...)

samm #2:    r2 c2(r1,vj,...)

r1,r2 - registrid; c1,c2 - loogika; vi,vj - muutujad

fmax = 1 / max( delay(c1), delay(c2) )

kui delay(c1) > delay(c2) : siis c1

new = g( f1(vi,...), f2(vi,...) )

Pärast ümbersünteesi

delay(g)+delay(c2) < delay(c1) :

samm #1:    r1 f1(vi,...);    rx f2(vi,...)

samm #2:    r2 c2(g(r1,rx),vj,...)

Page 26: Süsteemi- ja kõrgtasemesüntees

26I207 - Digitaalloogika ja -süsteemid - L19© Peeter Ellervee

Ümberajastamine (retiming)Ümberajastamine (retiming)

Registrite asukoha muutmine “musta kasti” funktsionaalsus säilib

Enne Pärast

skeem

loogika-võrkgraaf

Page 27: Süsteemi- ja kõrgtasemesüntees

27I207 - Digitaalloogika ja -süsteemid - L19© Peeter Ellervee

Ümberajastamine (retiming)Ümberajastamine (retiming)

Leitakse kriitiline tee Registrid nihutatakse tagant ettepoole

1. samm=15tf=19

2. samm=15ta=20

3. samm=15td=18te=16tg=19

Lõpp=15

Page 28: Süsteemi- ja kõrgtasemesüntees

28I207 - Digitaalloogika ja -süsteemid - L19© Peeter Ellervee

Ümberajastamine (retiming)Ümberajastamine (retiming)

Nii loogika- kui ka registersiirete tasemel

+ - 10 ns - 5 ns

4-järgulineFIR filter

35 ns

Page 29: Süsteemi- ja kõrgtasemesüntees

29I207 - Digitaalloogika ja -süsteemid - L19© Peeter Ellervee

LoogikatasemesünteesLoogikatasemesüntees

Kodeerimine võib teostada ka varem

Boole’i funktsioonide minimeerimine peamiselt heuristiline

Funktsioonid teisendamine loogikaelementideks tehnoloogiast sõltuv etteantud piirangutest sõltuv

Testitavuse parendamine

Page 30: Süsteemi- ja kõrgtasemesüntees

30I207 - Digitaalloogika ja -süsteemid - L19© Peeter Ellervee

Füüsikalise taseme sünteesFüüsikalise taseme süntees

Loogikalülid transistorid / traadid

Transistorid / traadid polügonid (maskid)