UVOD-FPGA

27
UVOD Unatoč svim prednostima automatiziranog projektiranja VLSI sklopova vrijeme do izlaska na tržište takvih sklopova najčešće je predugo za mnoge aplikacije. Ključni problem leži u činjenici da je za izradu čipa potrebno određeno vrijeme, stoga se javila potreba za novim tehnologijama koji bi minimizirali vrijeme njegove izrade. Gate Array sklopovi su manje vremenski zahtjevni za razliku od funkciji (korisniku) potpuno prilagođenih čipova jer je na wafer-u takvog sklopa potrebno samo načiniti povezne puteve budući da je wafer predefiniran. Unatoč tomu vrijeme izrade ovakvih sklopova još uvijek je predugo za neke primjene. U nakani da se smanji vrijeme prospajanja uvedeni su programabilni sklopovi koji omogućuju korisniku programiranje prospoja. PLD sklopovi ( engl. Programmable Logic Devices ) su sklopovi koji omogućuju korisniku da ih sam programira i na taj način implementira određenu logičku funkciju. Budući da ovakav pristup uvelike smanjuje vrijeme potrebno za izradu gotovog proizvoda, upotreba ovakvih sklopova postala je značajna kako za izradu sustava tako i njihovih prototipova. Osim što se ovakvih pristupom štedi vrijeme on je svakako i jeftiniji. Ako se u fazi testiranja na ovakvom sklopu otkrije greška ona se dade ispraviti na istome sklopu. Jedan od ovakvih sklopova široke upotrebe su i Field Programmable Gate Array ( FPGA ) sklopovi. U osnovi FPGA se sastoji od programabilnog polja logičkih blokova koja su međusobno povezana programabilnom mrežom spojnih puteva. Programabilni logički blok je RAM koji se programira od strane korisnika te tako čini zaseban logički modul. Korisnik preko alata za programiranje FPGA sklopova sam programira module. Naglasak kod ovakvog pristupa je na reprogramilnosti RAM-a što je posebno pogodno kada postoji vjerojatnost promjene specifikacija zadatka kod završne aplikacije. Kod mnogih aplikacija postoji potreba ažuriranja sustava preko softvera što je lako za ostvariti preko podatkovnog kanala kojim se šalju nove logičke funkcije reprogramirajući FPGA. FPGA dodjela i spajanje 1

Transcript of UVOD-FPGA

Page 1: UVOD-FPGA

UVOD

Unatoč svim prednostima automatiziranog projektiranja VLSI sklopova vrijeme do izlaska na tržište takvih sklopova najčešće je predugo za mnoge aplikacije. Ključni problem leži u činjenici da je za izradu čipa potrebno određeno vrijeme, stoga se javila potreba za novim tehnologijama koji bi minimizirali vrijeme njegove izrade.Gate Array sklopovi su manje vremenski zahtjevni za razliku od funkciji (korisniku) potpuno prilagođenih čipova jer je na wafer-u takvog sklopa potrebno samo načiniti povezne puteve budući da je wafer predefiniran.Unatoč tomu vrijeme izrade ovakvih sklopova još uvijek je predugo za neke primjene.U nakani da se smanji vrijeme prospajanja uvedeni su programabilni sklopovi koji omogućuju korisniku programiranje prospoja.

PLD sklopovi ( engl. Programmable Logic Devices ) su sklopovi koji omogućuju korisniku da ih sam programira i na taj način implementira određenu logičku funkciju. Budući da ovakav pristup uvelike smanjuje vrijeme potrebno za izradu gotovog proizvoda, upotreba ovakvih sklopova postala je značajna kako za izradu sustava tako i njihovih prototipova. Osim što se ovakvih pristupom štedi vrijeme on je svakako i jeftiniji. Ako se u fazi testiranja na ovakvom sklopu otkrije greška ona se dade ispraviti na istome sklopu.Jedan od ovakvih sklopova široke upotrebe su i Field Programmable Gate Array ( FPGA ) sklopovi.

U osnovi FPGA se sastoji od programabilnog polja logičkih blokova koja su međusobno povezana programabilnom mrežom spojnih puteva.Programabilni logički blok je RAM koji se programira od strane korisnika te tako čini zaseban logički modul. Korisnik preko alata za programiranje FPGA sklopova sam programira module. Naglasak kod ovakvog pristupa je na reprogramilnosti RAM-a što je posebno pogodno kada postoji vjerojatnost promjene specifikacija zadatka kod završne aplikacije.Kod mnogih aplikacija postoji potreba ažuriranja sustava preko softvera što je lako za ostvariti preko podatkovnog kanala kojim se šalju nove logičke funkcije reprogramirajući FPGA.

FPGA dodjela i spajanje 1

Page 2: UVOD-FPGA

Koraci projektiranja FPGA sklopa

Fizičko projektiranje FPGA sklopova uključuje tri ključna koraka:To su:

1. Podjela – problem podjele ovisi o arhitekturi unutar koje se implementira sklop2. Postavljanje – problem dodjele fizičke lokacije podkrugovima iz faze 13. Spajanje – odnosi se na problem pronalaženje poveznog puta i programiranja

prospojnih točaka

Arhitektura FPGA sklopa

FPGA arhitektura u osnovi se sastoji od dva dijela: logičkih blokova puteva za povezivanje

Logički blok ima predefiniran broj ulaza i jedan izlaz. Koristeći logički blok moguće je ostvariti široki spektar različitih funkcija.Zadani sustav koji se implementira najprije se podijeli na podkrugove koji se mogu svaki zasebno realizirati koristeći logičke blokove.Postoje dva oblika logičkih blokova. Prvi oblik se zasniva na tablicama istinitosti (engl. Look-Up Tables- LUT), dok se drugi oblik zasniva na multipleksorima.

• Logički blokovi temeljeni na tablicama istinitosti

Logički blok temeljen na LUT-u je u suštini dio RAM-a. Funkcija se implementira na način da se njezina tablica istinitosti prilikom uključenja napajnja sklopa upiše u RAM. Ukoliko se funkcija f=ABC + ABCImplementira tada se njena tablica istinitosti dana slikom 1 jednostavno učita u RAM. Kada blok primi određenu vrijednost ulaza prema danoj tablici istinitosti određuje se vrijednost izlaza.

FPGA dodjela i spajanje 2

Page 3: UVOD-FPGA

A B C f0 0 0 00 0 1 00 1 0 00 1 1 11 0 0 11 0 1 01 1 0 01 1 1 0

Slika 1: tablica istinitosti

Zbog rekonfihurabilne prirode ovakvih LUT blokova oni se još nazivaju i konfigurabilnim logičkim blokovima (engl. Configurable Logic Blocks – CLBs).Jasno je da je 2Imax bita potrebno da bi se ostvarila logička funkcija sa Imax varijabli, stoga su ovi logički blokovi pogodni samo za ostvarivanje logičkih funkcija s malim brojem varijabli.Tipično je taj broj oko pet do šest varijabli.

• Logički blokovi temeljeni na multipleksorima

Tipično se logički blokovi temeljeni na multipleksorima sastoje od tri 2-na-1 multipleksora i jednih dvoulaznih ILI vrata kao što je prikazano na slici 2.

Broj ulaza u ovaj blok iznosi osam. Sklop unutar logičkog bloka se može upotrijebiti za ostvarivanje širokog spektra logičkih funkcija.

FPGA dodjela i spajanje 3

Page 4: UVOD-FPGA

Jedna od takvih funkcija prikazana na Slici 3 (a) se može ostvariti na sljedeći način prikazan na Slici 3 (b) .

Vidimo da se ostvarivanje logičke funkcije multipleksorskim logičkim blokom temelji na pravilnom odabiru prospajanih puteva (ulaza) prema logičkom bloku.

Postoje dva tipa mreža prospojnih puteva - segmentni i nesegmentni.

FPGA dodjela i spajanje 4

Page 5: UVOD-FPGA

• Nesegmentirana mreža prospojnih puteva

Tipična nesegmentirana mreža prospojnih puteva prikazana je na slici 4. Mreža se sastoji od pravilne rešetke koju čine pet horizontalnih i pet vertikalnih metalnih linija koje prolaze kroz prekidačke blokove S. Prekidački blokovi su zapravo kutije pravokutnog oblika sa mogućnošću prekapčanja. One se koriste da bi prekapčale segmente za povezivanje segmenata jednog kanala sa segmentima drugog kanala.Ovisno o topologoji prekidačkog bloka S svaki segment za povezivanje s jedne strane prekidačkog bloka S može se povezati sa drugim segmentom za povezivanje na tom prekidačkom bloku.Što je manje segmenata za povezivanje na koje je moguće prekopčati promatrani segment teže je ostvariti prospajanje FPGA sklopa.

Osim prekidačkih blokova postoje i spojni blokovi čija je uloga spajanje pinova logičkih blokova sa kanalima za povezivanje. Ovisno o topologiji svaki pin logičkog bloka sa može povezati na sve ili samo neke segmente za povezivanje koji prolaze kroz spojni blok. Ponovo, što je manje poveznih segmenata na koje se može spojiti pin logičkog bloka teže je ostvariti prospajanje FPGA sklopa.

FPGA dodjela i spajanje 5

Page 6: UVOD-FPGA

Na slikama 5(a) i 5(b) prikazana je arhitektura Xilinx-ovih prekidačkih blokova korištenih u serijama 2000XC i 4000XC.Na slici 5(a) korišten je predefiniran set programabilnih veza temeljen na statističkoj vjerojatnosti da bi se ostvarila efikasna i ekonomična prekidačka arhitektura.S druge strane prekidačka arhitektura na slici 5(b) je mnogo povezljivija i efikasnija ali samim time skuplja za implementaciju.

FPGA dodjela i spajanje 6

Page 7: UVOD-FPGA

• Segmentirana mreža prospojnih puteva

U segmentiranom modelu putevi u kanalima sadrže predefinirane segmente za povezivanje jednakih ili različitih duljina. Drugi segmenti za povezivanjeprolaze kroz kanale vertikalno. Svaku ulaz ili izlaz iz logičkog bloka je spojen na dodijeljeni vertikalni segment. Postoje i dodatne globalne vertikalne linije koj omogućuju spajanje različitih kanala. Spoj između segmenata ostavruje se kroz tzv. antiosigurač (engl. antifuse), dok se spoj između vertikalnih i horizontalnih segmenata ostvaruje kroz tzv. poprečni osigurač (engl. crossfuse). Programiranjem takvoga osigurača ostavuruje se bidirekcionalna veza s veoma malim otporom između dva segmenta. Kada je osigurač rastaljen spaja dva segmenta tvoreći jedan duži. Da bi se programirao osigurač potrebno je primjeniti visoki napon preko njega.FPGA sadrži posebno sklopovlje za programiranje osigurača. Sklopovlje FPGA se sastoji od segmenata za povezivanje i kontrolne logike na periferiji čipa. Adrese osigurača koji se programiraju serijski se prenose u sklopovlje za programiranje osigurača. Kada je cilj načiniti rekonfigurabilnu prospojnu mrežu umjesto rastalnih osigurača mogu se koristiti reprogramabilni prekidači.

Segmentni model napredniji je u odnosu na nesgemntirani model u vidu iskorištenja mogućnosti prospajanja. Kod nesegmentnog modela samo jedan segment mreže može biti prospojen na putu.Kod segmentnog modela segmenti više različitih mreža mogu biti pridjeljeni istom putu dokle god dva segmenta mreže nisu pridjeljena istom segmentu puta. Ukupan broj programabilnih prekidačkih blokova segmentiranog modela veći je nego kod nesegmentiranog modela. Kašnjenje mreže direktno je proporcionalno broju programabilnih prekidačkih blokova potrebnih za prospajanje te mreže. Broj programabilnih prekidačkih blokova korištenih za prospajanje mreže veći je kod segmentiranog modela nego kod nesegmentiranog modela. Kao rezulatat nesegmentirani model se više preferira kada je naglasak na performansama sklopa.

FPGA dodjela i spajanje 7

Page 8: UVOD-FPGA

Koraci fizičkog dizajna FPGA sklopa

Fizički dizajn FPGA sklopa sastoji se od sljedećih koraka:

Podjela – elektički krug koji se smješta u FPGA najprije treba biti podjeljen na manje podkrugove na takav način da svaki takav podkrug može biti smješten u programabilni logički blok. Za razliku od drugih pristupa kod FPGA nema ograničenja na veličinu pojedinog odjeljka. Međutim postoje ograničenja na broj ulaza i izlaza iz pojedinog odjeljka. Ovo ovisi isključivo o arhitekturi FPGA.

Postavljanje – u ovoj fazi podkrugovima iz prethodne faze biva dodjeljena fizička lokacija na FPGA.Logički blok FPGA biva programiran da se ponaša kao dodijeljeni podkrug. Postavljanje mora biti izvedeno na način da je moguće nakon toga napraviti prospajanje kruga.

Spajanje – u ovoj fazi svi podkrugovi uprogramirani u logičke blokove međusobno se povezuju rastaljivanjem osigurača i spajanjem potrebnih segmenata za povezivanje.

FPGA dodjela i spajanje 8

Page 9: UVOD-FPGA

Podjela

Imax -ulazni i jednoizlazni LUT bazirani logički blok ima bolja svojstva nego Imax-ulazni i jednoizlazni logički blok temeljen na multipleksorima zato jer se LUT-om mogu ostvariti sve logičke funkcije sa Imax

varijabli, a multipleksorski pristup je ograničen sklopovljem unutar bloka.Kao posljedica logički blokovi temeljeni na LUT-u su poželjniji od multipleksorskih.Stoga će se u ovom dijelu razmatrati samo problematika podjele temeljena na LUT logičkim blokovima.

U ovom dijelu koristit će mo mrežu (N) sačinjenu od I, ILI i NE vrata prikazanu direktnim acikličkim grafom (engl. Direct Acycling Graph-DAG).Neka je N skup svih ulaza a1,a2,...,al ; B skup svih I i ILI ulaznih vrata b1,b2,...,bm .Neka je C skup svih NE vrata c1, c2,...,cn .DAG graf je definiran na način G=(Va U Vb, E),gdje je Va=(v1,v2,...,vl) takav da vi є Va predstavlja ulaz u mrežu, a Vb = (vl+1, vl+2,...,vl+m) takav da vj є Vb predstavlja I ili ILI vrata gj-l.Brid eij = (vi, vj) є E, između vi i vj predstavlja spoj izlaza gi i ulaza gj bilo kroz NE vrata ili direktno.Ako je spoj između gi i gj ostvaren kroz NE vrata tada je težina 0 pridružena bridu eij, inače težina pridružena bridu eij є E iznosi 1.Logički krug prikazan je na slici 8(a) a njegov pripadni DAG graf na slici 8(b).Čvorovi iz Va također se nazivaju ulazni čvorovi (engl. input nodes).

Čvorve vi є V nazivamo fan-in čvorom čvora vj є V ako postoji direktan brid od čvora vi prema čvoru vj. Ulazni čvor nema svojih fan-in čvorova.Graf Gi = (Vi, Ei) je podgraf grafa G=(V,E) ako je Vi є V i Ei={eij¿eij=(vi,vj), vi є Vi , vj є Vi ).

FPGA dodjela i spajanje 9

Page 10: UVOD-FPGA

Ulazni stupanj I(Gi) direktnog podgrafa Gi je definiran kao broj bridova koji ulaze u Gi , dok je O(Gi) izlazni stupanj i definiran je kao broj bridova koji izlaze iz Gi. Problem podjele možemo navesti na način da za dati aciklički graf G, dati maksimalni broj izlaznih priključaka logičkog bloka Omax i dati maksimalni broj ulaznih priključaka Imax potrebno je podijeliti G na minimalni broj vertica V1, V2,...,Vk tako da podgrafovi G1,G2,...,Gk zadovoljavaju sljedeća ograničenja: I(Gi) ≤ Imax , 1 ≤ i ≤ k O(Gi) ≤ Omax , 1 ≤ i ≤ k

Francis, Rose i Chung predtavili su dinamički algoritam za podjelu DAG grafa kod kojeg fan-in čvorovi svakoga čvora ne prelaze Imax.Potrebno je objasiti sljedeće pojmove da bi se razumio algoritam:

Mapiranje čvora vi u stablu T čini krug (logiku) sačinjen od Imax ulaznih LUT-ova koja implementira podstablo od T koje za korijen ima čvor vi i proteže se do vršnih čvorova (engl. leaf node) stabla T.Cijena mapiranja je broj LUT-ova koje je potrebno potrošiti na implementaciju.Root lookup tablica mapiranja čvora vi ima za svoj jedini izlaz logičku funkciju čvora vi.Iskorištenje lookup tablice je broj ulaza U, od K ulaza u krug.Ako su vf1,vf2,...,vfp fan-in čvorovi čvora vi tada root lookup tablica mapiranja čvora vi uključuje sve njegove fan-in bridove i podstabla Si koja za korijen imaju neki od čvorova vfi.Termin iskoristivost podjele (engl. utilization division) je uveden da bi se naglasila podjela ulaza root lookup tablice među ovim podstablima. Ako je ui broj vršnih čvorova podstabla Si tada skup U={u1,u2,...,up} opisuje iskoristivost podjele root lookup tablice. Mogu postojati različite iskorištenosti podjele za root tablicu prilikom mapiranja čvora. Slika 9(a) prikazuje iskoristivost podjele {3, 1} dok je na slici 9(b) prikazana iskoristivost podjele {1, 3} za isti čvor vi .

Neka je MinMap(vi , U) optimalno mapiranje čvora vi sa root iskoristivošću U.

FPGA dodjela i spajanje 10

Page 11: UVOD-FPGA

Za svaki vršni čvor vi , MinMap(vi, U) se uzima da je nula za sve vrijednosti U.Pretpostavimo da je izračunat MinMap(vj, U) za svaki fan-in čvor vj= vf1, vf2,...,vfp unutarnjeg čvora vi i za svaki U= 1 do Imax na sljedeći način.Da bi smo izračunali MinMap(vi, U) izračunavamo MinMap(vi, U) za svaku iskoristivost podjele U od U kombinirajući vi sa mapiranjima fan-in čvorova čvora vi. MinMap(vi, U) je je onaj MinMap(vi, U) koji ima najmanju cijenu a koji je izračunat preko svih iskoristivosti podjela.

Povezivanje

U ovom dijelu će biti prikazani principi algoritma za povezivanje koji se pretežno koristi kod simetričnih FPGA struktura. Ovo znači da se arhitektura sastoji od stupaca i redaka logičkih ćelija koje su okružene vertikalnim i horizontalnim kanalima.Opisani algoritam se naziva SEGA (engl.SEGment Allocator), a njegova jedinstvenost se krije u tome što ne samo da osigurava uspješnu povezivost nego vodi računa o dužinama segmenata za povezivanje koji se koriste da bi se ostvarilo povezivanje. Ovo će biti detaljnije objašnjeno kako opisom uopćene arhitekture na kojoj se primjenjuje algoritam, tako i funkcijom cijene koja vodi računa o duljinama segmenata za povezivanje a o kojoj će takđer biti posvećeno razmatranje.

Prijašnje simetrične FPGA strukture su se sastojale uglavnom od kratkih segmenata za povezivanje. Ako su nam trebali duži segmenti za povezivanje oni su se mogli dobiti spajanjem preko programabilnih prekidačkih blokova. I dok ideja sa kratkim segmentima krije dobru stranu u tome što osigurava jako dobro iskorištenje površine za spajanje ( zato jer kratki segmenti nikada ne stvaraju suvišne neupotrebljive ostatke ), njena loša strana je u tome što se dobivanjem dugih segmenata upotrebljava odrešen broj prekidačkih sklopki u seriji što degradira performanse sklopa. Razlog tomu je što prekidačke sklopke imaju značajan serijski otpor i parazitni kapacitet.Kao oblik ublaživanja ovog problema danas se koristi kombinacija dugih i kratkih segmenata za povezivanje- kratki segmenti smanjuju suvišne neupotrebljene ostatke, dok dugi smanjuju vrijeme propagacije signala prilikom dužih povezivanja.

FPGA dodjela i spajanje 11

Page 12: UVOD-FPGA

SEGA algoritam vodi dakle računa o tri bitna faktora:1. 100% potrebnih povezivanja mora biti obavljeno2. Dugi segmenti za povezivanje ne smiju sse koristiti za kratka spajanja3. Duga povezivanja moraju biti obavljena dovoljno dugim segmentima

•Opis problematike spajanja

Na slici 10 su prikazane tri mogućnosti spajanja u kanalu A,B i C. Segmenat za povezivanje na slici je prikazan kao puna horizontalna linija, a segmenat za povezivanje koji je pogodan za točno određeno spajanje prikazan je podebljanom horizontalnom linijom. Prekidačka sklopka koja spaja dva horizontalna segmenta za povezivanje prikazana je kao isprekidana horizonatalna linija. Prekidačka sklopka koja spaja segment za povezivanje sa pinom logičkog bloka (L) prikazana je sa X. I na kraju pinovi logičkih blokova prikazani su kao vertikalne linije.

Kao što se vidi iz slike arhitektura za povezivanje ovog FPGA imatri trake, a prekidačke sklopke su razmještene na način da samo trake 2 i 3 mogu spojiti pinove logičkih blokova za slučaj A, dok se za slučaj B i C mogu koristiti samo trake 1 i 2. Donji opis naznačuje problematiku spajanja prvo iz perspektive samo ostvarivanja spajanja a potom i upotrijebljenih dužina segmenata.

FPGA dodjela i spajanje 12

Page 13: UVOD-FPGA

Ako je prvo obavljeno spajanje slučaja A na traci 2, tada se neće moći izvršiti spajanje jednog od slučaja B ili C jer tada oba ovise o traci 1.S druge strane ako je spajanje slučaja A izvršeno na traci 3, tada slučaj B može koristiti traku 1 a slučaj C traku 2 ili obrnuto. Ovaj primjer pokazuje da čak i kada su samo tri slučaja u razmatranju odabir jednoga može onemogućiti spajanje drugih. Ovo pokazuje da je spajanje FPGA sklopova teže za izvesti od uobičajenih spajanja.

Gornje rješenje je postiglo cilj ostvarivanja veza među logičkim blokovima, ali samo jadan od izbora spajanja slučaja B i C čini najbolji odabir. Jasno je iz promatranja kanala da spajanje slučaja B treba biti obavljeno u traci 1 jer segmenat za povezivanje u toj traci upravo odgovara duljini spajanja. Ovo vodi prema najboljem rješenju za slučaj C budući da on zahtjeva smo jedan segment za povezivanje u traci 1 dok bi u traci 2 trebao dva segmenta.Uspoređibvanje duljina segmenata za povezivanje prema duljinama spajanja novi je problem koji ne postoji kod klasičnog spajanja gdje postoji potpuna fleksibilnost izgradnje metalnih vodova bilo kojih duljina.I dok slika 10 prikazuje problem spajnja u malom dijelu kanala problem je zapravo mnogo kompleksniji jer se u realnosti mnogo više konekcija natječe za iste segmente za spajanje.Klasični Maze routing algoritam je neučinkovit zbog inherentnog svojstva sekvencijalnosti i kao takav ne može predvidjeti utjecaj odabira spajanja jedne konekcije na druge.

• Opis uopćenog FPGAU ovom dijelu dan je prikaz uopćenog FPGA sklopa na koji se primjenjuje SEGA algoritam.

FPGA dodjela i spajanje 13

Page 14: UVOD-FPGA

FPGA se sastoji od pravokutnog polja logičkih blokova sa NxM blokova, te od horizontalnih i vertikalnih kanala za spajanje. Komercijalno gledano ovakva struktura najsličnija je Xilinx-ovim FPGA sklopovima ali je općenitija. FPGA na Slici 11 ima dva pina na svakoj strani logičkog bloka (L) te tri take u kanalu. Kanali obuhvaćaju dva tipa blokova – prekidačke blokove (engl. Switch (S) ) i blokove za spajanje (engl. Connection (C) ). Prekidački blok (S) sadrži prekidačke sklopke koje spajaju jedan segmenat za povezivanje sa drugim.Blok za spajanje (C ) sadrže sklopke koje spajaju segmente za povezivanje sa pinovima logičkih blokova.Potrebno je primjetiti da su blokovi na slici 11 numerirani uzduž lijeve i donje strane.Ove koordinate poslužit će za opisivanje spajanja.

Uopćena priroda S bloka prikazana je na slici 12:

Može se primjetiti da neke trake prolaze ravno kroz S blok dok su neke prekinute s prekidačkim sklopkama. Na slici su dana dva prikaza prekidačkih sklopki: prvi je prikaz isprekidanim linijama koji prikazuje dva kraja segmenata za povezivanje koje sklopka spaja, drugi je X za segmente za povezivanje koji prolaze kroz prekidački blok. Na slici je vidljivo da prekidačke sklopke omogućuju spajanje vertikalnih segmenata 1,2,3 sa horizontalnim segmentima s istim rednim brojevima.Iako slika 12 prikazuje spcifičan prekidački blok S, SEGA algoritam tretira S blok kao općeniti četverostrani S blok koji može biti konfiguriran na bilo koji način.

Postoje dva parametra koja određuju razmještaj prekidačkih sklopki u S bloku. Prvi parametar je ukupna segmentacija svih kanala. Budući da SEGA algoritam može prihvatiti bilo kakav oblik S bloka, samim time prihvaća i bilo kakvu segmentaciju kanala. Segmentacija kanala se obično izvodi prema korisnički definiranoj vjerojatnosti raspodjele. Ova raspodjela je definirana na takav način da se segmenti za povezivanje određenih duljina ponavljaju s određenom frekvencijom.

FPGA dodjela i spajanje 14

Page 15: UVOD-FPGA

Drugi parametar je fleksibilnost označena s Fs koja definira broj svih segmenata za povezivanje na koje se može spojiti promatrani segemt. Na slici 12 gornji lijevi segment se može povezati na 3 ostala pa njegov Fs iznosi 3.

Slika 13 prikazuje C blok:

Trake neprekinuto prolaze kroz C blok i mogu se spojiti na neki od pinova logičkog bloka (L) setom sklopki. Fleksibilnost bloka C Fc definirana je kao broj segmenata za povezivanje u bloku C na koje se može spojiti svaki pin logičkog bloka (L). Na ovom primjeru svaki pin bloka L se može spojiti na dva segmenta pa je Fc=2. SEGA algoritam omogućuje potpunu prilagodbu C bloka ovisno o FPGA arhitekturi.

FPGA dodjela i spajanje 15

Page 16: UVOD-FPGA

• Općeniti pristup i definicija problema

Kao pristup problemu koristi se metoda u dva koraka: prvo slijedi globalno povezivanje (engl. global routing ) nakon kojega se radi detaljno povezivanje (engl. detailed routing ). Ovo omogućuje razdvajanje na dvije bitne zadaće: prva je balansiranje gustoće puteva koji idu kroz kanale, druga je dodijeljivanje segmenata za povezivanje određenim konekcijama.

Globalni routeri razdjeljuju mrežu sa više priključaka na mreže sa dva priključka i traže putove najmanjih duljina kroz kanale da bi ostvarili spajanje. Njihova je zadaća da optimalno razdjele spajanja kroz kanale tako da niti jedan kanal ne bude preopterećen. Oni također vode računa da ovi kanali budu što pravocrtniji tj.,da imaju što manje skretanja.Možemo zaključiti da su ovo intuitivni ciljevi za FPGA jer je kapacitet svakog kanala ograničen .Funkcija globalnog router-a je da pronađe grube puteve između dva logička bloka za svaku konekciju.Slika 14 prikazuje reprezentaciju tipičnog grubog puta za neku proizvoljnu konekciju.

Ova konekcija je prikazana tzv. neobrađenim grafom (engl. coarse graph) G. L blok na koordinati (0, 4) se naziva korijen grafa, a L blok na koordinati (4, 0) se naziva list grafa. Bridovi grafa povezani su koordinatama blokova prema slici 11 i upućuju na redosljed prolaza konekcije kroz blokove.

FPGA dodjela i spajanje 16

Page 17: UVOD-FPGA

Oznaka pin# se odnosi na pripadni pin logičkog bloka (L).

• SEGA detaljni routing algoritam

Nakon što je načinjena reprezentacija FPGA sklopa iz niza korisnički definiranih parametara u program se unosi netlista kruga koji će se implementirati.Iz netliste radi se neobrađeno graf za svaku konekciju .Detaljno povezivanje se tada nastavlja u dvije faze:

1. u prvoj fazi router razmatra sve puteve i prekidače koji su dati u opisu FPGA i enumerira sve mogućnosti ostvarivanja konekcija za svaki neobrađeni graf

2. u drugoj fazi imajući na raspoloagnju sve moguće opcije ostvarivanja veza algoritam donosi odluku koja je uoravljana četveročlanom funkcijom cijene

• Faza 1

U prvoj fazi SEGA enumerira sve puteve koji se mogu ostvariti za svaki neobrađeni graf . Budući da je jedan od glavnih zadataka algoritma prilagođenje duljina segmenata duljinama konekcija, prvi korak uključuje određivanje koliko daleko svaka konekcija putuje uzduž jednoga kanala prije nego li skrene u drugi. Kada se budu formirale veze u idućoj fazi, router će biti u stanju usporediti duljine segmenata za povezivanje sa pravocrtnim dijelovima konekcija. Informacija je sadržana u modificiranom neobrađenom grafu Gx na Slici 15.

FPGA dodjela i spajanje 17

Page 18: UVOD-FPGA

Na slici su vidljivi dodatni bridovi ( tzv. express edge) koji odgovaraju ravnim dijelovima konekcija duž kanala.Idući korak algoritma je ispitivanje resursa za povezivanje da bi se utvrdili svi mogući express bridovi .Za svaki Gx alternativni pravci se mogu prikazati kroz prošireni graf D. Svaki brid grafa D predstavlja određeni segment za povezivanje koji se može upotrijebiti da bi se implementirao odgovarajući express brid.

Na slici su prikazani samo express bridovi grafa Gx. Sa slike je vidljivo da graf D ima iste bridove kao i graf Gx s tom razlikom što D ima brid za svaku instancu za svaki put FPGA. Svaki brid grafa Gx implicira mogućnost upotrebe nekog od bridova e grafa D. Svaki brid e na sebe veže jednu ili više labela koje segmenate za povezivanje. Na slici je to prikazano zakrivljenim linijama.

• Formiranje konekcija-faza 2

Svaki graf D sadrži određeni broj alternativnih puteva. SEGA smješta sve puteve iz svih grafova u jednu listu grafova . Bazirajući se na funkciji cijene router tada odabire puteve iz liste. Svaki izabrani put predtavlja odgovarajuću konekciju. Iz razloga što SEGA proširuje neobrađene grafove može predvidjeti kako će utjecati odabir jednoga puta na preostale mogućnosti.Express bridovi svakoga grafa Gx i višestruki bridovi segmenata za povezivanje grafa D omogućuju routeru da spari ravne dijelove konekcija sa sagmentima za povezivanje prikladne duljine.

FPGA dodjela i spajanje 18

Page 19: UVOD-FPGA

Faza 2 se odvija na sljedeći način:

stavi sve staze u svakoga proširenog grafu u jednu listu while dok lista svih staza nije prazna{

odaberi put s najmanjom cijenomoznači graf sukladno putu koji je zauzet i ukloni sve puteve koji su na tom grafunađi puteve koji su u konfliktu sa odabranim putem i uklni ih iz liste

ako neka od konekcija izgubi svoju posljednji put , smatrati će se neizvedivom ( mogući drugi pristupi problemu kao što je odabir drugačije kombinacije funkcije cijene itd...)update cijenu svih zahvaćenih puteva ( ponovo se izračunavaju cijene)}

• funkcija cijene

Svaku ostvarivi put proširenoga grafa ima cijenu određenu četveročlanom funkcijom cijene:

Cost = wα Cα(p) + wβ Cβ(p) + wcCc(p) + wfCf(p)

Prva dva člana tiču se alokacije segmenata za povezivanje tj njihovih duljina, dok se druga dva člana tiču zadatka uspješnosti povezivanja .Za svaki član je dat detaljan opis.

Cα(p)- svrha ovog člana je da minimizira ostatke segmenata za povezivanje koji se dobiju kada se dugi segmenti upotrebljavaju za kratka spajanja. Član je definiran kvocijentom ukupnog ostatka duljine segmenta i ukupne duljine segmenta.

Cβ(p)- svrha ovog člana je da minimizira broj upotrijebljenih segmenata. Definiran je kao kvocijent ( stvarni broj segmenata na putu minus najmanji mogući broj segmenata) dijeleno sa (stvarni broj segmenata na putu)

Cc(p)-svrha ovog člana je da izabere onu konekciju koja ima najmanje preostalih alternativa. Definiran je kao omjer broja preostalih puteva i ukupnog broja puteva.

Cf(p)-svrha ovog člana je da izabere onaj put koji ima najmanji negativni utjecaj na ostvarivanje ostalih putova. Definiran je kao suma potraživanja za svaku brid na putu. Da bi se izračunalo potraživanje SEGA računa broj instanci segmenata u bridu koji se nalaze i u drugim proširenim grafovima.

FPGA dodjela i spajanje 19

Page 20: UVOD-FPGA

FPGA dodjela i spajanje 20

Page 21: UVOD-FPGA

FPGA dodjela i spajanje 21