1 / 49

Skaitmeninių sistemų projektavimas FPGA architektūros (modulis T170M012) 201 2

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.

Download Presentation

Skaitmeninių sistemų projektavimas FPGA architektūros (modulis T170M012) 201 2

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Skaitmeninių sistemų projektavimasFPGA architektūros(modulis T170M012)2012 Kauno technologijos universitetas Elektroninių ir matavimo sistemų katedra Doc. dr. Žilvinas Nakutis

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

  3. FPGA konfigūravimo technologijos viso 48

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

  5. SRAM celių valdomi raktai Pavyzdys: dviejų loginių IR sujungimas panaudojant 3 SRAM celes, kurios valdo komutavimo matricos linijų sujungimą ir multipleksorių. viso 48

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

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

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

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

  10. Antisaugiklis viso 48

  11. Į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

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

  13. Konfigūravimo metodų santrauka viso 48

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

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

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

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

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

  19. Loginiai blokai MUX pagrindu Pavyzdys, kaip 3 įėjimų funkcija y=(a&b)|c gali būti realizuota vien tik multipleksorių pagalba. viso 48

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

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

  22. Uždavinys: LUT lentelės sintezė Sudarykite peržiūros lentelę (LUT), kuri realizuoja duotą loginį įrenginį, pvz., 3IR-NE loginį elementą. viso 48

  23. Sprendimas Teisingumo lentelė LUT struktūra viso 48

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

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

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

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

  28. Xilinx LUT-6 lentelė Spartan-6 FPGA komponentuose viso 48

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

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

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

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

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

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

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

  36. Aktyvus nuoseklus konfigūravimas viso 48

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

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

  39. Pasyvaus FPGA konfigūravimo schema Panaudojant konfigūravimo įrenginius EPCx viso 48

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

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

  42. Enhanced Configuration Devices (EPC4,EPC16,..) struktūrinė schema http://www.altera.com/literature/hb/cfg/cfg_cf52001.pdf viso 48

  43. Pasyvaus konfigūravimo schema, panaudojant PK ir jungiantįjį kabelį (ByteBlaster) viso 48

  44. Pasyvus konfigūravimas,panaudojant mikroprocesorių viso 48

  45. FPGA konfigūravimas, panaudojant JTAG sąsają viso 48

  46. Konfigūravimo ir užkrovimo realizavimas su papildoma CPLD matrica viso 48

  47. Altera programatoriai (Download Cables) ByteBlaster II (150 USD) USB Blaster (300 USD) Ethernet Blaster viso 48

  48. Altera ByteBlaster II prijungimas Šaltinis: http://www.altera.com/literature/ug/ug_bbii.pdf viso 48

  49. Altera ByteBlaster II schema Šaltinis: http://www.altera.com/literature/ug/ug_bbii.pdf viso 48

More Related