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
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.
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
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
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
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
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
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
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
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
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
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
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
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
14I207 - Digitaalloogika ja -süsteemid - L19© Peeter Ellervee
Riistvara / TarkvaraRiistvara / Tarkvara
CPUProtsessor
Riistvara
Data partControl part
??
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
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
...
17I207 - Digitaalloogika ja -süsteemid - L19© Peeter Ellervee
PlaneeriminePlaneerimine
CDFG - kontroll- ja andmevoo graaf
18I207 - Digitaalloogika ja -süsteemid - L19© Peeter Ellervee
PlaneeriminePlaneerimine
Minimaalne riistvara piiramatult aega...
* FU1
+/-/< FU2
+5 x+3y = 0d2ydx2
dydx
19I207 - Digitaalloogika ja -süsteemid - L19© Peeter Ellervee
PlaneeriminePlaneerimine
Minimaalne aeg piiramatult resursse... +5 x+3y = 0
d2ydx2
dydx
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
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
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
23I207 - Digitaalloogika ja -süsteemid - L19© Peeter Ellervee
Kõrgasemesüntees - tulemusKõrgasemesüntees - tulemus
Kahesuunalised siinid
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
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,...)
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
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
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
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
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)