81
J.Divković Pukšec, Fizičko projektiranje VLSI sklopova, FER, šk.g. 2008/09. 1 Planiranje prostora i razmještaj (2) FER zimski semestar šk. g. 2008./09. Predavač: Julijana Divković Pukšec e-mail: [email protected]

Planiranje prostora i razmještaj (2)

Embed Size (px)

DESCRIPTION

Planiranje prostora i razmještaj (2). FER zimski semestar šk. g. 2008./09. Predavač: Julijana Divković Pukšec e-mail: [email protected]. Planiranje prostora. - PowerPoint PPT Presentation

Citation preview

Page 1: Planiranje prostora i razmještaj  (2)

J.Divković Pukšec, Fizičko projektiranje VLSI sklopova, FER, šk.g. 2008/09. 1

Planiranje prostora i razmještaj (2)

FER zimski semestar šk. g. 2008./09.

Predavač: Julijana Divković Pukšece-mail: [email protected]

Page 2: Planiranje prostora i razmještaj  (2)

J.Divković Pukšec, Fizičko projektiranje VLSI sklopova, FER, šk.g. 2008/09. 2

Planiranje prostora

Razmatranja koja se rade tijekom planiranja prostora (floorplan) pomaže pri donošenja odluka koje će pojednostaviti slijedeće korake fizičkog projektiranja. Na temelju razmještaja blokova donose se slijedeće odluke:

1. veličina i oblik blokova (komponenti)2. odluka o položaju priključaka3. proračun potrebne površine i izbor naboljeg oblika sklopa4. odluka o položaju ulazno/izlaznih priključaka

I kod planiranja prostora i kod razmještaja problem prospajanja se zanemaruje;chip planning je pokušaj uključivanja spajanja u problematiku planiranja prostora.

Pin assignment se može raditi za vrijeme floorplanninga, placemeneta ili nakon placementa.

Ako blokovi nisu unaprijed definirani dobar odabir priključaka za određeni net može popraviti placement.

Ako su blokovi unaprijed definirani možda se neki pinovi mogu zamijeniti.

Page 3: Planiranje prostora i razmještaj  (2)

J.Divković Pukšec, Fizičko projektiranje VLSI sklopova, FER, šk.g. 2008/09. 3

Razmještaj blokova – placement

Placement je raspoređivanje komponenti sklopa na površini pločice. Pri tome se ne vodi računa o detaljima povezivanja, ali se može i mora procjeniti kolika će biti potrebna duljina vodova.

Definicija: Zadan je skup blokova B={B1,B2,....Bn} koje treba rasporediti po površini. Svaki blok Bi ima svoje dimenzije: visinu hi i širinu wi;

N={N1,N2,....Nm} je skup netova koji predstavljaju veze između pojedinih

blokova; Q = {Q1,Q2,....Qk} predstavlja skup pravokutnika koji predstavljaju prazan prostor između pojedinihblokova kroz koje će prolaziti veze

između blokova.

Li je proračunata duljina neta Ni 1 i m.

Placement je problem razmještaja n blokova u n pravokutnika koji čine skup R = {R1,R2,...Rn} tako da je:

1. svaki blok Bi smješten u svoj pravokutnik Ri (Ri ima svoju zadanu širinu i visinu);2. dva pravokutnika se ne smiju preklapati, tj.:

0i jR R 1 ,i j n

Page 4: Planiranje prostora i razmještaj  (2)

J.Divković Pukšec, Fizičko projektiranje VLSI sklopova, FER, šk.g. 2008/09. 4

Razmještaj blokova (2)

3. placement mora omogućiti spajanje, tj. Qj za svaki mora biti dovoljne velike površine da omogući spajanje svih netova;

4.ukupna površina koja obuhvaća pravokutnike R i Q je minimalna;

5.ukupna duljina vodova je minimalna, tj.

Za sklopove s posebnim zahtjevima mora duljina najdužeg neta biti minimalna: je minimalna.

- ako stvarni položaj net-ova nije poznat meže se, u postupku planiranja prostora i razmještaja, modelirati i to područje: procjenjuje se potrebna duljina vodova i potrebna površina za vodove.

1 j k

1

minm

ii

L

1,...iL i m

Page 5: Planiranje prostora i razmještaj  (2)

J.Divković Pukšec, Fizičko projektiranje VLSI sklopova, FER, šk.g. 2008/09. 5

Razmještaj blokova (3)

a) Shema sklopa, b) do e) različiti razmještaji.

Najmanja duljina vodova kod razmještaja e).

Razmještaj blokova (placement) je postupak kojim se slažu komponente na površinu pločice.

Primjer: sklop s 8 komponeti

Page 6: Planiranje prostora i razmještaj  (2)

J.Divković Pukšec, Fizičko projektiranje VLSI sklopova, FER, šk.g. 2008/09. 6

Razmještaj blokova (4)

Primjer optimalnog razmještaja:

Površina svakog sklopa (layout) sastoji se od 2 dijela:- funkcionalna površina- površina za vodove

a) duljina vodova 10 jedinične duljine

b) razmještaj s duljinom vodova od 22 jedinice

Page 7: Planiranje prostora i razmještaj  (2)

J.Divković Pukšec, Fizičko projektiranje VLSI sklopova, FER, šk.g. 2008/09. 7

DefinicijaRaspored blokova (placement) je vrlo kompkeksan problem.Čak i najjednostavnioji slučaj (jednodimenzionalna raspodjela) je težak za rješiti.; broj mogućih rasporeda n ćelija je .

za n=50 (to je mali sklop)

Definicija problematike raspoređivanja blokova:

Zadano je:- Skup ćelija ili modula koji imaju priključke na svojim rubovima;- dimenzije ćelija;- skup netova.

-Cilj:Naći odgovarajuće fizičke lokacije za svaku ćeliju.

Ponekad su neki moduli unaprijed predviđeni za određenu poziciju.

!

2

n

64!1,5 10

2

n

Page 8: Planiranje prostora i razmještaj  (2)

J.Divković Pukšec, Fizičko projektiranje VLSI sklopova, FER, šk.g. 2008/09. 8

Funkcija cijene i zahtjevi

- mogućnost povezivanja- duljina vodova- površina- specijalni zahtjevi (snaga, brzina…)

Najčešće se kao funkcija cijene koristi duljina vodova. Kako je nepraktično, za svaki raspored, provoditi sva spajanja i dobivanje stvarne duljine vodova, radi se procjena duljina vodova.

Procjena duljine vodova je bitan dio svakog placement algoritma. Postupak mora biti brz, a pogreška u procjeni mora biti ista za sve netove; “skew” (razlika u duljini pojedinih netova) mora biti 0.

Pretpostavlja se da će vodovi slijediti tzv. Manhattan geometriju, tj. da su vodovi položeni u vodoravne ili okomite trake (kanale).

Manhattan udaljenost: od točke A do B = cij + rij ( broj redaka + broj kolona koje odvajaju točke A i B).

Page 9: Planiranje prostora i razmještaj  (2)

J.Divković Pukšec, Fizičko projektiranje VLSI sklopova, FER, šk.g. 2008/09. 9

Procjena duljine vodova

Neki netovi imaju više od dva priključka – to su multi pin netovi.

Pri procjeni duljine neta postoji nekoliko načina, a svaki ima svoje prednosti i nedostatke.

Najčešće korištene metode za procjenu duljine vodova:- metoda poluopsega (Semi perimether Method)- kompletan graf (Complete Graph)- minimalni lanac (Minimum Chain)- spoj od ulaza do izlaza(Source to Sink Connection)- aproksimacija Stenerovim stablom (Steiner Tree Approximation)- minimalni razmak – (stablo minimalnog razmaka Minimum Spanning Tree)

Page 10: Planiranje prostora i razmještaj  (2)

J.Divković Pukšec, Fizičko projektiranje VLSI sklopova, FER, šk.g. 2008/09. 10

Nađe se najmanji pravokutnik koji obuhvaća sve priključke koje treba spojiti.

Poluopseg – perimetar

Duljina poluopsega = 10

Metoda je točna za netove s 2 ili 3 priključka. Za netove s više priključaka procjena je premala

Page 11: Planiranje prostora i razmještaj  (2)

J.Divković Pukšec, Fizičko projektiranje VLSI sklopova, FER, šk.g. 2008/09. 11

Kompletan graf

Za net s n-priključaka, kompletan graf ima n(n-1)/2 bridova, stablo ima (n-1) brid, pa je procjena duljine stabla:

2

par net a

L Mdn

Md – Manhattan udaljenost

Duljina L=16

Page 12: Planiranje prostora i razmještaj  (2)

J.Divković Pukšec, Fizičko projektiranje VLSI sklopova, FER, šk.g. 2008/09. 12

Minimalni lanac Priključci su u lancu; svaki priključak ima najviše 2 susjeda. Počinje se s jednim čvorom, na njega se spoji najbliži susjed, pa onda slijedeći itd.

Duljina lanca = 13

Page 13: Planiranje prostora i razmještaj  (2)

J.Divković Pukšec, Fizičko projektiranje VLSI sklopova, FER, šk.g. 2008/09. 13

Spoj od ulaza do izlaza

Izlaz iz jedne ćelije (source) spojen je na sve druge točke neta (ulaz u druge ćelije) i to posebnim vodovima (zvjezdasta konfiguracija).

Metoda je jednostavna, ali daje preveliku procjenu. Za “gusto” povezane mreže procjena je dosta dobra.

duljina od ulaza do izlaza =16

Page 14: Planiranje prostora i razmještaj  (2)

J.Divković Pukšec, Fizičko projektiranje VLSI sklopova, FER, šk.g. 2008/09. 14

Steiner stablo

Steiner stablo je najkraći put spajanja skupa priključaka;

vodovi se mogu granati u bilo kojoj točki duž puta prema spoju s drugom točkom.

Postoje algoritmi za pronalaženje Steiner puta.

duljina Steiner stabla = 11

Page 15: Planiranje prostora i razmještaj  (2)

J.Divković Pukšec, Fizičko projektiranje VLSI sklopova, FER, šk.g. 2008/09. 15

Minimalni razmak

Ovdje je grananje dozvoljeno samo kod pozicije priključka.

Za mrežu s n priključaka stablo se može konstruirati određujući udaljenosti između svih mogućih parova priključaka i spajajući (n-1) bridova koji ne čine ciklus.

Postoje algoritmi za pronalaženje takvog stabla.

duljina minimalnog razmaka = 12

Page 16: Planiranje prostora i razmještaj  (2)

J.Divković Pukšec, Fizičko projektiranje VLSI sklopova, FER, šk.g. 2008/09. 16

Minimiziranje duljine netovaCilj placementa je da se pronađe rješenje koje je u potpunosti moguće spojiti. Površina koju zauzima prostor za spajanje mora biti minimalna. To se može postići tako da se ćelije koje su “čvrsto” povezane smjeste i fizički blizu jedna drugoj. Često korištena objektna funkcija je minimiziranje L(P) – ukupne duljine svih netova.

( ) n nn N

L P W d

dn – procjenjena duljina neta nwn – težina neta n (težinski faktor)N – skup netova

net težinski faktor

Page 17: Planiranje prostora i razmještaj  (2)

J.Divković Pukšec, Fizičko projektiranje VLSI sklopova, FER, šk.g. 2008/09. 17

Minimiziranje maksimalnog presjeka (maximum cut)

Ako pravac x=xj dijeli prostor na dva dijela, xj se naziva cut line – linija presjeka.

Tri su nogućnosti:1. net ima sve priključke na lijevoj strani2. net ima sve priključke na desnoj strani3. net ima priključke na obje strane; takav net je presječen linijom presjeka.xi – okomita presječna linijayi – vodoravna presječna linijaP(xi) – broj netova placementa P presječenih linijom xi

Page 18: Planiranje prostora i razmještaj  (2)

J.Divković Pukšec, Fizičko projektiranje VLSI sklopova, FER, šk.g. 2008/09. 18

Minimiziranje maksimalnog presjeka(2)

xi – okomita presječna linijayi – vodoravna presječna linijaP(xi) – broj netova placementa P presječenih linijom xi

P(yi) – broj netova placementa P presječenih linijom xi

X(P) je najveće vrijednosti presječenih netova za bilo koji i: ( ) max ( )P i

iX P x

Ako je za neki placement P X(P) = 10 i Y(P)=15, to znači da duž tih presječnih linija mora kapacitet kanala kroz koje se provlače vodovi biti 10, odn. 15.Ako se i osigura takav kapacitet kanala (tracks), to još ne znači da će kompletno spajanje biti moguće.

Ako se radi o “gate array”-u koji ima unaprijed određen kapacitet kanala Hmax i Vmax, treba naći takav raspored (placement) kod kojega je:

X(P) Hmax i Y(P) Vmax

Smanjenje X(P) i Y(P) kod gate array-a povećava mogućnost kompletnog spajanja.

Page 19: Planiranje prostora i razmještaj  (2)

J.Divković Pukšec, Fizičko projektiranje VLSI sklopova, FER, šk.g. 2008/09. 19

Minimiziranje maksimalne gustoćeMogućnost spajanja može se određivati i gustoćom D(P). Kapacitet kanala (brida ei) je , a proračunati broj netova koji će kroz taj kanal prolaziti je . Gustoća brida je:

( )P ie( )P ie

( )( )

( )P i

P iP i

ed e

e

mora biti < 1

Gate array – funkcionalni blokovi i površina za spajanjeA – je tzv. switchbox

Mjera mogućnosti spajanja sklopa za određeni raspored je ( ) max ( )P ii

D P d x

Page 20: Planiranje prostora i razmještaj  (2)

J.Divković Pukšec, Fizičko projektiranje VLSI sklopova, FER, šk.g. 2008/09. 20

Postupci provođenja razmještaja

Razmještaj n ćelija na n raspoloživih mjesta(slot), uz uvjet da je duljina vodova funkcija koju treba minimizirati je vrlo kompliciran problem.

Za mali broj ćelija (manji od 10) može se napraviti sve moguće razmještaje i izabrati najbolji.

Za veći broj ćelija je to nemoguće napraviti, pa se koristi heuristička metoda, koja traje kraće a daje dobro, ne nužno i najbolje, rješenje.

Heuristički algoritmi: konstruktivni i iterativni.

Primjer: Konstruktivni algoritam stvara rješenje uzimajući jednu po jednu ćeliju.Površina sklopa je podijeljena na “n” slotova (otvor) koji su na početku prazni; za vrijeme svake iteracije jedna se ćelija stavlja u jedan prazni slot. Na kraju svake iteracije imamo parcijalni razmještaj podskupa modula.

Za vrijeme svake iteracije treba donijeti dvije odluke:1. koju nerazmještenu ćeliju izabrati kao slijedeću2. kamo staviti izabranu ćeliju

Page 21: Planiranje prostora i razmještaj  (2)

J.Divković Pukšec, Fizičko projektiranje VLSI sklopova, FER, šk.g. 2008/09. 21

Postupci provođenja razmještaja(1)Parcijalni placement se sastoji od m1,m2,...mi ćelija. razmatraju se sve

neraspoređene ćelije mj i računa se

1j k

i

mj m mk

A C

j km mC označava vezu između neraspoređene ćelije mj i raspoređenih ćelija {m1,m2,...mi}

Konstruktivni algoritam za razmještaj

Izabire se ćelija s najvećim Amj. Ovaj postupak je poznat kao maximum conectivity (maxcon)postupak.Izabrana ćelija možese smjestiti u bilo koji od (n-1) praznih slotova.

Za pokretanje konstruktivnog algoritma trebamo početni parcijalni razmještaj; izabire se jedna ćelija nazvana “seed” – zametak, i nju stavljamo u sredinu redka. Ova ćelija može biti izabrana slučajno ili na bazi nekog kriterija, čini se logičnim izabrati ćeliju s najvećom povezanošću.

Page 22: Planiranje prostora i razmještaj  (2)

J.Divković Pukšec, Fizičko projektiranje VLSI sklopova, FER, šk.g. 2008/09. 22

Algoritam: Constructive Linear Placement

To je tzv. pohlepni (greedy) postupak.

U svakom koraku ponalazi najbolji pomak, ali postupak na kraju ne mora dati i najbolje rješenje.

U svakoj iteraciji algoritam donosi odluku na temelju nepotpunih informacija;

računaju se veze samo u odnosu na već smještene ćelije, a neraspoređene ćelije se ignoriraju. Nakon što je slot izabran algoritam se ne vraća natrag.

Takav izbor ne mora dati najbolji raspored nakon (i+1) iteracije.

Page 23: Planiranje prostora i razmještaj  (2)

J.Divković Pukšec, Fizičko projektiranje VLSI sklopova, FER, šk.g. 2008/09. 23

Algoritam: Konstruktivni linearni razmještaj Constructive Linear Placement

AlgoritamBegin (*n je broj ćelija*) (*C1….n,1….n je matrica spajanja *) (*P1….n je razmještajni vektor placement vector*) (*Pi ukazuje na slot u koji je smješten modul i *) For i = 1 do n

Pi = - (*Pi = - znači da je slot i prazan*) End For S = Seed(n,C); (* Određivanje seed ćelije*) PS = ; (* Smjesti seed ćeliju u centar*) Označi S kao zauzet; For i = 1 do n-1 Do

sc = Select Cell (N,P,C);ss = Select Slot(n,sc,P,C);Psc = ss;Označi sc kao zauzet;

End;End.

Page 24: Planiranje prostora i razmještaj  (2)

J.Divković Pukšec, Fizičko projektiranje VLSI sklopova, FER, šk.g. 2008/09. 24

Primjer7 ćelija (C1,C2,C3,C4,C5,C6,C7) i 7 slotova (S1,S2,S3,S4,S5,S6,S7) u jednom nizu

Bira se između ćelija C5 i C6; izabere se modul C5 koji se smješta u slot S4;

Povezanost modula (ćelija) C1...C7 je slijedeća:C1=1,C2=1,C3=1,C4=1,C5=3,C6=3,C7=2

S1 S2 S3 S4 S5 S6 S7

C5

Page 25: Planiranje prostora i razmještaj  (2)

J.Divković Pukšec, Fizičko projektiranje VLSI sklopova, FER, šk.g. 2008/09. 25

Primjer (nastavak)

sada se bira slijedeća ćelija; na ćeliju C5 spojene su ćelije C1, C2 i C7.

Povezanost je jednaka, C15=C25=C75=1, slučajnim izborom uzima ćelija C1 koju treba smjestiti što bliže

ćeliji C1; stavlja u slot S3, (mogla je biti stavljena i u slot S5).

proces se ponavlja: C2: C25=1

C5C1 C2

C7: C75=1 ; izabere se ćelija C7 i smjesti u slot S2.

C7

Page 26: Planiranje prostora i razmještaj  (2)

J.Divković Pukšec, Fizičko projektiranje VLSI sklopova, FER, šk.g. 2008/09. 26

Primjer(1)

-C67 = 1 ćelija C6 u S1

-C36 = 1 i C46 = 1

slučajnim izborom ćelija C3 u S6, a ćelija C4 u S7

C7 C1 C5 C2 C3C6 C4

Page 27: Planiranje prostora i razmještaj  (2)

J.Divković Pukšec, Fizičko projektiranje VLSI sklopova, FER, šk.g. 2008/09. 27

Min-cut razmještajMinimiziranje X(P) je usko vezano uz problem podjele na dva dijela (TWPP).

Primjeni se algoritam za podjelu na zadani sklop i dobiju se dva bloka A i B; moduli u A bloku su smješteni lijevo od linije presjeka c1 (cut line), a moduli u bloku B su desno od linije presjeka.

Dobiveni cutset čini broj vodoravno položenih netova presječenih linijom c1 i označenih s . Proces se nastavlja podjelom bloka A naA1 i A2 i bloka B na B1 i B2: nakon toga se proces može ponovo nastaviti. itd.

1( )P c

Page 28: Planiranje prostora i razmještaj  (2)

J.Divković Pukšec, Fizičko projektiranje VLSI sklopova, FER, šk.g. 2008/09. 28

Min-cut razmještaj(1)

1( )P c

Pretpostavimo da je procedura podjele sklopa podjelila sklop optimalno; je minimalno mogući “cut” u odnosu na ukupni sklop

2( )P c

3( )P c

je mincut u odnosu na podsklop A

je mincut u odnosu na podsklop B

Bilo bi poželjno da je 1( ) ( )P i P ic c , 1 i r-1, jer bi to vodilo minimizaciji X(P).

Ali to se ne postiže.

Page 29: Planiranje prostora i razmještaj  (2)

J.Divković Pukšec, Fizičko projektiranje VLSI sklopova, FER, šk.g. 2008/09. 29

Min-cut razmještaj

Postupak Mincut ne minimizira X(P), već minimizira uz zahtjev da je minimalan.

To se označava kao ; isto tako minimizira .

Minimiziranje X(P),Y(P) ili L(P) je računski vrlo komplicirano, pa se definira sekvencijska objektna funkcija F(P):

Može se relativno lako dobiti skoro minimalnu vrijednost F(P)

1( ) ( )P i P ic c

2( )P c1( )P c

2 1( ) ( )P Pc c 3 1( ) ( )P Pc c

1 1( ) min ( ) min ( ) ............ min ( )P r P r PF P c c c

Ne može se tvrditi da je iako bi to bilo poželjno.

Page 30: Planiranje prostora i razmještaj  (2)

J.Divković Pukšec, Fizičko projektiranje VLSI sklopova, FER, šk.g. 2008/09. 30

Min-cut placement algoritam Min-cut placement algoritam predstavlja mogućnost dobivanja uređenog niza r-presječnih linija. Ključni zahtjevi algoritma su:

1. efikasni postupak za podjelu sklopa,2. izbor presječnih linija.

F(P) se minimizira prvom podjelom sklopa na dva dijela, tako da je broj netova koji prelaze preko linije c1 minimiziran. Ako je c1 okomita linija, tada su ćelije lijevo od c1 fiksne i ne mogu se pomaknuti na desno; ćelije desno od c1 su isto fiksne i ne mogu ići lijevo.

Uzima se slijedeća presječna linija c2 i cut2 se minimizira u odnosu na već postavljeni uvjet da je c1 presjek minimalan.

Procedura se ponavlja sve dok se ne iskoriste svih cr linija. Zbog “greedy” načina ovaj postupak ne garantira da će rješenje biti optimalno.

Podjela sklopa uz pomoć linija ci, tako da je minimalan broj presječenih vodova (netova) može se postići uz bilo koji algoritam opisan kod podjele sklopa (partitioning).

Page 31: Planiranje prostora i razmještaj  (2)

J.Divković Pukšec, Fizičko projektiranje VLSI sklopova, FER, šk.g. 2008/09. 31

Metode izbora presječnih linija 1. Quadrature Placement Procedure

Površina (layout) se dijeli na 4 dijela pomoću 2 presječne linije- okomite i vodoravne, koje prolaze kroz sredinu.

Ovaj se postupak ponavlja sve dok se cijela površina ne podijeli u n dijelova (slotova).

Metoda je pogodna za sklopove koji imaju gustu povezanost u sredini.

Page 32: Planiranje prostora i razmještaj  (2)

J.Divković Pukšec, Fizičko projektiranje VLSI sklopova, FER, šk.g. 2008/09. 32

Metode izbora presječnih linija(2)

2. Bisection Placement Procedure

Površina se dijeli na jednake dijelove (polovice) vodoravnim, pa onda okomitim linijama.

Postupak traje dok se ne dođe do željenog broja slotova.

Page 33: Planiranje prostora i razmještaj  (2)

J.Divković Pukšec, Fizičko projektiranje VLSI sklopova, FER, šk.g. 2008/09. 33

Metode izbora presječnih linija(3)

3. Slice/Bisection

Sklop koji se sastoji od n ćelija dijeli se presječnom linijom c1 na k i (n-k) dio tako da je minimiziran .

Prvih k-ćelija se dodijeli najvišem ili najnižem redku. Postupak se ponavlja na preostalih (n-k) ćelija koje se dijele na k i (n-2k) ćelija. Radimo vodoravne rezove na layoutu – slice.

Proces traje dok sve ćelije nisu dodijeljene redovima.

Ćelije se tada pridjeljuju stupcima koristeći okomitu podjelu (bisection).

1( )P c

Ova metoda je pogodna za sklopove kod kojih je većina spojnih vodova na periferiji sklopa.

Page 34: Planiranje prostora i razmještaj  (2)

J.Divković Pukšec, Fizičko projektiranje VLSI sklopova, FER, šk.g. 2008/09. 34

PrimjerZa sklop sa slike zadana je net lista. Sklop se dijeli na podsklopove okomitom i vodoravnom podjelom, tako da je broj netova koji prolaze preko presječnih linija najmanji.

Za podjelu sklopa koristi se Kernighan –Lin postupak, a za površinu Quadrature Placement procedure.

KL daje podjelu na L={1,2,3,4,5,6,7,9} i R={8,10,11,12,13,14,15,16}, cost =4

Page 35: Planiranje prostora i razmještaj  (2)

J.Divković Pukšec, Fizičko projektiranje VLSI sklopova, FER, šk.g. 2008/09. 35

Primjer(2)Presječna linija c1 je okomita i ide kroz sredinu površine; L ide lijevo a R desno.

Nakon toga se sklop dijeli vodoravnom presječnom linijom c2 na gornji (T - top) i donji dio (B – bottom). Podsklopovi L i R se podijele svaki na 2 dijela:LT ={2,4,5,7}LB ={1,3,6,9}RT={8,12,13,14}RB={10,11,15,16}

Page 36: Planiranje prostora i razmještaj  (2)

J.Divković Pukšec, Fizičko projektiranje VLSI sklopova, FER, šk.g. 2008/09. 36

Primjer(3)

Postupak se nastavlja , i površina se dijeli s dvije okomite linije c3a i c3b, te s dvije vodoravne c4a i c4b.

Konačna podjela prikazana je na slici

Page 37: Planiranje prostora i razmještaj  (2)

J.Divković Pukšec, Fizičko projektiranje VLSI sklopova, FER, šk.g. 2008/09. 37

Ograničenja Mincut algoritma

Layout – raspored komponenti dobiven podjelom skupa ćelija i pridjeljivanje područja pojedinim ćelijama nije najbolji.

Glavni razlog je u tome što se ne vodi računa o vanjskim priključcima, a oni su obično unaprijed određeni. Za dani primjer: -nakon podjele na L i R ide podjela na LT, LB, RT i RB-LB=1,3,6,9-LT=2,4,5,7 Podjela je mogla biti drugačija; s obzirom na poziciju priključaka duljina vodova bila bi veća. Pogotovo da su R i L zamijenjeni.

U početku se o tome nije vodilo računa, a kasnije je to uzeto u obzir (alg. Partitioning based placement propagation – Dunlop i Kernighan)

Page 38: Planiranje prostora i razmještaj  (2)

J.Divković Pukšec, Fizičko projektiranje VLSI sklopova, FER, šk.g. 2008/09. 38

Terminal propagationU grupi ćelija nalazi se i ćelija X koja je spojena na signal na vanjski priključak (signal dolazi izvana). Očito je da ćelija X mora biti smještena što bliže mjestu na koje taj signal dolazi. Na rubu pločice položaj priključaka je određen, pa središnji, unutarnji dio “layouta” mora o tome voditi računa.

Na pr. linija 3a dijeli LB dio na {1,3} i {6,9}, a linija 4b dijeli {6,9} na {6} i {9}. Bolje je staviti ćeliju 9 iznad 6, nego obrnuto, jer bi ovaj drugi slučaj trebao dulje vodove. Ćelija 9 povezana je s ćelijama iz gornjeg dijela layouta; net je presječen linijom c2, pa ćelija 9 mora biti što bliže presječnoj liniji c2. Algoritam Min-cut o tome ne vodi računa.

Page 39: Planiranje prostora i razmještaj  (2)

J.Divković Pukšec, Fizičko projektiranje VLSI sklopova, FER, šk.g. 2008/09. 39

Terminal propagation(2)

Na pr. ćelije su podijeljene na L i R, a L dio na L1 i L2. Postoji net koji povezuje dvije ćelije u L1 dijelu i 3 ćelije u R dijelu, slika a).

Ako se R dio podijeli na R1 i R2 treba uzeti u obzir da je net koji je presječen u L1 a ne u L2 dijelu; a to znači da navedene tri ćelije treba staviti u R1 dio (bliži L1); slika b)

Page 40: Planiranje prostora i razmještaj  (2)

J.Divković Pukšec, Fizičko projektiranje VLSI sklopova, FER, šk.g. 2008/09. 40

Terminal propagation(3)

To se radi na slijedeći način:

Net “s” spojen je na ćelije u L dijelu; nađe se geometrijsko središte tih ćelije i povuče se (propagate) net do najbliže točke na presječnoj liniji s R dijelom. Ovdje se smjesti zamišljena, lažna (dummy) ćelija spojena na isti net. Tokom podjele ćelije spojene na taj net moraju ostati u određenom dijelu layouta, u kojem se nalazi i lažna ćelija. Pri podjeli funkcija cijene uključuje presjecanje tog neta.

Page 41: Planiranje prostora i razmještaj  (2)

J.Divković Pukšec, Fizičko projektiranje VLSI sklopova, FER, šk.g. 2008/09. 41

Primjer

4 komponente sklopa na slici treba smjestiti na četiri mjesta, pravokutne 2x2 strukture:

a) Sklop b) graf sklopa

a) podjela na dva dijela; cost =1b) podjela desnog dijela; cost =1

c) podjela L dijela uz terminal propagation (točka p1)d) podjela L dijela bez terminal propagation

Page 42: Planiranje prostora i razmještaj  (2)

J.Divković Pukšec, Fizičko projektiranje VLSI sklopova, FER, šk.g. 2008/09. 42

Simulirano kaljenje Najrazvijenija metoda za razmještaj (placement) ćelija. Opći algoritam je već opisan i prilagođen je za primjenu u ovom dijelu Fizičkog projektiranja sklopova.

Ovaj algoritam je za placement prvi puta korišten u poznatom TimberWolf paketu (razvijen za razmještaj i spajanje - placement i routing).

Algoritam korišten u TimberWolf-u:

Prvo treba izabrati prikladnu funkciju za promjenu početnog razmještaja (perturb function), koja će generirati novu konfiguraciju ćelija pridjeljenu slot-ovima.

Jednostavnosti radi pretpostavi se model šahovske ploče (checker bord model);

najjednostavnija susjedna konfiguracija dobije se izmjenom parova – izaberu se dva slota i zamjeni se njihov sadržaj.

Page 43: Planiranje prostora i razmještaj  (2)

J.Divković Pukšec, Fizičko projektiranje VLSI sklopova, FER, šk.g. 2008/09. 43

Simulirano kaljenje

Drugi način je da se slučajno raspodjele ćelije u pojedine lokacije, a zatim se koristi rotacija ćelija, zrcaljenje ili bilo koji drugi pomak koji može dati promjenu u duljini vodova.

promjena funkcije cijene: h=Cost(NewS) – Cost(S)

Hoće li lošije rješenje biti prihvaćeno ovisi o funkciji vjerojatnosti, koja ovisi o trenutnoj temperaturi T:

exp( )h

randomT

random = 0,1 slučajno generirani broj

Page 44: Planiranje prostora i razmještaj  (2)

J.Divković Pukšec, Fizičko projektiranje VLSI sklopova, FER, šk.g. 2008/09. 44

Algoritam:

Kvaliteta postupka određena je parametrima i funkcijama koje se koriste u postupku, a to su:

-način hlađenja (cooling schedule), a sastoji se od izbora početne temperature i konačne temperature, te funkcije za promjenu temperature (SCHEDULE);

-“innerloop cretirion” je broj prihvaćanja lošijih rješenja pri pojedinoj temperaturi;

-postupak koji se koristi za mijenjanje položaja ćelija PERTURB;

-vjerojatnost prihvaćanja F i funkcija cijene

Dobar izbor ovih parametara i funkcija dat će i dobar raspored u relativno kratkom vremenu.

Page 45: Planiranje prostora i razmještaj  (2)

J.Divković Pukšec, Fizičko projektiranje VLSI sklopova, FER, šk.g. 2008/09. 45

Primjer

Sklop se sastoji od 9 ćelija(C1,C2,C3,C4,C5,C6,C7,C8,C9) povezanih s 13 netova (N1,N2,....N13); zadana je netlista.

Netlista:N1 = {C4, C5, C6} N2 = {C4, C3} N3 = {C2, C4} N4 = {C3, C7, C8} N5 = {C2, C3, C6} N6 = {C4, C7, C9} N7 = {C2, C8} N8 = {C1, C7} N9 = {C3, C5, C9} N10 = {C6, C8} N11 = {C2, C6, C7} N12 = {C4, C7, C9} N13 = {C3, C9}

Pretpostavka: sve ćelije su iste veličine, a površina je podijeljena na 3 redka i 3 stupca – tj. imamo 9 slotova.

Svakom slotu treba pridjeliti jednu ćeliju tako da je ukupna duljina vodova minimizirana.

Kao Perturb funkcija koristi se sekvencijska zamjena parova. Sekvencijska zamjena znači da se ćelija u slotu i zamijeni ćelijom u slotu (i+1), (i+2),....(n-1),n za 1 i n-1.

Početna temperatura T0 = 10, konstante M=20, = 0,9 , =1Program završava s count = 560 iteracija, T=0,581, Cost=24.

Page 46: Planiranje prostora i razmještaj  (2)

J.Divković Pukšec, Fizičko projektiranje VLSI sklopova, FER, šk.g. 2008/09. 46

Primjer(1)

b) Završna raspodjela; Cost=24

(Cost = duljina vodova proračunata metodom poluopsega)

a) Početna raspodjelaCost=34

Page 47: Planiranje prostora i razmještaj  (2)

J.Divković Pukšec, Fizičko projektiranje VLSI sklopova, FER, šk.g. 2008/09. 47

Primjer(1)

Od dobivenih lošijih rješenja navedena su samo ona prihvaćena.

Page 48: Planiranje prostora i razmještaj  (2)

J.Divković Pukšec, Fizičko projektiranje VLSI sklopova, FER, šk.g. 2008/09. 48

Timber Wolf algoritam

Timber Wolf3.2 paket koji se koristi za razmještaj i spajanje standardnih ćelija.

Vanjski priključci (pad) i Macro blokovi (dozvoljeno je definiranje do 11 macro blokova) ostaju na svojim početnim pozicijama.

Razmještaj i spajanje (placement and routing) provodi se u 3 koraka:

1. ćelije se raspoređuju s ciljem da se minimizira duljina vodova;2. umeću se ćelije za prospoj (feed-through) i radi se (globalno) spajanje;3. rade se lokalne promjene da se smanji broj vodova u kanalima (track).

Za sada se posvećujemo samo 1. koraku.

Koristi se Simulirano kaljenje.

Page 49: Planiranje prostora i razmještaj  (2)

J.Divković Pukšec, Fizičko projektiranje VLSI sklopova, FER, šk.g. 2008/09. 49

Timber Wolf algoritam(1)

Promjena pozicije ćelija (Perturb Function)

1. pomakni ćeliju u novu lokaciju - na pr. u drugi redak;2. zamijeni položaj dviju ćelija;3. zrcali ćelije oko x-osi.

TimberWolf3.2 rijeđe koristi zrcaljenej(10%), a češće premještaj ćelije i zamjenu pozicija dviju ćelija.

Premještaji ćelija su ograničeni na područje (prozor) dimenzija HT i WT.

Page 50: Planiranje prostora i razmještaj  (2)

J.Divković Pukšec, Fizičko projektiranje VLSI sklopova, FER, šk.g. 2008/09. 50

Timber Wolf algoritam(2)

Dimenzije prozora HT i WT su ovisne o temperaturi (opadajuće funkcije):ako je trenutna temperatura T1 s dimenzijama prozora W(T1) i H(T1), na temperaturi T2 visina i širina novog prizora bit će:

2 2

2 1 2 11 1

log log

log log

T TW T W T H T H T

T T

Funkcija cijene:

Cost = Cost1 + Cost2 + Cost3

Cost1 = za sve netove (de duljina neta, we težinski faktor)e ee N

w d

Page 51: Planiranje prostora i razmještaj  (2)

J.Divković Pukšec, Fizičko projektiranje VLSI sklopova, FER, šk.g. 2008/09. 51

Timber Wolf algoritam(3)

2

22 iji j

Cost w O

33 R Rredak

Cost w L L

Cost2 = kazna za preklapanje blokova

Ako je O(ij) mjera preklapanja bit će

Cost3 = kazna za nejednaku duljinu redaka kod standardnih ćelija.

Pri premještanju ćelija događat će se da svi nizovi ćelija nisu iste duljine:

- duljina redka- prosječna duljina redka

R

R

L

L

Page 52: Planiranje prostora i razmještaj  (2)

J.Divković Pukšec, Fizičko projektiranje VLSI sklopova, FER, šk.g. 2008/09. 52

Timber Wolf algoritam(4)

Promjena temperature (cooling shedule) (T) = (T)T

početna temperatura = 4 000 000konačna temperatura = 0,1

(T) – brzina hlađenja, ovisi o temperaturi T:(T) =0,8 za visoke temperature (u početku postupka)(T)=0,95 za srednje temperature(T) =0,8 za niske temperature

Broj pomaka ćelija na svakoj temperaturi ovisi o veličini sklopa; preporuke:100 pomaka po ćeliji za sklopove do 200 ćelija;700 pomaka po ćeliji za sklopove s oko 3000 ćelija.

Za sklop sa 200 ćelija će se u oko 125 temperaturnih koraka ispitati 2,34.106 konfiguracija.

Za sklop s 3000 ćelija dobit će se 247,5.106 konfiguracija.

Page 53: Planiranje prostora i razmještaj  (2)

J.Divković Pukšec, Fizičko projektiranje VLSI sklopova, FER, šk.g. 2008/09. 53

Silom usmjereni razmještaj Problem razmještaja (placement) može se transformirati u numeričko optimizacijski problem. Jedan od takvih postupaka je “force directed placement” – silom usmjereni razmještaj. Problem razmještaja sveden na rješavanje skupa linearnih jednadžbi s ciljem da se odredi ravnotežna lokacija, tj. nađu idealne x i y koordinate.

Osnovna ideja: ćelije povezane netom djeluju “silom” jedna na drugu. Iznos sile F kojom ćelija i djeluje na ćeliju j proporcionalan je njihovoj udaljenosti (analogno Hookovom zakonu u mehanici).

Ako je ćelija a povezana s ćelijom b netom čija je “težina” wab, a udaljenost dab, sila privlačenja ćelija a i b proporcionalna je umnošku .

Ako je ćelija i spojena na nekoliko ćelija j udaljenih dij vodovima težine wij, ukupna sila na ćeliju i jednaka je :

i ij ijj

F w d

ab abw d

Page 54: Planiranje prostora i razmještaj  (2)

J.Divković Pukšec, Fizičko projektiranje VLSI sklopova, FER, šk.g. 2008/09. 54

Silom usmjereni razmještaj(1)

Primjer: ćelija i povezana je sa 4 susjedne ćelije (j =4)

1 1 3 2 3 3 4 4i i i i i i i i iF w d w d w d w d

Ako se ćelija i može pomicati, ona se pomiče u smjeru rezultantne sile sve dok rezultantna sila ne bude jednaka nuli.

Ova se lokacija zove “zero force target location” – ciljna lokacija nulte sile.

Kada se sve ćelije smjeste u svoje ciljne lokacije duljina vodova je minimizirana.

Metoda se sastoji u proračunu sile na bilo koju ćeliju, koja se onda pomiče u smjeru rezultirajuće sile i smješta ćelija na ciljnu lokaciju čije su koordinate .0 0,i ix y

Page 55: Planiranje prostora i razmještaj  (2)

J.Divković Pukšec, Fizičko projektiranje VLSI sklopova, FER, šk.g. 2008/09. 55

Silom usmjereni razmještaj(2)

0 0

0 0

0

0

ij j i

ij j i

w x x

w y y

Ciljna lokacija određuje se za x i y os preko izraza:

čija rješenja daju:

0ij j

ji

ijj

w x

xw

0ij j

ji

ijj

w y

yw

Page 56: Planiranje prostora i razmještaj  (2)

J.Divković Pukšec, Fizičko projektiranje VLSI sklopova, FER, šk.g. 2008/09. 56

Primjer

Sklop s jednom komponentom i 4 I/O priključka prikazan je na slici. Na raspolaganju je 9 pozicija (slotova);4 vanjska priključka smještena su na 4 ugla 3X3 rešetke (grid);

Težinski faktori vodova su: 8

10

3

3

vdd

out

in

gnd

w

w

w

w

Treba naći ciljnu lokaciju nulte sile za 1 komponentu unutar 3X3 rešetke.Pozicije vanjskih priključaka su:

Vdd = (0,2)IN = (0,0)OUT = (2,2)GND = (2,0)

Vdd OUT

IN GND

0,0 1,0 2,0

0,1

0,2

Page 57: Planiranje prostora i razmještaj  (2)

J.Divković Pukšec, Fizičko projektiranje VLSI sklopova, FER, šk.g. 2008/09. 57

Primjer(1)

Rješenje:

0

8 0 10 2 3 0 3 2 26 1,083

8 10 3 3 24

ij jj Vdd Vdd Vout Vout In In Gnd Gnd

iij Vdd Vout In Gnd

j

w xW x W x W x W x

xw W W W W

0

8 2 10 2 3 0 3 0 36 1,5

8 10 3 3 24

ij jj Vdd Vdd Vout Vout In In Gnd Gnd

iij Vdd Vout In Gnd

j

w yW y W y W y W y

yw W W W W

Pozicija lokacije nulte sile je (1,083;1,5) što se može aprokimirati s (1,2).

Page 58: Planiranje prostora i razmještaj  (2)

J.Divković Pukšec, Fizičko projektiranje VLSI sklopova, FER, šk.g. 2008/09. 58

Silom usmjereni razmještaj(2)

Ovaj se pristup može poopćiti u jednu konstruktivnu proceduru za razmještaj na slijedeći način:Počinje se s nekim početnim razmještajem; izabere se ćelija i računa njezina lokacija nulte sile. Provodi se iterativni postupak s ciljem da se poboljša prijašnje rješenje.

Odluke koje takav algoritam donosi su:1. koju ćeliju izabrati;2. redosljed izabiranja ćelija;3. kuda premjestiti izabranu ćeliju, ako je izračunata lokacija nulte sile već zauzeta.

Ad 1-Ćelije koja će se pomicati mogu biti izabrane slučajno, ali se može koristiti i neka

heuristička metoda; logično je da se izabere ona ćelija “i” čija je sila Fi najveća u trenutnoj konfiguraciji.

Ad 2 –Ako treba zadovoljiti neke vremenske uvjete može se prvo uzeti ćelija koja je spojena

na kritični net.

Page 59: Planiranje prostora i razmještaj  (2)

J.Divković Pukšec, Fizičko projektiranje VLSI sklopova, FER, šk.g. 2008/09. 59

Silom usmjereni razmještaj(2)

Ad 3 –Problem: treba smjestiti ćeliju P a izračunata lokacija zauzeta je ćelijom Q

Ako je izračunata lokacija zauzeta postoji nekoliko mogućnosti.

1. stavi ćeliju P na slobodnu lokaciju blizu Q;

2. izračunati promjenu fukcije cijene ako se ćelija P zamjeni sa Q. Ako se dobije smanjenje funkcije cijene, napravi se zamjena. Funkciju cijene moramo izračunati, jer ćelija Q može biti u svojoj lokaciji nulte sile.

3. Radi se tzv. “ripple” pomak: ćelija P se stavi u zauzetu lokaciju, a ćelija Q u susjednu; ako je susjedna ćelija zauzeta ćelijom R, ćelija R ide u svoju susjednu lokaciju itd.

4. Alternativni postupak: lokacija nulte sile računa se za sve ćelije. Traži se par P,Q takav da je položaj ćelije Q lokacija nulte sile ćelije P i obratno. Ćelije P i Q se zamjene.

Page 60: Planiranje prostora i razmještaj  (2)

J.Divković Pukšec, Fizičko projektiranje VLSI sklopova, FER, šk.g. 2008/09. 60

Algoritam Force directed Placement

Izračunaj povezanost za sve ćelije;Složi ćelije u opadajući niz prema stupnju povezanosti i spremi ih u listu L. While (iteration count < iteration limit) Seed = slijedeći modul s liste L Označi poziciju prazne ćelije; While end ripple = false

Računaj ciljnu točku ćelijei i zaokruži na najbližu integer vrijednost; Case ciljna točka je PRAZNA:

Pomakni seed na ciljnu točku i zaključaj;end ripple = true;abort count = 0;

Case ciljna točka ZAKLJUČANA:Pomakni izabranu ćeliju na najbližu praznu lokaciju.end ripple = true;abort count = abort count+1;If abort count > abort limit Then Otključaj sve ćelije (lokacije); Iteration count = iteration count+1;EndIf;

Case ciljna točka JEDNAKA TRENUTNOJ LOKACIJI:end ripple = true;abort count = 0;

Case ciljna točka OKUPIRANA : (*ali ne i zaključana*)Izaberi ćeliju za ciljnu poziciju u slijedećem pomaku;Pomakni seed ćeliju u ciljnu poziciju zaključaj ciljnu točku;end ripple ←=false;abort count = 0;

EndCase; EndWhile; EndWhile;End.

Page 61: Planiranje prostora i razmještaj  (2)

J.Divković Pukšec, Fizičko projektiranje VLSI sklopova, FER, šk.g. 2008/09. 61

Algoritam: Silom usmjereni trazmještaj

-koristi ripple pomak: ćelija P ide u okupiranu lokaciju, a za ćeliju Q se računa nova “zero-force” lokacija;

-to je iterativno poboljšavajući algoritam;

-za svaku lokciju koriste se dvije oznake (flag – zastavica):zauzeto – occupied ukazuje da li je ova lokacija već dodjeljena nekoj ćelijizaključano – locked ukazuje na status ćelije koja je dodjeljena ovoj lokaciji

Ako je ćelija koja zauzima lokaciju bila barem jedanput premještena lokacija je zaključana, da se spriječi ponovno premještanje ćelije.Zaključana zastavica je “off” – isključena ako je slobodna lokacija i otključana lokacija

U algoritmu se ćelije izabiru po redu u koji su svrstane na temelju spojenosti (connectivity) i računa se “zero force target location”. Izbor se provodi na temelju ukupne spojenosti a izabrana ćelija zove se “seed” ćelija ili zametak;-zametak se stavlja u izračunatu ciljnu lokaciju; ako je izabrana lokacija već okupirana ćelija koja je u njoj uzima se kao slijedeća “seed” ćelija.

Page 62: Planiranje prostora i razmještaj  (2)

J.Divković Pukšec, Fizičko projektiranje VLSI sklopova, FER, šk.g. 2008/09. 62

Algoritam: Silom usmjereni trazmještaj

Svaka ćelija koja je smještena u svoju ciljnu lokaciju je zaključana za trenutnu vrijednost brojila (iteration count). Time se sprječavaju beskonačne petlje, koje bi mogli imati ako dvije ćelije Ca i Cb imaju istu ciljnu lokaciju.

-kada je “seed” ćelija izabrana i izračunata njezina ciljna lokacija moguća su 4 slučaja: ciljna lokacija može biti:

1. ista kao i početna lokacija 2. neka druga prazna (vacant) lokacija

3. lokacija koja je zauzeta, ali ne i zaključana4. lokacija koja je zauzeta i zaključana

Unutarnja While petlja se izvršava dok je endripple = false

Ako je izračunata lokacija ista kao i početna lokacija ili je neka druga prazna lokacija a endripple = true, abbortcount se stavlja na “0”, a ćelija se smješta u izračunatu lokaciju.

Page 63: Planiranje prostora i razmještaj  (2)

J.Divković Pukšec, Fizičko projektiranje VLSI sklopova, FER, šk.g. 2008/09. 63

Algoritam: Silom usmjereni trazmještaj

Slijedeća “seed” ćelija se izabire s liste L (dobivene na temelju “connectivity”) i unutarnja petlja se nastavlja: -ako je izračunata lokacija okupirana, ali ne i zaključana “seed” ćelija se

premješta u tu lokaciju, a ćelija koja je bila u toj lokaciji je izabrana kao slijedeća ćelija koja će se premještati; endripple = false, a abortcount = 0

-u slučaju da je “target point” zauzeta i zaključana, a endripple = true, abortcount se poveća za 1, a ćelija se smještava na najbližu slobodnu

(praznu) lokaciju.

Ako je abortcount < abortlimit uzima se slijedeća ćelija s liste L, zaključana lokacija ostaje zaključana i nastavlja se ista iteracija

Ako je abortcount > abortlimit sve zaključane lokacije se otključavaju, druga “seed” ćelija se uzima, broj iteracije (iterationcount) se poveća za 1 - i nova iteracija počinje.

Proces izabiranja ćelije prema ukupnoj povezanosti ćelija i pokušavanje smještavanja ćelija na njihove idealne lokacije traje sve dok ne bude dosegnut iterationcount.

Page 64: Planiranje prostora i razmještaj  (2)

J.Divković Pukšec, Fizičko projektiranje VLSI sklopova, FER, šk.g. 2008/09. 64

Primjer

Sklop ima 9 ćelija i 3 neta; ćelije treba smjestiti u 3X3 rešetku koristeći force directed metodu za razmještaj.

Netlista: N1 = (3,5,6,7,8,9) N2 = (2,3,4,6,8,9) N3 = (1,9)

težinski faktor svih netova je 1

Početna raspodjela

1 2 34 5 67 8 9

Spojna matrica (connectivity matrix)

Na temelju spojne matrice,dobiva se lista L u kojoj su ćelije poredane po slijedećem redoslijedu:

C9 (11), C3 (10), C6 (10), C8 (10), C2 (5), C4 (5), C5 (5), C7 (5), C1 (1)

Page 65: Planiranje prostora i razmještaj  (2)

J.Divković Pukšec, Fizičko projektiranje VLSI sklopova, FER, šk.g. 2008/09. 65

Primjer(1)

Izabire se: abortlimit = 3 iterationcount = 2

Postupak:iteration = 1najveću povezanost ima ćelija C9 , pa se ona izabire za prvu “seed” ćeliju;

izračunata ciljna lokacija je (1,1;1,1) što se zaokružuje na (1,1).

Lokacija (1,1) se zaključava; ova lokacija je već zauzeta ćelijom C5, pa se ćelija C5 izabire za slijedeću “seed” ćeliju

1 2 34 5 67 8 9

1 2 34 5 67 8

1 2 34 67 8

9

Page 66: Planiranje prostora i razmještaj  (2)

J.Divković Pukšec, Fizičko projektiranje VLSI sklopova, FER, šk.g. 2008/09. 66

Primjer(2)

abortcount =1 < abortlimitnastavlja se iteracija 1

Ciljna lokacija za ćeliju C5 je (1,2;0,8) što se zaokružuje na (1,1) a ova lokacija je zauzeta ćelijom C9 i zaključana je. Ćeliju C5 treba smjestiti na najbližu slobodnu lokaciju. Kako postoji 9 ćelija i 9 lokacija najbliža slobodna (i jedina slobodna) je lokacija (2,0) ispražnjena pomicanjem ćelije C9 na njezinu “zero force location”. Ćelija C5 se stavlja u tu lokaciju.

1 2 34 9 67 8

1 2 34 9 67 8 5

Page 67: Planiranje prostora i razmještaj  (2)

J.Divković Pukšec, Fizičko projektiranje VLSI sklopova, FER, šk.g. 2008/09. 67

Primjer(3)abortcount =1 < abortlimit nastavlja se itercija 1

Sljedeća ćelija s liste je ćelija C3; njezina ciljna lokacija je (1,1; 0,7) lokacija koja je zaključana (i zauzeta). Najbliža slobodna lokacija je (2,2), lokacija koju je ćelija C3 zauzimala i koju je napustila.

1 2 34 9 67 8 5

1 24 9 67 8 5

3

abortcount = abortcount + 1 = 2

Sljedeća ćelija je C6 i njezina ciljna lokacija nulte sile je (1,1;0,9) = (1,1) a ova lokacija je zaključana, pa ćeliju C6 ne mičemo (slobodnih lokacija nema).

abortcount = abortcount + 1 = 3abortcount = abortlimit = 3

To je kraj prve iteracije. Sve lokacije se otključavaju i sljedeća iteracija počinje.

Page 68: Planiranje prostora i razmještaj  (2)

J.Divković Pukšec, Fizičko projektiranje VLSI sklopova, FER, šk.g. 2008/09. 68

Primjer(3)iterationcount = iterationcount + 1 = 2

Postupak se ponavlja s novom početnom raspodjelom.Prva ćelija je i opet ćelija C9; izračunata ciljna lokacija je (1,2;1,0), što se zaokružuje na (1,1). Ova lokacija je početna lokacija ćelije C9, pa se ćelija C9 ne miče.

Sljedeća ćelija je ćelija C3, čija je target lokacija (1,1). Ćelija C3 se premješta u tu lokaciju, i lokacija (1,1) se zaključava.

1 24 9 67 8 5

3 1 24 9 67 8 5

33

Sljedeća ćelija je ćelija C9, izbačena iz lokacije (1,1). Izračunata lokacija za C9 je opet lokacija (1,1), ali je ona zaključana, pa se ćelija C9 premješta na najbližu slobodnu, a to je lokacija (2,2).

1 24 3 67 8 5

9

Page 69: Planiranje prostora i razmještaj  (2)

J.Divković Pukšec, Fizičko projektiranje VLSI sklopova, FER, šk.g. 2008/09. 69

Primjer(3)abortcout = 1Sljedeća ćelija na redu s liste L je ćelija C6; izračunata lokacija (1,1;0,9) = (1.1).To je zaključana lokacija, a slobodnih nema.

abortcount = 2Ćelija C8: izračunata lokacija (1,3;1,1) = (1,1), lokacija koja je zaključana a slobodnih nema.

abortcount = 3 = abortlimititerationcount = 2 = iterationlimit

Proračun je gotov, a zadnja dobivena raspodjela je i konačna raspodjela.

Na slici a) prikazana je početna raspodjela s duljinom vodova 16, a na slici b) završna s duljinom vodova 14. (Proračun duljine vodova: metoda lanca.)

Page 70: Planiranje prostora i razmještaj  (2)

J.Divković Pukšec, Fizičko projektiranje VLSI sklopova, FER, šk.g. 2008/09. 70

Genetski algoritmi

Genetski algoritam oponaša procese evolucije i uz pomoć oponašanja tog procesa toga ide prema optimalnom rješenju.

Ovi algoritmi primjenjuju se u rješavanju različitih optimizacijskih problema, pa tako i u razmještaju komponenti VLSI sklopova (prvi takav algoritam pojavio se 1987. (Cahoon, Paris: Genetic Placement, IEEE Tr. On CAD, November 1987).

Algoritam počinje s jednom slučajno izabranom raspodjelom nazvanom populacija

Svaka jedinka u populaciji je niz simbola.

Ovi nizovi simbola nazivaju se genima, a nizovi gena su kromosomi.

Kromosomi predstavljaju rješenje optimizacijskog problema.

Skup gena koji predstavljaju parcijalno rješenje nazivaju se šemom.

Za vrijeme svake iteracije (generacije) računa s funkcija dobrote (fitness) koju određuje niz jedinki u trenutnoj populaciji.

Page 71: Planiranje prostora i razmještaj  (2)

J.Divković Pukšec, Fizičko projektiranje VLSI sklopova, FER, šk.g. 2008/09. 71

Genetski algoritmi

Prema funkciji dobrote izabiru se dvije jedinke; - bolje imaju veću vjerojatnost da budu izabrane.

Nakon toga primjenjuje se genetski operator na izabrani par roditelja, te se dobiva novo rješenje nazvano dijete ili potomak (offsprings).

Genetski operatori kombiniraju svojstva oba roditelja.

Najčešći operatori su križanje, mutacija i inverzija.

Izvedeni su prema analogiji s priodnim procesima

Page 72: Planiranje prostora i razmještaj  (2)

J.Divković Pukšec, Fizičko projektiranje VLSI sklopova, FER, šk.g. 2008/09. 72

Primjer genetičkog algoritma za razmještaj

Sklop je zadan grafom prema slici;

sastoji se od 9 čvorova (komponetni) spojenih bridovima, koji imaju težinske faktore.

Treba naći moguće rješenje i izraziti ga kao niz simbola.

Generirati populaciju od 4 kromosoma i izračunati faktor dobrote kao recipročnu vrijednost duljina vodova (Manhattan udaljenost uz težinski faktor).

Page 73: Planiranje prostora i razmještaj  (2)

J.Divković Pukšec, Fizičko projektiranje VLSI sklopova, FER, šk.g. 2008/09. 73

Primjer genetičkog algoritma za razmještaj(1)

Rješenje: 9 modula može biti smješteno na 9 pozicija (slika a);

jedan mogući razmještaj prikazan je na slici b).

6 7 83 4 50 1 2

a)

d e fc b ia g h

b)

Raspodjela će biti prikazana nizom na slijedeći način: prva oznaka (gledano s lijeva) u nizu odnosi se na poziciju 0, a najdesnija na poziciju 8. Raspodjela na slici b) opisana je nizom:

1

[aghcbidef ] (— ) (broj u zagradi je faktor dobrote) 85

Page 74: Planiranje prostora i razmještaj  (2)

J.Divković Pukšec, Fizičko projektiranje VLSI sklopova, FER, šk.g. 2008/09. 74

Ako je lijevi donji ugao na slici a) (pozicija 0) ishodište, mogu se izračunati Kartezijeve koordinate za svaki indeks z u strukturi 3X3.na pr.: indeks modula i je 5;

- x-koordinata je (5 mod 3) =2,

- y- koordinata je (integer)

Bilo koji niz od 9 znakova [abcdefgh] predstavlja moguće rješenje. Takvih mogućih rješenja (permutacija) ima 9!.

nekoliko drugih kromosoma i njihovih faktora dobrote:

1

1

1

[bdefigcha], ( — ) ; [ihagbfced], ( — ) ; [bidefaghc], ( — ). 110 95 86

Pri proračunu faktora dobrote koriste se Kartezijeve koordinate i spojna matrica.

Primjer genetičkog algoritma za razmještaj(2)

51

3

d e fc b ia g h

Page 75: Planiranje prostora i razmještaj  (2)

J.Divković Pukšec, Fizičko projektiranje VLSI sklopova, FER, šk.g. 2008/09. 75

Križanje(crossover)Križanje je najvažniji genetički operator. On se primjenjuje na dvije jedinke i dobiva se njihov potomak. Prema nasljednom mehanizmu potomak nasljeđuje neke osobine svojih roditelja.

Operacija križanja počinje slučajnim izborom točke siječenja (cut poin) i generacijom potomka kombiniranjem segmenata jednog roditelja lijevo od točke siječenja, a drugog roditelja desno od točke siječenja.

Primjer: Na temelju prehodnog primjera dva roditelja su predstavljena raspodjelama

1

1

[bidef|aghc] ( — ) i [bdefi|gcha] ( — ). 86 110

Ako je presječna linija slučajno izabrana iza 4 pozicije, dobiveno dijete je:

1

[bidefgcha], a “djetetov” faktor dobrote je ( — ).

63

Page 76: Planiranje prostora i razmještaj  (2)

J.Divković Pukšec, Fizičko projektiranje VLSI sklopova, FER, šk.g. 2008/09. 76

PMX križanje

U praksi će se često javljati situacija kod koje jedan roditelj ima lijevo od presječne točke iste znakove koje drugi roditelj ima na desnoj strani; dijete bi imalo u nizu dva puta isti znak; to predstavlja nemogući razmještaj.

Postoji nekoliko načina za izbjegavanje ponavljanja istih znakova u kromosomu djeteta.

Jedna od modifikacija koja se primjenjuje na metodu križanja s ciljem izbjegavanja ponavljanja znakova u nizu je djelomice mapirano križanje (partially mapped crossover – PMX).

PMX križanje:- izaberi dva roditelja - 1 i 2; slučajnim izborom odaberi presječnu točku;- kopiraj desni dio niza roditelja 2 kao desni niz djeteta;- kontroliraj lijevi dio niza roditelja 1; geni ne postoje u djetetu kopiraj ih u dijete;- ako geni već postoje, znači da je njihov položaj odredio roditelj 2; na lijevu poziciju kopiraju se geni roditelja 1 i roditelja 2 koji ne postoje u djetetu.

Page 77: Planiranje prostora i razmještaj  (2)

J.Divković Pukšec, Fizičko projektiranje VLSI sklopova, FER, šk.g. 2008/09. 77

Primjer: Roditelji i presječna točka:

[bidef|gcha] i [aghcb|idef] dijete: [bgcha|idef]

b- na pozicija 0 ne postoji u djetetu pa ide na 0-tu poziciju;

gen i postoji u djetetu, a u roditelju 2 je na poziciji 5.

Kod roditelja 1 na poziciji 5 je g pa on ide na poziciju 1.

Gen d postoji u djetetu a kod roditelja 2 je na poziciji 6. Kod roditelja 1 na toj poziciji je c pa on kod djeteta ide na poziciju 2. …..

PMX križanje- primjer

1

86

1

85

Page 78: Planiranje prostora i razmještaj  (2)

J.Divković Pukšec, Fizičko projektiranje VLSI sklopova, FER, šk.g. 2008/09. 78

Genie

Genetski algoritam za razmještaj komponenti u pravokutnu rešetkastu strukturu - Cahoon, Paris (1987). Koristi 2 operatora za križanje.-Prvi operator za križanje izabire slučajno modul es i njegova 4 susjeda u roditelju 1.

-Kod roditelja 2 nalazi modul es i njegove susjede rotira, korak po korak, dok na

odgovarajuće lokacije ne dođu isti susjedi koji su bili i u roditelju 1.

roditelj 1 dijete se dobiva modificiranjem roditelja 2

Page 79: Planiranje prostora i razmještaj  (2)

J.Divković Pukšec, Fizičko projektiranje VLSI sklopova, FER, šk.g. 2008/09. 79

Genie

Drugi operator provodi križanje tako da u roditelju 1 izabere kvadrat koji sadrži k x k modula. Broj k izabire se slučajno. Taj pravokutnik kopira u roditelja 2. Tu može doći do dupliciranja, odnosno do izostavljanja nekih modula. Na pr. na slici se vidi da kada bi module iz roditelja 1 kopirali u roditelja 2 da će moduli koji ne postoje u kvadratu roditelja 2 biti duplicirani (oni postoje izvan pravokutnika).

SP2-SP1 – set modula koji postoji u kvadratu roditelja 2 ali ne i roditelja 1:SP2-SP1 ={x,w,p,m}

na isti način:SP1-SP2 ={c,d,e,f}

Svaki modul iz SP2-SP1 se pomiču na lokacije koje zauzimaju moduli SP1-SP2

x,w,p,m se izbacuju iz pravokutnika i stavljaju na pozicije koje zauzimaju moduli c,d,e,f Nakon toga se svi moduli iz kvadrata roditelja 1 kopiraju u kvadrat roditelja 2, te nastaje dijete.

Page 80: Planiranje prostora i razmještaj  (2)

J.Divković Pukšec, Fizičko projektiranje VLSI sklopova, FER, šk.g. 2008/09. 80

Mutacija i inverzija

Mutacija – provode se vrlo male, slučajne promjene u djetetu.

Kod razmještaja komponenti geni se sastoje od uređenog skupa podataka o svakom modulu. Ako idealne koordinate nekog modula ne postoje kod ni jednog drugog modula, onda samo križanje ne pomaže (on radi samo s nasljednim osobinama). Treba generirati nove koordinate, a to se postiže mutacijskim operatorom. Ako su novi podaci dobri, struktura koja ih sadrži proširit će se po cijeloj konfiguraciji. Mutacija se kontrolira mutacijskom brzinom Mr (Mutation rate); ako je brzina mala novi geni se sporo unose u dijete; velika brzina znači da dijete brzo gubi vezu sa svojim roditeljima (gubitak sjećanja).

Inverzija - slučajno se izabiru dvije točke u kromosomu, kromosom se siječe i krajnje točke presječenog dijela zamjenjuju mjesta. Na pr.

Niz [bid|efgch|a] sječen iza pozicija 2 i 7

nakon inverzije postaje [bid|hcgfe|a]

Page 81: Planiranje prostora i razmještaj  (2)

J.Divković Pukšec, Fizičko projektiranje VLSI sklopova, FER, šk.g. 2008/09. 81

Struktura genetskog algoritma