FPGA architektūra

Download Report

Transcript FPGA architektūra

FPGA architektūra
PROGRAMUOJAMOS MIKROSISTEMOS
Programuojami loginiai įrenginiai
3
 PLD - Programable Logic Device

Programuojamos loginės matricos (PLM)
Programmable Logic Array (PLA)

Programuojama matricinė logika (PML)
Programmable Array Logic (PAL)
Programuojami loginiai įrenginiai
4

Ventilių matricos (VM)
Gate Array Logic (GAL)
Programuojami loginiai įrenginiai
5
 CPLD - Complex Programmable Logic Device
Sudarytas iš keleto PLD tarpusavyje sujungtų programuojamais
sujungimais (programuojamomis jungtimis)
 FPGA - Field Programmable Gate Arrays
Lauku programuojami ventilių masyvai
CPLD
6
CPLD
8
FPGA
9
Konfiguruojami
Loginiai
Blokai
Block RAMs
Block RAMs
I/O
Blokai
RAM
Blokai
Gamintojai
10
 Pagrindiniai gamintojai:
 Xilinx: Spartan, Virtex
 Altera: Cyclone, Arria, Stratix
 Lattice Seconducterr
 Actel
 Atmel
 ...
Gamintojai
11
FPGA struktūra
12
 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 struktūra
13
FPGA. Programuojami sujungimai
14
FPGA. Programuojami sujungimai
15
FPGA. I/O Blocks
16
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
17
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
18
I/O blokai
IOB
Three-State
FF Enable
Clock
D Q
EC
SR
Three-State
Control
Set/Reset
Output
FF Enable
Direct Input
FF Enable
Registe Q D
red
EC
Input
SR
D Q
EC
SR
Output Path
Input Path
FPGA. RAM Blocks
19
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
20
Daugintuvų blokai
Multiplier
- Išdėstyti šalia RAM blokų;
- Gali sudauginti du 18 bitų skaičius;
FPGA. Multiplier
21
Daugintuvų blokai
Multiplier
- Išdėstyti šalia RAM blokų;
- Gali sudauginti du 18 bitų skaičius;
Data_A
(18 bits)
4 x 4 signed
18 x 18
Multiplier
Output
(36 bits)
8 x 8 signed
12 x 12 signed
18 x 18 signed
Data_B
(18 bits)
FPGA. DCM
22
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
23
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
24
Taktinių impulsų valdiklis
DCM (Digital Clock Manager)
Xilinx Spartan 3
FPGA. DSP
27
DSP blokai
Greiti aritmetinai blokai (daugintuvai ir sumatoriai, registrai , multipleksoriai)
FPGA. DSP
28
DSP blokai
Greiti aritmetinai blokai (daugintuvai ir sumatoriai, registrai , multipleksoriai)
FPGA. Loginiai blokai
29
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
30
 Funkcija y=(a&b)|c gali būti realizuota dviem būdais:

Multipleksorių pagalba
 Naudojant peržiūros lentelę (LUT)
FPGA. Loginių funkcijų realizavimas
31
 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.
FPGA. Loginių funkcijų realizavimas
32
 Galimos mišrios LUT-MUX realizacijos funkcijų iėjimo skaičiaus
padidinimui
CLB
Slice
LUT
MUXF6
LUT
MUXF5
Slice
LUT
LUT
MUXF5
FPGA. Loginių funkcijų realizavimas
34
Programuojami
sujungimai
FPGA. CLB (Xilinx)
35
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)
36
Konfiguruojami loginiai blokai
CLB (Configurable Logic Blocks)
Xilinx XC4000
FPGA. CLB (Xilinx)
37
Konfiguruojami loginiai blokai
CLB (Configurable Logic Blocks)
Xilinx Spartan 3
FPGA. CLB (Xilinx)
41
Konfiguruojami loginiai blokai
CLB (Configurable Logic Blocks)
Spartan-3E. CLB. Slice
42
 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)
Left-Hand SLICEM Right-Hand SLICEL
COUT
COUT
Slice X1Y1
Slice X1Y0
Switch
Matrix
SHIFTIN
Slice X0Y1
Slice X0Y0
SHIFTOUT
CIN
CIN
Fast Connects
Loginės celės sandara
43
Spartan 3A ir Spartan 3A-DSP palyginimas
Spartan-3
Spartan-DSP
Spartan-3A
Spartan-3A DSP
XC3S1400A
XC3SD1800A
XC3SD3400A
XtremeDSP DSP48A Slices
-
84
126
Dedicated Multipliers
32
DSP48As
DSP48As
Block Ram Blocks
32
84
126
Block RAM (Kb)
576
1,512
2,268
Distributed RAM (Kb)
176
260
373
FFs/LUTs
22,528
33,280
47,744
Logic Cells
25,344
37,440
53, 712
DCMs
8
8
8
Max Diff I/O Pairs
227
227
213
CS484 19x19mm (0.8mm pitch)
-
309
309
*FG676 27x27mm (1.0mm pitch)
502
519
469
Spartan serijos raida
46
Extended Spartan-3A (90nm)
Spartan-6 (45nm)
Up to 55K
Up to 150K
4-input LUT + FF
6-input LUT + 2FF
Up to 2 Mbit
Up to 5 Mbit
no
Up to 8 / Up to 3.125 Gbps
No (1.2V only)
Yes (1.2V, 1.0V)
11 mW (smallest density)
Up to 60% less!
Memory Interface
400 Mbps
DDR3 800 Mbps
Max Differential IO
640 Mbps
1050 Mbps
Up to 126 Multipliers / DSP
Up to 184 DSP48 Blocks
Memory Controllers
no
Up to 4 Hard Blocks
Clock Management
DCM Only
DCM & PLL
no
Yes, Gen 1
Device DNA Only
Device DNA & AES
Feature
Logic Cells (Kbit)
LUT Design
Block RAM (Mbit)
Transceiver Count / Speed
Voltage Scaling
Static Power (typ mW)
Multipliers/DSP
PCI Express Endpoint
Security
Spartan serijos raida
47
Spartan-3A Series &
Earlier LUT / FF Pair
Spartan-6
LUT / Dual FF
Pair
6LUT
4LUT