59
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šec e-mail: [email protected]

Spajanje u kanalu

  • Upload
    lok

  • View
    57

  • Download
    0

Embed Size (px)

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 Presentation

Citation preview

Page 1: Spajanje u kanalu

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]

Page 2: Spajanje u kanalu

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

Page 3: Spajanje u kanalu

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.

Page 4: Spajanje u kanalu

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.

Page 5: Spajanje u kanalu

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

Page 6: Spajanje u kanalu

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).

Page 7: Spajanje u kanalu

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

Page 8: Spajanje u kanalu

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.

Page 9: Spajanje u kanalu

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.

Page 10: Spajanje u kanalu

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.

Page 11: Spajanje u kanalu

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.

Page 12: Spajanje u kanalu

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

Page 13: Spajanje u kanalu

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

Page 14: Spajanje u kanalu

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.

Page 15: Spajanje u kanalu

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.

Page 16: Spajanje u kanalu

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).

Page 17: Spajanje u kanalu

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

Page 18: Spajanje u kanalu

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

Page 19: Spajanje u kanalu

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.

Page 20: Spajanje u kanalu

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.

Page 21: Spajanje u kanalu

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

Page 22: Spajanje u kanalu

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

Page 23: Spajanje u kanalu

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

Page 24: Spajanje u kanalu

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

Page 25: Spajanje u kanalu

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!

Page 26: Spajanje u kanalu

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.

Page 27: Spajanje u kanalu

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

Page 28: Spajanje u kanalu

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}

Page 29: Spajanje u kanalu

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

Page 30: Spajanje u kanalu

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

Page 31: Spajanje u kanalu

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

Page 32: Spajanje u kanalu

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.

Page 33: Spajanje u kanalu

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”.

Page 34: Spajanje u kanalu

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.

Page 35: Spajanje u kanalu

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

Page 36: Spajanje u kanalu

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= { }

Page 37: Spajanje u kanalu

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

Page 38: Spajanje u kanalu

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

Page 39: Spajanje u kanalu

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.

Page 40: Spajanje u kanalu

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.

Page 41: Spajanje u kanalu

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)

Page 42: Spajanje u kanalu

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

Page 43: Spajanje u kanalu

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”.

Page 44: Spajanje u kanalu

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.

Page 45: Spajanje u kanalu

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

Page 46: Spajanje u kanalu

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

Page 47: Spajanje u kanalu

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

Page 48: Spajanje u kanalu

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

Page 49: Spajanje u kanalu

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

Page 50: Spajanje u kanalu

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

Page 51: Spajanje u kanalu

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

Page 52: Spajanje u kanalu

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

Page 53: Spajanje u kanalu

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

Page 54: Spajanje u kanalu

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.

Page 55: Spajanje u kanalu

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.

Page 56: Spajanje u kanalu

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.

Page 57: Spajanje u kanalu

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.

Page 58: Spajanje u kanalu

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.

Page 59: Spajanje u kanalu

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