Većina FPGA ureñaja koristi SRAM kako bi uskladištio konfiguracione podatke. Pošto je SRAM konfiguracija koja zavisi od prisustva napona, podaci konfiguracija treba da budu skinuti u SRAM po uključenju napona. Ove konfiguracije mogu takoñe biti automatski učitane iz memorije koja ne zavisi od prisustva napona kao što su PROM, SPI Flash, ili eksterni procesorski čip. Mikroprocesori, mikrokontroleri i digitalni procesori signala mogu takoñe da skinu konfiguracione podatke u SRAM FPGA-a. Pored ovih metoda, konfiguracija takoñe može da bude skinuta preko najpopularnijeg JTAG interfejsa, USB interfejsa, itd.
Konfiguracija FPGA sistema može da bude izvrešena ili postavljajući FPGA u master režim ili u slave režim. U master režimu, FPGA generiše konfiguracioni časovnik i kontroliše konfiguraciju podataka. U ovom režimu FPGA uopšteno skida konfiguracioni niz bitova iz memorija kao što su SPI, Flash, i PROM. Kada se koristi SPI Flash, FPGA deluje kao SPI master i konfiguracija se preuzima iz SPI Flash&a, dok postoji slučaj kada se konfiguracija skida iz PROM&a. Svi ovi slučajevi su prikazani na Slici 1.
Većina FPGA sistema ima opciju 8/16/32-bitne selekcije kada su konfiguracioni podaci poslati paralelno. Ovaj metod je dat na Slici 4 i to je najbrži režim za učitavanje konfiguracionih podataka.
Slika 4. FPGA konfiguracija u slave režimu – paralelni režim
JTAG interfejs je 4/ 5 pinski serijski interfejs. Pet pinova su TDI (Test Data In), TDO (Test Data Out), TCK (Test Clock), TMS (Test Mode Select) i TRST (Test Reset). TRST pin je opcioni. JTAG je obično koristi za hardversko debagovanje i sken testiranje granica. Ovaj interfejs takoñe može da bude korišćen za konfiguraciono programiranje. Slika 5 pokazuje konfiguraciono signalno mapiranje korišćenjem JTAG interfejsa.
Slika 5. FPGA konfiguracija u slave režimu – JTAG režim
USB interfejs velike brzine može da bude integrisan u rešenje koje se zasniva na FPGA tehnologiji na sledeće načine:
- USB protokol se slaže intelektualno vlasništvo (IP) sa eksternim primopredajnikom: U ovoj metodi, SIE IP je implementovan sa FPGA sistemom ili ASIC&om i korišćen zajedno sa eksternim primopredajnikom. Ovaj metod nudi prednost koju hardver zahteva, a koja je minimalna. Meñutim, razvoj USB Stack IP&a će potrošiti dragoceno vreme kao i inženjerske resurse. S druge strane, korišćenje IP-a treće stranke može da košta. Implemantacija protokola višeg nivoa i funkcija aplikacije takoñe uzima značajnu količinu FPGA resursa.
- USB Bridge IC sa integrisanim SIE i primopredajnikom: Ova tehnika spaja eksterni serijski interfejs, baš kao i primopredajnik na FPGA. Menadžment protokola signalnog nivoa ne može više da bude upravljan sa FPGA sistemom. Ovde postoje neke uštede u smislu FPGA resursa. Meñutim, implemantacija USB protokola višeg nivoa se još uvek radi pomoću FPGA tehnologije. U ovom slučaju, odluka treba da se donese posle analize troškova zahtevanog eksternog hardvera u poreñenju sa količinom FPGA resursa koji bi bili sačuvani.
- Kontroler + FPGA: Ovaj metod povezuje FPGA ili ASIC na inteligentan USB kontroler koji bi trebao da se brine o svim nivoima menadžmenta USB protokola. Kontroleri mogu da ponude fleksibilnost konfigurisanog broja krajnjih tačaka, FIFO veličinu i mogu čak da sadrže mikrokontroler koji upravlja menadžmentom visokog nivoa USB protokola. Takvi periferni kontroleri takoñe poseduju sposobnost da upravljaju nekim funkcijama na nivou aplikacije, tako oslobañajući FPGA ili ASIC od potrebe da ih izvrše.
Mnogi USB kontroleri koji su dostupni na tržištu sadrže programabilni CPU na sebi koji može da izvršava neke funkcije na nivou aplikacije i pored toga što može da implementuje menadžment nivoa USB protokola. Sa ciljem da se učita konfiguracioni paket bitova u FPGA, USB kontroler će morati da generiše neophodne konfiguracione signale. Postoji višestruki metodi konfiguracije koji su u stanju da programiraju svaki FPGA ureñaj i svaki od njih može da bude izabran od strane USB kontrolera kako bi se učitao konfiguracioni tok bitova.
U slučaju aplikacija gde ljudska intervencija nije uvek pogodna (na primer, sateliti i podmornice), ovaj metod rekonfiguracije će se pokazati korisnim pošto ne zahteva inženjera na terenu da rešava dati problem. Za napredne aplikacje zasnovane na FPGA tehnologiji zahteva se USB veza velike brzine i samo konfigurisanje FPGA sistema preko USB-a eliminiše potrebu za posvećenim konfiguracionim čipom (na primer, PROM ili procesor) za FPGA.
Po uključivanju ili prijemu komandi iz USB domaćina, USB kontroler bi trebao da inicijalizira samog sebe u stanje u kojem on čeka paket bitova da dođe od domaćina kroz endpoint podataka. Po prijemu toka bitova sa ispravnim potpisom, USB kontroler će zatim da nastavi da restartuje FPGA i generiše konfiguracioni talasno oblik kako bi ga učitao sa paketom bitova. Jednom kada je konfiguracija uspela, USB kontroler bi trebao da se vrati na režim podataka poznat kao „cevovod“. Konfiguracija FPGA sistema koja radi preko USB kontrolera je data na Slici 6.
Danas postoje čipovi USB kontrolera velike brzine koji su u stanju da izvrše više zadataka koji se zahtevaju od njih sa ciljem da bi se konfigurisao FPGA preko USB-a. Taj čip sadrži GPIF kontrolerski blok koji može da generiše talasnu formu koja spaja kontroler sa eksternim ACIS-om, mikrokontrolerima ili FPGA ureñajima. Komande prodavca su poslate iz središta da inicijalizuju GPIF kontroler bilo da su firmware nadogradnje potrebne ili ne kada se uređaj napaja. Jednom kada kontroler uñe u konfiguracioni režim i GPIF kontroler je inicijalizovan, domaćin može da počne da šalje konfiguracioni tok bitova kroz OUT endpoit. Kada je konfiguracija uspela, domaćin može da pošalje drugi USB komandu kako bi se kontroler vratio u prenosni režim.
Dopuštajući reprogramiranje preko USB-a, postojeći FPGA sistemi mogu da umanje cenu sistema tako što eliminišu potrebu za dodatnim programiranjem i konfigurisanjem FPGA uređaja.