32
20. FPGA kola Kao što smo već napomenuli dva najinteresantnija tipa PLD kola su: CPLD (Complex PLD) i FPGA (Field Programmable Gate Array). Oba ova kola su program-ibilna. To znači da oba kola imaju jednu važnu osobinu a to je da se reprogramiraju čine se na jedan brz način mogu da realizuju drugu funkciju,. Ograničićemo se u daljem delu teksta na objašnjenje strukture i principa rada FPGA kola. Osnovna arhitektura Osnovna arhitektura FPGA-ova čine sledeće tri komponente - logički blokovi - sprežna mreža - ulazno izlazni blokovi Globalno posmatrano svaki proizvođač FPGA kola ima svoju sopstvenu FPGA arhitekturu, ali u suštini sve te arhitekture su varijanta one prikazane na slici 6. Slika 6 - generička FPGA arhitektura Kao što se vidi sa slike 6, FPGA struktura inkorporira pomenuta tri komponente. No ipak treba naglasiti da savremene FPGA arhitekture uključuju u svoju strukturu i druge gradivne blokove ( i nisu prikazani na Slici 6), a koji se koriste za sledeće namene: 1. Distribucija taktnog signala do svakog logičkog bloka, 2. Obavljanje aritmetičkih operacija, selekciju blokova, i memorisanje, tj implementiraju se kao ALU-ovi, množači, dekoderi, i memorija. Logički blokovi Sprežna mreža ulazno izlazni blokovi

Pog.20 FPGA Kola

Embed Size (px)

Citation preview

Page 1: Pog.20 FPGA Kola

20. FPGA kola

Kao što smo već napomenuli dva najinteresantnija tipa PLD kola su: CPLD (Complex PLD) i FPGA (Field Programmable Gate Array). Oba ova kola su program-ibilna. To znači da oba kola imaju jednu važnu osobinu a to je da se reprogramiraju čine se na jedan brz način mogu da realizuju drugu funkciju,. Ograničićemo se u daljem delu teksta na objašnjenje strukture i principa rada FPGA kola. Osnovna arhitektura Osnovna arhitektura FPGA-ova čine sledeće tri komponente

- logički blokovi - sprežna mreža - ulazno izlazni blokovi Globalno posmatrano svaki proizvođač FPGA kola ima svoju sopstvenu FPGA arhitekturu, ali u

suštini sve te arhitekture su varijanta one prikazane na slici 6.

Slika 6 - generička FPGA arhitektura

Kao što se vidi sa slike 6, FPGA struktura inkorporira pomenuta tri komponente. No ipak treba naglasiti da savremene FPGA arhitekture uključuju u svoju strukturu i druge gradivne blokove ( i nisu prikazani na Slici 6), a koji se koriste za sledeće namene:

1. Distribucija taktnog signala do svakog logičkog bloka, 2. Obavljanje aritmetičkih operacija, selekciju blokova, i memorisanje, tj implementiraju se

kao ALU-ovi, množači, dekoderi, i memorija.

Logički blokovi

Sprežna mreža

ulazno izlazni blokovi

Page 2: Pog.20 FPGA Kola

3. Programiranje i testiranje uključujući JTAG lanac i programabilne elemente. Tri osnovna tipa programabilnih elemenata kod FPGA kola su statički RAM, anti-osigurači (anti-fuses), i fleš EPROM.

Logički blokovi, često nazivani logički elementi (LE), ili kombinacioni logički blokovi (CLB), čine logiku FPGA kola. CLB-ovi sadrže logiku koja je dovoljna za kreiranje funkcije standardnih logičkih kola (or, and, xor…) kao i jednostavnih automata. Sprega između CLB-ova se ostvaruje korišćenjem programabilne sprežne mreže, tj programabilne arhitektura za rutiranje. Ulazno-izlazni blokovi, nazvani U/I blokovi, ostvaruju vezu sa spoljnim svetom, a mogu se programirati da budu ulazni ili izlazni. FPGA kola se karakterišu sitno-zrnastom (fine-grain) arhitekturom. To znači da se logičke operacije obavljaju na nivou bita ili na nivou reči malog obima (< 4 bita), što omogućava kreiranje veoma fleksibilnih arhitektura prilagođenih specifičnim zahtevima aplikacije. Tako na primer ako je datoj aplikaciji potreban 10-bitni sabirač za jednu operaciju a 25-bitni za drugu, tada projektant ne modra je koristi jedinstveni standardni 32-bitni sabirač da bi obavio željena izračunavanja iz razloga što on može direktno u FPGA da implementira obim bilo kog sabirača koji je neophodan za specifičnu aplikaciju. Ova fleksibilnost predstavlja značajni prednost FPGA kola u odnosu na ne-programabilne implementacije na silicijumu. Tipovi konfiguracionih ćelija kod FPGA-ova Kao što smo već pomenuli konfiguracione ćelije kod FPGA kola mogu biti izvedene kao:

1. SRAM kola 2. kola tipa anti-osigurači (antifuses) 3. EEPROM kola Najveći deo FPGA-ova se zasniva danas na korišćenju SRAM konfigurabilnih ćelija što znači

da se ova kola mogu konfigurisati (programirati) više puta. Glavne prednosti ove tehnike su što se nove ideje mogu brzo implementirati i testirati, dok je nove standarde i protokole relativno lako uvesti. Ipak treba naglasiti da nakon uključenja na napajanje FPGA kolo mora da se inicijalizira kako bi obavljalo svoju funkciju, iz razloga što SRAM ćelija gubi sadržaj kada nije pod napajanjem. Nasuprot FPGA kolima sa SRAM ćelijama koja se programiraju na samoj ploči, FPGA kola sa anti-osiguračima se programiraju kada se izvade iz ploče (off-line) korišćenjem specijalnih uređaja nazvanih programatori. Nakon programiranja konfiguracioni sadržaj ostaje trajno zapisan u kolu, tj ne može se više menjati. To znači da su ova kola non-volatile tipa, tj konfiguracioni podaci ostaju u kolu i nakon isključenja i ne zahtevaju spoljne memorijske komponente za memorisanje konfiguracionih podataka.

EPROM bazirane konfiguracione ćelije mogu se realizovati kao EEPROM / Fleš ćelije i hibridne Fleš-SRAM ćelije. FPGA kola sa EEPROM ili fleš izvedenim konfiguracionim ćelijama slične su kolima sa SRAM ćelijama. Konfiguracione ćelije su povezane u jedan dugi lanac formirajući pomerački registar. Kola se obično programiraju off-line koristeći programator, a postoje i neke verzije tipa programiranja na samoj ploči (in-system programable – ISP) ali je tada vreme programiranja do tri puta duže u odnosu na SRAM-zasnovanim komponentama. Neki proizvođači nude danas i kombinaciju programskih tehnologija kod kojih se konfiguracioni element formira od kombinacije Fleš (ili EEPROM) ćelije i SRAM ćelije. Kod ovog rešenja Fleš element se može re-programirati. Nakon uključenja sistema na napajanje, sadržaji Fleš ćelija se kopiraju u odgovarajuće SRAM ćelije. Ova tehnika čini da FPGA kolo bude non-volatile tipa što znači da je odmah dostupno za korišćenje nakon dovođenja napajanja u zavisnosti od tipa kola i proizvođača moguće je rekonfigurisati fleš ćelije bilo on-line (kada je kolo na samoj ploči) ili off-line pomoću programatora. Ključne karakteristike pomenute tri tehnologije za realizaciju konfiguracionih ćelija kod FPGA kola prikazane su na slici 7.

Page 3: Pog.20 FPGA Kola

sobine SRAM anti-prekidač E2PROM/Fleš tehnologija čvora

savremena poznata i korišćena pre jednu ili više generacija

poznata i korišćena pre jednu ili više generacija

mogućnost reprogramiranja

da, (in-system) ne da (in-system ili off-line)

brzina reprogramiranja

brza - tri puta sporija u odnosu na SRAM

volatile (mora da se programi nakon uklučenog napajanja)

da ne ne (ali može ako je potrebno)

ekterni konfiguracioni fajl

da ne ne

dobro za prototipove

da ne da (prihvatljivo)

trenutno radi nakon uključenja na napajanje

ne da da

IP - sigurnost dostupna (sa bit-nizvnim šifrovanjem)

veoma dobra veoma-dobra

obim konfiguracione ćelije

veliki (šest tranzistora)

veoma-mali srednje-mali (dva tranzistora)

potrošnja energije srednje niska srednje Rad - Hard ne da realno - ne

Slika 7 – karakteristike konfiguracionih ćelija kod FPGA kola Napomena: Glavna prednost antifuse FPGA-kola je ta što je njihova sprežna struktura tipa Rad – Hard, tj ova kola su relativno imuna na radiacione efekte što ih čini jako pogodne za vojne aplikacije u svemirskim istraživanjima. Fino-, srednje-, i krupno-zrnaste FPGA arhitekture

FPGA arhitekture možemo podeliti na sitno-zrnaste (fine-grained) i krupno-zrnaste (coarse-grained). Da bi razumeli šta ovo znači, moramo prvo imati na umu da se FPGA kola razlikuju od drugih logičkih kola po tome što se sastoje od velikog broja programabilnih logičkih blokova nazvanih ’’ostrva“ (islands) koji su umetnuti (embedded) u jedno “more“ (sea) programabilnih sprežnih veza (vidi sliku 8).

Page 4: Pog.20 FPGA Kola

Slika 8 – FPGA fabrika Napomena: pojam fabrika se odnosi na kombinaciju logike i sprežne mreže.

Kod fino-zrnaste arhitekture svaki blok se koristi za implementaciju veoma jednostavnih

funkcija. Tako naprimer, moguće je konfigurisati logički blok da predstavlja tro-ulazno AND, OR, ili NAND kolo, ili da bude memorijski elemenat tipa D flip-flop, D leč, itd. Ove arhitekture su posebno efikasne kod izvršenja sistoličkih algoritama. Kod krupno-zrnaste arhitekture svaki logički blok sadrži relativno veći iznos logike u odnosu na sitnozrnastu arhitekturu. Tako naprimer, logički blok može da sadrži četiri 4-ulazna LUT-a (Look Up Table – tabela pretraživanja), četiri D tip flip-flopa, logiku za generisanje prenosa kod operacije sabiranja (fast carry logic) i dr. Jedno opšte zapažanje bi bilo sledeće: Implementacija sitno-zrnaste arhitekture, u odnosu na iznos funkcionalnosti koja se podržava od strane logičkih blokova, zahteva veliki broj veza koje ulaze u i izlaze iz logičkog bloka. Naime, kako se granularnost blokova povećava od srednje-zrnaste pa naviše, broj veza tog bloka se smanjuje u odnosu na funkcionalnost koju taj blok obavlja. Ova činjenica je veoma važna iz razloga što sprežna mreža ima najveći uticaj na propagaciju signala kroz FPGA. Logički elemenat Od sredine osamdesetih godina prošlog veka, kada se na tržištu pojavilo prvo FPGA kolo, pa do danas, projektanti FPGA kola su razvili veliki broj programabilnih logičkih struktura. Nezavisno od tipa FPGA kola kao i proizvođača, opšta struktura programabilne logike FPGA kola (LE ili CLB) je oblika kao na slici 9

Programibilna interkonekcija

Programibilni logički blokovi

Page 5: Pog.20 FPGA Kola

Slika 9 – Opšta struktura programabilnog logičkog bloka (LE ili CLB)

Kao što se vidi sa slike 9 LE sadrži određeni oblik kombinacione programabilne logike, flip-flop ili leč, i logiku za generisanje prenosa koji se koristi kod operacije sabiranja. Izlaz LE-a je selektorskog tipa. Naime multiplekser na svom izlazu generiše izlaz iz kombinacione logike ili filip-flopa. Na slici 9 prikazana je i određena forma programiranja, ili konfiguracije, koja se ogleda u sledećem: Selekcija izlaza multipleksera je definisana stanjem konfiguracione memorijske ćelije. Treba pri ovome napomenuti da se konfiguraciona memorija koristi takođe i za definisanje specifične funkcije koju obavlja kombinaciona logika u okviru svakog LE –a (ovaj detalj nije prikazan na slici 9). Flip-flop (slika 9) kod komercijalnih FPGA-ova se implementira u različite varijante, kao naprimer, jednostavni leč koji se može programirati da ima nekoliko kombinacija sinhronih ili asinhronih set i reset ulaza, kao i da se okida na pozitivnu, ili negativnu ivicu. Kod velikog broja FPGA kola novije generacije (Xilinx Virtex FPGA) logika za generisanje prenosa je evoluirala u logiku koja podržava dodatne funkcije, kakva je recimo množenje, a kod Startix II FPGA firme Altera logika za prenos se implementira kao potpuni sabirač. Blok kombinaciona-logika kod LE-a se slike 9 se implementira na različite načine. Dve standardne tehnike su one koje se baziraju na multiplekserima i LUT tabelama,. Analizirajmo sada kako se implementiraju obe tehnike kroz realizaciju logičke funkcije y=(a & b) | c tj. y = (a and b) or c. Implementacija MUX-zasnovanog logičkog-bloka je prikazana na slici 10.

Page 6: Pog.20 FPGA Kola

Slika 10 – Implementacija MUX – zasnovanog logičkog-bloka

Kao što se vidi sa slike 10 logički-blok se može programirati tako da svaki ulaz bloka bude predstavljen sa logičkom 0, logičkom 1, ili prave (true) ili inverzne (komplement) verzije signala (‘a’, ‘b’, ili ‘c’) koji se dovode sa ulaza drugih logičkih blokova ili formiraju primarni ulaz u logički blok. Na ovaj način, svakom logičkom bloku je obezbeđeno da konfiguriše na veći broj načina čime se može implementirati veliki broj različitih logičkih funkcija. Simbol ‘x’ na ulazu centralnog multipleksera sa slike 10 ukazuje da vrednost na koje je ovaj ulaz postavljen nije od značaja (don’t care input, tj ovaj ulaz može biti povezan na logičku 0 ili 1) Implementacije LUT zasnovanog logičkog bloka je relativno jednostavna. Grupa ulaznih signala se koristi kao indeks (pokazivač) na tabeli-pretraživanja (lookup table). Sadržaj ove tabele se uređuje tako da ćelija na koju ukazuje svaka ulazna kombinacija sadrži željenu vrednost. Tako naprimer da bi implementirali funkciju y = (a & b) | c treba tro-ulazni LUT napuniti odgovarajućim vrednostima. Na slici 11 a) prikazano je kako se željenoj funkciji pridružuje tablica istinitosti, a na slici 11b kako se ostvaruje punjene tro-ulaznog LUT-a.

a) b)

Slika 11 – LUT zasnovani logički blok a) željena funkcija i odgovarajuća tablica istinitosti; b) LUT

zasnovana transmisionim gejtovima (lanac programiranja memorijskih ćelija zbog jasnoće, nije prikazan)

Page 7: Pog.20 FPGA Kola

Standardni LUT se formira od SRAM ćelija, ali se ona može formirati od anti-osigurača, E2PROM, ili fleš ćelija. Obično ulazi (u konkretnom slučaju ’a’ ’b’ i ’c’ ) se koriste za selekciju željene SRAM ćelije koristeći transmisione gejtove povezane u strukturu tipa stablo (vidi sliku 11). Kada je transmisionom gejtu aktivan on propušta signal svog ulaza na svoj izlaz, a kada je deaktiviran, izlaz u električnom smislu nije povezan (diskonektovan) sa vezom (žicom) koju on pobuđuje. Hijerarhijska organizacija Jedan korak naviše u strukturnoj hardverskoj hijerarhiji FPGA kola, kod firme Xilinx, a slično je i kod firme Altera, se naziva mali-blok (slice). U trenutku pisanja ovog teksta, mali blok sadrži dve logičke ćelije (vidi sliku 12).

Slika 12 - Mali-blok (slice) koji sadrži dve logičke ćelije (LC-ove)

Sa ciljem da ilustracija prikazana na slici 12 bude jasnija namerno su izostavljenje interne veze u okviru LC-a. Treba ipak naglasiti da i pored toga što u okviru LC-a gradivni elementi, kakvi su LUT, MUX, i registar, imaju svoje sopstvene ulaze i izlaze, mili-blok sadrži jedinstveni skup signala tipa clock, clock-enable, i set/reset koji su zajednički za obe LC-ove. Još jednim korakom naviše u strukturnoj hardverskoj hijerarhiji FPGA kola, srećemo se sa pojmom grupa (cluster):

a) kod firme Xilinx pojam grupa se naziva LCB - konfigurabilni logički blok (configurable logic block),

b) kod kompanije Altera pojam grupa se naziva LAB - logičko blok polje (logic array block), c) slična ili ekvivalentna imena koriste i drugi proizvođači.

U Tabeli 1 prikazana je tendencija koja se odnosi na povećanje grupisanja (clustering) u proteklom periodu.

Page 8: Pog.20 FPGA Kola

Tabela 1. Obim grupe kod LUT baziranih FPGA kola u proteklom periodu

Definicija oko toga šta formira CLB se menja od godine do godine. Na početku razvoja FPGA kola jedan CLB su činila dva tro-ulazna LUT-a i jedan registar. Napretkom tehnologije, kasnije verzije CLB-ova su bile komponovane od dva četvoro-ulazna LUT-a i dva registra. Današnji CLB-ovi sadrže dva ili četiri mala-bloka (slice), pri čemu svaki mali-blok čine dva četvoro-ulazna LUT-a i dva registra (vidi sliku 13).

Slika 13 - CLB sadrži četiri bloka

Mesto gde skup upravljačkih signala i podataka (sa ciljem da se obavi odgovarajuća logička funkcija) ulazi i izlazi u/iz CLB se naziva port. Logičku hijerarhijsku strukturu LC → mali-blok (sa dva LC-a) → CLB (sa četiri mala bloka) prati i odgovarajuća hijerarhija u sprezanju. Naime, sprega LC-ova u okviru malih-blokova (slice-ova) se ostvaruje brzim vezama (interkonekcijama) dok se sprege između malih blokova u okviru CLB-a ostvaruju nešto sporijim vezama.

Page 9: Pog.20 FPGA Kola

FPGA arhitekture Svaki proizvođač FPGA kola ima svoju sopstvenu arhitekturu, ali generalno posmatrano sve su one varijacija arhitekture prikazane na slici 14.

Slika 14 - Opšta FPGA arhitektura Arhitekturu čine CLB-ovi, konfigurabilni U/I blokovi, i programibilne sprežne veze (interkonekcije). Takođe postoje i kola za distribuciju takta kojim se do svakog logičkog kola dovode taktni signali. Dodatni logički resursi, kakvi su ALU-ovi memorije, i dekoderi mogu takođe biti deo arhitekture FPGA kola. Tri osnovna programibilna elementa kod FPGA kola su statički-RAM, anti-osigurač i fleš-EPROM. Konfigurabilni logički blokovi - CLB CLB-ovi sadrže logiku FPGA kola. Kod krupno-zrnastih arhitektura, karakterističnih za današnja FPGA kola, CLB-ovi sadrže dovoljno logike koja je potrebna za kreiranje konačnih automata sa malim brojem stanja. Jedan tipičan FPGA-ov CLB firme Xilinx je prikazan na slici 15.

Page 10: Pog.20 FPGA Kola

Slika 15 - FPGA-ov CLB firme Xilinx CLB sadrži RAM koji se koristi za kreiranje proizvoljnih kombinacionih logičkih funkcija, nazvan LUT (lookup table). Gradivni blokovi CLB-a su i flip-flopovi koji se koriste kao taktovani-memorijski elementi (clocked storage elements) zajedno sa većim brojem multipleksera. Uloga multipleksera je da rutira kako logičke signale u okviru CLB-a tako i signale ka/od spoljnih resursa. Multiplekseri takođe omogućavaju da se vrši izbor polariteta signala reset i clear. Konfigurabilni ulazno/izlazni blokovi Konfigurabilni ulazno/izlazni blokovi (vidi sliku 16) se koriste za dovođenje signala u čip i za odvođenje signala iz čipa. Sastavni delovi ovog bloka su ulazni bafer i izlazni tro-statički bafer sa izlazom tipa otvoreni kolektor koji se može upravljati. Obično na izlazima postoje otpornici prikačeni naviše (pull up), a ponekad prikačeni naniže (pull down), koji se koriste kao završne impedanse za signale i magistralu bez da postoji potreba za ugradnjom diskretnih spoljnih otpornika na čipu.

(a)

Page 11: Pog.20 FPGA Kola

(b)

Slika 16 - Konfigurabilni ulazno/izlazni blok firme Xilinx Polaritet izlaza se može programirati da bude aktivan kao nizak ili visok naponski nivo.Takođe, košenje (slew rate) izlaza se može programirati tako da usponske/opadajuće ivice impulsa mogu biti spore ili brze. Na izlazima/ulazima FPGA kola se često ugrađuju flip-flopovi koji omogućavaju da se izlazni/ulazni signali mogu taktovati. Programibilne sprege Projektanti FPGA kola koriste različite strukture za rutiranje signala. Generalno posmatrano određeni iznos rutiranja je uključen u okviru svake logičke grupe (cluster) tako da se logički elementi mogu grupisati kako bi se realizovale složenije funkcije. Spolja u odnosu na logičke grupe postoji i globalna arhitektura rutiranja FPGA kola. Na slici 17 prikazana je hijerarhija sprežnih resursa. Postoje duge brze linije koje se koriste za povezivanje kritičnih CLB-ova koji su fizički u okviru čipa međusobno dosta razuđeni. Ove linije se takođe mogu koristiti za implementaciju magistrala na čipu. Takođe postoje i kratke linije koje se koriste za povezivanje individualnih CLB-ova koji su u okviru FPGA čipa locirani veoma blizu.

Page 12: Pog.20 FPGA Kola

Slika 17 - Programibilne sprege kod FPGA kola firme Xilinx

Za implementaciju rutiranja koriste se sledeća tri osnovna tipa prekidača (vidi sliku 18):

a) multiplekseri, b) pass- tranzistori, c) tro-statički baferi.

Slika 18 - Osnovni tipovi programibilnih prekidača

Generalno posmatrano, pass-tranzistori i multiplekseri se koriste u okviru logičke grupe (cluster-a) za međusobno povezivanje logičkih elemenata dok se sva tri tipa prekidača koriste za realizaciju strukture kod globalnog povezivanja. Multiplekseri u okviru FPGA kola se realizuju u različitim konfiguracijama, recimo kao tipa 2-u-1, 4-u-1, ili 8-u-1. Svaki put kada se signal rutira preko prekidača tipa pass-tranzistor veća kapacitivnost kao opterećenje se dodaje na izlazu drajverskog tranzistora, čime se smanjuje brzina rada kola. Zbog ovoga, sva savremenija FPGA kola koriste aktivno baferovanje. U okviru logičke grupe (cluster-a) rutiranje se koristi za veći broj namena.

• Kao prvo, rutiranjem se određuje odakle ulazi u logički element dolaze i gde se izlazi vode. • Kao drugo, rutiranjem se definiše na koji način će se signali propagirati kroz logičke

elemente. • Kao treće, ne-programibilno rutiranje se koristi za propagaciju carry signala kod sabiranja

sa ciljem da se eliminiše ekstra kašnjenje. Obično, putevi carry lanaca se uspostavljaju između logičkih grupa (cluster-a) kada se realizuju operacije sabiranja nad operandima povećanog obima (16-, 32-, 64-, ili 128-bitno sabiranje).

• Kao četvrto, rutiranje u okviru logičke grupe se često koristi radi kombinovanja logičkih elemenata u obimnije i složenije funkcije.

Page 13: Pog.20 FPGA Kola

Na slici 19 prikazane su različite vrste rutiranja koje se realizuju u okviru logičke grupe (cluster-a).

Slika 19 - Interno rutiranje u okviru logičke grupe

Nekoliko globalnih arhitektura za rutiranje su implementirane kod FPGA kola. One se mogu kategorisati kao opšte arhitekture tipa:

• ostrva (islands) • ćelija (cellular) • duge-linije (long-line) • vrsta (row)

Savremene FPGA-ove arhitekture za rutiranje su znatno složenije u odnosu na prethodno pomenute, ali se arhitekture opšteg tipa ipak mogu identifikovati u okviru FPGA-ova. Na slici 20 prikazana je osnovna arhitektura za rutiranje stila ostrvo. Kod ove arhitekture logičke grupe (clusters) su okružene segmentiranim horizontalnim i vertikalnim kanalima za rutiranje. Svaka logička grupa se povezuje na strukturu za rutiranje preko "blokova-za-rutiranje" (connection box), a svaki segment strukture za rutiranje se može povezati sa drugim segnentom preko "komutatorskog bloka" (switch box). Glavna karakteristika ovog tipa rutiranja je ta da se veze između logičkih grupa izvode segmentiranim rutiranjem. Ovaj tip arhitekture srećemo kod velikog broja Xilinx-ovih FPGA kola. Konkretnije, postoje segmenti velikih dužina (jedna veza se može prostirati kroz ceo čip), ali takođe, zbog efikasnosti arhitekture, postoji i lokalno rutiranje između logičkih grupa.

Page 14: Pog.20 FPGA Kola

Slika 20 - Arhitektura za rutiranje tipa ostrvo

Arhitektura za rutiranje tipa duge linije koristi drugačiji pristup. Kao što se vidi sa slike 21 u ovom slučaju logički blokovi se zaokružuju horizontalnim i vertikalnim kanalima za rutiranje, sa većim brojem veza po kanalu, ali se svaka veza prostire duž cele širine i dužine čipa. U idealnom slučaju, da bi povezali bilo koja dva logička bloka potrebna je samo jedna horizontalna i vertikalna veza. Prelaz između duge horizontalne i vertikalne linije je ostvaren koristeći interno rutiranje logičke grupe u preseku ove dve linije. Ovaj tip rutiranja je tipičan za FPGA čipove firme Altera, Actel ProAsic, i druge. Kao što se vidi sa slike 21 arhitektura za rutiranje firme Altera za potrebe lokalnog inter-blokovskog rutiranja koristi horizontalne kratke veze. Sa ciljem da se skrati vreme propagacije između logičkih blokova nekoliko Alterinih FPGA kola, novije generacije, kakva su Startix i Startix II, za potrebe rutiranja koriste segmente manjih dužina.

Slika 21 - Arhitektura za rutiranje tipa duga linija

Page 15: Pog.20 FPGA Kola

Ćelijska arhitektura za rutiranje, prikazana na slici 22, je različita u odnosu na prethodne dve. U ovom slučaju veći broj lokalnih veza postoji između logičkih blokova, a samo manji broj dugih veza egzistira između segmenata. FPGA kola koja koriste arhitekturu za rutiranje ovog tipa su Xilinx XC 6200, CLi Atmel 6000, Plessy/Pilkington ERA i druga. U suštini ova kola koriste fino-zrnaste arhitekture (dve do tri ulazne funkcije) tako da su logičke grupe (clusters) veoma jednostavne i obično sadrže po jedan logički element. Glavni nedostaci ćelijskog tipa rutiranja su:

a) kašnjenja na kombinacionim putevima su značajna kod onih kola gde se zahteva rutiranje između ne-susednih logičkih blokova.

b) CAD sredstva za projektovanje nisu tako efikasna kada se imaju u vidu problemi koji se odnose na preslikavanje (mapping) i rutiranje.

c) cena koja se mora platiti zbog povećane površine, kašnjenja, i rutiranja kod sitno-zrnastih arhitektura je značajna što čini da ova kola budu nepogodna za masovnu aplikaciju.

Slika 22 - Arhitektura sa ćelijskim rutiranjem

Konačno, arhitektura za rutiranje tipa vrsta je prikazana na slici 23. Ovu arhitekturu srećemo kod FPGA kola OTP-tipa (One-Time-Programmable), kakva su anti-osigurač FPGA kola. Kod ove arhitekture rutiranje između dve logičke grupe se ostvaruje horizontalnim sprežnim kanalima. Pored toga, kakav je slučaj kod Actel-ovih FPGA kola, postoji i vertikalno rutiranje. Tako na primer, kod Act 1 FPGA firme Actel koriste se i vertikalne veze za rutiranje izlaza logičkih blokova. U principu, arhitekture za rutiranje tipa vrsta, sa ciljem da smanje kašnjenje signala, koriste segmentirane kanale za rutiranje.

Page 16: Pog.20 FPGA Kola

Slika 23 - Arhitekture za rutiranje tipa vrsta

Specijalizovani funkcionalni blokovi Tokom vremena osnovne FPGA arhitekture, koje smo do sada analizirali, usavršavane su ugradnjom specijalizovanih programibilnih funkcionalnih blokova. Ovi blokovi, kakvi su ugrađene (embedded) memorije, brze aritmetičke jedinice, veoma brze serijske U/I veze, ugrađeni (embedded) mikroprocesori, i drugo, su implementirani pre svega zbog sve češće potrebe za ovakvim resursima kako u okviru FPGA sistema tako i na nivou samih aplikacija. Kao rezultat ovakvog razvoja, današnja FPGA kola po svojoj strukturi predstavljaju heterogenu mešavinu resursa. U tekstu koji sledi, u kratkim crtama, opisaćemo osnovne karakteristike ovih resursa. Ugrađene memorije Memorije su, bez sumnje, osnovne komponente digitalnih sistema. I pored toga što se flip-flopovi standardno koriste za gradnju memorije ipak treba istaći da su oni veoma neefikasni za kreiranje memorija različitih kapaciteta. Hronološki posmatrano, počev od XC 4000 serije kompanija Xilinx je učinila da se 4-bitni LUT može koristiti kao asinhroni 16∗1 RAM. Kod kasnijih arhitektura Xilinx je projektovao LUT-ove tako da se, kod CLB-ova sa četiri mala bloka po konfiguraciji, mogu implementirati sledeće single-port i dual-port RAM memorije:

• single-port 16∗8 RAM • single-port 32∗4 RAM

Page 17: Pog.20 FPGA Kola

• single-port 64∗2 RAM • single-port 128∗1 RAM • dual-port 16∗4 RAM • dual-port 32∗2 RAM • dual-port 64∗1 RAM

Pored ovoga svaki 4-bitni LUT se može koristiti kao 16-bitni pomerački registar. Šta više, daljim grupisanjem LUT-ova u okviru jedinstvenog CLB-a moguće je implementirati 128-bitne pomeračke registre. Nezavisno od toga što kod realizacija memorija većeg kapaciteta LUT zasnovane memorije predstavljaju bolju soluciju u odnosu na rešenja koja koriste flip-flopove kao pojedinačne komponente za gradnju memorije, ipak veliki broj kompanija kakve su Altera (FLEX 10K FPGA), Xilinx, Actel, Quicklogic, i druge, ugrađuju danas u svoja FPGA kola SRAM-ove većeg kapaciteta (od nekoliko stotina do nekoliko hiljada bitova). Ovakvi ugrađeni (embedded) RAM-ovi se nazivaju e-RAM-ovi ili blok-RAM-ovi. U zavisnosti od arhitekture FPGA kola e-RAM-ovi se mogu pozicionirati po periferiji kola, ili ravnomerno rasporediti po površini čipa, u relativnoj izolaciji ili po kolonama, kako je to prikazano na slici 24.

Slika 24 - Pogled na FPGA kolo kod koga su e-RAM-ovi raspoređeni po kolonama

Kapacitet e-RAM-ova se kreće od nekoliko hiljada do nekoliko desetina hiljada bitova. Tako na primer, kod Alterine Startex II FPGA arhitekture granularnost RAM-ova, u zavisnosti od čipa, se nalazi u opsezima od 576 kb, 4,5 kb, i 0,56 kb. Xilinx Virtex 4 kb RAM može da radi u sledećoj organizaciji 4096∗1, 2048∗2, 1024∗4, 512∗8 i 256∗16. Svaki RAM blok se može koristiti kao nezavisan ili kombinovati sa drugim blokovima kako bi se implementirali veći blokovi. Ovi blokovi se mogu upotrebiti za razne namene, kao na primer za implementaciju CAM-ova (Content Addressable Memories), dual-port RAM-ova, FIFO RAM-ova, konačnih automata, i td. I pored toga što kod savremenih FPGA-ova kapacitet RAM-a može da premaši vrednost od 1MB, glavna prednost korišćenja on-chip memorije ne ogleda se toliko u kapacitetu memorije koliko u agregatiranoj memorijskoj propusnosti (agregated memory bandwith). Naime, razuđena memorija omogućava da se veći broj paralelnih aplikacija izvršava istovremeno. Tako na primer,

Page 18: Pog.20 FPGA Kola

kod Startix II EP2S180 kola agregatirana memorijska propusnost je veća od 30 Gb/s, a postiže se korišćenjem 3414 portova pomoću kojih je moguće pristupiti 1707 RAM blokovima pri čemu svaki radi u dual-port režimu rada. Ugrađena aritmetička logika Ključna karakteristika savremenih FPGA kola je ta da ona sadrže specijalnu logiku i sprežnu mrežu za implementaciju brzih lanaca kod operacija sabiranja. U kontekstu CLB-ova, kako smo to već naglasili, svaka LC sadrži specijalnu logiku za implementaciju prenosa-kod-sabiranja (carry logic chain) što je od ključne važnosti za realizaciju brzih sabirača kod DSP aplikacija. Neki od funkcionalnih blokova, kakvi su množači, su dosta spori ako se implementiraju povezivanjem većeg broja programibilnih logičkih blokova. S obzirom da se funkcija množenja koristi kod velikog broja DSP primena, veliki broj FPGA kola ima ugrađeno specijalni hardver za množenje. Množači su obično locirani blizu RAM blokova (vidi sliku 25).

Slika 25 - Pogled na FPGA kolo kod koga su e-RAM-ovi i množači ugrađeni u kolonama

Na sličan način FPGA kola sadrže i sabirače. Standardna operacija (vidi sliku 26) koja se kod DSP aplikacija mnogo često koristi je MAC (multiply-and-accumulate). Ovom funkcijom množe se dva broja, a rezultat se sabira sa vrednošću koja se pamti u akumulatoru.

Page 19: Pog.20 FPGA Kola

Slika 26 - MAC funkcija

MAC operacije su veoma korisne za realizaciju FIR (finite impulse response) filtra. U Tabeli 2 prikazane su sumarne karakteristike osobina kola iz familije Xilinx Virtex-4 i Altera Startix II sa tačke gledišta DSP procesiranja. Tabela 2. Osobine DSP blokova kod FPGA kola iz familije Xilinx Virtex-4 i Altera Startix II

Page 20: Pog.20 FPGA Kola

Ugrađena procesorska jezgra: hard i soft Elektronika koja se ugrađuje u dizajn se može realizovati:

a) hardverski - koristeći kombinaciona i sekvencijalna logička kola kakva su logička kola tipa NAND, AND, OR, XOR, multiplekseri, registri, brojači i dr.

b) softverski - kao instrukcije koje se izvršavaju od strane mikroprocesora.

Glavni projektantski kriterijum na osnovu koga se odlučuje da li će se neka funkcija realizovati hardverski ili softverski predstavlja brzina sa kojom se ta funkcija izvršava. U odnosu na to koliko iznosi vreme odziva, razlikuje se:

1) pikosekundna ili nanosekundna logika - brzina odziva ove logike je takoreći trenutna što sugeriše da se ona mora implementirati hardverski.

2) mikrosekundna logika - odziv ove logike je prihvatljivo brzi i u zavisnosti od složenosti dizajna može se implementirati hardverski ili softverski.

3) milisekundna logika - ova logika se koristi za implementaciju interfejsa kakvi su čitanje stanja prekidača, pobudu (paljenje i gašenje) LED-ova, generisanje dugih perioda vremenskog kašnjenja koristeći brojače, i dr. Veoma često zadatke ovakvog tipa je bolje implementirati kao mikroprocesorske programe.

Činjenica da najveći broj današnjih elektronskih proizvoda (mobilni telefon, disk-plejer, digitalni foto aparat, i dr.) ima ugrađeno mikroprocesor, proizvođači FPGA kola u sve svoje novije familije čipova ugrađuju jedno ili veći broj mikroprocesorskih jezgara (microprocessor core). Sa ovakvom jednom mogućnošću, kompletan (ili skoro kompletan) sistem sa ugrađenim računarom se može implementirati jedinstvenim FPGA kolom. Prvo komercijalno FPGA kolo koje je u sebi integrisalo mikroprocesor u okviru logike je bilo Altera Excalibur. U okviru APEX-20KE logike integrisano je bilo 32-bitno RISC procesorsko jezgro tipa ARM ili MIPS. Danas Altera uglavnom nudi ARM bazirana rešenja (vidi sliku 27).

Page 21: Pog.20 FPGA Kola

Slika 27 - ARM baziran na Excalibur arhitekturi

Kao što se vidi sa slike 27 na jezgro procesora ARM su povezani namenski spoljašnji memorijski interfejs, UART interfejs, programibilni kontroler prekida i drugi resursi. Dve namenske veoma brze AHB AMBA magistrale koje postoje u sistemu omogućavaju procesoru da istovremeno pristupi dvama tipa različitih kola. Procesor komunicira sa programibilnom logikom preko sekundarne AHB ili preko dual-port RAM-a koji je preko multipleksera povvezan na obe magistrale (AHB1 i AHB2). Nešto kasnije kod FPGA-ova iz familije Virtex-II Pro i Virtex-4, kompanija Xilinx je ugradila integer PowerPC mikroprocesor. Glavna razlika između pristupa firme Xilinx i Altera je sledeća: Kod Xilinx-ovog rešenja, mikroporcesor, u okviru FPGA logike, je smešten kao jedno ostrvo (vidi sliku 28) sa izvedenim interfejsima ka on-chip SRAM-u ali bez namenskih procesorskih ili periferijskih magistrala. Ovakvo rešenje, sa jedne strane, pruža mogućnost projektantu da definiše po svojoj želji arhitekturu sistema sa ugrađenim računarom, ali sa druge strane ovakav procesor, nasuprot Excalibur rešenja ne može da obavi koristan rad bez da se izvrši konfiguracija FPGA logike.

Page 22: Pog.20 FPGA Kola

Slika 28 - Integracija procesora koristeći stil Xilinx-a

Tipovi jezgara Pojavom SoC proizvoda, ugrađena (embedded) jezgra postaju sve popularnija. Ugrađena jezgra su unapred-projektovani (predesigned) i verifikovani (preverified) gradivni blokovi koji se asembliraju sa drugim jezgrima i korisničko-definisanim blokovima u složeni čip. Ugrađena jezgra se dele na:

a) hard - fizički kompletirana i isporučena jezgra zajedno sa layout-om, b) soft - isporučuju se kao RTL koji se može sintetizovati.

U određenim situacijama jezgra su već sintetizovana do net-liste na nivou gejtova koji treba da se razmeste (placed) i ožiče (wired), tako da za takva jezgra kažemo da su firm tipa. IP jezgra Veliki broj proizvođača FPGA kola, a takođe i druge kompanije (third party vendors), nude soft i hard IP jezgra. Korišćenjem IP jezgara skraćuje se vreme potrebno za razvoj novog proizvoda s obzirom da su jezgra unapred razvijena i verifikovana rešenja. Često IP jezgra je moguće modifikovati što znači da je ostvarljivo dogrraditi ili redukovati funkcionalnost dizajna u zavisnosti od potreba. IP jezgra je takođe moguće preneti sa jednog proizvođača na drugi. No, treba istaći da IP jezgra drugih proizvođača su veoma često neoptimizirana za pojedinu FPGA tehnologiju iz razloga što nije moguće ostvariti (ispuniti) zahteve koji se odnose na brzinu rada kola i potrošnju energije, posebno nakon procesa razmeštanja (placement) i rutiranja veza.

Page 23: Pog.20 FPGA Kola

Embedded jezgra Veliki broj proizvođača programibilnih kola nudi danas embedded jezgra u svojim proizvodima (FPGA kola). U principu, embedded jezgra, u cilju ostvarivanja dobrog tajminga i minimalne potrošnje, predstavljaju optimizirana rešenja, ali zavise od tehnološkog procesa koga koristi proizvođač. I pored prednosti, koje se pre svega odnose na brzi razvoj proizvoda, upotreba embedded jezgara ima jedan ozbiljan nedostatak. Naime, korišćenje embedded jezgara vezuje projektanta da koristi programibilna kola samo jednog proizvođača. Iskustva kod korišćenja ovih jezgara pokazuju da prelazak na drugog proizvođača zahteva ulaganje velikih napora koji najčešće ne dovode do ostvarivanja očekivanog rezultata. Procesorska jezgra Procesorska jezgra su tip jezgara koja su standardno dostupna kao IP jezgra ili embedded jezgra. Kada je procesorsko jezgro embedded ono predstavlja optimizirano rešenje i karakteriše se predvidljivim tajmingom i potrošnjom energije. Komercijalno raspoloživi kros-kompajleri i simulatori se mogu koristiti za debagiranje koda pre nego što se dizajn kompletira, a programibilno kolo postane dostupno za korišćenje. Jedan tipičann primer FPGA kola sa embedded procesorom i drugim embedded jezgrima je prikazan na slici 29.

Slika 29 - FPGA sa embedded procesorskim jezgrom

Procesorska jezgra se uglavnom implementiraju kao hard- ili soft-mikroprocesori. Hard-mikroprocesorska jezgra Hard-mikroprocesorsko jezgro se implementira kao namenski, unapred definisani blok. Postoje dva pristupa za integraciju ovakvih jezgara u FPGA kola. Kod prvog pristupa, mikroprocesor se locira u traci nazvanoj Stripe koja se nalazi po strani glavne logike FPGA kola (vidi sliku 30).

Page 24: Pog.20 FPGA Kola

Slika 30 - Pogled na čip sa embedded jezgrom koje se nalazi po strani glavne logike FPGA kola

Kod ovog rešenja, sve komponente se obično nalaze na istom silicijumskoom čipu, no mmoguća su i rešenja da dizajn čine dva čipa spakovana kao multi-čip modul (MCM). Glavna logika FPGA kola može da sadrži RAM blokove, množače, i dr. Glavna prednost ovakve implementacije se sastoji u tome što je glavna FPGA logika nezavisna od ugrađenog (embedded) procesorskog jezgra, pa se kao takva može zasebno testirati. Druga prednost je ta što se na embedded mikroprocesor može dograditi veći broj dodatnih funkcija putem implementacije na Stripe-u RAM memorija i drugi specijalni periferijski ulazno-izlazni interfejsi, tj. ulazno-izlazna kola. Kod drugog pristupa, jedan ili veći broj mikroprocesorskih jezgara se ugrađuje u logiku FPGA kola (vidi sliku 31).

Slika 31 - Pogled na čip sa embedded mikroprocesorskim jezgrima lociranih unutar glavne logike

FPGA kola

Page 25: Pog.20 FPGA Kola

I u ovom slučaju u glavnu logiku FPGA kola mogu biti implementirani RAM blokovi, množači i drugi logički blokovi. Kod ovakvog rešenja, sredstva za projektovanje treba biti u stanju da uzmu u obzir prisustvo ovih blokova u FPGA logici, tj. da sagleda memoriju koja se formira od grupe embedded RAM blokova, kao i perifernih funkcija koje se formiraju od grupa programibilnih logičkih blokova opšte namene. Prednost ovakvog rešenja je veća brzina rada iz razloga što je mikoprocesor ugrađen u neposrednoj blizini glavne logike FPGA kola. Soft-mikroprocesorska jezgra Umesto da se mikroprocesor fizički ugradi u logiku FPGA čipa, moguće je grupu konfigurabilnih blokova konfigurisati tako da se ponašaju kao mikroprocesor. Ovakva rešenja nazivaju se soft-procesori. Tipični reprezenti su Xilinx-ov MicroBlaze i Alterin Nios soft procesori. Soft jezgra su jednostavnija (primitivnija) i sporija u odnosu na hard jezgra. Ipak glavna prednost ovog rešenja je ta što se jezgro implementira samo ako za to postoji potreba, implementiraju onoliko jezgara koliko je potrebno za datu aplikaciju, i što će FPGA CAD sredstvo locirati to jezgro i obaviti rutiranje gde projektant to želi. S obzirom da se soft procesor implementira u konfigurabilnu logiku, arhitektura soft procesor ase može prilagoditi aplikacionim zahtevima. DSP jezgra DSP (Digital Signal Processing) su drugi tip standardnih jezgara koja se nude kao IP jezgra ili kao embedded jezgra. U suštini, to su specijalizovani procesori koji se koriste za manipulisanje sa analognim signalima. Obično se koriste za filtriranje i kompresiju audio i video signala. Veliki broj projektanata je mišljenja da su procesori opšte namene sve brži tako da onni mogu izvršavati podjednako brzo operacije koje obavljaju specijalizovani DSP procesori. Ipak potrebe za digitalizacijom audio i video signala, filtriranjem, i kompresijom, su značajno povećane zadnjih godina. Ovaj trend je posledica masovnog korišćenja Interneta radi upload-ovanja i download-ovanja svih tipova informacija preko relativno ograničene propusnosti komunikacionih puteva. Kao rezultat, zahtevi za korišćenje DSP procesora kod aplikacija koje se odnose na umrežavanje i grafičke obrade, se povećavaju a ne smanjuju. Analogna jezgra Proizvođači FPGA kola od skoro nude i analogna jezgra. Tako na primer, PHY jezgra su analogna kola poznata kao linijski drajveri koja se koriste za pobudu mreže. S obzirom da ova jezgra sadrže veći broj specijalizovanih analognih kola ona su uglavnom dostupna kao embedded jezgra. Jedan funkcionalni blok dijagram FPGA kola koji u sebi sadrži embedded procesorsko jezgro, embedded digitalna periferalna jezgra, i embedded analogna jezgra je prikazan na slici 32.

Sliak 32 - FPGA sa embedded PHY jezgrom

Page 26: Pog.20 FPGA Kola

Specijalni ulazno-izlazni drajveri Specijalni ulazno-izlazni drajveri se takođe ugrađuju u programibilne uređaje. Tako na primer, prenos podataka po magistralama novijih generacija kod PC mašina treba da zadovolji veoma stroge zahteve u pogledu tajminga, da se linije na magistrali pobuđuju veoma brzim drajverima sa velikim fan-out-om (opteretljivost), i i da su magistrale zbog refleksije signala završene karakterističnim impedansama. Pored toga ulazno-izlazni baferi treba da generišu i prihvataju diferencijalne signale (mali je naponski prag između logičke nule i logičke jedinice). Veliki broj proizvođača nudi programibilna kola koja ispunjavaju ove specijalne zahteve. Ovakva rešenja u značajnohj meri smanjuju interfejse magistrala sa spoljnim čipovima i komponentama. Nove arhitekture U okviru logike FPGA kola razvijen je u skorije vreme veći broj novih arhitektura. Jedna takva nova arhitektura koja ima ugrađeno logički blok zasnovan na DSP konceptu je prikazana na slici 33. Ovaj tip FPGA-ova je opravdanije koristiti kod rešenja koja koriste značajan iznos signal procesiranja.

Slika 33 - DSP jezgro kod FPGA

Strukture FPGA kola Kao što smo već naglasili FPGA kola se sastoje od skupa loičkih ćelija raspoređenih u okviru kola tako da čine polje resursa za izračunavanje. Rezultujuća struktura FPGA kola ipak zavisi od proizvođača. U zavisnosti od uređenja logičkih blokova i načina povezivanja logičkih blokova u okviru FPGA kola (vidi sliku 34) FPGA kola se mogu podeliti na sledeće četiri kategorije:

1) simetrična polja (symmetrical array) 2) kola organizovana u vrste (row-based) 3) hijerarhijski organizovana kola (hierarchy-based)

Page 27: Pog.20 FPGA Kola

4) more-gejtova (sea of gates).

a) Slika 34 - Četiri osnovne FPGA strukture

Simetrična-polja FPGA kola strukture simetrična-polja sastoje se od dvo-dimenzionalnog polja logičkih blokova uokvirenih u skup vertikalnih i horizontalnih linija. Konektiranje između horizontalnih i vertikalnih linija za povezivanje ostvaruje se pomoću komutatorskih elemenata (on/off prekidača) kojji se lociraju na presecima ovih linija. Tipični primeri FPGA kola tipa simetrična-polja su ona iz serije Xilinx Virtex II i Atmel AT40K (vidi sliku 35).

Slika 35 - Uređenje tipa simetrična-polja kod a) Xilinx Virtex II i b) Atmel AT40K

Page 28: Pog.20 FPGA Kola

FPGA kola organizovana-u-vrste FPGA kola organizovana u vrste (vidi sliku 36) sastoje se od alternativno raspoređenih vrsta logičkih blokova ili makro-ćelija i kanala. Prostor između logičkih blokova se naziva kanal i koristi se za rutiranje. Kola iz familije Actel ACT3 su primeri FPGA kola organizovana u vrste. Makro-ćelije su C- i S-elementi. Rutiranje se izvodi preko horizontalnih kanala za rutiranje (vidi sliku 37). Kanali se sastoje od nekoliko pista za rutiranje (routing tracks) i dele se u segmente. Postoje i vertikalne piste (vidi sliku 37) koje mogu biti tipa ulazne, izlazne, i duge. Vertikalne piste takođe se dele na segmente. Konekcije unutar Actel ACT3 FPGA kola se ostvaruju pomoću antiprekidača (antifuse), i postoje četiri tipa konektiranja:

a) horizontalno sa vertikalnim (XF) b) vertikalno sa vertikalnim (FF) c) horizontalno sa horizontalnim (HF) d) brze-vertikalne.

Slika 36 - FPGA kola organizovana u vrste iz familije Actel ACT3

Slika 37 - Horizontalni i vertikalni resursi za rutiranje kod Actel ACT3 FPGA kola

Page 29: Pog.20 FPGA Kola

More-gejtova FPGA kola tipa more-gejtova slična su FPGA-ovima tipa simetrična polja. Naime, makro-ćelije su uređene u strukturu tipa dvodimenzionalno polje pri čemu ulaz u polje odgovara koordinati date makro-ćelije. Razliks između FPGA tipa simetrična polja i more-gejtova se sastoji u tome što kod FPGA kola more-gejtova između makro-ćelija ne postoji prostor za rutiranje. Sprežne veze su fabrikovane na vrvhu ćelija. Actel ProASIC FPGA familija implementira pristup more-gejtova (vidi sliku 38). Jezgro ProASIC se sastoji od more-gejtova nazvanih more-cigli (sea-of-tiles) Makro-ćelije su EPROM bazirane. Rutiranje je hijerarhijski organizovano u četiri nivoa. Povezivanje logičkih cigli se ostvaruje pomoću sledećih resursa:

i) lokalni resursi - omogućavaju da se izlaz cigle poveže sa ulazom jedne od osam susednih cigli (vidi sliku 38),

ii) resursi tipa duga-linija - obezbeđuju rutiranje na duža rastojanja, pri čemu se ove veze karakterišu većom opteretljivošću (fan-out-om). Dužina ovih resursa varira (može se prostirati od jedne do druge cigle, preko dve, ili četiri), kao i da se izvodi u horizontalnom i vertikalnom pravcu čime se pokriva rutiranje celog kola.

iii) resursi tipa veoma duge linije - prostiru se po celom kolu i koriste se za rutiranje veoma dugih veza sa velikom opteretljivošću.

iv) resursi tipa globalna mreža - koriste se za rutiranje dugih veza po celom kolu kao i za povezivanje sa susednim čipovima.

Slika 38 - Lokalni resursi rutiranja kod Actel ProASIC

Hijerarhijsko organizovana FPGA kola Kod hijerarhijsko organizovanih FPGA kola makro-ćelije su hijerarhijski raspoređene (razmeštene) na samom kolu. Elementi najmanje granularnosti se nalaze na najnižem nivou hijerarhije. Ovi elementi se zatim grupišu i formiraju elemente za naredni nivo. Svaki element nivoa i sastoji se od definisanog broja elemenata nivoa i-1. FPGA kola firme Altera kakva su Flex, Cyclone II, i Startix II imaju dva nivoa hijerarhije. Logičke ćelije (kod Cyclone II i Flex) i ALM kod Startix II se nalaze na najnižem nivou hijerarhije. Logički blokovi (LAB) čine drugi viši hijerarhijski nivo (vidi sliku 39). Svaki LAB sadrži određeni broj logičkih elemenata (8 kod Flex8000, 10 kod Flex6000, 16 kod Cyclone, i 8 AML-ova kod Startix II). LAB-ovi su uređeni u polje.

Page 30: Pog.20 FPGA Kola

Slika 39 - Hijerarhijsko organizovano FPGA kolo tipa Altera Startix II

Signalne konekcije ka i od FPGA kola se ostvaruju strukturama za rutiranje koje se kod kola iz familije Flex nazivaju FastTrack, a kkod kola iz familije Cyclone i Startix II MultiTrack. FastTrack i MultiTrack konekcije čini niz brzih, neprekidnih kanala vrsta i kolona koji se prostiru duž cele dužine i širine čipa. Signali između LAB-ova i ALM-ova u okviru istog LAB-a kao i oni koji se prenose do susednih LAB-ova se rutiraju preko lokalnih sprega (vidi sliku 40). Svaka vrsta LAB-a se opslužuje od namenskih interkonekcija tipa vrsta, kojom se rutiraju signali između LAB-ova koji pripadaju istoj vrsti. Interkonekcijama po koloni obavlja se rutiranje signala između vrsta kao i rutiranje signala ka/iz ulazno/izlaznih pinova čipa.

Slika 40 - LAB konekcije kod FPGA kola iz familije Altera Startix II

Page 31: Pog.20 FPGA Kola

Pregled rekonfigurabilnih FPGA baziranih računarskih sistema Paralelni procesori zasnovani na FPGA kolima prvi put su se pojavili na tržištu negde 90-tih godina prošlog veka. Od tada pa do danas učinjen je veliki napredak kako na polju tehnologije izrade FPGA kola tako i na polju kreiranja novih koncepata arhitektura. Globalno posmatrano rekonfigurabilni računarski sistemi se mogu svrstati u sledeće četiri kategorije:

1) U/I magistralno-bazirani akceleratori, 2) masivno-paralelna FPGA polja, 3) rekonfigurabilni super-računari, i 4) rekonfigurabilni logički ko-procesori.

Ulazno/izlazni magistralno orijentisani akcelerator Kod ove arhitekture (vidi sliku 41) ulazno/izlazna PCB (Printed Circuit Board - štampana ploča) sadrži nekoliko FPGA kola, sprežnu-mrežu za povezivanje FPGA kola smeštenih na samoj PCB, SRAM i DRAM lociranih na samoj PCB, veoma brzi (serijski) interfejsi prema spoljnim uređajima, i interfejs prema U/I magistrali host računara. Postoji veći broj mogućih varijacija međusobnog povezivanja FPGA kola. Ako za raspoloživi broj FPGA čipova koji se nalaze ne PCB-u postoji dovoljan broj U/I pinova na FPGA kolima tada se realizuje povezivanje tipa svaki-sa-svakim. U suprotnom, za povezivanje se koristi mrežna topologija tipa prsten kod koje se svaki FPGA čip direktno povezuje sa svojim levim i desnim susedom. Kod određenih rešenja koristi se i krozbar komutator.

Slika 41. Generička FPGA ulazno/izlazna ploča

FPGA akceleratorske kartice obično sadrže on-board bafer memoriju izvedenu kao SRAM ili DRAM. Nasuprot uskog grla kod pristupa podacima kod mikroprocesorsko hijerarhijski keš zasnovanoj memorijskoj organizaciji, FPGA procesori mogu veoma efikasno da iskoriste podatočno-obiman pristup nezavisnim memorijskim bankama. U suštini, uobičajeno je da FPGA ploče imaju ugrađeno od 5-10 SRAM banaka, čime je moguće konkurentno, u toku svakog taktnog intervala, pristupati po 64*10=640 bitova. U principu, propusnost između host procesora i ulazno/izlazne kartice karakteriše velika latentnost i mali protok podataka. Zbog toga, korišćenje on-board memorijskog podsistema obezbeđuje uslov da se izračunavanja obavljaju veoma brzo iz razloga što FPGA procesori imaju sada direktan pristup podacima koji se čuvaju u aplikaciono specifičnim memorijskim poljima. Jedan drugi način za efikasan prenos podataka se zasniva na korišćenju dvostrukog memorijskog bafera. U konkretnom rešenju, dok procesor upisuje podatke u jedan skup memorija, FPGA procesori manipilišu sa podacima iz drugog skupa memorija. Kod velikog broja slučajeva, posebno kod embedded procesora kokji koriste standardne sistemske magistrale kakve su VME, SBus, i druge, ulazno/izlazna propusnost između host-a i FPGA ploča nije dovoljno velika da zadovolji zahteve za brzinom izračunavanja koji mogu da zadovolje FPGA kola. Umesto da se podaci prenose preko sistemske magistrale oni se, sa eksternih uređaja kakvi su AD konvertori, mrežni interfejsi, i framegrabber-i, direktno dovode na ulaz FPGA

Page 32: Pog.20 FPGA Kola

kola. FPGA kolo ih sada procesira sa značajno većom brzinom. Podaci se nakon obrade vraćaju host-u ili se ponovo šalju ka mreži. Masovno paralelno FPGA polje