Planiranje prostora i razmještaj Floorplanning and placement FER zimski semestar šk. g.

Download Report

Transcript Planiranje prostora i razmještaj Floorplanning and placement FER zimski semestar šk. g.

Planiranje prostora i razmještaj Floorplanning and placement
FER
zimski semestar šk. g. 2007./08.
Predavač: Julijana Divković Pukšec
e-mail: [email protected]
J.Divković Pukšec, Fizičko projektiranje VLSI sklopova, FER, šk.g. 2007/08 .
1
Planiranje prostora i razmještaj
Nakon podjele sklop je podijeljen u nekoliko
blokova koje treba sloziti na pločicu.
Blokove treba sloziti tako da zauzmu
najmanju površinu. Prije toga treba
poznavati njihov oblik.
J.Divković Pukšec, Fizičko projektiranje VLSI sklopova, FER, šk.g. 2007/08 .
2
Planiranje prostora (Floorplanning)
visina h
aspect ratio = širina  w
Ai=wi . hi površina modula “i”
wi širina modula
hi visina modula
Zadaju se granične (minimalna i maksimalna) vrijednosti;
blok nesmije biti niti preuzak niti preširok.
 hi 
 hi 

 
   ri
w
 i  min  wi l
 hi 
 hi 

 
   si
w
 i  max  wi u
ri i si su donja (lower) i gornja (upper) granica omjera širine i visine modula “i”
J.Divković Pukšec, Fizičko projektiranje VLSI sklopova, FER, šk.g. 2007/08 .
3
Planiranje prostora
ako je ri = si blok je nepromjenljiv, fiksan (rigid)
ako je ri  si blok je fleksibilan
fiksni blok može promjeniti orjentaciju:
J.Divković Pukšec, Fizičko projektiranje VLSI sklopova, FER, šk.g. 2007/08 .
4
Planiranje prostora i razmještaj
Nakon podjele sklopa može se proračunati potrebna površina koju će zauzeti
svaki blok, odrediti oblik bloka
- poznat je i broj priključaka (pinova) koje ima svaki pojedini blok.
- poznata je i netlista , tj. veze između pojedinih blokova.
Raspored blokova mora biti takav da bude moguće izvesti sva potrebna
povezivanja.
Razmještanje blokova izvodi se u dva koraka:
- planiranje prostora – floorplanning: određuju se približni položaj i veličina
blokova, te površina potrebna za povezivanje;
- razmještaj – placement: određuje se točan položaj blokova
Ulaz u 1. korak planiranja prostora je skup blokova.
Za svaki blok zadana je površina, mogući oblik i broj priključaka.
J.Divković Pukšec, Fizičko projektiranje VLSI sklopova, FER, šk.g. 2007/08 .
5
Planiranje prostora i razmještaj(2)
Blokovi čije su dimenzije poznate su fiksni blokovi, a blokovi kojima
dimenzije tek treba odrediti su fleksibilni blokovi.
Određivanje položaja fiksnih blokova je “placement” problem, a određivanje
položaja fleksibilnih blokova je “floorplanning” problem.
Ako se uz planiranje prostora vodi računa i o povezivanju blokova, onda se
govori o “chip planning”-u.
Terminologija je pomalo konfuzna, područja se isprepliću, ali je navedena
terminologija opće prihvaćena.
Chip planning, floorplanning i placement su bitne faze fizičkog projektiranja.
Loš razmještaj ne može se popraviti kvalitetnim prospajanjem.
Nakon što je položaj bloka određen, određuje se položaj priključaka;
to je pin assigmnet.
J.Divković Pukšec, Fizičko projektiranje VLSI sklopova, FER, šk.g. 2007/08 .
6
Planiranje prostora i razmještaj(3)
Pri planiranju prostora i razmještaju blokova treba voditi računa o:
- obliku bloka
Jednostavnosti radi pretpostavlja se da su svi blokovi pravokutni.
Za određivanje oblika bloka koristi se tzv. aspect ratio = odnos visine i
širine bloka. Obično se daju granične vrijednosti tog odnosa.
(U zadnje vrijeme razmatraju se i oblici u obliku slova L.)
-procjena prospajanja
Treba procjeniti kolika je površina potrebna za prospajanje (za postavljanje
vodljivih staza) i ostaviti za to dovoljno prostora između blokova.
J.Divković Pukšec, Fizičko projektiranje VLSI sklopova, FER, šk.g. 2007/08 .
7
Planiranje prostora i razmještaj(4)
-Posebni zahtjevi
- Kod sklopova s posebnim zahtjevima. blokove treba postaviti tako da svi
kritični netovi mogu biti spojeni na propisani način (vremenski zahtjevi moraju
biti zadovoljeni, duljina kritičnog neta mora biti minimalna).
Takav postupak zove se performance driven floorplanning/placement.
- Svi blokovi su izvor topline, koja bi se trebala disipirati podjednako preko
cijele površine, pa treba voditi računa o razmještaju blokova koji stvaraju veću
količinu topline.
- Neki blokovi mogu imati unaprijed određeni položaj. Na pr. clock buffer se
mora nalaziti u sredini pločice (chipa).
J.Divković Pukšec, Fizičko projektiranje VLSI sklopova, FER, šk.g. 2007/08 .
8
Formalni opis postupka planiranja prostora
Zadano je:
1. skup S koji se sastoji od n pravokutnih modula S = 1,2,3,.......n
2. podjela tog skupa na podskupove S1 i S2, pri čemu su:
S1 – skup modula s fiksnom orjantacijom
S2 – skup modula sa slobodnom orjentacijom
3. matrica C dimenzija n  n koja određuje spojeve između pojedinih modula
Cnn  cij 
4. lista zapisa o svakom od n modula (tzv. tripleta):
A1, r1, s1.....Ai, ri, si......An, rn, sn
Ai=wi . hi površina modula “i”
wi širina modula
hi visina modula
5. Dva dodatna pozitivna broja p i q ( p  q); to su donja i gornja granica kojom su
određene dimenzije pravokutnika unutar kojega treba smjestiti svih n modula.
J.Divković Pukšec, Fizičko projektiranje VLSI sklopova, FER, šk.g. 2007/08 .
9
Formalni opis postupka planiranja prostora(2)
Izlaz iz floorplanning-a treba biti izvediv razmještaj.
Takav razmještaj prikazuje se kao jedan pravokutnik podijeljen okomitim i vodoravnim
linijama na n pravokutnika koji se ne preklapaju, označenih brojevima 1,2, .... n, takvih da
su zadovoljeni slijedeći zahtjevi:
1. Ai=wi . hi 1  i  n
hi
iS1
 si za sve module s fiksnom orjentacijom
wi
h
1 hi 1
3. ri  i  si ili
 
za sve module sa slobodnom orjentacijom
wi
si wi ri
2. ri 
Primjer: Ai = 20
5 hi

5
4 wi
5 hi
1 hi 4

 5 ili


4 wi
5 wi 5
iS2
blok je fiksne orjentacije
blok je slobodne orjentacije
J.Divković Pukšec, Fizičko projektiranje VLSI sklopova, FER, šk.g. 2007/08 .
10
Formalni opis postupka planiranja prostora(3)
4.
xi  wi
yi  hi
1in
xi i yi su dimenzije osnovnog pravokutnika “i “ koji mora biti dovoljno velik
da u njega stane modul “i “..
5.
p
H
q
W
H i W su visina i širina pravokutnika koji obuhvaća sve module.
J.Divković Pukšec, Fizičko projektiranje VLSI sklopova, FER, šk.g. 2007/08 .
11
Funkcija cijene
Izvediv (feasible) razmještaj ima i funkciju cijene koju treba optimizirati.
Moguće funkcije cijene (cost function) su na pr.:
- minimiziranje površine, Amin
- minimiziranje duljine vodova , Wmin
- minimiziranje kašnjenja
-kombinacija dva ili više navedenih zahtjeva
-Na pr.
cost = aA + bW
A – ukupna površina
W - ukupna duljina vodova
a i b - konstante
J.Divković Pukšec, Fizičko projektiranje VLSI sklopova, FER, šk.g. 2007/08 .
12
Terminologija:
- Rectangular dissection –pravokutna podjela
Podjela pravokutnika pomoću konačnog broja okomitih i vodoravnih linearnih segmenata
na konačan broj pravokutnika, koji se ne preklapaju.
To su osnovni pravokutnici -basic rectangles
-Slicing structure
-Pravokutna podjela koja se može dobiti
ponavljajući podjelu pravokutnika vodoravno
i okomito na manje pravokutnike zove se
”slicing structure” - razrezana (isjeckana)
struktura.
J.Divković Pukšec, Fizičko projektiranje VLSI sklopova, FER, šk.g. 2007/08 .
Ukoliko to nije moguće radi se o
non- slicing structure.
13
Slicing floorplan
Slicing Floorplan
Slicing Tree
V
3
1
H
4
5
2
2
6
H
1
H
3
7
V
V
6
Polish Expression – poljska notacija
7
4
5
21H67V45VH3HV
Skewed (nakošeno) slicing tree je ono stablo kod kojega niti jedan čvor i njegov desni sin nisu isti.
J.Divković Pukšec, Fizičko projektiranje VLSI sklopova, FER, šk.g. 2007/08 .
15
Non slicing floorplan
- wheel – kotač
to je najmanji non slicing floorplan
W
3
4
5
4
1
2
3
5
2
1
J.Divković Pukšec, Fizičko projektiranje VLSI sklopova, FER, šk.g. 2007/08 .
16
Algoritmi
Algoritmi koji se bave planiranjem prostora mogu se svrstati u tri osnovne grupe:
- konstruktivni
- iterativni
- knowledge based- bazirani na (pred)znanju
Konstruktivni algoritmi polaze od jednog modula (seed – sjeme, zametak), a ostale
module biraju jednog po jedinog i dodaju ih djelomičnom floorplan-u. Proces traje sve dok
ima slobodnih modula.
Najpoznatiji konstruktivni algoritam je cluster growth – grozdasti rast.
Iterativni algoritmi počinju s nekim početnim rasporedom modula; rade se promjene sve
dok se ne dobije ili izvediv razmještaj, ili je postignuto poboljšanje u odnosu na zadanu
funkciju cijene.
Najpoznatije iterativne metode su simulirano kaljenje i genetički algoritam (genetic alg.).
Kod algoritama baziranih na znanju koristi se sistem koji ima 3 osnovna dijela:
-bazu znanja koja sadrži podatke koji opisuju problem razmještaja i njegovo trenutno stanje;
- pravila koja određuju kako se treba koristiti podacima iz baze znanja (knowledge base) da
bi se došlo do rješenja;
- kontrolni sistem koji kontrolira primjenu pravila na bazu podataka.
J.Divković Pukšec, Fizičko projektiranje VLSI sklopova, FER, šk.g. 2007/08 .
17
Algoritmi za razmještaj modula
Grozdasti rast:
Floorplan se konstruira na tzv. pohlepni način (greedy);
sjemeni modul (zametak) smjesti se u ugao (donji lijevi), a onda se
uzima jedan po jedan modul i dodaje se na već smještene module.
Pri tome se nastoji održavati rast u određenom smjeru:
dijagonalno, gore i desno naizmjence. Vodi se računa o omjeru
visine i širine modula. Module treba poredati u neki red i onda ih
po tom redu uzimati.
Linerani poredak modula
Linearni poredak modula stvara se na temelju net
liste, pri čemu se minimizira broj netova koji će biti
presječeni ako se prekine linearni niz modula na bilo
kojem mjestu.
Ovaj se način obično koristi za dobivanje početnog
rasporeda.
J.Divković Pukšec, Fizičko projektiranje VLSI sklopova, FER, šk.g. 2007/08 .
18
Algoritam Linear Ordering
S: skup svih modula;
Order: niz (sequence) poredanih modula (*početno prazan*);
Begin
Seed: = izaberi seed modul;
Order: =Seed;
S: =S – Seed;
Repeat
ForEach modul m S Do
Računaj gain za izabrani modul m;
gainm: = broj netova koji završavaju na modulu m - broj netova koji počinju s modulom m ;
End ForEach;
Izaberi modul m* koji ima najveći gain;
If postoji tie Then
Izaberi modul koji završava najveći broj netova
ElseIf postoji tie Then
Izaberi modul koji ima najveći broj kontinuiranih netova
ElseIf postoji tie Then
Izaberi modul koji ima najveći broj priključaka;
Else izaberi po želji;
EndIf
Order: =!Order,m* ; (* dodaj m* u uređeni niz*)
S: = S - m*
Until S: = 0
End.
J.Divković Pukšec, Fizičko projektiranje VLSI sklopova, FER, šk.g. 2007/08 .
19
Opis algoritma:
Opaske:
- oznaka !L upotrebljava se za elemente niza
(sequence)
- zgrada   se koristi za nizove
- zagrada   se koristi za skupove
Opis algoritma:
prvo se bira zametak (seed modul); slučajnim izborom ili na temelju povezanosti s
I/O priključcima, povezanosti s preostalim modulima i dr.
nakon toga ide Repeat petlja:
svaki put se računa gain funkcija za svaki modul koji nije u nizu Order; izabire se modul s
najvećim gainom i dodaje u niz poredanih modula, u Order.
gain modula m jednak je: broj netova koji završavaju (terminated net) na modulu m
umanjen za broj netova koji počinju (new net) s modulom m
definicije:
terminated net ( net koji završava na modulu),
new net (net koji počinje na modulu),
kontinuirani net (net koji prolazi)
J.Divković Pukšec, Fizičko projektiranje VLSI sklopova, FER, šk.g. 2007/08 .
20
Primjer
Zadana je net lista sa šest ćelija C1,C2,C3,C4,C5,C6 i sa šest netova:
N1=C1,C3,C4,C6
N2=C1,C3,C5
N3=C1,C2,C5
N4=C1,C2,C4,C5
N5=C2,C5,C6
N6=C3,C6
Pretpostavka: sve su ćelije slobodne orjentacije (rigid).
Ako se počne sa ćelijom C1 = seed ćelija postupak ide ovako:
korak
0
1
2
3
4
ćelija
C1*
C2
C3
C4*
C5
C6
C2
C3
C5*
C6
C2*
C3
C6
C3*
C6
novi netovi
N1,N2,N3,N4
N5
N6
N5
N5,N6
N5
N6
N5
N5,N6
N6
N6
N6
N6
terminirani netovi
----------N3,N4
N2
-N2
N5
J.Divković Pukšec, Fizičko projektiranje VLSI sklopova, FER, šk.g. 2007/08 .
gain
-4
-1
-1
0
-1
-2
-1
-1
-1
-2
2
0
1
0
0
kontinuirani netovi
-N3,N4
N1,N2
N1,N4
N2,N3,N4
N1
N3,N4
N1,N2
N1,N3,N4
N1
N5
N3
N5,N3
N1
N1
21
Algoritam Cluster Growth
Kada su moduli poredani može se započeti sa njihovim slaganjem (topologija).
Jedan od mogućih načina je da se počne s donjim lijevim uglom, i da se moduli slažu tako da se raste
u vis i u desno, poštujući postavljene uvjete u vezi s oblikom modula, površinom ukupnog sklopa, te
optimizacijom zadane funkcije cijene.
Ovaj postupak opisan je u algoritmu Cluster Growth.
S: = skup svih modula;
Begin
Order: = Linear Ordering (S);
Repeat
nextmodule: = b pri čemu je Order = b,!rest
Order: = rest;
Izaberi položaj za modul b tako da povećanje cost funkcije bude najmanje;
(* cost funkcija može biti: - dimenzije dijela površine sklopa, veličina i oblik modula b
ili duljina vodova*)
Until Order; = 0
End.
J.Divković Pukšec, Fizičko projektiranje VLSI sklopova, FER, šk.g. 2007/08 .
22
Primjer za vježbu:
Zadana je net lista sa 10 ćelija
(C1,C2, C3,C4,C5,C6,C7,C8,C9,C10)
i 10 netova:
N1=C1,C3,C4,C6
N2=C1,C3,C5
N3=C1,C2,C5
N4=C1,C2,C6,C7
N5=C2,C4,C6
N6=C2,C5,C8,C10
N7=C3,C4,C6,C8
N8=C4,C8,C9,C10
N9=C4,C7,C9,C10 N10=C5,C9,C10
Dimenzije modula:
modul
širina
C1
2
C2
2
C3
3
C4
2
C5
2
C6
3
C7
2
C8
2
C9
1
C10
3
visina
3
2
1
3
4
6
2
5
2
5
- Pretpostaviti da su sve ćelije nepromjenljive (rigid) i imaju fiksnu orjentaciju.
Primjeni algoritam Linear ordering; uzmi ćeliju C1 kao početnu (seed)
- Primjeni Cluster growth da se formira floorplan. Kreni iz donjeg lijevog ugla i neka
rast bude dijagonalno gore. Pokušaj dobiti što manju površinu ukupnog sklopa, a
u slučaju dvoumljenja neka kriterij bude što manja razlika između W i H (dimenzije
ukupnog sklopa)
Primjedba: ne treba voditi računa o površini potrebnoj uza povezivanje modula.
J.Divković Pukšec, Fizičko projektiranje VLSI sklopova, FER, šk.g. 2007/08 .
23
Planiranje prostora
Kod planiranja prostora koriste se dva postupka:
- direktni postupak
- indirektni postupak
Kod direktnog postupka algoritam se primjenjuje direktno na fizički razmještaj
modula, barata se sa stvarnim fizičkim koordinatama, veličinama i oblicima modula.
Tokom postupka prihvaćaju se, kao međurješenja, i loša - neizvediva rješenja (na pr.
preklapanje modula), a takva loša rješenja se "uključuju" u funkciju cijene preko
kaznenih bodova. Konačno rješenje mora biti izvedivo.
Kod indirektnog postupka algoritam radi s apstraktnim prikazom razmještaja
modula, opisanim topološkim susjedstvom modula. Takav prikaz se sastoji iz prikaza
floorplana uz pomoć grafa ili položajnog stabla (floorplan tree). Na temelju grafičkog
prikaza razmještaja dobiva se stvarni razmještaj. Prednost ovog postupka je da su svi
međurezultati izvedivi.
Opisati ćemo indirektni postupak, na primjeru tzv. “slicing” strukture, koje su lakše
za proračun, ali kao nedostatak imaju pojavu “mrtvog prostora”.
J.Divković Pukšec, Fizičko projektiranje VLSI sklopova, FER, šk.g. 2007/08 .
24
Izgubljeni prostor – dead space
izgubljeni (mrtvi) prostor
Smanjivanje površine jednako je smanjivanju izgubljebnog prostora.
Poastotni udio mrtvog prostora
(A - iAi) / A  100%
J.Divković Pukšec, Fizičko projektiranje VLSI sklopova, FER, šk.g. 2007/08 .
25
Definicije:
Izraz E = e1e2e3......e2n-1
pri čemu je ei 1,2,......n,H,V
je tzv poljski izraz (Polish expression) duljine 2n-1 onda i samo onda ako:
1. se svaki operand “j”
1jn
pojavljuje samo jedamput u izrazu, i
2. izraz E bude takav da svaki podizraz Ei = e1....ei
1  i  2n-1 ima broj
operanada veći od broja operatora; to je tzv. “balloting” svojstvo.
“Slicing” struktura se može prikazati kao binarno stablo s n listova i n-1 čvorom, koji
predstavljaju operatore H i V.
Postupak Postorder traversal daje, na temelju slicing stabla, poljsku jednadžbu s
operatorima H i V i operendima (modulima – osnovnim pravokutnicima) kojih ima n
(1,2....n).
U postupku Postorder traversal stablo se istražuje tako da se posjećuje svaki čvor
lijevog podstabla, desnog podstabla, a na kraju i sam korijen (root) stabla.
J.Divković Pukšec, Fizičko projektiranje VLSI sklopova, FER, šk.g. 2007/08 .
26
Postorder traversal (pretraživanje) stabla
S obzirom da je samo jedan način provođenja postupka pretraživanja binarnog stabla
postoji i samo jedan odnos između floorplana i odgovarajućeg normalizanog poljskog
izraza.
V
Postorder traversal (pretraživanje) stabla:
H
2
H
1
21H67V45VH3HV
V
V
6
7 4
3
1
2
6
7
4
5
4
5
6 7
J.Divković Pukšec, Fizičko projektiranje VLSI sklopova, FER, šk.g. 2007/08 .
4
5
6 7
3
H
5
3
1
2
4
5
6 7
27
Poljski zapis
Definicija:
Poljski izraz E = e1e2e3......e2n-1 naziva se normaliziranim samo onda ako E nema
susjednih (consecutive) H i V operatora u nizu, tj. HH ili VV.
na pr.:
E1= 12H43VH je normaliziran
E2= 12V43HH nije normaliziran
Slicing Tree (Skewed)
Slicing Tree
V
3
1
2
V
H
4
5
6
7
2
H
1
H
V
6 7 4
3
2
H
1
H
V
3
6 7 V
V
5
21H67V45VH3HV
J.Divković Pukšec, Fizičko projektiranje VLSI sklopova, FER, šk.g. 2007/08 .
H
5
4
21H67V45V3HHV
28
Poljski zapis(1)
Razlog zašto se poljski izrazi svrstavaju u normalizirane i nenormalizirane je izbjegavanje
suvišnih, redundantnih rješenja.
Između “slicing tree” s n listova i poljskog izraza duljine 2n-1 postoji jedan jednoznačni
odnos.
Međutim, za jedan “slicing floorplan” može postojati nekoliko poljskih izraza, što je
nepoželjno, jer će:
- prostor pretrage biti prevelik i opterećen s višestrukim rješenjima, jer različiti poljski
izrazi opisuju isti floorplan
- broj poljskih izraza koji opisuju jedan floorplan različit je za pojedine strukture, pa će
proračuni za neke strukture biti pretjerano veliki.
J.Divković Pukšec, Fizičko projektiranje VLSI sklopova, FER, šk.g. 2007/08 .
29
Poljski zapis(3)
Pravilo:
Postoji jedan jednoznačni odnos između “slicing stabla” s n listova i normalizirane
poljske relacije duljine 2n-1.
Vrijedi i obrat; jednoznačni odnos između normaliziranog poljskog izraza duljine 2n-1 i
“slicing stabla” s n listova.
primjer :
21H43HV765HHV nije normaliziran
21H43H76H5HHV
-“21H43H765HHVV
-“21H43HV76H5HV normalizirani izraz
J.Divković Pukšec, Fizičko projektiranje VLSI sklopova, FER, šk.g. 2007/08 .
1
3
5
6
2
4
7
30
Lanac
Definicija: Niz
C= op1op2....opk
kojeg čini k operatora naziva se lancem
(chain) duljine k onda i samo onda ako opi  opi+1 , za 1  i  k-1
Ako je E = e1e2.....e2n-1 normalizirana poljska relacija onda se može E izraziti kao
E = P1C1P2C2......PnCn
pri čemu su Ci lanci (možda i duljine k=0),
a P1P2.....Pn su permutacije operanada 1,2 ....n.
Definicija: Dva operanda u izrazu E nazivaju se susjednim onda i samo onda ako su
susjedni elementi (consecutive) u nizu P1P2.....Pn.
Operand i operator su susjedni samo onda ako su susjedni u nizu e1e2.....e2n-1.
J.Divković Pukšec, Fizičko projektiranje VLSI sklopova, FER, šk.g. 2007/08 .
31
Primjer:
E= 123VH54HV = P1P2P3C3 P4P5C5
C1=C2=C4=0 su prazni lanci
C3=VH
C5=HV
P1= 1
P2=2
P3=3
P4=5
P5=4
1 i 2 su susjedni operandi
3i5
-“3 i V su susjedni operand i operator
J.Divković Pukšec, Fizičko projektiranje VLSI sklopova, FER, šk.g. 2007/08 .
32
Perturbacije rješenja (the move set)
Rješenja floorplana prikazana su normaliziranim poljskim izrazima. Perturbacije
(promjene) zadanog floorplana dobivaju se promjenama u odgovarajućoj poljskoj
jednadžbi.
Koriste se tri vrste pomaka (moves):
M1 - zamjeni (swap) dva susjedna operanda,
M2 – napravi komplement nekih lanaca konačne duljine k0,
V H
H V
M3 – zamjeni dva susjedna operanda i operatora.
Dvije normalizirane poljske jednadžbe nazivaju se susjednim ako se jedna može
dobiti iz druge koristeći jedan od tri navedena pomaka.
Pri tome treba paziti da susjedna normalizirana poljska jednadžba bude također
normalizirana.
J.Divković Pukšec, Fizičko projektiranje VLSI sklopova, FER, šk.g. 2007/08 .
33
Perturbacije rješenja (2)
M1 i M2 - uvijek daju iz normalizirane normaliziranu poljsku jednadžbu
M3 - može rezultirati i nenormaliziranim poljskim uzrazom
Nakon pomka M3 treba kontrolirati dobiveni izraz:
- da nema dva jednaka susjedna operatora V V ili H H
- da su “balloting” svojstva i dalje prisutna
Ako ova dva zahtjeva nisu ispunjena pomak se odbija.
J.Divković Pukšec, Fizičko projektiranje VLSI sklopova, FER, šk.g. 2007/08 .
34
Primjeri pomaka
1
M1
2
3
1
4
5
4
3
2
5
34V2H5V1H
32V4H5V1H
1
1
4
5
3
2
M2
32V45VH1H
J.Divković Pukšec, Fizičko projektiranje VLSI sklopova, FER, šk.g. 2007/08 .
3 2
M3
5
4
32V45HV1H
35
Procjena duljine vodova
Funkcija cijene dobrog razmještaja je
cost(F) = aA + bW
A – površina najmanjeg pravokutnika koji obuhvaća n – osnovnih pravokutnika
W – ukupna duljina vodova; moguća je procjena duljine vodova
W   cij  dij
ij
cij – broj veza između bloka “i” i bloka “j”
dij – udaljenost od središta bloka “i” do središta bloka “j”
- udaljenost određena vodoravnim i okomitim stazama (Manhattan udaljenost)
J.Divković Pukšec, Fizičko projektiranje VLSI sklopova, FER, šk.g. 2007/08 .
36
Određivanje površine
Blok kojemu se omjer w/h
kontinuirano mijenja (soft)
Blok kojemu omjer w/h može
imati nekoliko iznosa
h
h
granična krivulja
granična krivulja
wh = A
(0,0)
w
J.Divković Pukšec, Fizičko projektiranje VLSI sklopova, FER, šk.g. 2007/08 .
(0,0)
w
37
Određivanje površine
Površina je obuhvaćena graničnom linijom , koja zadovoljava
slijedeće zahtjeve:
1. granična linija  je opadajuća funkcija, tj za bilo koje dvije
točke (x1, y1) i (x2, y2) na krivulji  vrijedi: x1  x2 i y2  y1
2.  leži u I kvadrantu, tj. (x,y)   x> 0 i y > 0
3.  dijeli I kvadrant na dva spojena područja
Definicije:  i  su dvije granične krivulje. S graničnim krivuljama mogu se definirati dvije
aritmetičke operacije.
1. granična krivulja koja odgovara  H  dobiva se zbrajanjem duž y-osi, tj.
H    xmax , y  y  x , y  i x , y 
xmax  MAX  x , x 
2. granična krivulja koja odgovara  V  dobiva se zbrajanjem duž x-osi, tj.
V    x  x , ymax  x , y  i x , y 
J.Divković Pukšec, Fizičko projektiranje VLSI sklopova, FER, šk.g. 2007/08 .
ymax  MAX  y , y 
38
Kombiniranje blokova
h
1
12V:
2
2
1
12V
w
12H:
2
1
J.Divković Pukšec, Fizičko projektiranje VLSI sklopova, FER, šk.g. 2007/08 .
h
12H
1
2
39
Postupak određivanja ukupne površine
Svaki modul i 1  i  n zadan je slijedećim veličinama:
visina hi, širina wi i površina Ai = wi hi, faktorima ri i si (orjentacija)
Postupak:
kreće se od listova i binarnog stabla 1  i  n.
Blok i određen je svojom graničnom krivuljom i , koja ovisi o obliku, veličini,
fleksibilnosti i orjentaciji modula.
“Slicing” stablom se prolazi od listova prem korijenu.
Svaki unutarnji čvor v odgovar operatoru H ili V, te je
v =lijevi V desni ili v =donji H gornji.
Kada se dođe do korjena traži se pravokutnik najmanje površine.
J.Divković Pukšec, Fizičko projektiranje VLSI sklopova, FER, šk.g. 2007/08 .
40
Određivanje ukupne površine
izaberi najmanju površinu
V
2
1
3
H
1
3
J.Divković Pukšec, Fizičko projektiranje VLSI sklopova, FER, šk.g. 2007/08 .
2
41
Primjer određivanja površine
Definicija:
Neka su x1,y1 i x2,y2 dvije moguće implementacije za zadani pravokutnik;
(x2,y2) je redundantan implementaciji (x1,y1) samo onda ako je
x2  x1 i y2  y1
ili
x2 x1 i y2  y1.
Redundantne implementacije treba eliminirati
redundantni pravokutnici
J.Divković Pukšec, Fizičko projektiranje VLSI sklopova, FER, šk.g. 2007/08 .
42
Primjer:
Određivanje pravokutnika minimalne površine, koji obuhvaća n osnovnih
blokova.
Svi moduli su rigidni, ali se mogu rotirati za 90 u odnosu na originalnu
orjentaciju.
Početni položaj svih modula zadan u tablici (bez rotacije).
Dimenzije modula:
Modul
Wi
1
2
2
2
3
1
4
2
5
1
6
2
hi
3
2
3
3
2
2
J.Divković Pukšec, Fizičko projektiranje VLSI sklopova, FER, šk.g. 2007/08 .
43
Primjer određivanja površine(1)
V
“Slicing tree” je zadan normaliziranom
poljskom jednadžbom E = 12H34V56VHV.
Traži se pravokutnik minimalnih dimenzija,
koji obuhvaća sve module.
12 = 1 H 2 :
H
1
2,3 H 2,2 = 2,5
3,2 H 2,2 = 3,4
34 = 3 V 4 :
1,3 V 2,3 = 3,3
1,3 V 3,2 = 4,3 redundantno
3,1 V 2,3 = 5,3 redundantno
3,1 V 3,2 = 6,2
56 = 5 V 6 :
1,2 V 2,2 = 3,2
2,1 V 2,2 = 4,2 redundantno
3456 = 34 H 56 : 3,3 H 3,2 = 3,5
6,2 H 3,2 = 6,4
123456 = 12 V 3456 : 2,5 V 3,5 =5,5
2,5 V 6,4 = 8,5 redundantno
3,4 V 3,5 = 6,5 redundantno
3,4 V 6,4 = 9,4
J.Divković Pukšec, Fizičko projektiranje VLSI sklopova, FER, šk.g. 2007/08 .
H
2
V
V
3
4 5
6
44
Primjer (1)
2
5 6
1
2
1
6
5
3
4
3 4
5X5
dead space =0 %
J.Divković Pukšec, Fizičko projektiranje VLSI sklopova, FER, šk.g. 2007/08 .
9X4
dead space =11/36=0,306 ; 30,6 %
45
Simulirano kaljenje - Simulated annealing
Simulurano kaljenje je prvi puta korišteno kod razmještaja modula
(placement) 1983, a nakon toga se dosta uspješno koristi i za planiranje
prostora (floorplanning).
Podsjetnik: SA algoritam traži
1. početno rješenje
2. promjenu tog rješenja (izvedivo rješenje)
3. određivanje “objektne funkcije” (koju treba poboljšati)
Pri korištenju SA algoritma treba napraviti nekoliko bitnih odluka:
- izabrati početno rješenje
- izabrati “ritam” hlađenja, što uključuje izbor
1. početne temperature
2. vrijeme trajanja procesa na toj temperaturi
3. za koliki iznos snižavati temperaturu
- perturbacijsku funkciju (kako mijenjati razmještaj modula)
- uvjete zaustavljanja algoritma
J.Divković Pukšec, Fizičko projektiranje VLSI sklopova, FER, šk.g. 2007/08 .
46
Simulirano kaljenje(1)
Algoritam počinje s nekim početnim rasporedom modula, opisanim poljskom notacijom
E0 = 12V3V4V5V.....nV koja odgovara “slicing” stablu s n okomitih linija.
Početna temperatura T0 određuje se na slijedeći način: napravi se niz slučajnihn
pomaka i izračuna se prosječna funkcija cijene za sve “loše” (uphill) pomake - avg.
Početna temperatura izabere se tako da početna vjerojatnost prihvaćanja lošijeg
rješenja P bude vrlo velika; P1.
Perturbacijska funkcija se provodi na slijedeći način:
Susjed je određena
normalizirana poljska notacija koja se izabire na slijedeći način:
I
- tip pomaka izabire se slučajno
II
- izabire se par susjednih elemenata
U slučaju pomaka M3 treba provjeriti novi izraz, koji mora biti normalizirana
poljska jednadžba.
Ukoliko je poljska notacija nenormalizirana izabire se drugi par elemenata. To se
ponavlja tako dugo dok se ne dobije normalizirani izraz.
J.Divković Pukšec, Fizičko projektiranje VLSI sklopova, FER, šk.g. 2007/08 .
47
Simulirano kaljenje(2)
Svakoj dobivenoj normaliziranoj poljskoj notaciji određuje se funkcija cijene:
- ako je “cost” bolji rješenje se prihvaća;
- ako je “cost” lošiji prihvaćanje ovisi o funkciji vjerojatnosti, a ona ovisi o temperaturi.
Temperatura opada s trajanjem procesa.
Za svaku temperaturu ograniči se broj lošijih, prihvaćenih rješenja (uphill) na N pomaka;
ili se napravi ukupno 2N pomaka.
Broj N je ovisan o broju modula (blokova).
Kada se izađe iz unutrašnje Repeat petlje temperatura se smanji za iznos .
Preporuča se da 0,85.
Algoritam se zaustavlja kada je
- broj dobrih pomaka premalen (5% od ukupnog broja pomaka) ili
- temperatura je došla do nekog niskog iznosa (unaprijed zadanog).
J.Divković Pukšec, Fizičko projektiranje VLSI sklopova, FER, šk.g. 2007/08 .
48
Algoritam Floorplanning Simulated Annealing
E0 = 12V3V4V……nV;
E = E0;
Best = E0
T0 
 avg
ln  P 
uphill = 0;
(*početno rješenje*)
(*pretpostavi da je E = e1 e2 ….ei…..en*)
(*početna temperatura*)
(*broj uphill promjena napravljenih za vrijeme zadane
temperature*)
(*ukupni broj pomaka na zadanoj temperaturi*)
(*sveukupni broj pomaka na svim temperaturama*)
MT = 0;
M = 0;
Repeat
MT = uphill = Reject = 0;
Repeat
Izaberi pomak (M)
Slučaj M je
M1 : izaberi dva susjedna operanda ei i ej;
NewE = Swap(E, ei,ej);
M2 : izaberi lanac operatora C određene duljine;
NewE = Complement(E, C);
M3 :Done = False;
While NOT (Done) Do
Begin
J.Divković Pukšec, Fizičko projektiranje VLSI sklopova, FER, šk.g. 2007/08 .
49
Algoritam Floorplanning SA (nastavak)
Begin
Izaberi dva susjedna operanda ei i ei+1;
If (ei-1  ei+1) i (2Ni+1< i ) Then Done = TRUE;
End;
NewE = Swap(E, ei, ei+1);
EndCase;
MT = MT + 1
Cost = Cost (NewE) – Cost(E);
 Cost 
exp  
If (Cost<0 ) OR ( RANDOM <
) Then
T 

Begin
If (Cost>0 ) Then uphill = uphill + 1;
E = NewE; (*prihvaćena nova raspodjela NewE*)
If Cost(E) < Cost(Best) Then Best = E;
End
Else Reject = Reject +1 (*odbaci pomak*)
EndIf
Until (uphill > N) OR (MT > 2N);
T = T
Until (Reject/MT < 0.5) OR ( T  ) OR Out og Time;
End.
J.Divković Pukšec, Fizičko projektiranje VLSI sklopova, FER, šk.g. 2007/08 .
50
Planiranje prostora – analitička metoda
Metoda je nastala prilagodbom rješavanja sistema jednadžbi.
Uvjeti koji opisuju neku raspodjelu blokova (floorplan) opisani su skupom matematičkih
jednadžbi (rješavaju se tehnikom matematičkog programiranja).
Najčešća metoda je mješano integer programiranje - mixed linear integer:
neke varijable su realni brojevi a neke poprimaju vrijednost 0 ili 1 (integer.)
Označavanje i definiranje problema
Zadan je skup modula S={1,2,….n.
Podskup S1 ima blokove fiksne orjentacije, a podskup S2 blokove slobodne orjentacije.
Svaki modul zadan je svojom širinom wi i visinom hi, xi, yi su koordinate donjeg lijevog
ugla modula "i".
hi
(xi, yi)
Bi
wi
J.Divković Pukšec, Fizičko projektiranje VLSI sklopova, FER, šk.g. 2007/08 .
hj
Bj
(xj, yj)
wj
51
Analitička metoda(1)
Moduli "i" i "j" neće se preklapati ako je ispunjen barem jedan od
navedenih uvjeta:
Bj
Bi
(xi, yi) wi
(xj, yj)
Bj
(xj, yj)
wj
hj
Bj
(xj, yj)
Bi
(xi, yi)
hi
Bi
(xi, yi)
J.Divković Pukšec, Fizičko projektiranje VLSI sklopova, FER, šk.g. 2007/08 .
hi
(xi, yi)
Bi
Bj
hj
(xj, yj)
52
Integer varijable
Pri utvrđivanju preklapanja dvaju
blokova dovoljno je provjeriti
jedan od navedenih uvjeta; u tu
svrhu uvode se integer varijable i
koje mogu biti 0 ili 1.
Ovim se varijablama forsira jedan
od četiri navedena uvjeta.
yij
xij
uvjet koji treba provesti
0
0
(1)
0
1
(2)
1
0
(3)
1
1
(4)
Jednadžbe (1) do (4) pišu se u obliku:
xi  wi  x j  W  xij  yij 
(5)
yi  hi  y j  H 1  xij - yij 
(6)
xi - w j  x j - W 1 - xij  yij 
(7)
yi - h j  y j - H  2 - xij - yij 
(8)
J.Divković Pukšec, Fizičko projektiranje VLSI sklopova, FER, šk.g. 2007/08 .
53
Linearno programiranje
To su četiri linearna uvjeta, četiri nepoznate realne varijable (xi,yi,xj,yj) i dvije
nepoznate integer varijable (xij,yij).
W i H su maksimalne dimenzije sklopa:
xi - x j  W
,
W
yi - y j  H
Ako broj uz W ili H nije jednak 0 uvjet se
odbacuje kao nepotreban.
H
Jednadžbe se mogu modificirati za
blokove sa slobodnom orjentacijom
(mogućnost rotacije).
J.Divković Pukšec, Fizičko projektiranje VLSI sklopova, FER, šk.g. 2007/08 .
54
Linear programiranje – definicija problema
Pretpostavka : širina površine sklopa je W je zadana.
Primjer 1: svi moduli su rigidni i imaju fiksnu orjentaciju.
Uvjeti (Constraints):
1 - moduli se ne smiju preklapati
2 - svaki modul se na površini nalazi unutar pravokutnika širine W i visine Y, tj.
xi  wi  W
i
yi  hi  Y za
1 i  n
3 - koordinate modula su pozitivne:
0  xi , 0  yi
za
1 i  n
Cilj (Objective):
Širina sklopa W je konstantna , mogući cilj je smanjenje visine površine sklopa Y.
J.Divković Pukšec, Fizičko projektiranje VLSI sklopova, FER, šk.g. 2007/08 .
55
Primjer 1 – opis problema
Veličina linearnog programa:
2.n konstantnih varijabli, n(n - 1) integer varijabli , and 2n2 linearnih uvjeta.
Za veliki broj modula (n) program postaje neprihvatljivo velik.
J.Divković Pukšec, Fizičko projektiranje VLSI sklopova, FER, šk.g. 2007/08 .
56
Primjer 2:
Svi su moduli rigidni, a rotacija je dozvoljena.
Za svaki modul i slobodne orjentacije uvodi se integer varijabla zi.
zi = 0 - modul i nije rotiran;
zi = 1 - modul i jre rotiran za 90°.
M može biti
definiran kao:
max(W,H) ili
(W + H).
Veličina programa:
Broj jednadžbi se nije povećao, ali se je povećao broj integer varijabli;
ima ih za n više (n- broj modula).
J.Divković Pukšec, Fizičko projektiranje VLSI sklopova, FER, šk.g. 2007/08 .
57
Primjer 3
Neki moduli su fleksibilni, mogu mijenjati oblik, ali je površina Ai = wi.hi konstantna.
To će dodatno zakomplicirati problem jer je Ai = wi.hi nelinearna relacija.
Kako bi program ostao linearan mora se ova relacija linearizirati.
Wimax and himax su najveća širina i visina bloka Bi.
Linearizacija se provodi tako da se izraz hi=Ai/wi za wimax razvije u Taylorov red i
aproksimira s prva dva člana reda:
hi =himin+i(wimax-wi)
himin =Ai/wimax
i=Ai/wimax2
J.Divković Pukšec, Fizičko projektiranje VLSI sklopova, FER, šk.g. 2007/08 .
58
Primjer 3 – fleksibilni blokovi
- Bi je fleksibilan (soft) a Bj je rigidan (hard):
- Bi i Bj su fleksibilni (soft):
J.Divković Pukšec, Fizičko projektiranje VLSI sklopova, FER, šk.g. 2007/08 .
59
Kompleksnost
Za problem koji ima n blokova i za najjednostavniji slučaj kada su svi
blokovi rigidni imamo:
- 2n kontinuiranih varijabli (xi, yi)
- 2n(n-1) +n integer varijabli (xij, yij, zi)
- 4n2-2n linearnih uvjeta (constraints)
- vrijeme proračuna exp(n).
Sklop ima n = 100 modula (problem srednje veličine);
linearni program ima: 200 kontinuiranih varijabli,
990 integer variablI,
20000 linearnih uvjeta.
Možemo lako zaključiti da se ova metoda isplati koristiti samo za manji
broj blokova (n=10).
J.Divković Pukšec, Fizičko projektiranje VLSI sklopova, FER, šk.g. 2007/08 .
60
Postepeno dodavanje blokova
Successive Augmentation
U slučaju sklopova s velikim brojem blokova radi se podjela na podskupove i svaki
podskup se rješava za sebe (problem izbora sljedećeg podskupa).
Da bi se smanjio broj blokova, već smještene blokove, zamjenjujemo 1 blokom koji
svojom površinom prekriva sve već smještene blokove. Linearno programiranje se
primjenjuje na takve podskupove
Miješani integer linear program može se rješiti uz pomoć standardnog matematičkog
paketa, na pr. LINDO.
slijedeći podskup
Y
J.Divković Pukšec, Fizičko projektiranje VLSI sklopova, FER, šk.g. 2007/08 .
djelomično rješenje
61
Pravokutna dualizacija
Nakon podjele sklopa dobili smo grupu podsklopova i veze između njih;
takav sklop možemo prikazati uz pomoć grafa
G=(V,E).
Floorplan se može dobiti i pretvorbom tog grafa u njegov pravokutni dual, koji se
sastoji od nepreklapajućih modula koji zadovoljavaju slijedeće uvjete:
1. svaki čvor odgovara pravokutniku Ri 1 i  V
2. svaki brid povezuje pravokutnike Ri i Rj, koji su susjedni.
B
B
D
C
C
A
D
A
E
J.Divković Pukšec, Fizičko projektiranje VLSI sklopova, FER, šk.g. 2007/08 .
E
62
Dual graf
Ovom metodom dobiva se topološki raspored (layout) modula, koji je u skladu s
ukupnim topološkim odnosima između blokova i s veličinom i oblikom blokova.
Graf G(V,E):
V – čvorovi  moduli
E – bridovi  veze između blokova
A
B
B
D
C
A
D
C
E
E
J.Divković Pukšec, Fizičko projektiranje VLSI sklopova, FER, šk.g. 2007/08 .
63
Triangularni graf
Triangularni graf
A
Ispravno triangularni graf (properly
triangulated graph) je graf kod kojega
su sve površine osim vanjske trokuti.
B
A
B
D
D
C
C
E
B
A
D
E
C
J.Divković Pukšec, Fizičko projektiranje VLSI sklopova, FER, šk.g. 2007/08 .
64
Pravokutni blokovi i and blokovi L-oblika
- mogući oblici:
- L- oblik se može dobiti od pravokutnih oblika:
- dobivanje non-slicing rasporeda
J.Divković Pukšec, Fizičko projektiranje VLSI sklopova, FER, šk.g. 2007/08 .
65