Planeerimine
Download
Report
Transcript Planeerimine
Süsteemi- ja
kõrgtasemesüntees
J.F. Wakerly “Digital Design: Principles and Practices” - 1.5, 1.8-12
L18. Digitaalsüsteemide automaatprojekteerimine, sünteesi etapid.
L19. Süsteemi- ja kõrgtasemesüntees.
L20. Füüsikalise taseme
projekteerimine. Kompleksete
süsteemide iseärasused.
© Peeter Ellervee
I207 - Digitaalloogika ja -süsteemid - L19
1
Sünteesi tasemed
Tase
A b s tra k ts io o n
V a h e n d id
S ü ste e m
K ä itu m in e ru u m is ja a ja s,
vä lja viig u d , a ja lise d p iira n g u d
P lo kk-ske e m id , d ia g ra m m id ,
kõ rg ta se m e ke e le d
A rh ite ktu u r
F u n ktsio n a a lse te ü ks u ste
ü ld in e ja o tu s
H D L -d , p in n a p la n e e rin g u
va h e n d id e n n u sta m ise ks
R e g iste rsiire
A n d m e v o o sid u m in e sõ lm e d e
ja m ikro k ä sku d e g a
S ü n te e s, sim u le e rim in e ,
re su rssid e ka su ta m in e
F u n ktsio n a a lse d
m o o d u lid
P rim itiivse d o p e ra tsio o n id ja
ju h tim isv a h e n d id
T e e g id , m o o d u lite
g e n e ra a to rid , ske e m isis e stu s
L o o g ika
L o o g ika fu n ktsio o n id , ske e m id
lo o g ika e le m e n tid e st
S ke e m is ise stu s, sü n te e s ja
sim u le e rim in e , te st
L ü litu s
T ra n sisto rske e m id e
e le ktrilise d o m a d u se d
R C e kstra h e e rim in e , a ja stu s e
ko n tro ll ja a n a lü ü s
P in n a la o tu s
G e o m e e trilise d p a ra m e e trid
P in n a la o tu se re d a kto r, D R C ,
la o tu s ja tra sse e rim in e
© Peeter Ellervee
I207 - Digitaalloogika ja -süsteemid - L19
2
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
© Peeter Ellervee
I207 - Digitaalloogika ja -süsteemid - L19
3
Sünteesi ülesanded
Loogikataseme süntees
Loogika minimeerimine
Optimeerimine
Liiasuste eemaldamine
Füüsikalise taseme süntees
Sidumine tehnoloogiaga
Paigaldamine
Trasseerimine
© Peeter Ellervee
I207 - Digitaalloogika ja -süsteemid - L19
4
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
© Peeter Ellervee
I207 - Digitaalloogika ja -süsteemid - L19
5
Disaini metodoloogia
Praegune praktika
Kirja-/kõnekeel
käsitsi
teisendamine
Prots.
funkts.
kirjeldus
Funktsionaalsuse kirjeldus
Funktsionaalne spetsifikatsioon
Süsteemi disain
siin
ASIC
funkts.
kirjeldus
ASIC
funkts.
kirjeldus
Soovitatav metoodika
Täidetavkeel
Eraldamine
Tükeldamine
Täpsustamine
Mälu
&
muutujad
Komponentide realiseerimine
detailne siini protokoll
D. Gajski
© Peeter Ellervee
Prots.
C-kood
ASIC
RTL
kirjeldus
ASIC
RTL
kirjeldus
I207 - Digitaalloogika ja -süsteemid - L19
Mälu
&
aadressid
6
Süsteemisünteesi ülesanded
F u n k ts io n a a lse d
o b je k tid
M u u tu ja d
H õ iva m in e
T ü k e ld a m in e
T ä p su s ta m in e
m ä lu d
m u u tu ja d
m ä lu d e ss e
a a d re ss ite
g e n e re e rim in e
K ä itu m in e
p ro tse ss o rid fu n k ts io o n id
p ro tse ss o rite ss e
s iin id
k a n a lid
s iin id e ss e
K a n a lid
© Peeter Ellervee
I207 - Digitaalloogika ja -süsteemid - L19
liid e s e d
p ro to k o llid
7
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
© Peeter Ellervee
I207 - Digitaalloogika ja -süsteemid - L19
8
Mälupesade eluead
B = f(A);
C = g(B);
raisatud
Parendatud
variandid
C
C
B
B
B
B
A
tüüpiline:
a[i]=mem[i]
b[i]=mem[b_b+i]
c[i]=mem[b_c+i]
© Peeter Ellervee
A
A
C
tüüpiline:
a[i]=mem[i]
b[i]=mem[b_b+i]
c[i]=mem[i]
I207 - Digitaalloogika ja -süsteemid - L19
A
C
tüüpiline:
a[i]=mem[i]
b[i]=mem[max-i]
c[i]=mem[i]
9
Kõrgtasemesüntees
High-Level Synthesis
Achitectural Synthesis
Behavioral Synthesis
Silicon Compilation
Sisend
digitaalsüsteemi funktsionaalsuse kirjeldus
kitsenduste hulk
Väljund
süsteemi struktuur
andmeosa + juhtautomaat
Algoritmi objektid - operatsioonid
© Peeter Ellervee
I207 - Digitaalloogika ja -süsteemid - L19
10
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
© Peeter Ellervee
I207 - Digitaalloogika ja -süsteemid - L19
11
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
© Peeter Ellervee
I207 - Digitaalloogika ja -süsteemid - L19
12
Kõrgtasemesüntees
Järjestikuline ja/või
paralleelne täitmine
väiksus
kiirus
võimustarve jne.
pindala
aja piirang
pindala piirang
OK
min
aeg
Sisendkirjeldus (VHDL) sisestruktuur (CDFG)
Teisendused sisestruktuuril
© Peeter Ellervee
I207 - Digitaalloogika ja -süsteemid - L19
13
Riistvara / Tarkvara
CPU
Protsessor
Riistvara
Data part
Control part
?
© Peeter Ellervee
I207 - Digitaalloogika ja -süsteemid - L19
14
Näiteülesanne
Diferentsiaalvõrrand
d2y
dy
+5
x+3y = 0
2
dx
dx
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;
© Peeter Ellervee
I207 - Digitaalloogika ja -süsteemid - L19
15
Tarkvaraline 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);
};
}
© Peeter Ellervee
# 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
...
I207 - Digitaalloogika ja -süsteemid - L19
16
Planeerimine
CDFG - kontroll- ja andmevoo graaf
© Peeter Ellervee
I207 - Digitaalloogika ja -süsteemid - L19
17
Planeerimine
Minimaalne riistvara
piiramatult aega...
d2y
dy
+5
x+3y = 0
2
dx
dx
*
FU1
+/-/< FU2
© Peeter Ellervee
I207 - Digitaalloogika ja -süsteemid - L19
18
Planeerimine
Minimaalne aeg
piiramatult resursse...
© Peeter Ellervee
d2y
dy
+5
x+3y = 0
2
dx
dx
I207 - Digitaalloogika ja -süsteemid - L19
19
Planeerimine
Märgistamine
HU algoritm
operatsioonide
märgistamine
alt üles
operatsioonide
järjestamine
ülalt alla
Järjestamine
ASAP
as-soon-as-possible
ALAP
as-late-as-possible
© Peeter Ellervee
I207 - Digitaalloogika ja -süsteemid - L19
20
Hõivamine ja sidumine
Muutuja eluiga registrid
eluiga – omistamisest viimase tarbimiseni
Täitursõlmed (FU)
Registrid
© Peeter Ellervee
I207 - Digitaalloogika ja -süsteemid - L19
21
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
© Peeter Ellervee
I207 - Digitaalloogika ja -süsteemid - L19
22
Kõrgasemesüntees - tulemus
Kahesuunalised
siinid
© Peeter Ellervee
I207 - Digitaalloogika ja -süsteemid - L19
23
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
© Peeter Ellervee
I207 - Digitaalloogika ja -süsteemid - L19
24
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,...);
samm #2:
r2 c2(g(r1,rx),vj,...)
© Peeter Ellervee
rx f2(vi,...)
I207 - Digitaalloogika ja -süsteemid - L19
25
Ümberajastamine (retiming)
Registrite asukoha muutmine
“musta kasti” funktsionaalsus säilib
Enne
Pärast
skeem
loogikavõrkgraaf
© Peeter Ellervee
I207 - Digitaalloogika ja -süsteemid - L19
26
Ümberajastamine (retiming)
Leitakse kriitiline tee
Registrid nihutatakse tagant ettepoole
1. samm
2. samm
3. samm
Lõpp
=15
tf=19
=15
td=18
te=16
tg=19
© Peeter Ellervee
I207 - Digitaalloogika ja -süsteemid - L19
=15
ta=20
=15
27
Ümberajastamine (retiming)
Nii loogika- kui ka registersiirete tasemel
35 ns
4-järguline
FIR filter
+ - 10 ns
- 5 ns
© Peeter Ellervee
I207 - Digitaalloogika ja -süsteemid - L19
28
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
© Peeter Ellervee
I207 - Digitaalloogika ja -süsteemid - L19
29
Füüsikalise taseme süntees
Loogikalülid
transistorid / traadid
Transistorid / traadid
polügonid (maskid)
© Peeter Ellervee
I207 - Digitaalloogika ja -süsteemid - L19
30