FPGA for Dummies

advertisement
FPGA for
Dummies
Modern FPGA architecture
ESS | FPGA for Dummies | 2015-12-15| Maurizio Donna
FPGA for Dummies
• Historical introduction, where we come from;
• FPGA Architecture:
 basic blocks (Logic, FFs, wires and IOs);
 additional elements;
• FPGA Programming:
Design flow;
Software;
• FPGA DSP:
Digital filters examples;
ESS | FPGA for Dummies | 2015-12-15| Maurizio Donna
FPGA for Dummies
• Historical introduction, where we come from;
• FPGA Architecture:
 basic blocks (Logic, FFs, wires and IOs);
 additional elements;
• FPGA Programming:
Design flow;
Software;
• FPGA DSP:
Digital filters examples;
ESS | FPGA for Dummies | 2015-12-15| Maurizio Donna
Field Programmable Gate Arrays
(FPGAs)
FPGAs initially were Similar to CPLDs, so a function to be
implemented in FPGA is partitioned into modules (each
implemented in a logic block) and then the logic blocks are
connected with the programmable interconnection: ARRAY of
logic GATES is the G and A in FPGA.
By way of a configuration file or bit stream, an FPGA can be
configured to implement the user’s desired function: this allows
customization at the user’s electronics bench, or even in the
final end product.
This is why FPGAs are FIELD PROGRAMMABLE.
ESS | FPGA for Dummies | 2015-12-15| Maurizio Donna
Basic FPGA Architecture
The basic structure of an FPGA is
composed of the following elements:
 Look-up table (LUT): This element
performs logic operations
 Flip-Flop (FF): This register
element stores the result of the
LUT
 Wires: These elements connect
elements to one another, both
Logic and clock
 Input/Output (I/O) pads: These
physically available ports get
signals in and out of the FPGA.
ESS | FPGA for Dummies | 2015-12-15| Maurizio Donna
FPGA Architecture
Contemporary FPGA architectures incorporate the
basic elements along with additional computational
and data storage blocks that increase the
computational density and efficiency of the device.
The combination of these elements provides the
FPGA with the flexibility to implement any software
algorithm running on a processor.
ESS | FPGA for Dummies | 2015-12-15| Maurizio Donna
FPGA Architecture
These additional elements, which are discussed in the following
sections, are:
 Embedded memories for distributed data storage;
 Phase-locked loops (PLLs) for driving the FPGA fabric at different
clock rates;
 High-speed serial transceivers;
 Off-chip memory controllers;
 Multiply-accumulate blocks;
 Embedded processors.
ESS | FPGA for Dummies | 2015-12-15| Maurizio Donna
FPGA Architecture
These additional elements, which are discussed in the following
sections, are:
 Embedded memories for distributed data storage;
 Phase-locked loops (PLLs) for driving the FPGA fabric at different
clock rates;
 High-speed serial transceivers;
 Off-chip memory controllers;
 Multiply-accumulate blocks;
 Embedded processors.
ESS | FPGA for Dummies | 2015-12-15| Maurizio Donna
FPGA Components: memory
Using LUTs as registers does not provide enough
space or versatility, so the FPGA fabric includes
embedded memory elements that can be used
as random-access memory (RAM), read-only
memory (ROM), or shift registers. These
elements are block RAMs (BRAMs), LUTs, and
shift registers.
Using LUTs as SRAM, this is called
DISTRIBUTE RAM
Included dedicated RAM components in the FPGA fabric are called
BLOCKs RAM
ESS | FPGA for Dummies | 2015-12-15| Maurizio Donna
FPGA Components: memory
The 7 series families have the same Block RAM/FIFO
(36Kb or 18kb+18kb): this components has multiple
configuration options;
 Integrated Error Correction
 FIFO Logic
ESS | FPGA for Dummies | 2015-12-15| Maurizio Donna
FPGA Components: memory
Single-Port
Block RAM
True Dual-Port
Block RAM
Simple Dual-Port
Block RAM
Block RAM Cascading
Example: Cascade 8 block RAMs to build
256-Kb memory
ESS | FPGA for Dummies | 2015-12-15| Maurizio Donna
FPGA Components: memory
Full featured FIFO:
 Synchronous or asynchronous
read and write clocks;
 Full, empty, programmable
almost-full/empty flags;
 Optional first-word-fall-through
ESS | FPGA for Dummies | 2015-12-15| Maurizio Donna
FPGA Components: memory
Altera Cyclone II embedded
memory structure consist of
columns of M4k memory
blocks;
ESS | FPGA for Dummies | 2015-12-15| Maurizio Donna
FPGA Components: memory
Altera Stratix II embedded memory structure consist of TriMatrix of M512,
M4k and big M-RAM memory blocks;
ESS | FPGA for Dummies | 2015-12-15| Maurizio Donna
FPGA Architecture
These additional elements, which are discussed in the following
sections, are:
 Embedded memories for distributed data storage;
 Phase-locked loops (PLLs) for driving the FPGA fabric at different
clock rates;
 High-speed serial transceivers;
 Off-chip memory controllers;
 Multiply-accumulate blocks;
 Embedded processors.
ESS | FPGA for Dummies | 2015-12-15| Maurizio Donna
FPGA Components: clocking
All synchronous designs need at least one external clock reference,
many designs require several clock sources!!!
Modern applications have complex clocking requirements:
 Extremely high-performance clock signals;
 Support for multiple frequency domains across a wide frequency
range;
 De-skewing of clocks relative to one another;
 Low jitter and precise duty cycle to maintain the widest possible
data valid window;
 Lowest possible system power
ESS | FPGA for Dummies | 2015-12-15| Maurizio Donna
FPGA Components: clocking
ESS | FPGA for Dummies | 2015-12-15| Maurizio Donna
FPGA Components: clocking
Clock regions:
 Each clock region is 50 CLBs
high and spans half the device:
 12 global clock networks
(Driven by BUFH);
 4 regional clock networks
(Driven by BUFR);
 4 I/O clock networks
(Driven by BUFIO).
ESS | FPGA for Dummies | 2015-12-15| Maurizio Donna
FPGA Components: clocking
Vertical Spines:
 Global clock networks allow
clocks to be distributed to
potentially every clocked element
on the die;
 Global clocks are driven by
BUFGCTRL located in the middle
of the die;
 Each BUFGCTRL drives a
vertical spine in the center of the
die that runs from the bottom to
the top of the die;
ESS | FPGA for Dummies | 2015-12-15| Maurizio Donna
FPGA Components: clocking
Horizontal Spines:
 Each clock region has 12 horizontal spines for carrying
global clocks:
 Clock regions on left and right have 12
independent horizontal spines;
 These horizontal spines can drive all clocked resources
within the region;
 Each horizontal spine is driven by a BUFH;
ESS | FPGA for Dummies | 2015-12-15| Maurizio Donna
FPGA Components: clocking
Regional Clock Networks:
 These regional networks can drive all
clocked resources within the region;
 Each horizontal spine is driven by a BUFR;
ESS | FPGA for Dummies | 2015-12-15| Maurizio Donna
FPGA Components: clocking
Clocking CLB Resources:
 In every region there are 12 horizontal spines of the global clock
network and 4 regional clocks;
 All 16 clocks can clock resources within the region;
 Only 12 of the 16 can enter the double column of CLBs in the top
and bottom half of the clock region
ESS | FPGA for Dummies | 2015-12-15| Maurizio Donna
FPGA Components: clocking
There are up to 24 Clock Management Tiles (CMT) per device, each one
contains:
 One Mixed-Mode Clock Manager (MMCM), that is used to generate
multiple clocks with defined phase and frequency relationships to a
given input clock.
 one PLL, primarily intended for use with the I/O phaser for high speed
memory controllers or with high requirement analog clocks.
ESS | FPGA for Dummies | 2015-12-15| Maurizio Donna
FPGA Architecture
These additional elements, which are discussed in the following
sections, are:
 Embedded memories for distributed data storage;
 Phase-locked loops (PLLs) for driving the FPGA fabric at different
clock rates;
 High-speed serial transceivers;
 Off-chip memory controllers;
 Multiply-accumulate blocks;
 Embedded processors.
ESS | FPGA for Dummies | 2015-12-15| Maurizio Donna
FPGA Components: High Speed
Tranceivers
To communicate between FPGAs or
to other devices, it’s more convenient
to use high speed differential
connection instead of parallel one, to
reduce noise spikes.
Many standard protocol use this
approach for the physical layer:
Fibre Channel, InfiniBand, PCI
Express, RapidIO, SkyRail ,
Gigabit Ethernet, etc…
ESS | FPGA for Dummies | 2015-12-15| Maurizio Donna
FPGA Components: High Speed
Tranceivers
 TX: From the FPGA
fabric a parallel bus is
encoded to increase the
robustness against the
noise and to reduce the
DC component and then
serialized;
 RX: the received
differential signal is used
to reconstruct the clock,
and then decoded and
re-parallelized.
ESS | FPGA for Dummies | 2015-12-15| Maurizio Donna
FPGA Components: High Speed
Tranceivers
Xilinx Multi-Gigabit Transceiver have different name depending on the
maximum speed that they support:
 GTP (6,6 Gbps);
 GTX (12,5 Gbps);
 GTH (16,3 Gbps);
 GTY (32,75 Gbps).
ESS | FPGA for Dummies | 2015-12-15| Maurizio Donna
FPGA Components: High Speed
Tranceivers
ESS | FPGA for Dummies | 2015-12-15| Maurizio Donna
FPGA Components: High Speed
Tranceivers
The Arria 10 FPGA and SoC transceivers have a versatile feature set to
handle a wide range of links and provide error-free link operation
ESS | FPGA for Dummies | 2015-12-15| Maurizio Donna
FPGA Architecture
These additional elements, which are discussed in the following
sections, are:
 Embedded memories for distributed data storage;
 Phase-locked loops (PLLs) for driving the FPGA fabric at different
clock rates;
 High-speed serial transceivers;
 Off-chip memory controllers;
 Multiply-accumulate blocks;
 Embedded processors.
ESS | FPGA for Dummies | 2015-12-15| Maurizio Donna
FPGA Components:
Off-chip memory controllers
FPGA devices provide memory interface support, including serial and
parallel interfaces.
 Serial memory: Hybrid Memory Cube (HMC) is the latest technology;
 Parallel Memory: latest devices offer parallel memory support up to
high rate for DDR4 and supports a wide range of other protocols like
o DDR3 / DDR3L, LPDDR3;
o DDR2;
o Mobile DRAMs;
o QDRII+ SRAM;
ESS | FPGA for Dummies | 2015-12-15| Maurizio Donna
FPGA Architecture
These additional elements, which are discussed in the following
sections, are:
 Embedded memories for distributed data storage;
 Phase-locked loops (PLLs) for driving the FPGA fabric at different
clock rates;
 High-speed serial transceivers;
 Off-chip memory controllers;
 Multiply-accumulate blocks;
 Embedded processors.
ESS | FPGA for Dummies | 2015-12-15| Maurizio Donna
FPGA Components: multiplier
XILINX Spartan 3 (2004) include on
the side of each BRAM a multiplier
block (18x18)
ESS | FPGA for Dummies | 2015-12-15| Maurizio Donna
FPGA Components: multiplier
Altera Cyclone II has one to three columns of
embedded multipliers; each embedded
multiplier can be configured to support :
 One 18 x 18 multiplier
 Two 9 x 9 multipliers
ESS | FPGA for Dummies | 2015-12-15| Maurizio Donna
FPGA Components: XtremeDSP
Multiplier
Adder
Accumulator
A[n:0]
x
B[n:0]
+
Y[(2n - 1):0]
Starting with Virtex 4 family, Xilinx
introduced DSP48 block for highspeed DSP on FPGAs
Essentially a multiply-accumulate
core with many other features
MAC
ESS | FPGA for Dummies | 2015-12-15| Maurizio Donna
FPGA Components: XtremeDSP
Adder Out = (Z ± (X + Y + CIN))
ESS | FPGA for Dummies | 2015-12-15| Maurizio Donna
FPGA Components: DSP unit
Also Altera include in the Stratix III family a DSP Unit
ESS | FPGA for Dummies | 2015-12-15| Maurizio Donna
FPGA Architecture
These additional elements, which are discussed in the following
sections, are:
 Embedded memories for distributed data storage;
 Phase-locked loops (PLLs) for driving the FPGA fabric at different
clock rates;
 High-speed serial transceivers;
 Off-chip memory controllers;
 Multiply-accumulate blocks;
 Embedded processors.
ESS | FPGA for Dummies | 2015-12-15| Maurizio Donna
FPGA Components: Embedded
Microprocessor Cores
Xilinx Virtex-II Pro include a
PowerPC™ 405 Core
1. Processor Block
2. RocketIO Multi-Gigabit
Transceivers
3. CLB and Configurable Logic
4. SelectIO-Ultra
5. Digital Clock Managers
6. Multipliers and Block
SelectRAM
ESS | FPGA for Dummies | 2015-12-15| Maurizio Donna
FPGA Components: Embedded
Microprocessor Cores
Xilinx Zynq is an Innovative
ARM® + FPGA architecture for
differentiation, analytics &
control.
 Zynq-7000 SoC uses a Dualcore ARM® Cortex™-A9 MPCore™
with CoreSight™ up to 1GHz;
 Zynq UltraScale+ MPSoC uses
a Quad-core ARM® Cortex™A53 MPCore up to 1.5GHz with
a Real-Time Processing Unit
Dual-core ARM®
Cortex™-R5 MPCore up to
600MHz
ESS | FPGA for Dummies | 2015-12-15| Maurizio Donna
FPGA Components: Embedded
Microprocessor Cores
Also Altera has ARM® +
FPGA architectures:
 Arria 10 SoCs, includes a
dual-core ARM® Cortex™A9 MPCore™ hard
processor system (HPS);
 Stratix 10 FPGA and SoC
system includes ad-core 64
bit ARM® Cortex®-A53 hard
processor system up to 1.5
GHz;
ESS | FPGA for Dummies | 2015-12-15| Maurizio Donna
Questions
ESS | FPGA for Dummies | 2015-12-15| Maurizio Donna
ESS | FPGA for Dummies | 2015-12-15| Maurizio Donna
Download