380 likes | 584 Views
FPGA architektūra. Programuojamos mikrosistemos. Programuojami loginiai įrenginiai. PLD - Programable Logic Device. Programuojamos loginės matricos (PLM) Programmable Logic Array (PLA) Programuojama matricinė logika (PML) Programmable Array Logic (PAL). Programuojami loginiai įrenginiai.
E N D
FPGA architektūra Programuojamos mikrosistemos
Programuojami loginiai įrenginiai • PLD - Programable Logic Device • Programuojamos loginės matricos (PLM) • Programmable Logic Array (PLA) • Programuojama matricinė logika (PML) • Programmable Array Logic (PAL)
Programuojami loginiai įrenginiai • Ventilių matricos (VM) • Gate Array Logic (GAL)
Programuojami loginiai įrenginiai • CPLD - Complex Programmable Logic Device Sudarytas iš keleto PLD tarpusavyje sujungtų programuojamais sujungimais (programuojamomis jungtimis) • FPGA - Field Programmable Gate Arrays Lauku programuojami ventilių masyvai
Block RAMs Block RAMs FPGA Konfiguruojami Loginiai Blokai I/O Blokai RAM Blokai
Gamintojai • Pagrindiniai gamintojai: • Xilinx: Spartan, Virtex • Altera: Cyclone, Arria, Stratix • Lattice Seconducterr • Actel • Atmel • ...
FPGA struktūra • Programuojami sujungimai • Konfiguruojami loginiai blokai (CLB) • Komutacinė matrica • Loginės celės (slice) • SLICEM • LUT • Memory • SR16 • SLISEL • LUT • I/O blokai (I/O Blocks) • Atminties blokai (RAM Blocks) • Daugintuvų blokai (Multipiers) • Sinchro valdiklio blokas (DCM) • Kita • DSP blokai
FPGA. I/O Blocks I/O blokai IOB • Jungia vidinius loginius grandynus su “išoriniu pasauliu”; • Duomenys gali būti siunčiami viena ar/ir dvejomis kryptimis ; • Gali būti įjungiama aukšto impedanso būsena; • Įėjimo siganali gai būti vėlinami; • Palaikomi įvairus duomenų perdavimo standartai.
FPGA. I/O Blocks I/O blokai IOB • Jungia vidinius loginius grandynus su “išoriniu pasauliu”; • Duomenys gali būti siunčiami viana ar/ir dvejomis kryptimis ; • Gali būti įjungiama aukšto impedanso būsena; • Įėjimo siganali gai būti vėlinami; • Palaikomi įvairus duomenų perdavimo standartai.
FPGA. I/O Blocks I/O blokai IOB Q D Three-State EC FF Enable Three-StateControl Clock SR Set/Reset Q D Output EC FF Enable Output Path SR Direct Input FF Enable Input Path Q D Registered Input EC SR
FPGA. RAM Blocks RAM blokai BRAM (Block RAM) • Matricoje gali būti iki kelių dešimčių atminties blokų (Spartan 3E yra 20 RAM blokų); • Kiekvienas atminties bloko talpa gali saugoti iki 18 kBitų duomenų (Spartan 3E);
FPGA. Multiplier Daugintuvų blokai Multiplier • Išdėstyti šalia RAM blokų; • Gali sudauginti du 18 bitų skaičius;
FPGA. Multiplier Daugintuvų blokai Multiplier • Išdėstyti šalia RAM blokų; • Gali sudauginti du 18 bitų skaičius; 18 x 18 Multiplier Data_A (18 bits) Output (36 bits) Data_B (18 bits)
FPGA. DCM Taktinių impulsų valdiklis DCM (Digital Clock Manager) • TIV sudedmosios dalys: • Fiksuoto vėlinimo grandynai(DLL - Delay-Locked Loop) • Skaitmeniniai dažnio sintezatoriai(DFS - Digital Frequency Synthesizer) • Skaitmeninai fazės sukikliai(DPS - Digital Phase Shifter) • Fiksuotos fazės grandynai(PLL - Phase-Locked Loop)
FPGA. DCM Taktinių impulsų valdiklis DCM (Digital Clock Manager) • Atliekamos funkcijos: • - generuoja reikiamo dažnio ir fazės taktinius impulsus. Atraminiu gali būti naudojamas išorinių generatorių arba kitų DCM signalus; • - naudojami sveikų skaičių daugikliai/ dalikliai ( Pvz., 1.8x -> 9/5); • - fazės sukimas; • - frontų virpėjimų mažinimas.
FPGA. DCM Taktinių impulsų valdiklis DCM (Digital Clock Manager) Xilinx Spartan 3
FPGA. DSP DSP blokai Greiti aritmetinai blokai (daugintuvai ir sumatoriai, registrai , multipleksoriai)
FPGA. DSP DSP blokai Greiti aritmetinai blokai (daugintuvai ir sumatoriai, registrai , multipleksoriai)
FPGA. Loginiai blokai Loginės funkcijos realizuojamos loginiuose blokuose (Altera-LC, Xilinx – CLB). Dažniausiai naudijami 2, 3 ar 4 įėjimų (bitų) loginiai blokai, kurie gali būti realizuoti teisingumo lentelių (LUT) arba multipleksorių (MUX) pagrindu. Sudėtingos funkcijos realizuojamos skaidant jas į mažesnes ir apjungiant programuojamais sujungimais.
FPGA. Loginių funkcijų realizavimas • Funkcija y=(a&b)|c gali būti realizuota dviem būdais: • Multipleksorių pagalba Naudojant peržiūros lentelę (LUT)
FPGA. Loginių funkcijų realizavimas • MUX – loginės funkcijos realizuojamos optimaliau, tačiau jų yra didelis vėlinimas, perduodant srautinius duomenis. • LUT – RAM tipo atmintis, kurios vėlinimas neprikauso nuo realizuojamos funkcijos. Greitesnė nei MUX.
CLB Slice MUXF6 MUXF5 Slice MUXF5 LUT LUT LUT LUT FPGA. Loginių funkcijų realizavimas • Galimos mišrios LUT-MUX realizacijos funkcijų iėjimo skaičiaus padidinimui
FPGA. Loginių funkcijų realizavimas Programuojami sujungimai
FPGA. CLB (Xilinx) Konfiguruojami loginiai blokai CLB (Configurable Logic Blocks) • KLB gali sudaryti daugiau kaip 500 tūkst. ventilių; • Kristale daugiau kaip 1000 KLB; • Kiekvieną KLB sudaro 2-4 loginės celės, kurias savo ruožtu sudaro loginis grandynas, pernešimo logika, multipleksoriai ir flip-flop trigeriai. Atliekamos funkcijos: - loginės operacijos; - signalo užlaikymo (flip-flop); - postumio registro; - paskirstytos atminties;
FPGA. CLB (Xilinx) Konfiguruojami loginiai blokai CLB (Configurable Logic Blocks) Xilinx XC4000
FPGA. CLB (Xilinx) Konfiguruojami loginiai blokai CLB (Configurable Logic Blocks) Xilinx Spartan 3
FPGA. CLB (Xilinx) Konfiguruojami loginiai blokai CLB (Configurable Logic Blocks)
Spartan-3E. CLB. Slice • Spartan™-3 kristale yra keturios loginės celės (slice) • Celės grupuojamos poromis: • SLICEM (Memory) • LUT • Loginės funkcijos • Paskirstytoji atmintis • Postūmio registras SRL16 • Multipeksoriai • Registrai (užlaikymo, flip-flop) • SLICEL (Logic) • LUT • Loginės funkcijos • Multipleksoriai • Registrai (užlaikymo, flip-flop) Right-Hand SLICEL Left-Hand SLICEM COUT COUT Switch Matrix Slice X1Y1 Slice X1Y0 SHIFTIN Slice X0Y1 Slice X0Y0 Fast Connects CIN CIN SHIFTOUT
Spartan serijos raida Spartan-6 LUT / Dual FF Pair Spartan-3A Series & Earlier LUT / FF Pair 6LUT 4LUT