Académique Documents
Professionnel Documents
Culture Documents
Architectures et tendances
SE204
Jean-Luc Danger
Circuit Electronique
• Dispose d’une structure régulière de portes ou « cellules »
« Field Programmable Gate Array »
• Calculs concurrents et rapides (qq100MHz), propres au
matériel
• Circuit déjà fabriqué
Circuit Programmable
• Contient une mémoire
• Le contenu de la mémoire « bitstream » définit :
La fonction de chaque cellules
L’interconnexion entre les cellules
• Le « bitstream » n’est pas du logiciel
Ce n’est pas un fichier exécutable,
mais une description de portes ou « netlist »
Matériel Logiciel
programmes
Bloc embarqué
cellule
Temps de
développement robustesse
flexibilité sécurité
interfaçage
page 10 Télécom ParisTech Les FPGAs
Toute diffusion ou reproduction nécessite une autorisation de Télécom ParisTech
reprogrammable
À concevoir 1 fois
Comparaison multi-niveaux ASIC/FPGA
existant
ASIC
c 11 c 10 c 12 c8
logiciel Standard cell FPGA
X10 F 15
X5 F 13
c5 c 10 c4 c8
X13 F 11
X2 F9
c9 c 14 c 12 c8
X11 F7
X4 F5
c7 c 14 c4 c8
X3 F1
c 13 c6 c 12 c8
Algorithme
X9 F 14
X6 F 12
c3 c6 c4 c8
X14 F 10
X1 F8
c 15 c2 c 12 c8
X8 F6
PIXELS
CONVERTER
Synchro
9
PARALleL
SERIAL
CLIP
&
TRANSPOSTION
ROUND 16
Architecture
32 32
MEMORY
16
256x16 bits
8 CONTROL
UNIT COMMANDS SERIAL
OPERATIVE
PARALleL
PART
SERIAL
16
32 32
ROUND 16
12
DCT TERMS
PLACEMENT CONFIGURATION
SYNTHESE netlist
ROUTAGE
bitstream
Code HDL
Programmation :
Téléchargement du bitstream
Technologie dans le circuit => autonomie
Synthèse et P/R spécifique : FPGA
nombre de cellules figé par + contraintes
circuit Vitesse/Coût Altera : Quartus II
Xilinx : ISE
Microsemi (Actel) : libero
Lattice : Diamond
Virtex7 2012 28nm 2000000 LUT6 * High-K technology (réduit les courants de
fuite)
RAM
Co-proc Co-proc
2 RAM
1
In 0
In 1
In 2
LUT 4 Out entrées
In 3
In 0 In 0 In 1 In 2 In 3
In 1
In 2
SRAM
configuration
In 3 SRAM
SRAM
SRAM
SRAM
SRAM
Out
Points de configuration
Multiplexeur 2 vers 1
page 18 Télécom ParisTech
Toute diffusion ou reproduction nécessite une autorisation de Télécom ParisTech
Combien d'entrées pour la LUT ?
Si beaucoup d’entrées : mémoire énorme mais moins de LUT sur le chemin
de calcul . Quel est le meilleur compromis ?
mode normal
LUT Chain
Input Register Register Control
Chain Input Signals
Cin
Data1
Data2 4-Input Sync Load
& Row, Column
Data3 LUT & Direct Link
Clear Logic Reg
Data4 Routing
Local Routing
Register
Feedback
LUT Chain Register Chain
Output Output
LAB Carry-In
Carry-In0 Carry-In
Carry-In1 Logic
cellule
0
Data1 Two 0
2-Input
Data2 1
LUTs
Data3 (Sum)
0
Local Routing
Carry-Out
Logic
Register Chain Output
Carry- Carry-
Out0 Out1
page 21 Télécom ParisTech Les FPGAs
Toute diffusion ou reproduction nécessite une autorisation de Télécom ParisTech
XILINX Virtex5/6 : LUT6
A6
A5
A4
A3 LUT5
A2
A1
O6
2 sorties
O5
LUT5
1 Comb.
2 Logic
Reg
Adder
ALM Inputs
3
4
5
6
Adder
7 Reg
8
ALM
page 23 Télécom ParisTech Les FPGAs
Toute diffusion ou reproduction nécessite une autorisation de Télécom ParisTech
StratixII : Configurations ALM
ALM
ALM
5-LUT
5-LUT
3-LUT ALM
ALM 4-LUT ALM
4-LUT
6-
7- LUT(1)
LUT(1) 4-LUT
ALM 6-
ALM
LUT(1)
5-LUT
6-LUT
5-LUT
X0
S0 R0
Y0
Z0
3 LUT +
Carry
X0 Shared Chain
C0 Arith
Y0 3 LUT
Z0 Chain
X1
S1 R1
Y1
Z1
3 LUT +
X1
Y1 C1
Z1 3 LUT
ALM
X2
S2 R2
Y2
Z2
3 LUT +
X2
Y2 C2
3 LUT
Z2
0 R3
3 LUT +
page 25 Télécom ParisTech Les FPGAs
Toute diffusion ou reproduction nécessite une autorisation de Télécom ParisTech
Cellule à MUX : ProASIC en mode combinatoire
Chemins de mémorisation
Boîte de connection
Canaux de routage
Nombreuses possibilités
0 1 2 3 0 1 2 3 0 1 2 3
3 3 3 3 3 3
2 2 2 2 2 2
1 1 1 1 1 1
0 0 0 0 0 0
0 1 2 3 0 1 2 3 0 1 2 3
Point de configuration
Connexions niveau 0
Connexions niveau 1
Canaux de routage
Slice
LUT
x2
Canal de longueur 4
Un canal faisant toute la largeur sert pour les signaux globaux (horloge, reset,…)
cellules
mémoires
Multiplieurs
Clocks
I/Os
interfaces
Distribuée
• Utilisation des LUTs des cellules
en mode mémoire
Embarquée Embedded Array
Block
• La mémoire est un bloc 18Kbits
spécifique
• Tailles entre 512b et 512Kb
• Utilisable en
Simple / Douple Port
ROM
FIFO
Quelques Mbits dans les
dernières familles
• 17Mbits dans les Virtex7
page 39 Télécom ParisTech
Les FPGAs
Toute diffusion ou reproduction nécessite une autorisation de Télécom ParisTech
Type d'accès
Each 18K
Add
3 rA Port A 36
6 Wdata Rdata
A 36KbA
16Kx1, 8Kx2, Memor
y
2 independent read and write
True dual-port 4Kx4, 2Kx9,
ports Ad
Array
Port
36 dr
1Kx18 B B Rdata 36
Wdata B
B
144K
576K Bits Bits
Additions/soustractions
• Se font généralement en propagation de retenue par un
chemin de routage spécifique le long des cellules
Multiplications, MACs
• Blocs dédiés
Souvent 18x18 utilisables en 4 (9x9)
Accumulation
Mise en Cascade, Arrondi, troncature, saturation
• Quelques milliers dans les dernières familles
4000 dans les Virtex7
B
X
P
D
A
+/-
=
C
25x18 Multiplier ALU-like
Second Stage
25bit Pre-adder
Pattern Detector
Télécom ParisTech
43 Toute diffusion ou reproduction nécessite une autorisation de Télécom ParisTech
Exemple : ALTERA StratixIII DSP block
Basic Multiplier
Modes Cascade Modes
Optional Pipelining
Output Multiplexer
• 2 x Sum of Four
Optional Pipelining
Output Multiplexer
Besoins
• Eviter le« Skew » d'horloge
Du à la forte charge et la longueur des lignes
• Fréquence interne différente de la fréquence externe
Nécessité d'un asservissement fréquence
• Besoin de plusieurs horloges corrélées
Solutions 2 niveaux :
• Interconnexion
lignes dédiées pour les horloges : arbre d'horloge « bufferisés »
• Bloc PLL/DLL dédié à la génération :
Asservissement sur l'extérieur
Compensation du skew d'horloge
• DLL
Frequence ajustable
phase ajustable
f_out1=P/Q1 f_in
f_out2=P/Q2 f_in
DLL
Virtex Virtex
Virtex
Clock G1 t
N PFD CP/LF VCO 4 Global
Inputs Clocks
G2 t
M
Redundant N x KN
Clock G3 t
t M
E0 t
SW SW SE
8 BUFGMUX SW
8 BUFGMUX
page 50 Télécom ParisTech Les FPGAs
Toute diffusion ou reproduction nécessite une autorisation de Télécom ParisTech
Les processeurs intégrés
Processeurs
Hard :
• IBM PPC405
• XILINX VIRTEX
• (dual) ARM cortex-A9
• ALTERA ARRIA V, CYCLONE V,
• XILINX ZynQ
• ARM cortex-M3
• Smartfusion 2
• Beaucoup de processeurs Soft :
• Propriétaires
- XILINX : MicroBlaze 32 bits
- ALTERA : NIOS2 32 bits
- ACTEL Igloo , ProASIC3, Fusion : ARM7 cortex M1
• Libres. Exemples :
- 32 bits RISC :Leon (SPARC 32 bits), LM32 (lattice)
- 8 bits CISC simple : 6502
MMU CPU
I-Cache I-Cache
Array Controller Instruction Fetch and 3-Element Timers
Shadow-TLB Decode Fetch Queue PIT, FIT
Instruction-Cache Unit (4-Entry) Logic and WDT
SRAM / FIFO
Coeur FPGA
PA3
E/S
PLL/CCC
Flash
utilisateur
Securité Pompe de
Charge
Gestion ADC
Horloge
RTC, Xtal Osc.
E/S
Flash
analogiques
Cœur de Processeurs,
Communications Bus Interface DSP
Périphériques
ADPCM (u-law, PCI Target Color Space Converter NiosTM Processor
a-law)
PCI Master-Target Correlator Tensilica X-tensa
ATM Controller Processor
PCI-X Digital Modulator
CRC PalmChip Bus
CAN Bus Discrete Cosine Transform
Ethernet MAC (10/100/Gigabit) SDRAM Controller
IIC Master & Slave Fast Fourier Transform
HDLC Protocol Core DDR-SDRAM Controller
IEEE 1394 FIR Compiler
IMA Controller QDR-SDRAM Controller
PowerPC Bus IIR Filter
SONET/SDH Framer Arbiter 8237 DMA Controller
Image Processing Library
T3/E3 Framer PowerPC Bus 8255 Peripheral Interface
Master NCO
Packet Over SONET Processor 8259 Interrupt Controller
PowerPC Bus Slave Reed Solomon Encoder/Decoder
Telephony Tone Generator 8254 Timer/Counter
USB Function Controller Interleaver/Deinterleaver
Utopia Master & Slave 8051, 6502, Z80
USB Host Viterbi Decoder
POS-PHY Interface Controller …
Turbo Decoder
… …
E/S configurable
• Nombreux paramètres et standards
Mode Terminaison simple
Mode Différentiel
Synchronisation avec les horloges
Sérialisation/désérialisation
Ajustement du Slew Rate
Adaptation d'impédance
Adaptation du retard
Transceivers
• Gigabit Transceivers jusqu’à 28Gbps (Virtex7)
Accepte diverses tensions d'alimentation
Master IOLOGIC
IOSERDES P
+ IODELAY VCCO
Interconnect to FPGA fabric
PAD
LVDS
Termination
Slave IOLOGIC
IOSERDES N
+ IODELAY
Single-ended
différentiel
DQ Hard I/O
IO 1 :2
demux
Sync
Read
block
Sync
Write
Terminaisons block
programmables
Virtex5
SRAM SDRAM, DDRAM
LVCMOS (3.3v, 2.5v, HSTL (1.8v, 1.5v, SSTL (2.5v, 1.8v,
standard 1.8v, 1.5v, and 1.2v) Classes I, II, III, IV) Classes I, II)
LVDS, Bus LVDS, HSTL_I_12 DIFF_SSTL_I
(unidirectional only) DIFF_SSTL2_I_DCI
Différentiel Extended LVDS DIFF_HSTL_I_18, DIFF_SSTL18_I,
Très DIFF_HSTL_I_18_DCI DIFF_SSTL18_I_DCI
LCPECL
rapides DIFF_HSTL_I,
PCI, PCI-X
DIFF_HSTL_I_DCI GTL, GTL+
HyperTranport (LDT)
RSDS_25 (point-to- Fond de panier
point)
Technologie interne
• Volatile : Mémoire SRAM. Un "bitstream" est stocké à
l'extérieur
- On parle de configuration car la reprogrammation est possible
• Nonvolatile :
- Mémoire FLASH ou équivalent
- Antifusible
Méthode de configuration pour SRAM
• Interface spécifique
• Configuration totale/partielle
• Sécurisation du transfert
porte de transmission :
pas de limitation à Vdd-Vt
C C
c
d
page 63 Télécom ParisTech Les FPGAs
Toute diffusion ou reproduction nécessite une autorisation de Télécom ParisTech
Technologies de programmation
condensateur
N+ N+
oxyde
Technologie Triple-Oxyde
(Vgg)
Configuration Memory Vccint Vcco
Transistor Types
Thin Ox – Fast switching time, highest leakage
Interconnect Pass Gates Mid Ox – Fast signal passing, low leakage
Thick Ox – Max Voltage tolerance, lowest leakage
Stratix III
Logic Array
High-Speed Logic
Low-Power Logic
Unused Low-Power Logic
Design Timing
Entry Constraints
Synthesis
espace
Erreur SEU "Single Event Upset"
Rayon cosmique
Current
Clear
Voltage
Vss
Voltage
Time
Time
page 72 Télécom ParisTech Les FPGAs
Toute diffusion ou reproduction nécessite une autorisation de Télécom ParisTech
Parades au rayonnement cosmique
Mémoire de configuration
• Signature CRC dans le bitstream
• Mesure régulière du CRC (Xilinx) ou utilisation d'un
processeur pour mesurer la "criticalité" (Altera)
• Utilisation de technologies robustes (Actel : FLASH,
Antifusibles)
Mémoire utilisateur
• Code correcteur d'erreur ECC associé aux mémoires
embarquées
circuit
boitier
DIP (Dual In Line Package) QFP (Quad Flat Package) BGA (Ball Grid Array)
pitch=0,5mmm pitch=1mm ou moins
Technologies Low-Power
Flash
• Silicon Blue : NVCM
Mémoire NV à partir de process
CMOS à 2 transistors (
technologie Kilopass)
• ACTEL : Famille IGLOO
Flash freeze mode : mode veille
Technologies SRAM
• Altera CYCLONE V
• Xilinx ARTIX-7
GTH GTH
3.75 Gb/s
3.125 Gb/s GTP
40nm 28nm
page 83 Télécom ParisTech Les FPGAs
Toute diffusion ou reproduction nécessite une autorisation de Télécom ParisTech
ReConfiguration à la volée
Start-up Tabula
• 2D + Temps
• Reconfigurations permanentes
@1.6GHz
• 8 configurations
• Mémoires simple port
équivalente à 8 ports 200MHz
• Diminue les ressources de
routage