Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Mickal Dardaillon
M2RTS
16/11/2011
Introduction aux FPGA
Introduction
Hirarchie
Circuits Logiques
Dfinitions
I CPU : Computer Processing Unit
I DSP : Digital Signal Processor
I CPLD : Complex Programmable Logic Device
I FPGA : Field Programmable Gate Array
I ASIC : Application Specific Integrated Circuit
Introduction aux FPGA
Introduction
ASIC FPGA
I Dveloppement long I Dveloppement rapide
I Cot de fabrication (en I Cot lunit (en
augmentation) diminution)
I Full custom : Performances I Contraint par la technologie
maximales du FPGA
I Fabrication grande srie I Prototypage rapide
Introduction aux FPGA
Introduction
Sommaire
Introduction
Rappels sur les circuits intgrs
Structure matrielle
Structure gnrale
Cellules lmentaires
Composants matriels
Composants logiciels
Les constructeurs
Programmation
Flot de conception
Synthse
Placement / Routage
Tests
Recherche sur les FPGA Lyon
Sources
Introduction aux FPGA
Rappels sur les circuits intgrs
Sommaire
Introduction
Rappels sur les circuits intgrs
Structure matrielle
Structure gnrale
Cellules lmentaires
Composants matriels
Composants logiciels
Les constructeurs
Programmation
Flot de conception
Synthse
Placement / Routage
Tests
Recherche sur les FPGA Lyon
Sources
Introduction aux FPGA
Rappels sur les circuits intgrs
Le transistor MOS
Oxyde Drain
Grille Canal
Semiconducteur
Mtal Source
Introduction aux FPGA
Rappels sur les circuits intgrs
Technologie CMOS
Portes lmentaires
Amplificateur : Inverseur :
x F x F x F x F
0 0 0 1
F =x 1 1 F =x 1 0
ET : NON ET :
x y F x y F
x
F 0 0 0 x F 0 0 1
y 0 1 0 y 0 1 1
F =x y 1 0 0 F =x y 1 0 1
1 1 1 1 1 0
Introduction aux FPGA
Rappels sur les circuits intgrs
Logique squentielle
Bascule RS
R
Q S R Q Q
0 1 0 1
1 1 interdit interdit
Q
1 0 1 0
S 0 0 Qn1 Qn1
Bascule RS
11
00
00
11 Valeur
Donne
1
0
Introduction aux FPGA
Structure matrielle
Sommaire
Introduction
Rappels sur les circuits intgrs
Structure matrielle
Structure gnrale
Cellules lmentaires
Composants matriels
Composants logiciels
Les constructeurs
Programmation
Flot de conception
Synthse
Placement / Routage
Tests
Recherche sur les FPGA Lyon
Sources
Introduction aux FPGA
Structure matrielle
Structure gnrale
Ressources globales
bloc de configuration
entre/sortie programmable
logique programmable
routage programmable
+ mmoire de configuration
Introduction aux FPGA
Structure matrielle
Structure gnrale
Gnration dhorloge
plots dhorloge
CLK CLK0
CLK90
CLKFB CLK180
CLK270
DCM
CLKx2
CLK180x2
signal CLKDIV
interne
CTRL
STATUS
BUF
DCM
vers distribution par zone
Introduction aux FPGA
Structure matrielle
Structure gnrale
Entres / Sorties
Il existe plusieurs niveaux de tensions dentre / sortie, qui sont
prendre en compte pour :
I La conception de la carte (compatibilit entre composants)
I Les contraintes de routage (technologie utiliser sur I/O)
V in V out
porte
x x x
1V 1.0 V
0.8 V 0.8 V 0.8 V
0 0.4 V 0 0.5 V 0 0.4 V 0 0.4 V
0 0 0 0
0V 0.0 V 0.0 V 0.0 V 0.0 V 0.0 V 0.0 V 0.0 V 0.0 V
Composants logiques
Chaque constructeur dfinit sa propre cellule de base, qui varie
selon les familles de FPGA.
Les cellules lmentaires :
I Portes logiques configurables : fonctions de base (AND, OR...)
I Registres : mmoire et synchronisme
0*1/1
? B
!"#$%&'(
)*+
@C
,-. F0*1
34#'567'#8( @)A
0*1/2
9$:(8944;( DE
<=>#8
? B
!"#$%&'(
)*+
@C
,/. 10*1
@)A
DE
!()*+,-+.+/(012(3('4+4(5)$50+"3+5+6(2(78+9($:'8;<+!=>.+/2(?'
!"#$%&'#()*+%,-!'./$01%/23"#+03+*20%.03/40%3/(%.0%35($#10201%36/$$#37
Introduction aux FPGA In addition to the adaptive LUT-based resources, each ALM contains four
Structure matrielle programmable registers, two dedicated full adders, a carry chain, a shared arithmetic
chain, and a register chain. Through these dedicated resources, an ALM can efficiently
Cellules lmentaires implement various arithmetic functions and shift registers. Each ALM drives all types
of interconnects: local, row, column, carry chain, shared arithmetic chain, register
chain, and direct link. Figure 15 shows a high-level block diagram of the Stratix V
ALM.
Altera Stratix 5 : ALM (Adaptative Logic Module)
Figure 15. High-Level Block Diagram of the Stratix V ALM
shared_arith_in carry_in reg_chain_in
datab
To general or
local routing
D Q
To general or
reg1 local routing
To general or
local routing
datac D Q
datad adder1 To general or
reg2 local routing
datae1 6-Input LUT
dataf1
D Q
Combinational/Memory ALUT1 To general or
reg3 local routing
To general or
shared_arith_out carry_out local routing
reg_chain_out
Introduction aux FPGA
Structure matrielle
Cellules lmentaires
LUT-3 Equivalent D-Flip-Flop with Clear or Set Enable D-Flip-Flop with Clear or Set
X1 Data Y Data Y
X2 LUT-3 Y CLK D-FF CLK D-FF
X3 CLR
Enable
CLR
Composants logiques
Chaque constructeur dfinit sa propre cellule de base, qui varie
selon les familles de FPGA.
Les cellules lmentaires :
I Portes logiques configurables : fonctions de base (AND, OR...)
I Registres : mmoire et synchronisme
+
A X P
+/ 25 x 18
Multiplier
D
Pre-adder =
Pattern Detector
C
UG479_c1_21_032111
CASCADEOUTA CASCADEOUTB
CASCADEINA CASCADEINB
Introduction aux FPGA
Structure matrielle
Composants matriels
ADC
Chapter 1: Introduction and Quick Start
The XADC also includes a number of on-chip sensors that support measurement of the
Introduction aux FPGA
Structure matrielle
Composants matriels
Composants logiques
Chaque constructeur dfinit sa propre cellule de base, qui varie
selon les familles de FPGA.
Les cellules lmentaires :
I Portes logiques configurables : fonctions de base (AND, OR...)
I Registres : mmoire et synchronisme
Instruction-side Data-side
bus interface bus interface
Memory Management Unit (MMU)
D-Cache
I-Cache
IXCL_M DXCL_M
Program ALU
IXCL_S Counter DXCL_S
Special Shift
Purpose
Registers Barrel Shift M_AXI_DP
Branch Multiplier
M_AXI_IP Target DPLB
Cache Divider
DLMB
IPLB FPU
Bus Bus
IF IF M0_AXIS..
Instruction
ILMB M15_AXIS
Buffer
Instruction S0_AXIS..
Decode S15_AXIS
Register File MFSL 0..15 or
32 X 32b DWFSL 0..15
SFSL 0..15 or
Optional MicroBlaze feature DRFSL 0..15
Sommaire
Introduction
Rappels sur les circuits intgrs
Structure matrielle
Structure gnrale
Cellules lmentaires
Composants matriels
Composants logiciels
Les constructeurs
Programmation
Flot de conception
Synthse
Placement / Routage
Tests
Recherche sur les FPGA Lyon
Sources
Introduction aux FPGA
Les constructeurs
Les constructeurs
Technologie
SRAM
I Xilinx
<="3>27?"3&0)@* I Altera
6"3.78-9"&:+3,-#;&')1*
I Lattice
2/,,"3-&4)5* Flash
I Actel
I QuickLogic
+#,-./&'0)1*
Introduction aux FPGA
Les constructeurs
Familles
Xilinx Virtex 7
I 28nm Process
I 6,8 Milliards de transistors
(intel core i7 : 995 Millions)
Introduction aux FPGA
Les constructeurs
SmartFusion Customizable System-on-Chip (cSoC)
PLL OSC RC
+ JTAG NVIC SysTick
S D I
SPI 1 APB APB SPI 2
10/100
I2C 1 IAP PDMA APB EMC
EMAC Timer2 I2C 2
SCB
Analog Compute
Temp. Volt Mon.
Mon. (ABPS) Engine
Curr. DAC
Comparator ADC (SDD)
Mon.
Sample Sequencing
Engine VersaTiles
............
............
........
....
SCB
Temp. Volt Mon. DAC
Mon. (ABPS) ADC (SDD)
Post Processing
Engine
Curr.
Mon.
Comparator SRAM SRAM SRAM ........ SRAM SRAM SRAM
Introduction aux FPGA
Programmation
Sommaire
Introduction
Rappels sur les circuits intgrs
Structure matrielle
Structure gnrale
Cellules lmentaires
Composants matriels
Composants logiciels
Les constructeurs
Programmation
Flot de conception
Synthse
Placement / Routage
Tests
Recherche sur les FPGA Lyon
Sources
Introduction aux FPGA
Programmation
Flot de conception
entity RC5_core is
Functional simulation
port(
clock, reset, encr_decr: in std_logic;
data_input: in std_logic_vector(31 downto 0);
data_output: out std_logic_vector(31 downto 0);
out_full: in std_logic;
key_input: in std_logic_vector(31 downto 0);
key_read: out std_logic;
);
end AES_core;
Synthesis
Post-synthesis simulation
Introduction aux FPGA
Programmation
Implementation
Timing simulation
Configuration
On chip testing
Introduction aux FPGA
Programmation
Flot de conception
Environnement de dveloppement
Synthse
I Actel Libero
I Altera Quartus II
I Synopsys Synplify
I Xilinx ISE
I ...
Simulation
I ModelSim
I ...
Introduction aux FPGA
Programmation
Synthse
Translation
Traduction
Synthesis
Translation
Logic
Synthse Synthesis
Netlist
signal A1:STD_LOGIC;
signal B1:STD_LOGIC;
signal Y1:STD_LOGIC;
signal MUX_0, MUX_1, MUX_2, MUX_3: STD_LOGIC;
begin
A1<=A when (NEG_A='0') else
not A;
B1<=B when (NEG_B='0') else
not B;
Y<=Y1 when (NEG_Y='0') else
not Y1;
end MLU_DATAFLOW;
Mapping
Mapping
LUT0
LUT4
LUT1
FF1
LUT5
LUT2
FF2
LUT3
Placement/Routage
FPGA
Programmable Connections
Introduction aux FPGA
Programmation
Tests
in out
D Q D Q
clk
tCritical = tP FF + tP logic + tS FF
Rerunning Simulation
Introduction aux FPGA
Programmation
Tests Figure 8-8: Operation Status
When the Program operation completes, a large blue message appears showing that
programming was successful, as shown in the following figure. This message
Programmation disappears after a few seconds.
X-Ref Target - Figure 8-9
Introduction aux FPGA
Recherche sur les FPGA Lyon
Sommaire
Introduction
Rappels sur les circuits intgrs
Structure matrielle
Structure gnrale
Cellules lmentaires
Composants matriels
Composants logiciels
Les constructeurs
Programmation
Flot de conception
Synthse
Placement / Routage
Tests
Recherche sur les FPGA Lyon
Sources
Introduction aux FPGA
Recherche sur les FPGA Lyon
Cryptographie
I Laboratoire CITI / INSA
I Dveloppement/exprimentations de nouvelles architectures
pour la cryptographie
Introduction aux FPGA
Recherche sur les FPGA Lyon
Radio Logicielle
a complete array
for any Plateforme
type of matrielle
I quipe
ring for each Airelle / Laboratoire CITI / INSA
I Dveloppement de composants radio en logiciel
h the host device
I Plateforme dexprimentation
I
gration from Lyrtech Small Form Factor
LYRIO
to RX ADC
RX ADC
Virtex-4
LYRIO
TX
FPGA DM6446
Antenna Transceiver IF TX DM SoC
Clk Ref
F GPIO
Introduction aux FPGA
Recherche sur les FPGA Lyon
Architecture
20 classique Introduction
Sensor MCU Tx
Power Supply Rx
Power Subsystem
Architecture PowWow
versality. However, when looking more carefully to actual design practices, we observe
, version 1 - 6 Ja n 2011
that the need for flexibility/programmability is essentially geared toward the user ap-
plication layer, which happens to represent only a small fraction of a WSN nodes
processing workload. Whereas most of the processing workload is almost dedicated
to the communication protocol stack. Hence, in our opinion, it is worth-studying to
explore the hardware specialization approach in WSN node design as well to meet the
ultra low-power requirement. In order to reduce the power consumption in a WSN
node, we first need to look at the generic node architecture to find out the hotspots for
power consumption. The generic architecture of a WSN node is discussed in the next
section.
nk 0
Ba
Introduction aux FPGA ISP AES User Nonvolatile Flash*Freeze Charge
Decryption* FlashRom Technology Pumps
Recherche sur les FPGA Lyon
Bank 1
* Not supported by AGL015 and AGL030 devices
Figure 1-1 IGLOO Device Architecture Overview with Two I/O Banks (AGL015, AGL030, AGL060, and
Actel Igloo AGL250 AGL125)
Bank 0
CCC
RAM Block
4,608-Bit Dual-Port
SRAM or FIFO Block
Bank 3
Bank 1
I/Os
VersaTile
Bank 3
Bank 1
RAM Block
ISP AES User Nonvolatile Flash*Freeze Charge
4,608-Bit Dual-Port
Decryption* FlashRom Technology Pumps SRAM or FIFO Block
(AGL600 and AGL1000)
Bank 2
Figure 1-2 IGLOO Device Architecture Overview with Four I/O Banks (AGL250, AGL600, AGL400, and
I 250 000 portes logiques ' 6144 VersaTiles
AGL1000)
Implmentation de GPS
Raliser une multiplication :
I Une cl connue de 128/256/512 bits
I une valeur de 32 bits
De manire efficace ?
Multiplication srie : mthode shift and add
1 0 0 1 0 1 0
1 1 0 1
1 1 0 0 1 0 1 0
1 + 1 0 0 1 0 1 0
0 + 0 0 0 0 0 0 0
1 + 1 0 0 1 0 1 0
1 1 1 1 0 0 0 0 1 0
11 10 9 8 7 6 ... 0
11 10 9 8 7 6 ... 0
11 10 9 8 7 6 ... 0 Performs left
11 10 9 8 7 6 ... 0 shift by 1-bit
11 10 9 8 7 6 ... 0
11 10 9 8 7 6 ... 0
11 10 9 8 7 6 ... 0
11 10 9 8 7 6 ... 0
11 10 9 8 7 6 ... 0
11 10 9 8 7 6 ... 0
11 10 9 8 7 6 ... 0
11 10 9 8 7 6 ... 0
11 10 9 8 7 6 ... 0
11 10 9 8 7 6 ... 0
11 10 9 8 7 6 ... 0
11 10 9 8 7 6 ... 0
16
0 15
s
r
16
+ 1
Control
c Logic
A8 -A11
1 4 4 4 4 4
Rsultats
Rsultats
Sommaire
Introduction
Rappels sur les circuits intgrs
Structure matrielle
Structure gnrale
Cellules lmentaires
Composants matriels
Composants logiciels
Les constructeurs
Programmation
Flot de conception
Synthse
Placement / Routage
Tests
Recherche sur les FPGA Lyon
Sources
Introduction aux FPGA
Sources
Sources
I Introduction aux circuits FPGA, Arnaud Tisserand
I Introduction to FPGA Devices, Boards and tools (Slides from
George Manson University)
I http://www.fpgadeveloper.com/2011/07/
list-and-comparison-of-fpga-companies.html
I http://www.actel.com
I http://www.xilinx.com
I http://www.altera.com
I http://www.lyrtech.com
I http://www.digikey.com
I http://powwow.gforge.inria.fr
I http://opencores.org