300 likes | 587 Views
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.
E N D
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
Sünteesi tasemed I207 - Digitaalloogika ja -süsteemid - L19
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
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
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
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
Süsteemisünteesi ülesanded I207 - Digitaalloogika ja -süsteemid - L19
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
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
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
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
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
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
Protsessor CPU Riistvara Data part Control part ? Riistvara / Tarkvara I207 - Digitaalloogika ja -süsteemid - L19
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
{ 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
Planeerimine • CDFG - kontroll- ja andmevoo graaf I207 - Digitaalloogika ja -süsteemid - L19
d2y dx2 dy dx +5 x+3y = 0 Planeerimine • Minimaalne riistvara • piiramatult aega... * FU1 +/-/< FU2 I207 - Digitaalloogika ja -süsteemid - L19
d2y dx2 dy dx +5 x+3y = 0 Planeerimine • Minimaalne aeg • piiramatult resursse... I207 - Digitaalloogika ja -süsteemid - L19
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
Hõivamine ja sidumine • Muutuja eluiga registrid • eluiga – omistamisest viimase tarbimiseni Täitursõlmed (FU) Registrid I207 - Digitaalloogika ja -süsteemid - L19
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
Kõrgasemesüntees - tulemus • Kahesuunalised siinid I207 - Digitaalloogika ja -süsteemid - L19
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
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
Ümberajastamine (retiming) • Registrite asukoha muutmine • “musta kasti” funktsionaalsus säilib Enne Pärast skeem loogika- võrkgraaf I207 - Digitaalloogika ja -süsteemid - L19
Ü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
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
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
Füüsikalise taseme süntees • Loogikalülid transistorid / traadid • Transistorid / traadid polügonid (maskid) I207 - Digitaalloogika ja -süsteemid - L19