490 likes | 657 Views
Skaitmeninių sistemų projektavimas FPGA architektūros (modulis T170M012) 201 2. Kauno technologijos universitetas Elektroninių ir matavimo sistemų katedra Doc. dr. Žilvinas Nakutis. FPGA konfigūravimas. Kiekvienam konfigūruojamam elementui FPGA viduje reikia po 1 bitą atminties.
E N D
Skaitmeninių sistemų projektavimasFPGA architektūros(modulis T170M012)2012 Kauno technologijos universitetas Elektroninių ir matavimo sistemų katedra Doc. dr. Žilvinas Nakutis
FPGA konfigūravimas • Kiekvienam konfigūruojamam elementui FPGA viduje reikia po 1 bitą atminties. • Konfigūruojami elementai: • LUT lentelės elementai (bitai) • Komutacinės matricos (angl. routing fabrics) sujungimai (rakto įjungimas arba išjungimas) • Konfigūracija – tai binarinis failas, kurį sugeneruoja FPGA gamintojo programinė įranga. Formatas paprastai nėra atviras (nėra viešai žinomas). viso 48
FPGA konfigūravimo technologijos viso 48
EPROM programuojami raktai sujungimams komutuojamoje matricoje realizuoti • Kai sujungimas tarp linijų yra (plaukiojančioje užtūroje yra injektuota elektronų), tai: esant tranzistoriaus įėjime (input wire) “1”, tranz. uždaras ir sujungtoje linijoje (product wire) yra loginis “1”; esant tranzistoriaus įėjime “0”, tranz. atviras ir sujungta linija yra įnulinta (“0”). • Kai sujungimo tarp linijų nėra, tai tranzistorius yra užprogramuotas visada būti išjungtas ir linijoje (product wire) yra loginis “1”. viso 48
SRAM celių valdomi raktai Pavyzdys: dviejų loginių IR sujungimas panaudojant 3 SRAM celes, kurios valdo komutavimo matricos linijų sujungimą ir multipleksorių. viso 48
SRAM technologija • Dauguma FPGA yra realizuoti SRAM celių pagrindu. Tai reiškia, kad yra galimas daugkartinis perkonfigūravimas. • Privalumai: • Labai tinkama projektavimui ir prototipams • Perrašymų skaičius neribotas • Naudojamos pačios pažangiausios šios dienos technologijos, nes atminčių gamintojai skiria milžiniškas lėšas RAM tobulinimui • SRAM celės kuriamos ta pačia technologija, kaip ir likusi lusto dalis • Trūkumai: • Reikia užkrauti konfigūraciją kiekvieną kartą padavus maitinimą (tam reikia papildomos energetiškai nepriklausomos atminties arba mikroprocesoriaus). Todėl sistema nebūna tik iš vienos mikroschemos • Dideli SRAM celės gabaritai (6-12 tranzistorių) • Didelis (lyginant su kitomis technologijomis) galios suvartojimas dėl nuotėkio srovių tranzistoriuose viso 48
SRAM technologijos saugumas • Sudėtinga apsaugoti intelektinę nuosavybę (angl. Intelectual Property) IP (kalba eina ne apie programos atstatymą, bet apie galimybę klonuoti įrenginį) • Šiuolaikinės FPGA SRAM pagrindu naudoja bitų srauto kodavimą (angl. bitstream encryption). Trūkumas yra tame, kad reikalinga maža baterija, kuri leistų išlaikyti kodavimo registro reikšmę (raktą) viso 48
E2PROM/Flash technologijos(* kuo skiriasi eeprom nuo flash?) • Gali būti programuojami programatoriumi arba ISP metodu (angl. In System Programming). • Privalumai: • Energetiškai nepriklausomi • Pasiruošę darbui tik padavus maitinimą • E2PROM/Flash celė fiziškai mažesnė už SRAM celę. Todėl galimi trumpesni sujungimai • Mažesnė nuotėkio srovė, dėl mažesnio tranzistorių skaičiaus • Trūkumai: • Penki papildomi gamybos procesai lyginant su KMOP (SRAM) technologija. Tačiau bendras tranzistorių skaičius mažesnis * • Vėlinimas dviem kartais blogesnis negu SRAM • Reikalinga didesnė rašymo įtampa (on-chip charge pump) • Rašymas apie 3 kartus ilgesnis negu SRAM technologijos * Reconfigurable computing. Ed. S.Hauck, A.Dehon, Morgan Kaufmann 2008. (KTUIF D200746) viso 48
Antisaugiklių (angl. antifuse) technologija Neužprogramuoto antisaugiklio varža labai didelė. (Skirtingai neužprogramuoto saugiklio (“nenudeginto”) varža labai maža) y= !a & b viso 48
Antisaugiklis viso 48
Įrenginiai su antisaugikliais • Programuojami specialiu programatoriumi • Privalumai: • Energetiškai nepriklausomi • Todėl iš karto pasiruošę darbui po maitinimo įjungimo • Mažas energijos sunaudojimas, nes nėra tranzistorių ir nuotėkių per juos • Nereikia išorinės atminties • Sąlyginai atsparūs radiacijai (“rad hard”). Tai aktualu kariniuose ir aviacijos projektuose. Tačiau kiti lusto bistabilūs elementai (flip-flop) lieka jautrūs radiacijai. Todėl jie daromi apsaugoti “trigubu pertekliškumu”, t.y. vietoj vieno naudojami trys elementai ir taikomas mažoritarinis principas • Konfigūracija yra giliai puslaidininkio sluoksnyje, todėl didelis IP saugumas, kai išstatomas saugumo bitas • Trūkumai: • Sudėtinga gamybos technologija ir todėl paprastai atsiliekama keletu kartų nuo SRAM technologijų pagal technologinius mazgus • Nėra galimybės perprogramuoti. Todėl netinka projektavimo stadijoje viso 48
Hibridiniai Flash-SRAM įrenginiai Kai kurie gamintojai siūlo egzotiškus įrenginius, kuriuose yra Flash ir SRAM technologijų celės. Programa laikoma Flash celėje, o pradedant darbą lygiagrečiai konfigūravimo bitai kopijuojami į SRAM celes iš kurių toliau funkcionuoja FPGA matrica. viso 48
Konfigūravimo metodų santrauka viso 48
FPGA architektūros grūdėtumas Grūdėtumas – tai vieno programuojamo loginio bloko (LB) vidinės sandaros (loginių elementų skaičiaus, įvairovės ir t.t.) savybė. Čia reikia turėti omenyje, kad FPGA yra sudaryta iš daugelio LB, tarpusavyje sujungtų konfigūruojamais sujungimais. • Smulkus grūdėtumas (angl. fine-grained) • Grubus grūdėtumas (angl. coarse-grained) viso 48
Smulkus grūdėtumas • Tokia architektūra, kai kiekvienas loginis blokas gali realizuoti labai paprastą loginę funkciją (3-jų įėjimų loginis ventilis IR, ARBA arba atminties elementas, D-trigeris, D-fiksatorius) • Tokie įrenginiai efektyvūs realizuojant sujungimų logiką (angl. glue logic), vykdant sistolinius algoritmus (kai galima panaudoti daug lygiagrečių skaičiavimų). Gerai dera su tradicine loginės sintezės teorija, t.y. jos pagalba sintezuojamos efektyvios struktūros. viso 48
Grubus grūdėtumas • Loginis blokas yra sudarytas iš sąlyginai didelio skaičiaus elementų (4-ių įėjimų LUT lentelės, 4 multipleksoriai, 4 D trigeriai ir pernešimų logika) • Pradžioje vyravo smulkios architektūros įrenginiai, tačiau dabar jau didžioji dauguma FPGA komponentų realizuojami tik grubios architektūros pagrindu. viso 48
Grubus ar vidutinis grūdėtumas Paskutiniu metu rinkoje atsiranda įrenginių, kurių loginis blokas yra labai sudėtingas, pvz., FFT skaičiavimo blokas arba net bendros paskirties procesorius. Todėl kartais LUT lentelių architektūros FPGA vadinamos vidutinio grūdėtumo, paliekant teisę grubiomis vadintis aukščiau paminėtus įrenginius. viso 48
Loginiai blokai MUX ir LUT pagrindu • Egzistuoja dvi fundamentalios vidutinio grūdėtumo architektūros loginių blokų inkarnacijos: • MUX (multipleksorių) pagrindu • LUT (Look Up Table) pagrindu viso 48
Loginiai blokai MUX pagrindu Pavyzdys, kaip 3 įėjimų funkcija y=(a&b)|c gali būti realizuota vien tik multipleksorių pagalba. viso 48
Loginiai blokai LUT pagrindu • LUT (angl. Look Up Table) – peržiūros lentelė. • Veikimo principas: įėjimo signalų grupė yra naudojama kaip numeris (indeksas) išėjimo reikšmei išrinkti. viso 48
LUT lentelės realizavimas ir veikimas Plačiai naudojamas būdas yra panaudoti loginės funkcijos įėjimus (pvz., a, b, c) valdyti kaskadiškai sujungtus perdavimo ventilius, per kuriuos į išėjimą (y) perduodamos tam specialiai užkrautų SRAM celių reikšmės. Jeigu perdavimo ventilis aktyvuotas, tai jis perduoda į išėjimą jo įėjime veikiantį loginį lygį. O jeigu jis neaktyvus, tai jo išėjimas yra elektriškai atjungtas nuo tolimesnės grandinės (aukšto impedanso būsena). viso 48
Uždavinys: LUT lentelės sintezė Sudarykite peržiūros lentelę (LUT), kuri realizuoja duotą loginį įrenginį, pvz., 3IR-NE loginį elementą. viso 48
Sprendimas Teisingumo lentelė LUT struktūra viso 48
Sprendimas (tęsinys) Klausimai: • Ar kas nors pasikeistų, jeigu sukeistume vietomis signalus a, b ir c? • Ar tai galiotų bet kokiam loginiam įrenginiui? • Ar signalų a, b ir c išdėstymas yra svarbus? viso 48
Altera LUT realizavimas • k-įėjimų LUT (k-LUT) realizuoti reikia: • 2k SRAM bitų ir • 2k:1 multipleksorių. SRAM bituose laikomas konfigūracinės atminties turinys (configuration memory (CRAM) LUT-mask), o multipleksoriai išrenka kuris CRAM bitas perduodamas į išėjimą. viso 48 http://www.altera.com/literature/wp/wp-01003.pdf
MUX ar LUT geriau? • Yra nuomonių, kad multipleksorių pagrindu logines funkcijas galima realizuoti optimaliau. Tačiau jų trūkumas yra didelis vėlinimas, perduodant srautinius duomenis. • Apie 1990-uosius metus FPGA buvo plačiai naudojamos telekomunikacijų ir tinklinių technologijų sektoriuose. Abiejuose šiose taikymuose vyravo intensyvus duomenų srautų siuntinėjimas. Čia sėkmingiau buvo taikomos LUT lentelės. • Taigi, rezultatas šiai dienai yra tas, kad daugumas FPGA yra realizuojama LUT peržiūros lentelių pagrindu. viso 48
3-, 4-, 5- ar 6- įėjimų LUT lentelės • Kuo didesnis įėjimų skaičius, tuo sudėtingesnę loginę funkciją galima realizuoti LUT lentele. Tačiau kiekvienas papildomas įėjimas dvigubina reikiamą SRAM celių skaičių. • Pirmosios FPGA buvo su 3-jų iėjimų LUT lentelėmis. Vėliau buvo išdirbtos 4, 5, 6 įėjimų LUT. Konsensusas šiai dienai yra 4-ių įėjimų LUT. Šaltinis apie sintezę LUT lentelėms (IEEExplore duomenų bazėje): A tutorial on logic synthesis for lookup-table based FPGAsFrancis, R.J.;1992 IEEE/ACM International Conference on Computer-Aided Design, 1992. ICCAD-92. Digest of Technical Papers., 8-12 Nov. 1992 Page(s):40 - 47 viso 48
LUT lentelės, tai dar ne viskas Loginę celę (Xilinx terminologija, Altera naudoja loginio bloko sąvoką) sudaro: • 4-ių įėjimų LUT (ji gali funkcionuoti ir kaip 16*1 RAM arba 16 bitų postūmio registras), • Multipleksorius, • registras (gali funkcionuoti kaip bistabilus elementas (flip-flop) arba fiksatorius (latch). Supaprastinta Xilinx loginės celės schema viso 48
Tolimesnė struktūra hierarchiniame medyje – riekė (angl. slice) • Abiems loginėms celėms riekė turi bendrus: • taktinį signalą (clock) , • Taktavimo leidimo signalą(clock enable), • nustatymo/numetimo (set/reset) signalą. • Įėjimų ir išėjimų signalai yra atskirai kiekvienai LC. Signalai šiame paveikslėlyje neparodyti. viso 48
CLB ir LAB – dar aukštesnis hierarchijos lygmuo • Xilinx naudoja pavadinimą CLB (Configurable Logic Block) • Altera – LAB (Logic Array Block) CLB apima 4-ias riekes (riekių skaičius priklauso nuo FPGA šeimos). viso 48
Kam naudinga tokia hierarchinė klasifikacija • LC->Riekė(dvi LC)->CLB(keturios riekės) yra naudinga todėl, kad ji gerai dera su analogiška sujungimų hierarchija. Tokiu būdu yra: • Greiti ryšio kanalai tarp LC; • Truputi lėtesni tarp riekių viename CLB; • Lėčiausi ryšio kanalai tarp atskirų CLB. viso 48
Sisteminiai ir realūs ventiliai • ASIC sudėtingumo metrika yra ekvivalentinis ventilių skaičius. Tačiau kiekvienas gamintojas ekvivalentinį ventilį apibrėžia skirtingai. Bendras apibrėžimas galėtų būti 2-jų įėjimų NAND ventilis. Tačiau pasitaiko ir paslaptingų apibrėžimų (viena vienuoliktoji minimalios logikos reikalingos realizuoti vieno bito pilną sumatorių ) • Atsiradus FPGA kilo klausimai tokie kaip šis: Jeigu yra 500,000 ekvivalentinių ventilių ASIC projektas, tai ar jis tilptų į konkrečią FPGA? 4-ių įėjimų LUT lentelė gali realizuoti nuo 1 iki 20 2-jų įėjimų loginių ventilių. • Nuo 1990-ųjų FPGA gamintojai naudoja sisteminio ventilio sąvoką. Taip buvo siekiama įvesti bendrą metriką ASIC ir FPGA technologijoms. Deja, konkretų apibrėžimą sunku pateikti. viso 48
FPGA sensta • Laikoma, kad 1-eri FPGA metai atitinka 15 žmogaus metų. • Kai konkreti FPGA rinkoje egzistuoja jau 2 metus (ekvivalentiška 30 žmogaus metų), galima laikyti, kad tai jau gerai išdirbtas produktas, pasiekęs savo galimybių piką. 4-erių metų FPGA jau galima laikyti moraliai senstelėjusia. viso 48
Altera FPGA konfigūravimo schemos • Schemos: • Aktyvi – konfigūruojama FPGA pati generuoja valdymo ir sinchronizavimo signalus (naudojami nuoseklūs konfigūravimo įrenginiai EPCSx) • Pasyvi – naudojamas Altera konfigūravimo įrenginys (naudojami sudėtingesni konfigūravimo įrenginiai EPCx), mikroprocesorius, kuris valdo konfigūravimo procesą, PK prijungtas užkrovimo kabeliu. Konfigūravimo įrenginys arba mikroprocesorius siunčia konfigūravimo duomenis iš laikmenos (konfigūravimo įrenginio, RAM, kitos atminties) į FPGA • JTAG – naudojama JTAG sąsaja • Režimai: • Nuoseklus – konfigūravimo duomenys perduodami nuosekliai • Lygiagretus – lygiagrečiai (8 arba 16 bitų magistrale) Šaltinis: http://www.altera.com/literature/hb/cyc/cyc_c51013.pdf viso 48
Aktyvus nuoseklus konfigūravimas viso 48
Altera nuoseklių konfigūravimo (ang. serial configuration device) įrenginių pavyzdžiai Kokius parametrus matome? Programos dekompresavimą palaiko pačios FPGA matricos (programa atmintyje laikoma archyvuotame pavidale (kompresuota)) Savybės: • keturių linijų sąsaja, • maži korpusai. viso 48
Nuoseklaus konfigūravimo įrenginio “in-system” programavimas • Išorinis programatorius ByteBlaster pirma užprogramuoja konfigūravimo įrenginį (flash). Tuo metu FPGA blokuojama • Baigus flash atminties programavimą, FPGA konfigūruojama naudojant aktyviąją schemą. viso 48
Pasyvaus FPGA konfigūravimo schema Panaudojant konfigūravimo įrenginius EPCx viso 48
Konfigūravimo fazės pasyviame režime • Reset fazė • Konfigūravimo fazė • Inicializavimo fazė (inicializuojami vidinės logikos ir I/O registrai bei aktyvuojami I/O prievadai) • Vartotojo darbo režimas viso 48
Enhanced Configuration Devices (EPC4,EPC16,..) funkcijos • Altera ECD įrenginiai – tai monolitiniai, didelės greitaveikos įrenginiai, skirti labai didelio tankio FPGA konfigūravimui. • Sudaryti iš dviejų blokų: konfigūravimo valdiklio ir flash atminties. • Flash atmintyje saugoma vieno arba keleto FPGA konfigūracija. • Nepanaudota Flash atmintis gali būti skirta procesoriaus programos arba duomenų saugojimui. Priėjimas prie šių duomenų galimas išorinę flash magistralę, kai baigiama FPGA konfigūracija. viso 48
Enhanced Configuration Devices (EPC4,EPC16,..) struktūrinė schema http://www.altera.com/literature/hb/cfg/cfg_cf52001.pdf viso 48
Pasyvaus konfigūravimo schema, panaudojant PK ir jungiantįjį kabelį (ByteBlaster) viso 48
Konfigūravimo ir užkrovimo realizavimas su papildoma CPLD matrica viso 48
Altera programatoriai (Download Cables) ByteBlaster II (150 USD) USB Blaster (300 USD) Ethernet Blaster viso 48
Altera ByteBlaster II prijungimas Šaltinis: http://www.altera.com/literature/ug/ug_bbii.pdf viso 48
Altera ByteBlaster II schema Šaltinis: http://www.altera.com/literature/ug/ug_bbii.pdf viso 48