590 likes | 762 Views
Spajanje u kanalu. FER zimski semestar šk. g. 2008./09. Predavač: Julijana Divković Pukšec e-mail: julija@zemris.fer.hr. 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.
E N D
Spajanje u kanalu FER zimski semestar šk. g. 2008./09. Predavač: Julijana Divković Pukšec e-mail: julija@zemris.fer.hr J.Divković Pukšec, Fizičko projektiranje VLSI sklopova, FER, šk.g. 2008/09.
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 0 0 2 1 1 0 0 – znači da ništa nije priključeno na tom mjestu 3 0 1 2 0 3 0 0 J.Divković Pukšec, Fizičko projektiranje VLSI sklopova, FER, šk.g. 2008/09.
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.
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 segmenatanazvanih “trunk” (glavna pruga), i okomitihkoji 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 1i N moraju biti spojeni u isti “neti”. • “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.
Terminologija priključci Via gornja granica staze Dogleg donja granica Trunks glavna pruga Branches ogranci J.Divković Pukšec, Fizičko projektiranje VLSI sklopova, FER, šk.g. 2008/09.
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.
1sloj VH model HV model 2 sloja sloj 1 sloj 2 sloj 3 Via VHV model HVH model 3 sloja J.Divković Pukšec, Fizičko projektiranje VLSI sklopova, FER, šk.g. 2008/09.
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.
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 graphHCG(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.
Primjer: TOP = 0,1,6,1,2,3,5 ; BOT = 6,3,5,4,0,2,4 0 1 6 1 2 3 5 6 3 5 4 0 2 4 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.
Primjer (1) 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} 0 1 6 1 2 3 5 1 2 3 4 5 6 6 3 5 4 0 2 4 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 graf net č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.
Primjer: 0 1 6 1 2 3 5 1 Stupac 1 2 3 4 5 6 7 2 3 4 0 1 6 1 2 3 5 5 6 6 3 5 4 0 2 4 6 3 5 4 0 2 4 6 5 1 2 1 5 3 4 4 3 6 2 Horizontal constraint graph Vertical constraint graph J.Divković Pukšec, Fizičko projektiranje VLSI sklopova, FER, šk.g. 2008/09.
Prikaz zona 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. Zona tablica: Stupac S(i) Zona 1 {6} 2 {1,3,6} 1 3{1,3,5,6} 4{1,3,4,5} 2 5 {2,3,4,5} 6 {2,3,4,5} 3 7 {4,5} Interval graf 5 2 1 4 3 6 J.Divković Pukšec, Fizičko projektiranje VLSI sklopova, FER, šk.g. 2008/09.
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.
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 maxS(i), koji predstavlja donju granicu broja potrebnih staza. J.Divković Pukšec, Fizičko projektiranje VLSI sklopova, FER, šk.g. 2008/09.
Postupak • 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.
Algoritam lijevog ruba bez ograničenja • Begin • sortiraj sve netove prema položaju njihovog lijevog ruba; • izaberi net s najnižim položajem lijevog ruba; • stavi ga na najnižu raspoloživu stazu; • izbriši ga s liste netova; • 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; • If list 0 Then Goto 2.; • Exit • End J.Divković Pukšec, Fizičko projektiranje VLSI sklopova, FER, šk.g. 2008/09.
Primjer: (prethodni) Postupak je slijedeći: 1.netovi su sortirani: 6,1,3,5,4,2 0 1 6 1 2 3 5 6 1 3 5 4 2 6 3 5 4 0 2 4 J.Divković Pukšec, Fizičko projektiranje VLSI sklopova, FER, šk.g. 2008/09.
Primjer (1) 2. uzme se prvi net s liste: net broj 6 i stavu i stazu 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. 0 1 6 1 2 3 5 5 3 1 2 4 6 6 3 5 4 0 2 4 Ovo rješenje nije dobro; problem pri spajanju. J.Divković Pukšec, Fizičko projektiranje VLSI sklopova, FER, šk.g. 2008/09.
Loša strana algoritma 0 1 6 1 2 3 5 6 3 5 4 0 2 4 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.
Algoritam lijevog ruba sa ograničenja Begin 1. sortiraj sve netove prema položaju njihovog lijevog ruba; 2. izaberi netn s najnižim položajem lijevog ruba; Ifn nema potomka u VCGu stavi Then Begin Stavi netn u najnižu raspoloživu stazu; izbriši n s liste netova; izbriši netn 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. Exit End J.Divković Pukšec, Fizičko projektiranje VLSI sklopova, FER, šk.g. 2008/09.
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. 1. Netovi sortirani prema lijevom rubu 0 1 6 1 2 3 5 6 6 1 1 5 3 5 3 4 4 2 6 3 5 4 0 2 4 2 J.Divković Pukšec, Fizičko projektiranje VLSI sklopova, FER, šk.g. 2008/09.
1 3 2 6 5 4 Algoritam lijevog ruba sa ograničenja(2) 6 1 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. 5 3 4 • - 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. 2 0 1 6 1 2 3 5 6 3 5 4 0 2 4 J.Divković Pukšec, Fizičko projektiranje VLSI sklopova, FER, šk.g. 2008/09.
Ciklusi u VC grafu Ovaj algoritam postaje neizvediv ako u VCGu postoji ciklus. 1 2 1 0 2 0 1 2 U takvom slučaju treba primjeniti tzv dog leging, odnosno vodoravne segmente netova treba razlomiti (split) na više dijelova. 2 1 0 2 0 1 J.Divković Pukšec, Fizičko projektiranje VLSI sklopova, FER, šk.g. 2008/09.
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. Bez lomljenja Uz lomljenje 1 1 2 2 0 1 1 2 2 0 0 2 0 3 3 0 2 0 3 3 Loša strana: veći broj via! J.Divković Pukšec, Fizičko projektiranje VLSI sklopova, FER, šk.g. 2008/09.
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.
Primjer VCG 1 1 2 0 2 3 1 1 2 2 3 3 4 4 2 3 0 3 4 4 1 1 2 0 2 3 1 netovi 2 i 3 su razlomljeni svaki na dva dijela: 2a, 2b, 3a, 3b 2a 2b 3a 3b 4 2 3 0 3 4 4 J.Divković Pukšec, Fizičko projektiranje VLSI sklopova, FER, šk.g. 2008/09.
Postupak spajanja sortirana lista = 1,2a,3a,2b,3b,4 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} 1 1 2 0 2 3 1 2a 3a 2b 3b 4 2 3 0 3 4 4 1 2 3 4 5 6 stupac J.Divković Pukšec, Fizičko projektiranje VLSI sklopova, FER, šk.g. 2008/09.
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 3b 3. u stazu 3 idu net 1 i 2b 1 1 2 0 2 3 2 3 0 3 4 4 J.Divković Pukšec, Fizičko projektiranje VLSI sklopova, FER, šk.g. 2008/09.
Primjer – Deutsch algoritam bez lomljenja Stupaca =174, netova =72 Gustoća =19 Rezultat: broj traka = 28 najveća gustoća = 19 J.Divković Pukšec, Fizičko projektiranje VLSI sklopova, FER, šk.g. 2008/09.
Primjer – Deutsch algoritam s lomljenjem (doglegs) Stupaca =174, netova =72 Gustoć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.
Yoshimura i Kuh algoritam Ako u VCGu postoji put n1 – n2 – n3-.....-nk očito je da dva netaiz 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.
Definicije “i” i “j” su netovi za koje: 1. nema vodoravnog preklapanja u “zone” prikazu, i 2. 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.
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} I S(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.
Primjer(1) S(3)={1,2,3,4,5} I S(6)={2,4,6} II S(7)={4,6,7} III S(9)={4,7,8,9} IV 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 III net 5 se briše iz skupa L, net 6 se briše iz skupa R L={1,3,} R={} J.Divković Pukšec, Fizičko projektiranje VLSI sklopova, FER, šk.g. 2008/09.
Primjer(2) Zona II skup 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 17 iz 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.
Primjer(3) Zona III skup 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.
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.
Algoritam Merge1(zs,zt) Begin 1. L = { zs = najljevija zona, zt = najdesnija zona 2.For z=zs to zt Do Begin 3. 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 5 EndFor 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.
“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.
Greedy Algoritam • Od lijeva prema desno; ispitaj stupac po stupac, • c:=0; • while (not done) do • begin • c:=c+1; • završi spajanje u koloni c; • End 1 3 1 2 1 5 • 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) 1 3 4 3 2 1 2 3 4 5 4 4 J.Divković Pukšec, Fizičko projektiranje VLSI sklopova, FER, šk.g. 2008/09.
Definicije Initial channel width – početna širina kanala To 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. J.Divković Pukšec, Fizičko projektiranje VLSI sklopova, FER, šk.g. 2008/09.
Definicije(1) • Steady net constant – konstanta neta • To 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ćiako u slijedećoj koloni ima priključak na vrhu kanala, a unutar “prozora” na desno nema priključaka na dnu kanala; • padajućiako 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.
Definicije(2) • “Gready router” ima kao ulazne podatke: • zadani problem • tri pozitivne cjelobrojne (integer) konstante: • 1. početna širina kanala • 2. minimalna duljina “jog”a • 3. 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.
2 3 4 Algoritam Korak 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. 1 1 1 1 1 1 2 3 1 2 3 1 2 1 2 1 2 3 4 2 2 0 0 4 4 A A* B B* C C* Ako je kanal potpuno zauzet, dovođenje novog neta odgađa se do koraka 5. 0 0 1 2 3 4 1 2 3 4 5 5 D D* J.Divković Pukšec, Fizičko projektiranje VLSI sklopova, FER, šk.g. 2008/09.
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. 2 2 3 2 1 4 3 2 1 4 3 3 E E* 5 5 1 2 3 4 1 2 3 4 Ako nema slobodne staze, a oba priključka, gore i dolje, pripadaju istom netu izvodi se okomiti spoj. 5 5 F F* J.Divković Pukšec, Fizičko projektiranje VLSI sklopova, FER, šk.g. 2008/09.
2. korak Korak 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. 2 0 0 2 1 3 4 1 4 1 3 4 1 4 1 3 2 1 3 2 0 0 0 0 H H* G G* Ovaj korak je vrlo važan, jer oslobađa staze za netove koji će se pojaviti desno od kolone koja se razmatra. J.Divković Pukšec, Fizičko projektiranje VLSI sklopova, FER, šk.g. 2008/09.
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 0 1 1 2 1 2 1 1 2 1 2 2 1 2 3 4 3 2 1 2 3 4 3 0 0 0 0 J J* I I* J.Divković Pukšec, Fizičko projektiranje VLSI sklopova, FER, šk.g. 2008/09.
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 1 2 1 2 1 2 1 2 0 0 k k* J.Divković Pukšec, Fizičko projektiranje VLSI sklopova, FER, šk.g. 2008/09.
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 (–) 1 1 falling 3 4 3 4 falling rising rising falling falling 0 0 L L* J.Divković Pukšec, Fizičko projektiranje VLSI sklopova, FER, šk.g. 2008/09.