spajanje u kanalu
DESCRIPTION
Spajanje u kanalu. FER zimski semestar šk. g. 2008./09. Predavač: Julijana Divković Pukšec e-mail: [email protected]. Spajanje u kanalu. je posebni način spajanja kod kojega se veze provode unutar pravokutnog područja zvanog kanal. U tom području nema nikakvih drugih prepreka. 1. 3. - PowerPoint PPT PresentationTRANSCRIPT
J.Divković Pukšec, Fizičko projektiranje VLSI sklopova, FER, šk.g. 2008/09. 1
Spajanje u kanalu
FER zimski semestar šk. g. 2008./09.
Predavač: Julijana Divković Pukšece-mail: [email protected]
J.Divković Pukšec, Fizičko projektiranje VLSI sklopova, FER, šk.g. 2008/09. 2
Spajanje u kanaluje posebni način spajanja kod kojega se veze provode unutar pravokutnog područja zvanog kanal.
U tom području nema nikakvih drugih prepreka.
0 – znači da ništa nije priključeno na tom mjestu
11 33 00 00 22 11 11 00
33 00 11 22 00 33 00 00
J.Divković Pukšec, Fizičko projektiranje VLSI sklopova, FER, šk.g. 2008/09. 3
Definicija problema:
Većina današnjih sistema za električko povezivanje bazira se na kanalnom povezivanju, koristi se princip “podijeli pa vladaj” – problem povezivanja podijeli se na povezivanje u kanalu, a provodi se zasebno. Koristi se za sklopove po narudžbi (custom chip), ali i za “gate array” i standardne ćelije.
Povezivanje kroz kanal je jako popularno, jer je efikasno i garantira 100% povezivanje ako je širina kanala podesiva.
Povezivanje ovisi o tehnologiji – različite tehnologije različiti problemi.
Mi ćemo se ograničiti na prikaz klasičnog problema povezivanja nazvanog “Manhattan model”. Prostor za povezivanje je pravokutnog oblika a na dva suprotna kraja nalaze se dva reda priključaka.
J.Divković Pukšec, Fizičko projektiranje VLSI sklopova, FER, šk.g. 2008/09. 4
Spajanje – dio procesa projektiranja
Položaj priključaka je fiksan i poravnan s okomitim linijama rešetke (grid lines – stupci, kolone). Povezivanje priklučaka uz pomoć vodoravnih vodljivih segmenata nazvanih “trunk” (glavna pruga), i okomitih koji se zovu “brunch” (ogranci).
Definicija: Kanal kroz kojega treba napraviti spajanje definira se kao pravokutno područje s dva reda priključaka, na gornjoj i na donjoj strani.
Svakom priključku je pridružen broj od 0 do N; to su brojevi koji su pridruženi položaju rešetke (grid), a predstavljaju net listu.
Priključci (terminals) koji imaju istu oznaku i 1 i N moraju biti spojeni u isti “net i”.
“0” ukazuje da se na dotični priključak ne treba ništa spojiti.
J.Divković Pukšec, Fizičko projektiranje VLSI sklopova, FER, šk.g. 2008/09. 5
Terminologija
gornja granicagornja granica
donja granicadonja granica
stazestaze
priključcipriključciViaVia
TrunksTrunksglavna prugaglavna pruga
BranchesBranchesogranciogranci
DoglegDogleg
J.Divković Pukšec, Fizičko projektiranje VLSI sklopova, FER, šk.g. 2008/09. 6
Spajanje u kanalu - opis
Net lista se prikazuje s dva vektora: TOP(k) i BOT(k). TOP(k) i BOT(k) predstavljaju oznake rešetke na vrhu i na dnu kanala. Zadaća spajanja kroz kanal je da se za svaki net odredi skup vodoravnih i okomitih vodljivih segmenata koji spajaju dotični net, a čije su krajnje točke smještene na priključcima ili stazama (tracks).
U slučaju standardnih ćelija treba spajanje napraviti koristeći što manji broj staza; širinu kanala, tj. broj staza određuje “router”.
Kod “gate array” struktura cilj je završiti spajanje koristeći zadani broj staza.
Općenito, za spajanje je na raspolaganju više slojeva (2, 3 pa i više).
J.Divković Pukšec, Fizičko projektiranje VLSI sklopova, FER, šk.g. 2008/09. 7
HV modelHV modelVH modelVH model
HVH modelHVH modelVHV modelVHV model
sloj 1sloj 1sloj 2sloj 2sloj 3sloj 3
ViaVia
1sloj1sloj
2 sloja2 sloja
3 sloja3 sloja
J.Divković Pukšec, Fizičko projektiranje VLSI sklopova, FER, šk.g. 2008/09. 8
Spajanje u kanalu - opis
Mi ćemo razmatranje ograničiti na dva sloja, tzv. H-V spajanje.
Polisilicij je jedan sloj, a metal drugi; ova dva sloja spajaju se međusobno uz pomoć tzv. kontaktnih proreza (cuts, vias).
Kod dvoslojnog spajanja vodoravni vodljivi segmenti leže na stazama na jednom sloju, a svi vertikalni u drugom sloju. Ako dva vodoravna vodljiva segmenta pripadaju različitim netovima i ne preklapaju se mogu biti pridjeljeni istoj stazi ( m i p na slici).
Ako se preklapaju moraju se pridružiti različitim stazama.
J.Divković Pukšec, Fizičko projektiranje VLSI sklopova, FER, šk.g. 2008/09. 9
Spajanje u kanalu - grafovi
Dva neta ne smiju se preklapati niti po okomitim segmentima, tj. nesmiju se preklapati pri kontaktu.
Za bilo koji problem povezan s kanalnim spajanjem mogu se generirati dva grafa: jedan modelira vodoravna ograničenja a drugi okomita. Kod oba grafa net je predstavljem čvorom.
Horizontal constraint graph HCG(V,E) je neusmjereni graf; čvor iV predstavlja net i, a brid (i,j)E pokazuje preklapaju li se vodoravni dijelovi netova i i j.
Vertical constraint graph VCG(V,E) je usmjereni graf; čvor iV predstavlja net i, a brid (i,j)E postoji samo onda ako net i ima priključak na vrhu a net j na dnu kanala u istom stupcu. Ako u VCG postoji ciklus (cycle) trebati će neke net-ove podijeliti.
J.Divković Pukšec, Fizičko projektiranje VLSI sklopova, FER, šk.g. 2008/09. 10
Primjer:
TOP = 0,1,6,1,2,3,5 ; BOT = 6,3,5,4,0,2,4
00 11 66 11 22 33 55
66 33 55 44 00 22 44
Treba odrediti skup S(i) – skup netova čiji vodoravni dijelovi prolaze kroz stupac “i”.
Broj elemenata svakog skupa je lokalna gustoća. Vodoravni segmenti (trunks) različitih netova se nesmiju preklapati, što znači da vodoravni segmenti dvaju netova u bilo kojem skupu S(i) ne smiju biti smješteni u istu vodoravnu stazu.
VCG je jednostavnije konstruirati. Crta se za kolone koje nemaju TOP(k) = 0 ili BOT(k) = 0.
J.Divković Pukšec, Fizičko projektiranje VLSI sklopova, FER, šk.g. 2008/09. 11
Primjer (1)
00 11 66 11 22 33 55
66 33 55 44 00 22 44
11 2233
55 4466
S(1) = {6} S(2) = {1,3,6}
S(3) = {1,3,5,6} S(4 ) = {1,3,4,5}
S(5) ={2,3,4,5} S(6) = {2,3,4,5}
S(7) = {4,5}
Neki skupovi su podskupovi drugih skupova, pa ih možemo eliminirati.
Preostali skup je maksimalni skup.
maksimalni skupovi: S(3) = {1,3,5,6} S(4) = {1,3,4,5} S(5) ={2,3,4,5}
HCG – interval grafnet čvor ; brid ako su čvorovi i i j u istom skupu.
J.Divković Pukšec, Fizičko projektiranje VLSI sklopova, FER, šk.g. 2008/09. 12
Primjer:
00 11 66 11 22 33 55
66 33 55 44 00 22 44
Vertical constraint graphVertical constraint graph
00 11 66 11 22 33 55
66 33 55 44 00 22 44
11
22
3344
55
66
Horizontal constraint graphHorizontal constraint graph
1122
3344
55
66
11 2233
55 4466
Stupac 1 2 3 4 5 6 7
J.Divković Pukšec, Fizičko projektiranje VLSI sklopova, FER, šk.g. 2008/09. 13
Prikaz zona
Zona tablica:
Stupac S(i) Zona1 {6}2 {1,3,6} 1
3 {1,3,5,6}4 {1,3,4,5} 25 {2,3,4,5}6 {2,3,4,5} 37 {4,5}
1122
3344
55
66
je grafički prikaz maksimalnog skupa S(i). To je alternativni prikazah HGC grafa.
Svaki skup S(i) je prikazan kao stupac, a elementi skupa prikazani su uz pomoć vodoravnih linija.
Interval graf
J.Divković Pukšec, Fizičko projektiranje VLSI sklopova, FER, šk.g. 2008/09. 14
Funkcija cijene i ograničenja Za većinu sklopova cilj je smanjiti ukupnu površinu.
Duljina kanala je fiksna, pa je cilj napraviti spajanje koristeći što manji broj staza, tj. suziti kanal.
Nepoželjni su i kontaktni rezovi (via) između vodljivih slojeva. Oni povećavaju površinu, smanjuju yield i pogoršavaju svojstva sklopa.
Broj vodljivih staza je fiksan.Ako su tri sloja HVH (bolji) ili VHV (lakše ga je napraviti).
Postupci kanalnog spajanja
Većina algoritama bazira se na algoritmu lijevog ruba (left edge algorithm) koji ima nekoliko varijacija. U ovom algoritmu staze se procesiraju jedna po jedna.
J.Divković Pukšec, Fizičko projektiranje VLSI sklopova, FER, šk.g. 2008/09. 15
Osnovni algoritam lijevog ruba
(dog leg algorithm)
Koristi razdvajanje (splitting) i stapanje (merging) netova
Pokušava smjestiti što veći broj vodoravnih segmenata u svaku stazu. Segmenti netova koje treba spojiti, sortiraju se u rastućem nizu prema krajnjim lijevim točkama.
Lijeve točke segmenata definirane su u odnosu prema lijevom rubu kanala.
Osnovni algoritam pretpostavlja da se svaki net sastoji od jednog vodoravnog segmenta (trunk) i taj se segment spaja u jednom sloju, a okomiti segmenti (branches) spajaju se u drugom sloju.
Ako nema vertikalnih ograničenja algoritam daje rješenje s minimalnim brojem staza, određenima s max S(i), koji predstavlja donju granicu broja potrebnih staza.
J.Divković Pukšec, Fizičko projektiranje VLSI sklopova, FER, šk.g. 2008/09. 16
Postupak
1. netovi se sortiraju prema lijevim krajnjim točkama;
2. algoritam bira stazu koja odgovara prvom netu, i taj se net briše s liste;
3. nakon toga algoritam traži slijedeći net, koji se ne preklapa s prvim netom i stavlja ga u istu stazu; proces se nastavlja tako dugo dok ima netova koji se mogu staviti u istu stazu;
4. algoritam ponavlja postupak, uzima slijedeći net s liste i stavlja ga u drugu stazu, itd.
Ovaj je algoritam poznat i kao “algoritam lijevog ruba bez ograničenja” (unconstrained left edge algorithm).
J.Divković Pukšec, Fizičko projektiranje VLSI sklopova, FER, šk.g. 2008/09. 17
Algoritam lijevog ruba bez ograničenja
Begin1 sortiraj sve netove prema položaju njihovog lijevog ruba;
2 izaberi net s najnižim položajem lijevog ruba; stavi ga na najnižu raspoloživu stazu; izbriši ga s liste netova;
3 nastavi pretraživati listu i izaberi net koji se ne preklapa s već smještenim netom; postavi ga u istu stazu i izbriši s liste;
4 If list 0 Then Goto 2.;
5 ExitEnd
J.Divković Pukšec, Fizičko projektiranje VLSI sklopova, FER, šk.g. 2008/09. 18
Primjer: (prethodni)
Postupak je slijedeći:
1. netovi su sortirani: 6,1,3,5,4,2
00 11 66 11 22 33 55
66 33 55 44 00 22 44
11
22
3355
44
66
J.Divković Pukšec, Fizičko projektiranje VLSI sklopova, FER, šk.g. 2008/09. 19
Primjer (1)
- net koji se ne preklapa s njim je net broj 4; on ide u stazu broj 1;
- sljedeći net na listi je net broj1; on se ne preklapa s netom 2; oba idu u stazu 2;
- slijedeći je net broj 3 koji se stavlja u stazu 3:
- na kraju net broj 5; stavlja se u stazu 4.
2. uzme se prvi net s liste: net broj 6 i stavu i stazu 1
00 11 66 11 22 33 55
66 33 55 44 00 22 44
11 2233
55
4466
Ovo rješenje nije dobro; problem pri spajanju.
J.Divković Pukšec, Fizičko projektiranje VLSI sklopova, FER, šk.g. 2008/09. 20
Loša strana algoritma
00 11 66 11 22 33 55
66 33 55 44 00 22 44
Ovo rješenje nije prihvatljivo jer ne vodi računa o okomitim ograničenjima; netove 1 i 3, te 6 i 5 nije moguće spojiti na njihove priključke.
Zbog toga je napravljen Constraint left edge algorithm. U ovom algoritmu net će biti postavljen u stazu samo onda ako nema sljednika (descendent – potomka) u VCGu.
J.Divković Pukšec, Fizičko projektiranje VLSI sklopova, FER, šk.g. 2008/09. 21
Algoritam lijevog ruba sa ograničenja
Begin1. sortiraj sve netove prema položaju njihovog lijevog ruba;2. izaberi net n s najnižim položajem lijevog ruba; If n nema potomka u VCGu stavi
Then BeginStavi net n u najnižu raspoloživu stazu; izbriši n s liste netova;
izbriši net n iz VCGa;End
Else Goto 2; Endif;3. nastavi pretraživati sortiranu listu i izaberi net koji se ne preklapa s već
smještenim netovima i nema potomaka u VCGu; postavi ga u istu stazu; izbriši s liste sve izabrane netove;4. If list 0 Then Goto 2.;5. ExitEnd
J.Divković Pukšec, Fizičko projektiranje VLSI sklopova, FER, šk.g. 2008/09. 22
Algoritam lijevog ruba sa ograničenja(1)
Postupak je sličan prethodnom, ali će net biti smješten u stazu samo onda ako je i njegov “potomak” već smješten.
00 11 66 11 22 33 55
66 33 55 44 00 22 44
11
22
3355
44
66
1. 1. Netovi Netovi sortirani prema lijevom rubusortirani prema lijevom rubu
11
3344
55
66
22
J.Divković Pukšec, Fizičko projektiranje VLSI sklopova, FER, šk.g. 2008/09. 23
Algoritam lijevog ruba sa ograničenja(2)
Postupak:Pretražujući sortiranu listu preskočeni su netovi 6,1,3 i 5 jer imaju potomke. Prvi net koji će biti smješten je net broj 4; on ide u stazu 1.
00 11 66 11 22 33 55
4455
66 223311
- slijedeći netovi koji se razmatraju su 2 i 5; net broj 5 je na listi ispred neta 2, pa net broj 5 ide u stazu 2;
- slijedi net broj 6, koji ide u stazu 3; net broj 2 se ne preklapa s netom 6, pa i on ide u stazu 3;
- nakon toga net broj 3 ide u stazu 4 ;
- net broj 1 u stazu 5.
66 33 55 44 00 22 44
11
3344
55
66
22
J.Divković Pukšec, Fizičko projektiranje VLSI sklopova, FER, šk.g. 2008/09. 24
Ciklusi u VC grafu
Ovaj algoritam postaje neizvediv ako u VCGu postoji ciklus.
11 00 22
22 00 1122
U takvom slučaju treba primjeniti tzv dog leging, odnosno vodoravne segmente netova treba razlomiti (split) na više dijelova.
11
11 00 22
22 00 11
J.Divković Pukšec, Fizičko projektiranje VLSI sklopova, FER, šk.g. 2008/09. 25
Lomljenje netovaČak i ako nema ciklusa u VCGu lomljenje netova je često vrlo poželjno, jer se na taj način može smanjiti broj potrebnih staza u kanalu.
11 11 22 22 00
00 22 00 33 33
Bez lomljenjaBez lomljenja Uz lomljenje Uz lomljenje
11 11 22 22 00
00 22 00 33 33
Loša strana: veći broj via!
J.Divković Pukšec, Fizičko projektiranje VLSI sklopova, FER, šk.g. 2008/09. 26
Deutch-ev algoritam
Algoritam je razvijen sa željom da se izbjegnu vertikalna ograničenja i da se smanji gustoća u kanalu.
Razvio ga je Deutch; algoritam uzima svaki net s više priključaka (multipin net) i lomi ga u vodoravne segmente; lom se javlja samo u onim stupcima gdje postoji priključak (pin) na taj net.
Lomljenje vodoravnih segmenata naziva se “dogleging”.
Koristi se i za smanjenje broja staza i za izbjegavanje okomitih ograničenja.
Vodoravni segmenti se lome samo na poziciji priključka i nisu dozvoljene dodatne okomite staze.
J.Divković Pukšec, Fizičko projektiranje VLSI sklopova, FER, šk.g. 2008/09. 27
Primjer
11 11 22 00 22 33
22 33 00 33 44 44
112233
44
11
44
3322
VCG
11 11 22 00 22 33
22 33 00 33 44 44
112a2a 2b2b
3a3a 3b3b44
netovi 2 i 3 su razlomljeni
svaki na dva dijela: 2a, 2b, 3a, 3b
J.Divković Pukšec, Fizičko projektiranje VLSI sklopova, FER, šk.g. 2008/09. 28
Postupak spajanja
sortirana lista = 1,2a,3a,2b,3b,4
11 11 22 00 22 33
22 33 00 33 44 44
112a2a
3a3a
44
2b2b
3b3b
1 2 3 4 5 6
stupac
Skup netova koji prolaze kroz pojedine stupce (kolone):
S(1) = {1,2a} S(2) = {1,2a,3a}
S(3) = {2a,2b,3a} S(4) = {2b,3a,3b}
S(5) = {2b,3b,4} S(6) = {3b,4}
J.Divković Pukšec, Fizičko projektiranje VLSI sklopova, FER, šk.g. 2008/09. 29
Postupak spajanja(1)
1. u stazu 1 idu net 2a i net broj 4 (ne preklapaju se)2. u stazu 2 idu net 3a i 3b3. u stazu 3 idu net 1 i 2b
11 11 22 00 22 33
22 33 00 33 44 44
J.Divković Pukšec, Fizičko projektiranje VLSI sklopova, FER, šk.g. 2008/09. 30
Primjer – Deutsch algoritam bez lomljenja
Rezultat: broj traka = 28
najveća gustoća = 19
Stupaca =174, netova =72Gustoća =19
J.Divković Pukšec, Fizičko projektiranje VLSI sklopova, FER, šk.g. 2008/09. 31
Primjer – Deutsch algoritam s lomljenjem (doglegs)
Stupaca =174, netova =72Gustoća =19
Rezultat: broj traka = 20 najveća gustoća = 19
J.Divković Pukšec, Fizičko projektiranje VLSI sklopova, FER, šk.g. 2008/09. 32
Yoshimura i Kuh algoritam
Ako u VCGu postoji put n1 – n2 – n3-.....-nk očito je da dva neta iz skupa netova {n1,n2,...nk} ne mogu biti smješteni u istu stazu.
Prema tome, ako je najduži put u smislu broja čvorova na putu “k”, najmanje “k” staza (tracks) je potrebno za realizaciju spajanja.
Y&K su predložili dva algoritma:
Prvi algoritam koristi VCG i “zone” prikaz HCGa i nastoji minimizirati najduži put u VCGu. To se postiže stapanjem (merging) čvorova u VCGu tako da je najduži put minimiziran.
Drugi algoritam minimizira najduži put pomoću tzv “matching” tehnike u bipartitnom grafu.
Oba načina daju bolje rezultate od “dogleging”-a.
J.Divković Pukšec, Fizičko projektiranje VLSI sklopova, FER, šk.g. 2008/09. 33
Definicije
“i” i “j” su netovi za koje:
1. nema vodoravnog preklapanja u “zone” prikazu, i2. nema direktnog puta između čvora “i” i čvora “j” u VCGu,
tj. netovi “i” i “j” mogu biti smješteni u istu vodoravnu stazu.
Stapanje (merging) netova “i “ i “j” kao rezultat daje:
1. modificira VCG skupljajući čvorove “i” i “j” u jedan čvor “ij”.2. mijenja “zone” prikaz nadomještavajući netove “i” i “j” jednim netom “ij”, koji
zauzima zone koje su prije zauzimali netovi “i” i “j”.
J.Divković Pukšec, Fizičko projektiranje VLSI sklopova, FER, šk.g. 2008/09. 34
Primjer
Zadana je net lista:
TOP = 0,1,4,5,1,6,7,0,4,9,0,0,BOT = 2,3,5,3,5,2,6,8,9,8,7,9
Gustoća pojedinih stupaca: zona
S(1)={2} S(2)={1,2,3}S(3)={1,2,3,4,5} IS(4)={1,2,3,4,5} S(5)={1,2,4,5} -------------------------------------S(6)={2,4,6} II--------------------------------------S(7)={4,6,7} III
---------------------------------------S( 8)={4,7,8}S( 9)={4,7,8,9} IV S(10)={7,8,9} S(11)={7,9} S(12)={9}
U VCGu nema ciklusa.
J.Divković Pukšec, Fizičko projektiranje VLSI sklopova, FER, šk.g. 2008/09. 35
Primjer(1)
Netovi se stapaju (merge) u odnosu na zone prezentacije.
Zona I: skup netova koji završavaju u zoni I je L={1,3,5}skup netova koji počinju u zoni II je R={6}To znači da se mogu stapati netovi (1,6), (3,6) ili (5,6)
Stapanje 5 i 6 izaziva minimalno povećanje najduljeg puta pa se netovi 5 i 6 stapaju u jedan net 56, koji počinje u zoni I a završava u zoni IIInet 5 se briše iz skupa L, net 6 se briše iz skupa RL={1,3,}R={ }
S(3)={1,2,3,4,5} IS(6)={2,4,6} IIS(7)={4,6,7} III S(9)={4,7,8,9} IV
J.Divković Pukšec, Fizičko projektiranje VLSI sklopova, FER, šk.g. 2008/09. 36
Primjer(2)
Zona IIskup netova koji završavaju u II dodaje se skupu L={1,3} + {2} ={1,2,3}
skup netova koji počinju u zoni III R= {7}
netovi 2 i 3 su na istom putu s netom 7, pa jedini net koji se može stopiti sa 7 je net 1; oni se stapaju u net 17iz skupa L brišemo net 1, a iz skupa R net 7
L={2,3}R= { }
J.Divković Pukšec, Fizičko projektiranje VLSI sklopova, FER, šk.g. 2008/09. 37
Primjer(3)
Zona IIIskup netova koji završavaju u zoni III dodaje se skupu L= {2,3} + {56} = {2,3,56}skup netova koji počinju zoni 4 R= {8,9}
net 56 završava u zoni III, pa se taj stopljeni net stapa s netom 9; dobivamo net 569, a net 3 stapamo s netom 8 u 38
Sortirana lista po lijevom rubu: 2, 38, 17, 569, 4
J.Divković Pukšec, Fizičko projektiranje VLSI sklopova, FER, šk.g. 2008/09. 38
Primjer(3)
Sortirana lista po lijevom rubu: 2, 38, 17, 569, 4
J.Divković Pukšec, Fizičko projektiranje VLSI sklopova, FER, šk.g. 2008/09. 39
Algoritam Merge1(zs,zt)
Begin1. L = { zs = najljevija zona, zt = najdesnija zona2. For z=zs to zt DoBegin3. L=L+{netovi koji završavaju u zoni z;4. R={netovi koji počinju u zoni z+1;5. merge L i R tako da se minimizira povećanje najduljeg puta u VCGu;6. L=L-{n1,n2,…n pri čemu {n1,n2,…nsu netovi stopljeni (merge) u koraku 5EndFor
End
Do sada razmatrani spajači (Routeri) spajaju u kanalu jednu po jednu stazu (track) i baziraju se na algoritmu lijevog ruba.
J.Divković Pukšec, Fizičko projektiranje VLSI sklopova, FER, šk.g. 2008/09. 40
“Greedy Channel” router
je heuristički algoritam, koji obavlja spajanje u kanalu kolonu po kolonu.
U svakoj koloni primjenjuje se pohlepni, heuristički postupak koji u svakom koraku utvrđuje koliko je slobodnih staza na raspolaganju u sljedećem koraku (koloni). Ne koriste se ni vodoravna ni okomita ograničenaj; sve odluke se donose lokalno, u pojedinoj koloni.
Algoritam rješava spajanje, čak ako postoji ciklus u VCGu. Spajanje je uvijek napravljeno, ponekad s većim brojem staza na kraju kanala, nego na početku.
U ovom postupku pojedini net može zauzeti dvije različite staze, sve dok algoritam ne odluči da ih može stopiti.
“Doglegging” je dozvoljen na bilo kojem mjestu, a ne samo na lokaciji priključka.
J.Divković Pukšec, Fizičko projektiranje VLSI sklopova, FER, šk.g. 2008/09. 41
Greedy Algoritam
Od lijeva prema desno; ispitaj stupac po stupac, c:=0; while (not done) do
beginc:=c+1;završi spajanje u koloni c;
End
1 3 1 2 1 5
2 1 2 3 4 5 4 4
1 3
4 3
Općenito, net može biti:(1) prazan (empty) (net 5)(2) unsplit (netovi 1,4)(3) split (net 3)(4) završen (completed) (net 2)
J.Divković Pukšec, Fizičko projektiranje VLSI sklopova, FER, šk.g. 2008/09. 42
Definicije
Initial channel width – početna širina kanalaTo je broj staza koji je na raspolaganju na početku; to je lokalna gustoća. Tokom spajanja dodaju se nove staze onda kada na nekoj lokaciji nije moguće provesti spajanje. Kada se, u nekoj koloni, doda nova staza, spajanje lijevo od te kolone ostaje takvo kakvo je (ne radi se novo spajanje), a od te kolone na desno spajanje se radi s novim, većim brojem staza. Očito je da spajanje ovisi o početnom broju staza.
Minimum jog lenght – najmanja duljina okomite spojnice˝Jog˝ – okomita vodljiva spojnica koja se dodaje netu, kako bi se net doveo bliže onoj strani kanala gdje se nalazi priključak. Router ne radi spojnice koje su kraće od neke minimalne duljine “k”;
obično je
w – najbolja širina kanala.
O ovom parametru ovisi broj “via” i broj staza na kraju spajanja.
Ako je k veći broj “via” je manji; ako je “k” manji i broj staza je manji.
4
wk
J.Divković Pukšec, Fizičko projektiranje VLSI sklopova, FER, šk.g. 2008/09. 43
Definicije(1)
Steady net constant – konstanta netaTo je veličina “prozora”, dana brojem kolona; unutar tog broja kolona određuje se net kao rastući, padajući ili nepromjenljiv (rising, falling, steady net). Određen je brojem koji određuje koliko puta može net mijenjati stazu.
net je:-rastući ako u slijedećoj koloni ima priključak na vrhu kanala, a unutar “prozora”
na desno nema priključaka na dnu kanala;-padajući ako u slijedećoj koloni ima priključak na dnu kanala, a unutar “prozora”
na desno nema priključaka na vrhu kanala;-steady ako nije niti rastući niti padajući.
Split net i collapsible net ( raslojeni i sklopivi net)Ako net zauzima više od jedne staze, on je raslojeni (split). Takav net
može postati net koji zauzima samo jednu stazu uz odgovarajući “jog”.
J.Divković Pukšec, Fizičko projektiranje VLSI sklopova, FER, šk.g. 2008/09. 44
Definicije(2)
“Gready router” ima kao ulazne podatke:
- zadani problem- tri pozitivne cjelobrojne (integer) konstante: 1. početna širina kanala2. minimalna duljina “jog”a3. konstantu neta
Algoritam ispituje kanal kolonu po kolonu idući od lijeva na desno. Kod svake kolone koristi šest koraka, a spajanje kod svake kolone je kompletno završeno prije nego se krene na slijedeću kolonu.
J.Divković Pukšec, Fizičko projektiranje VLSI sklopova, FER, šk.g. 2008/09. 45
AlgoritamKorak 1. napravi spoj na priključak (gore ili dolje) što kraćim spojem
Svaki priključak u koloni spaja se na praznu stazu ili na stazu koju taj net već zauzima, prema tome što zahtjeva kraći vod.
Ako je kanal potpuno zauzet, dovođenje novog neta odgađa se do koraka 5.
234
234
4 4
1 1
231
231
0 0
1 1
B B*A A*
21
21
2 2
1 1
C C*
1234
5
0
D D*
1234
5
0
J.Divković Pukšec, Fizičko projektiranje VLSI sklopova, FER, šk.g. 2008/09. 46
1. korak
Ako se dva neta, jedan s vrha a drugi s dna, preklapaju, spaja se onaj net koji treba kraći “jog”, a spajnje drugog neta odgađa se do koraka 5.
3214
3
2
E E*
3214
3
2
Ako nema slobodne staze, a oba priključka, gore i dolje, pripadaju istom netu izvodi se okomiti spoj.
1234
5
5
F F*
1234
5
5
J.Divković Pukšec, Fizičko projektiranje VLSI sklopova, FER, šk.g. 2008/09. 47
2. korakKorak 2: oslobodi što više staza sklapanjem (collapsing) raslojenih netova
U ovom koraku pokušava se osloboditi što više staza spajanjem okomitih spojnica “jog”, tako da se sklope netovi koji zauzimaju više staza. U ovom koraku može se kompletirati spajanje priključaka na stazu koju net već zauzima, jer korak 1. može završiti na slobodnoj stazi.
0
2
1
3
2
0
2
1
3
2
G G*
Ovaj korak je vrlo važan, jer oslobađa staze za netove koji će se pojaviti desno od kolone koja se razmatra.
0
0
1
3414
0
H H*
0
1
3414
J.Divković Pukšec, Fizičko projektiranje VLSI sklopova, FER, šk.g. 2008/09. 48
2. korak
Koriste se tzv. sklopivi segmenti, (collapsing segment, okomiti spoj) koji spaja staze koje zauzima jedan net. Svaki takav segment ima težinu 1 ili 2, ovisno o tome da li se net nastavlja dalje, desno od trenutačne kolone. Ovaj broj ukazuje na broj staza koji će se osloboditi nakon što se obavi sklapanje neta.
Najbolji segment je onaj koji oslobađa najveći broj staza, a ne preklapa se sa segmentima ostalih netova ili sa spajanjem koraka 1.Ako postoji više mogućnosti uzima se onaj segment koji sklapa net koji je bliži vanjskom rubu kanala (I). Ako još uvijek postoji izjednačeni izbor, izabire se segment koji koristi najduži okomiti spoj (J).
0
1
212343
I I*0
1
212
343 0
0
1
2
12 0
1
2
12
J J*
0
J.Divković Pukšec, Fizičko projektiranje VLSI sklopova, FER, šk.g. 2008/09. 49
3. korak
Korak 3: dodaj “jog”kako bi se smanjilo područje raslojenih netova
U ovom koraku smanjuje se područje kojega zauzima pojedini net dodavanjem okomitih spojnica (jog). Staza koju zauzima net pokušava se smjestiti što bliže sredini kanala.
0
0
121
2
k k*0
0
121
2
J.Divković Pukšec, Fizičko projektiranje VLSI sklopova, FER, šk.g. 2008/09. 50
4. korak
Korak 4. dodaj okomitu spojnicu da se podigne rastući net, ili spusti opadajući
U ovom koraku nastoji se net pomaknuti prema određenoj strani kanala, ovisno o položaju slijedećeg priključka:rising (+)falling (–)
L L*0
1
34
falling
fallingrising
0
1
34
falling
fallingrising
J.Divković Pukšec, Fizičko projektiranje VLSI sklopova, FER, šk.g. 2008/09. 51
5. korak
Korak 5. proširi kanal ako je potrebno kako bi se spojili ne spojeni priključci (gore ili dolje)
Ako u koraku 1. net nije mogao biti smješten u kanal dodaje se nova staza;takva staza se smješta što bliže sredini kanala.
M M*
7
0
151
6
7
0
1516
J.Divković Pukšec, Fizičko projektiranje VLSI sklopova, FER, šk.g. 2008/09. 52
6. korak
Korak 6. proširi slijedeću kolonu
S liste zauzetih staza brišu se sve one staze koje zauzimaju netovi koji nisu raslojeni, a završavaju u toj koloni.Trake koje zauzimaju nezavršeni netovi produžuju se do slijedeće kolone.
7
0
1
5
1
6
7
N
J.Divković Pukšec, Fizičko projektiranje VLSI sklopova, FER, šk.g. 2008/09. 53
Primjer
Net lista: TOP = 0,1,2,5,7,1,6,0,2,9,0,0 BOT = 4,3,5,3,5,4,7,1,3,1,6,9
Početno - 6 traka u kanalu
00 11 22 55 77 11 66 00 22 99 00 00
44 33 55 33 55 44 77 11 33 11 66 99Kolona 1. Priključi Pin 4. na traku T5 i protegni do kolone 2
T0
T1
T2
T3
T4
T5
J.Divković Pukšec, Fizičko projektiranje VLSI sklopova, FER, šk.g. 2008/09. 54
00 11 22 55 77 11 66 00 22 99 00 00
44 33 55 33 55 44 77 11 33 11 66 99
T0
T1
T2
T3
T4
T5
Kolona 2. Pin 1 na stazu T0, Pin 3 na stazu T4; produži staze T0,T4 i T5 do kolone 3.
Kolona 3. Pin 5 na stazu T3, spojnica (jog) s T3 na T2 (net 5 je + ; rastući), Pin 2 na stazu T1; produži staze T0,T1,T2, T4 i T5 do kolone 4.
J.Divković Pukšec, Fizičko projektiranje VLSI sklopova, FER, šk.g. 2008/09. 55
00 11 22 55 77 11 66 00 22 99 00 00
44 33 55 33 55 44 77 11 33 11 66 99
T0
T1
T2
T3
T4
T5
Kolona 4. Pin 5 na T2 i okomita spojnica na T3 (net 5 -; padajući) (Pin 5 na T3); Pin 3 na T4; produži T0,T1,T3, T4,T5 do kolone 5.
Kolona 5. Pin 7 na T2; Pin 5 na T3 (net 5 završava); produži staze T0,T1,T2,T4 i T5 produži do kolone 6.
J.Divković Pukšec, Fizičko projektiranje VLSI sklopova, FER, šk.g. 2008/09. 56
00 11 22 55 77 11 66 00 22 99 00 00
44 33 55 33 55 44 77 11 33 11 66 99
T0
T1
T2
T3
T4
T5
Kolona 6. Pin 1 na T0; Pin 4 na T5 (net 4 završava); net 1 je opadajući; spojnica s T0 na T3; staze T1,T2,T3 i T4 produži do kolone 7.
Kolona 7. Pin 6 na T0; Pin 7 na T2; net 7 završava; staze T0,T1,T3 i T4 produži do kolone 8.
J.Divković Pukšec, Fizičko projektiranje VLSI sklopova, FER, šk.g. 2008/09. 57
00 11 22 55 77 11 66 00 22 99 00 00
44 33 55 33 55 44 77 11 33 11 66 99
T0
T1
T2
T3
T4
T5
Kolona 8. Pin 1 na T3, net 6 je padajući i “jog” od T0 na T2; staze T1,T2,T3 i T4 produži do kolone 9.
Kolona 9: Pin 2 na T1, pin 3 na T5, spoji T5 i T4; net 2 i net 3 završavaju; staze T2 i T3 produži do kolone 10.
J.Divković Pukšec, Fizičko projektiranje VLSI sklopova, FER, šk.g. 2008/09. 58
00 11 22 55 77 11 66 00 22 99 00 00
44 33 55 33 55 44 77 11 33 11 66 99
T0
T1
T2
T3
T4
T5
Kolona 10: Pin 9 na T0, pin 1 na T5; “jog” T0 na T1 (net 9 je opadajući); spoji T5 i T3; net 1 završava; staze T1 i T2 produži do kolone 11.
Kolona 11: Pin 6 na T5, “jog” T5 na T2; net 6 završava; stazu T1 produži do kolone 12.Kolona 12: Pin 9 na T5, “jog” T5 na T1; net 9 završava.
J.Divković Pukšec, Fizičko projektiranje VLSI sklopova, FER, šk.g. 2008/09. 59
Sada bi trebalo razlomljene (split) netove reducirati:- net 5 od kolone 3 do kolone 4 staviti iz staze T2 u stazu T3;- net 6 od kolone 8 do kolone 11 premjestiti sa staze T2 na T0.
00 11 22 55 77 11 66 00 22 99 00 00
44 33 55 33 55 44 77 11 33 11 66 99
T0
T1
T2
T3
T4
T5