61
Institut für Technik der Informationsverarbeitung (ITIV) www.kit.edu KIT – Universität des Landes Baden-Württemberg und nationales Forschungszentrum in der Helmholtz-Gemeinschaft Institut für Prozessdatenverarbeitung und Elektronik (IPE) KSETA Workshop 2013 Dipl.-Inform. Steffen Bähr Dipl.-Inform. Tanja Harbaum Dipl.-Ing. Christian Amstutz Dipl.-Ing. Uros Stevanovic Institut für Prozessdatenverarbaiten und Elektronik - IPE Institut für Technik der Informationsverarbeitung Data Analysis in Hardware - A Tutorial on VHDL and FPGAs

Data Analysis in Hardware A Tutorial on VHDL and FPGAs

  • Upload
    others

  • View
    9

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Data Analysis in Hardware A Tutorial on VHDL and FPGAs

Institut für Technik der Informationsverarbeitung (ITIV)

www.kit.eduKIT – Universität des Landes Baden-Württemberg undnationales Forschungszentrum in der Helmholtz-Gemeinschaft

Institut für Prozessdatenverarbeitung und Elektronik (IPE)

KSETA Workshop 2013

Dipl.-Inform. Steffen BährDipl.-Inform. Tanja HarbaumDipl.-Ing. Christian AmstutzDipl.-Ing. Uros Stevanovic

Institut für Prozessdatenverarbaiten und Elektronik - IPE

Institut für Technik der Informationsverarbeitung

Data Analysis in Hardware-

A Tutorial on VHDL and FPGAs

Page 2: Data Analysis in Hardware A Tutorial on VHDL and FPGAs

Institut für Technik der Informationsverarbeitung (ITIV)

Institut für Prozessdatenverarbeitung und Elektronik (IPE)

Overview

Technologies Overview

Introduction to Field Programmable Gate Arrays (FPGAs)Technology: Xilinx Virtex5

Example: Full Adder

FPGA Design FlowVHDL

Xilinx ISE

A Tutorial on VHDL and FPGAs2 04.11.13

Page 3: Data Analysis in Hardware A Tutorial on VHDL and FPGAs

Institut für Technik der Informationsverarbeitung (ITIV)

Institut für Prozessdatenverarbeitung und Elektronik (IPE)

Comparison between Technologies

A Tutorial on VHDL and FPGAs3 11/04/13

General-Purpose Processors (GPP)

Complex Instruction Set Computer (CISC)Reduced Instruction Set Computer (RISC)

General-Purpose Processors (GPP)

Complex Instruction Set Computer (CISC)Reduced Instruction Set Computer (RISC)

Special-Purpose Processors

Microcontroller (µC)Digital Signal Processor (DSP)Application Specific Instruction Set Processor (ASIP)Graphic Processing Unit (GPU)

Special-Purpose Processors

Microcontroller (µC)Digital Signal Processor (DSP)Application Specific Instruction Set Processor (ASIP)Graphic Processing Unit (GPU)

Programmable Hardware

Field Programmable Gate Array (FPGA)

Programmable Hardware

Field Programmable Gate Array (FPGA)

Application Specific Integrated Circuit (ASIC)Application Specific Integrated Circuit (ASIC)

Per

form

ance

, T

ime

to M

arke

t

Fle

xibi

lity,

Pow

er C

onsu

mpt

ion

Page 4: Data Analysis in Hardware A Tutorial on VHDL and FPGAs

Institut für Technik der Informationsverarbeitung (ITIV)

Institut für Prozessdatenverarbeitung und Elektronik (IPE)

Example: Xilinx Virtex5 110T

Configurable Logic Block (CLB)Digital Signal Processor (DSP)Block RAM (BRAM)Digital Clock Memory (DCM)I/O Bank

A Tutorial on VHDL and FPGAs4 04.11.13

Page 5: Data Analysis in Hardware A Tutorial on VHDL and FPGAs

Institut für Technik der Informationsverarbeitung (ITIV)

Institut für Prozessdatenverarbeitung und Elektronik (IPE)

Example: Xilinx Virtex5 110T

A Tutorial on VHDL and FPGAs5 04.11.13

One CLB consists of two Slices

Programmable Switch Matrix

Fast local routing inside a CLB

Global routing between CLBs

Page 6: Data Analysis in Hardware A Tutorial on VHDL and FPGAs

Institut für Technik der Informationsverarbeitung (ITIV)

Institut für Prozessdatenverarbeitung und Elektronik (IPE)

Example: Xilinx Virtex5 110T

A Tutorial on VHDL and FPGAs6 04.11.13

Page 7: Data Analysis in Hardware A Tutorial on VHDL and FPGAs

Institut für Technik der Informationsverarbeitung (ITIV)

Institut für Prozessdatenverarbeitung und Elektronik (IPE)

How to map a full adder into a Slice

Step 1: Create a truth table

A Tutorial on VHDL and FPGAs7 04.11.13

X Y Cin S Cout

0 0 0 0 0

0 0 1 1 0

0 1 0 1 0

0 1 1 0 1

1 0 0 1 0

1 0 1 0 1

1 1 0 0 1

1 1 1 1 1

Page 8: Data Analysis in Hardware A Tutorial on VHDL and FPGAs

Institut für Technik der Informationsverarbeitung (ITIV)

Institut für Prozessdatenverarbeitung und Elektronik (IPE)

How to map a full adder into a Slice

Step 2: Produce Disjunctive Normal Form (DNF)

A Tutorial on VHDL and FPGAs8 04.11.13

X Y Cin S Cout

0 0 0 0 0

0 0 1 1 0

0 1 0 1 0

0 1 1 0 1

1 0 0 1 0

1 0 1 0 1

1 1 0 0 1

1 1 1 1 1

Page 9: Data Analysis in Hardware A Tutorial on VHDL and FPGAs

Institut für Technik der Informationsverarbeitung (ITIV)

Institut für Prozessdatenverarbeitung und Elektronik (IPE)

How to map a full adder into a Slice

Step 2: Realization with two Lookup Tables

A Tutorial on VHDL and FPGAs9 04.11.13

Page 10: Data Analysis in Hardware A Tutorial on VHDL and FPGAs

Institut für Technik der Informationsverarbeitung (ITIV)

Institut für Prozessdatenverarbeitung und Elektronik (IPE)

How to map a full adder into a Slice

Step 2: Realization with two Lookup Tables

A Tutorial on VHDL and FPGAs10 04.11.13

Generated by Xilinx ISE 14.2

Page 11: Data Analysis in Hardware A Tutorial on VHDL and FPGAs

Institut für Technik der Informationsverarbeitung (ITIV)

Institut für Prozessdatenverarbeitung und Elektronik (IPE)

Full adder in a Virtex5 ScliceL

A Tutorial on VHDL and FPGAs11 04.11.13

Page 12: Data Analysis in Hardware A Tutorial on VHDL and FPGAs

Institut für Technik der Informationsverarbeitung (ITIV)

Institut für Prozessdatenverarbeitung und Elektronik (IPE)

FPGA Design Flow

A Tutorial on VHDL and FPGAs12 11/04/13

Translate

Map

Place & Route

Plan & Budget

HDL RTLSimulation

Synthesizeto create netlist

FunctionalSimulation

Attain Timing Closure

TimingSimulation

Implement

Create Code/Schematic

GenerateBIT File

ConfigureFPGA

Page 13: Data Analysis in Hardware A Tutorial on VHDL and FPGAs

Institut für Technik der Informationsverarbeitung (ITIV)

Institut für Prozessdatenverarbeitung und Elektronik (IPE)

VHDL-Introduction

VHSIC HDL – Very high Speed Integrated Circuits Hardware Descprition Language

Enforced by the US-Department of Defense for documentation of ASICs

A Tutorial on VHDL and FPGAs13 11/04/13

Create Code/Schematic

Page 14: Data Analysis in Hardware A Tutorial on VHDL and FPGAs

Institut für Technik der Informationsverarbeitung (ITIV)

Institut für Prozessdatenverarbeitung und Elektronik (IPE)

A Tutorial on VHDL and FPGAs14 11/04/13

VHDL - Top-Down Design

Hardware Designs are typically described in a top-down fashion

Page 15: Data Analysis in Hardware A Tutorial on VHDL and FPGAs

Institut für Technik der Informationsverarbeitung (ITIV)

Institut für Prozessdatenverarbeitung und Elektronik (IPE)

VHDL-Entity

Description of a module‘s interfacePorts as mean of communication

Name

Direction

Type

A Tutorial on VHDL and FPGAs15 11/04/13

Entity description of full adder in VHDL Graphical representation of full adder entity

Page 16: Data Analysis in Hardware A Tutorial on VHDL and FPGAs

Institut für Technik der Informationsverarbeitung (ITIV)

Institut für Prozessdatenverarbeitung und Elektronik (IPE)

VHDL-Signals

Special Container for Data in VHDLParallel assignments of values

Connection between Modules

Coupling with timing information for simulations

A Tutorial on VHDL and FPGAs16 11/04/13

VHDL signal declaration

VHDL signal declaration syntax

Page 17: Data Analysis in Hardware A Tutorial on VHDL and FPGAs

Institut für Technik der Informationsverarbeitung (ITIV)

Institut für Prozessdatenverarbeitung und Elektronik (IPE)

VHDL-Architecture

Couples Entities withStructural description

Declaration of used modules

Instantiation of modules

Connection of modules

Behavioural descriptionWhat does the module do ?

A Tutorial on VHDL and FPGAs17 11/04/13

Architecture declaration of full adder in VHDL

Page 18: Data Analysis in Hardware A Tutorial on VHDL and FPGAs

Institut für Technik der Informationsverarbeitung (ITIV)

Institut für Prozessdatenverarbeitung und Elektronik (IPE)

VHDL-Structural Description(1)

A Tutorial on VHDL and FPGAs18 11/04/13

Component declaration of full adder entity in VHDL

Full Adder

Page 19: Data Analysis in Hardware A Tutorial on VHDL and FPGAs

Institut für Technik der Informationsverarbeitung (ITIV)

Institut für Prozessdatenverarbeitung und Elektronik (IPE)

VHDL-Structural Description(2)

A Tutorial on VHDL and FPGAs19 11/04/13

Full Adder

Component instanstiation of half adder in VHDL

Page 20: Data Analysis in Hardware A Tutorial on VHDL and FPGAs

Institut für Technik der Informationsverarbeitung (ITIV)

Institut für Prozessdatenverarbeitung und Elektronik (IPE)

VHDL-Structural Description(3)

A Tutorial on VHDL and FPGAs20 11/04/13

Component instanstiation of half adder in VHDL

Full Adder

Page 21: Data Analysis in Hardware A Tutorial on VHDL and FPGAs

Institut für Technik der Informationsverarbeitung (ITIV)

Institut für Prozessdatenverarbeitung und Elektronik (IPE)

VHDL-Structural Description(3)

A Tutorial on VHDL and FPGAs21 11/04/13

Connection of OR-Gate in VHDL

Full Adder

Page 22: Data Analysis in Hardware A Tutorial on VHDL and FPGAs

Institut für Technik der Informationsverarbeitung (ITIV)

Institut für Prozessdatenverarbeitung und Elektronik (IPE)

VHDL-Behavioural Description

VHDL ProcessDescribes the behaviour of modules

Executed in parallel

A Tutorial on VHDL and FPGAs22 11/04/13

Behavioural description „or“ in VHDL

Page 23: Data Analysis in Hardware A Tutorial on VHDL and FPGAs

Institut für Technik der Informationsverarbeitung (ITIV)

Institut für Prozessdatenverarbeitung und Elektronik (IPE)

Half Adder Code Example

A Tutorial on VHDL and FPGAs23 11/04/13

Page 24: Data Analysis in Hardware A Tutorial on VHDL and FPGAs

Institut für Technik der Informationsverarbeitung (ITIV)

Institut für Prozessdatenverarbeitung und Elektronik (IPE)

Full Adder Code Example

A Tutorial on VHDL and FPGAs24 11/04/13

Page 25: Data Analysis in Hardware A Tutorial on VHDL and FPGAs

Institut für Technik der Informationsverarbeitung (ITIV)

Institut für Prozessdatenverarbeitung und Elektronik (IPE)

VHDL-Parallelism

Modules can be instantiated mutiple times and execute in parallel

A Tutorial on VHDL and FPGAs25 11/04/13

Mulitple Full Adders executing in parallel Mulitple instantiations of a Full Adder

Page 26: Data Analysis in Hardware A Tutorial on VHDL and FPGAs

Institut für Technik der Informationsverarbeitung (ITIV)

Institut für Prozessdatenverarbeitung und Elektronik (IPE)

VHDL-Clocking

Using a clock for synchronisation in VHDL ModulesClock signal included in sensitivity list of process

Rising or falling clock edge

A Tutorial on VHDL and FPGAs26 11/04/13

Page 27: Data Analysis in Hardware A Tutorial on VHDL and FPGAs

Institut für Technik der Informationsverarbeitung (ITIV)

Institut für Prozessdatenverarbeitung und Elektronik (IPE)

XILINX Design Tool ISE

A Tutorial on VHDL and FPGAs27 11/04/13

Page 28: Data Analysis in Hardware A Tutorial on VHDL and FPGAs

Institut für Technik der Informationsverarbeitung (ITIV)

Institut für Prozessdatenverarbeitung und Elektronik (IPE)

Demo Synthesize

A Tutorial on VHDL and FPGAs28 11/04/13

Synthesizeto create netlist

Page 29: Data Analysis in Hardware A Tutorial on VHDL and FPGAs

Institut für Technik der Informationsverarbeitung (ITIV)

Institut für Prozessdatenverarbeitung und Elektronik (IPE)

Demo P&R

A Tutorial on VHDL and FPGAs29 11/04/13

Translate

Map

Place & Route

Implement

INPUT/OUTPUT

routet net

Slice

Connect Matrix

Page 30: Data Analysis in Hardware A Tutorial on VHDL and FPGAs

Institut für Technik der Informationsverarbeitung (ITIV)

Institut für Prozessdatenverarbeitung und Elektronik (IPE)

Demo P&R

A Tutorial on VHDL and FPGAs30 11/04/13

Translate

Map

Place & Route

Implement

Page 31: Data Analysis in Hardware A Tutorial on VHDL and FPGAs

Institut für Technik der Informationsverarbeitung (ITIV)

Institut für Prozessdatenverarbeitung und Elektronik (IPE)

High-Level-Design Approaches

FPGA design by HDLs:Time consuming

Error-prone

Difficult verification

Large teams

Algorithms are not designed in HDL

Is there a faster/simpler way to design FPGAs?

Yes! But ...

A Tutorial on VHDL and FPGAs31 04.11.13

Page 32: Data Analysis in Hardware A Tutorial on VHDL and FPGAs

Institut für Technik der Informationsverarbeitung (ITIV)

Institut für Prozessdatenverarbeitung und Elektronik (IPE)

Considerations for High-Level Approaches

There is no “Push-Button” approach

Unlike for software compilation

Designer must keep hardware in mind

A Tutorial on VHDL and FPGAs32 04.11.13

Page 33: Data Analysis in Hardware A Tutorial on VHDL and FPGAs

Institut für Technik der Informationsverarbeitung (ITIV)

Institut für Prozessdatenverarbeitung und Elektronik (IPE)

System Designer

Design of (Embedded) Systems based on building blocks

IP-blocks connected by a standard bus

Available blocks:Arithmetics: Adder, Mulitplier, sqrt, sin/cos, ...

Digital Signal Processing: FIR filters, FFT, ...

Processors, RAMs, ROMs, Peripherial controller, ...

LimitationsLimited to the available blocks (included, purchased)

Describing a complex algorithm soly by basic blocks is cumbersome

Applications: Altera Qsys / Xilinx EDK

A Tutorial on VHDL and FPGAs33 04.11.13

Page 34: Data Analysis in Hardware A Tutorial on VHDL and FPGAs

Institut für Technik der Informationsverarbeitung (ITIV)

Institut für Prozessdatenverarbeitung und Elektronik (IPE)

Xilinx EDK: Simple Adder

A Tutorial on VHDL and FPGAs34 04.11.13

Page 35: Data Analysis in Hardware A Tutorial on VHDL and FPGAs

Institut für Technik der Informationsverarbeitung (ITIV)

Institut für Prozessdatenverarbeitung und Elektronik (IPE)

Xilinx EDK: Complete Processor System

A Tutorial on VHDL and FPGAs35 04.11.13

Page 36: Data Analysis in Hardware A Tutorial on VHDL and FPGAs

Institut für Technik der Informationsverarbeitung (ITIV)

Institut für Prozessdatenverarbeitung und Elektronik (IPE)

High-Level-Synthesis (HLS)

Converts an algorithm written in C/C++/SystemC to HDL

C is used as most of its constructs could be supported

Everything great?Algorithm must be parallelizable

Data types should fit hardware•Minimal bit width which ensures the accuracy of algorithm•Floating point is expensive in hardware

Different optimization goals → Design Space Exploration•Throughput•Latency•Chip area•Power

Applications: Xilinx Vivado HLS, Calypto Catapult

A Tutorial on VHDL and FPGAs36 04.11.13

Page 37: Data Analysis in Hardware A Tutorial on VHDL and FPGAs

Institut für Technik der Informationsverarbeitung (ITIV)

Institut für Prozessdatenverarbeitung und Elektronik (IPE)

Design Space Exploration (Example)

Vector Addition:

A Tutorial on VHDL and FPGAs37 04.11.13

n=4:

Page 38: Data Analysis in Hardware A Tutorial on VHDL and FPGAs

Institut für Technik der Informationsverarbeitung (ITIV)

Institut für Prozessdatenverarbeitung und Elektronik (IPE)

Design Space Exploration – CPU / 1 Adder

A Tutorial on VHDL and FPGAs38 04.11.13

Page 39: Data Analysis in Hardware A Tutorial on VHDL and FPGAs

Institut für Technik der Informationsverarbeitung (ITIV)

Institut für Prozessdatenverarbeitung und Elektronik (IPE)

Design Space Exploration – CPU / 1 Adder

A Tutorial on VHDL and FPGAs39 04.11.13

Page 40: Data Analysis in Hardware A Tutorial on VHDL and FPGAs

Institut für Technik der Informationsverarbeitung (ITIV)

Institut für Prozessdatenverarbeitung und Elektronik (IPE)

Design Space Exploration – CPU / 1 Adder

A Tutorial on VHDL and FPGAs40 04.11.13

Page 41: Data Analysis in Hardware A Tutorial on VHDL and FPGAs

Institut für Technik der Informationsverarbeitung (ITIV)

Institut für Prozessdatenverarbeitung und Elektronik (IPE)

Design Space Exploration – CPU / 1 Adder

A Tutorial on VHDL and FPGAs41 04.11.13

Page 42: Data Analysis in Hardware A Tutorial on VHDL and FPGAs

Institut für Technik der Informationsverarbeitung (ITIV)

Institut für Prozessdatenverarbeitung und Elektronik (IPE)

Design Space Exploration – CPU / 1 Adder

A Tutorial on VHDL and FPGAs42 04.11.13

Page 43: Data Analysis in Hardware A Tutorial on VHDL and FPGAs

Institut für Technik der Informationsverarbeitung (ITIV)

Institut für Prozessdatenverarbeitung und Elektronik (IPE)

Design Space Exploration – 4 Adder

A Tutorial on VHDL and FPGAs43 04.11.13

Page 44: Data Analysis in Hardware A Tutorial on VHDL and FPGAs

Institut für Technik der Informationsverarbeitung (ITIV)

Institut für Prozessdatenverarbeitung und Elektronik (IPE)

Design Space Exploration – 4 Adder

A Tutorial on VHDL and FPGAs44 04.11.13

Page 45: Data Analysis in Hardware A Tutorial on VHDL and FPGAs

Institut für Technik der Informationsverarbeitung (ITIV)

Institut für Prozessdatenverarbeitung und Elektronik (IPE)

Design Space Exploration – 2 Adder

A Tutorial on VHDL and FPGAs45 04.11.13

Page 46: Data Analysis in Hardware A Tutorial on VHDL and FPGAs

Institut für Technik der Informationsverarbeitung (ITIV)

Institut für Prozessdatenverarbeitung und Elektronik (IPE)

Design Space Exploration – 2 Adder

A Tutorial on VHDL and FPGAs46 04.11.13

Page 47: Data Analysis in Hardware A Tutorial on VHDL and FPGAs

Institut für Technik der Informationsverarbeitung (ITIV)

Institut für Prozessdatenverarbeitung und Elektronik (IPE)

Design Space Exploration – 2 Adder

A Tutorial on VHDL and FPGAs47 04.11.13

Page 48: Data Analysis in Hardware A Tutorial on VHDL and FPGAs

Institut für Technik der Informationsverarbeitung (ITIV)

Institut für Prozessdatenverarbeitung und Elektronik (IPE)

Design Space Exploration – Comparison

A Tutorial on VHDL and FPGAs48 04.11.13

CPU 1 Adder 2 Adder 4 Adder

Area 1.2 1 2 4

Results/Cycle 0.25 0.25 0.5 1

Clock [MHz] 600 400 400 400

Throughput[MOPs]

150 100 200 400

There is not a single optimal solutionMany of these optimizations needs to be done manually

Page 49: Data Analysis in Hardware A Tutorial on VHDL and FPGAs

Institut für Technik der Informationsverarbeitung (ITIV)

Institut für Prozessdatenverarbeitung und Elektronik (IPE)

Simulink / Matlab

Graphical FPGA Design

Many Simulink blocks supported

Verification is integrated

Examples:Mathworks HDL Coder

Altera DSP Compiler

Xilinx System Generator

A Tutorial on VHDL and FPGAs49 04.11.13

Page 50: Data Analysis in Hardware A Tutorial on VHDL and FPGAs

Institut für Technik der Informationsverarbeitung (ITIV)

Institut für Prozessdatenverarbeitung und Elektronik (IPE)

Open Computing Laguage (OpenCL)

Extension to standard CDescription of massively parallel algorithmsKernels describe parallel parts of algorithmsKernel could execute on different computation units

CPUGPGPUFPGA

Limitations:No stand alone FPGAs – Kernels called by host program(so far) only 1 FPGA board supported

Application: Altera SDK for OpenCL

A Tutorial on VHDL and FPGAs50 04.11.13

Page 51: Data Analysis in Hardware A Tutorial on VHDL and FPGAs

Institut für Technik der Informationsverarbeitung (ITIV)

Institut für Prozessdatenverarbeitung und Elektronik (IPE)

OpenCL – (very simplified) Example

51 04.11.13 A Tutorial on VHDL and FPGAs

Page 52: Data Analysis in Hardware A Tutorial on VHDL and FPGAs

Institut für Technik der Informationsverarbeitung (ITIV)

Institut für Prozessdatenverarbeitung und Elektronik (IPE)

FPGA - Applications

Digital signal processing

ASIC prototyping

Computer vision

Military applications

Medical applications

Automotive applications

Consumer electronics

Industrial applications

High performance computing

Space and aeronautics

04.11.13 A Tutorial on VHDL and FPGAs

Page 53: Data Analysis in Hardware A Tutorial on VHDL and FPGAs

Institut für Technik der Informationsverarbeitung (ITIV)

Institut für Prozessdatenverarbeitung und Elektronik (IPE)

Mars exploration rovers (MER)

04.11.13

Rad tolerant Xilinx XQVR FPGA

Control of the pyrotechnic operations during descent and landing procedure

Control of the motors for the wheels, steering, arms, cameras, instrumentation

On-board re-programmability allowed design changes and updates even after the rover has landed Curiosity Rover

A Tutorial on VHDL and FPGAs

Page 54: Data Analysis in Hardware A Tutorial on VHDL and FPGAs

Institut für Technik der Informationsverarbeitung (ITIV)

Institut für Prozessdatenverarbeitung und Elektronik (IPE)

Trigger and DAQ systems in particle physics

04.11.13

ATLAS Trigger systemL1 is hardware based

FPGA-based trigger for NA62 Experiment

A Tutorial on VHDL and FPGAs

Page 55: Data Analysis in Hardware A Tutorial on VHDL and FPGAs

Institut für Technik der Informationsverarbeitung (ITIV)

Institut für Prozessdatenverarbeitung und Elektronik (IPE)

Banking applications

Calculating company’s collateral debt obligation (CDO) in near real-time

Prior to the FPGA solution, main risk model for analyzing CDO portfolio took 8-12 hrs, based on x1000 x86 cores in case of error, no time to resubmit for the day!

With the speedup, same risk model took 4 minutes multiple scenarios throughout the day

Final hardware system is 40-node hybrid cluster

Each cluster contains 8 Xeon (24GB) cores with 2 FPGA (Xilinx Virtex 5) (12GB)

Time-critical, compute-intensive pieces of C++ risk model was ported to FPGA

Advantage of the FPGA exploit of the fine-grained parallelism and pipelines many more calculations per watt vs. the CPU

04.11.13 A Tutorial on VHDL and FPGAs

Page 56: Data Analysis in Hardware A Tutorial on VHDL and FPGAs

Institut für Technik der Informationsverarbeitung (ITIV)

Institut für Prozessdatenverarbeitung und Elektronik (IPE)

KIT UFO camera

Ultra Fast X-ray imaging of scientific processes with On-line assessment and data-driven process control

04.11.13

High-speed data transfer

Image-based process control

Programmable camera

On-camera image processing

A Tutorial on VHDL and FPGAs

Page 57: Data Analysis in Hardware A Tutorial on VHDL and FPGAs

Institut für Technik der Informationsverarbeitung (ITIV)

Institut für Prozessdatenverarbeitung und Elektronik (IPE)

Readout chain and FPGA architecture

2.2 MP CMOS sensor

340 fps @ full view

14 Gb/s streaming with Bus Master DMA

Virtex-6 Xilinx FPGA

04.11.13 A Tutorial on VHDL and FPGAs

Page 58: Data Analysis in Hardware A Tutorial on VHDL and FPGAs

Institut für Technik der Informationsverarbeitung (ITIV)

Institut für Prozessdatenverarbeitung und Elektronik (IPE)

Image based trigger – architecture and performance

04.11.13

FPGA architecture Performance

A Tutorial on VHDL and FPGAs

Page 59: Data Analysis in Hardware A Tutorial on VHDL and FPGAs

Institut für Technik der Informationsverarbeitung (ITIV)

Institut für Prozessdatenverarbeitung und Elektronik (IPE)

CPU, GPU vs. FPGA

04.11.13

FPGA Advantages CPU/GPU Advantages

• more flexible processing• more flexible input/outpt• parallel processing• multi-clock• timing operations• higly customizable • “real-time” applications

• programming a CPU in normally easier than programming an FPGA (no understanding of the digital electronics)• faster compilation• easier code portability• lower unit costs - for any volume• GPU offers massive parallel execution resources and high memory bandwith• “fast” applications

Often FPGAs and CPU/GPU are complementary: they co-exist in the same system and perform different tasks.

A Tutorial on VHDL and FPGAs

Page 60: Data Analysis in Hardware A Tutorial on VHDL and FPGAs

Institut für Technik der Informationsverarbeitung (ITIV)

Institut für Prozessdatenverarbeitung und Elektronik (IPE)

Applications suitability for GPU and FPGA

04.11.13

FPGAs GPUsComputations involves lots of detailed low-level hardware control operations, with no efficient implementation in high level language

No independence in the data flow and computation can be done in parallel

A certain degree of complexity is required and the implementation take advantage of data streaming and pipelining

Applications contain a lot of parallelism but involve computations which cannot be efficiently implemented on GPUs

Applications that require a lot of complexity in the logic and data flow design

Applications have a lot of memory accesses and have limited parallelism

Good fit

Poor fit

Good fit

Poor fit

A Tutorial on VHDL and FPGAs

Source: “Accelerating compute intensive applications with GPUs and FPGAs”,Che, Li, Shaeffer, Skadron and Lach, SASP 2008

Page 61: Data Analysis in Hardware A Tutorial on VHDL and FPGAs

Institut für Technik der Informationsverarbeitung (ITIV)

Institut für Prozessdatenverarbeitung und Elektronik (IPE)

Q & A

04.11.13 A Tutorial on VHDL and FPGAs