1 / 30

Süsteemi- ja kõrgtasemesüntees

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.

frisco
Download Presentation

Süsteemi- ja kõrgtasemesüntees

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 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. • L20. Füüsikalise taseme projekteerimine. Kompleksete süsteemide iseärasused. I207 - Digitaalloogika ja -süsteemid - L19

  2. Sünteesi tasemed I207 - Digitaalloogika ja -süsteemid - L19

  3. Sü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 I207 - Digitaalloogika ja -süsteemid - L19

  4. Sünteesi ülesanded • Loogikataseme süntees • Loogika minimeerimine • Optimeerimine • Liiasuste eemaldamine • Füüsikalise taseme süntees • Sidumine tehnoloogiaga • Paigaldamine • Trasseerimine I207 - Digitaalloogika ja -süsteemid - L19

  5. Sü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 I207 - Digitaalloogika ja -süsteemid - L19

  6. Praegune praktika Soovitatav metoodika Funktsionaalsuse kirjeldus Kirja-/kõnekeel Funktsionaalne spetsifikatsioon Täidetavkeel Eraldamine Tükeldamine Täpsustamine käsitsi teisendamine Süsteemi disain siin Prots. funkts. kirjeldus ASIC funkts. kirjeldus ASIC funkts. kirjeldus Mälu & muutujad Komponentide realiseerimine detailne siini protokoll Prots. C-kood ASIC RTL kirjeldus ASIC RTL kirjeldus Mälu & aadressid Disaini metodoloogia D. Gajski I207 - Digitaalloogika ja -süsteemid - L19

  7. Süsteemisünteesi ülesanded I207 - Digitaalloogika ja -süsteemid - L19

  8. Mä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 I207 - Digitaalloogika ja -süsteemid - L19

  9. B = f(A); C = g(B); C C B B B B A C C A A A Mälupesade eluead raisatud Parendatud variandid tüüpiline: a[i]=mem[i] b[i]=mem[b_b+i] c[i]=mem[b_c+i] tüüpiline: a[i]=mem[i] b[i]=mem[b_b+i] c[i]=mem[i] tüüpiline: a[i]=mem[i] b[i]=mem[max-i] c[i]=mem[i] I207 - Digitaalloogika ja -süsteemid - L19

  10. Kõrgtasemesüntees • Sisend • digitaalsüsteemi funktsionaalsuse kirjeldus • kitsenduste hulk • Väljund • süsteemi struktuur • andmeosa + juhtautomaat • Algoritmi objektid - operatsioonid • High-Level Synthesis • Achitectural Synthesis • Behavioral Synthesis • Silicon Compilation I207 - Digitaalloogika ja -süsteemid - L19

  11. Kõ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 I207 - Digitaalloogika ja -süsteemid - L19

  12. Kõ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 I207 - Digitaalloogika ja -süsteemid - L19

  13. pindala aja piirang pindala piirang OK min aeg Kõrgtasemesüntees • Järjestikuline ja/või paralleelne täitmine • väiksus • kiirus • võimustarve jne. • Sisendkirjeldus (VHDL)  sisestruktuur (CDFG) • Teisendused sisestruktuuril I207 - Digitaalloogika ja -süsteemid - L19

  14. Protsessor CPU Riistvara Data part Control part ? Riistvara / Tarkvara I207 - Digitaalloogika ja -süsteemid - L19

  15. d2y dx2 dy dx +5 x+3y = 0 Nä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; I207 - Digitaalloogika ja -süsteemid - L19

  16. {   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     ... Tarkvaraline realisatsioon I207 - Digitaalloogika ja -süsteemid - L19

  17. Planeerimine • CDFG - kontroll- ja andmevoo graaf I207 - Digitaalloogika ja -süsteemid - L19

  18. d2y dx2 dy dx +5 x+3y = 0 Planeerimine • Minimaalne riistvara • piiramatult aega... * FU1 +/-/< FU2 I207 - Digitaalloogika ja -süsteemid - L19

  19. d2y dx2 dy dx +5 x+3y = 0 Planeerimine • Minimaalne aeg • piiramatult resursse... I207 - Digitaalloogika ja -süsteemid - L19

  20. Planeerimine Märgistamine • HU algoritm • operatsioonide märgistamine • alt üles • operatsioonide järjestamine • ülalt alla • ASAP • as-soon-as-possible • ALAP • as-late-as-possible Järjestamine I207 - Digitaalloogika ja -süsteemid - L19

  21. Hõivamine ja sidumine • Muutuja eluiga  registrid • eluiga – omistamisest viimase tarbimiseni Täitursõlmed (FU) Registrid I207 - Digitaalloogika ja -süsteemid - L19

  22. Hõ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 I207 - Digitaalloogika ja -süsteemid - L19

  23. Kõrgasemesüntees - tulemus • Kahesuunalised siinid I207 - Digitaalloogika ja -süsteemid - L19

  24. Registersiirete 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 I207 - Digitaalloogika ja -süsteemid - L19

  25. Andmevoo 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 c1new = 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,...) I207 - Digitaalloogika ja -süsteemid - L19

  26. Ümberajastamine (retiming) • Registrite asukoha muutmine • “musta kasti” funktsionaalsus säilib Enne Pärast skeem loogika- võrkgraaf I207 - Digitaalloogika ja -süsteemid - L19

  27. Ümberajastamine (retiming) • Leitakse kriitiline tee • Registrid nihutatakse tagant ettepoole 1. samm =15 tf=19 2. samm =15 ta=20 3. samm =15 td=18 te=16 tg=19 Lõpp =15 I207 - Digitaalloogika ja -süsteemid - L19

  28. 35 ns Ümberajastamine (retiming) • Nii loogika- kui ka registersiirete tasemel 4-järguline FIR filter + - 10 ns  - 5 ns I207 - Digitaalloogika ja -süsteemid - L19

  29. Loogikatasemesü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 I207 - Digitaalloogika ja -süsteemid - L19

  30. Füüsikalise taseme süntees • Loogikalülid  transistorid / traadid • Transistorid / traadid  polügonid (maskid) I207 - Digitaalloogika ja -süsteemid - L19

More Related