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