SlideShare a Scribd company logo
1 of 53
 Programmable Logic
 Evolution:TTL  PLA  CPLD  FPGA 
ASIC
 Development aspects
 Using FPGA for high speed data processing
 OpenCL
 General features of logic implementations
 Sum of products (AND-OR gates, combinatorial logic)
 Stored results (registered outputs)
 Wired together
 What if
 Logic functions were fixed (likeTTL), but combined into a
single device?
 Wiring (routing) connections could be controlled
(programmed) somehow?
 Simplest implementation of programmable logic
 Logic gates and registers are fixed
 Programmable sum of products array and output
control
 Fewer devices required
 Lower cost
 Power savings
 Simpler to test and debug
 Design security (prevent reverse engineering)
 Design flexibility
 Automated tools simplify and consolidate design
flow
 In-system reprogrammability! (in some cases)
 Arrange multiple PAL arrays in a single device
 Combine multiple PLDs in single device with
programmable interconnect and I/O
 Ample amounts of logic and advanced configurable
I/Os
 Programmable routing
 Instant on
 Low cost
 Non-volatile configuration
 Reprogrammable
 Higher density CPLDs don’t scale well because of
requires additional global routing
 Rearrange LABs themselves into an array
 LABs arranged in an array
 Row and column programmable interconnect
 Interconnect may span all or part of the array
 FPGA LABs made up of logic elements (LEs) instead of
product terms and macrocells
 Easier to create complex functions through LE
cascading
 Replaces product term array
 Combinational functions created with programmed
“tables” (cascaded multiplexers)
 LUT inputs are mux select lines
 Based on LE, but includes dedicated resources & adaptive LUT (ALUT)
 Improves performance and resource utilization
 All device resources can feed into or be fed by any
routing in device
 Differing fixed lengths to adjust for timing
 Scales linearly as density increases
 Local interconnect
 Connects between Les or ALMs within a LAB
 Can include direct connections between adjacent LABs
 Row and column interconnect
 Fixed length routing segments
 Span a number of LABs or entire device
 Embedded multipliers
 Useful for DSP
 High-performance multiply/add/accumulate operations
 Memory blocks
 High-speed transceivers
 Replace some LABs with dedicated functional
hardware blocks
 PLLs
 SDRAM controllers
 Hard Processor System
 FPGA programming information must be stored
somewhere to program device at power on
 Use external EEPROM, CPLD or CPU to program
 Two programming methods
 Active: FPGA controls programming sequence
automatically at power on
 Passive: Intelligent host (typically CPU) controls
programming
 Also programmable through JTAG connection
 High density to create many complex logic
functions
 High performance
 Low cost
 Integration of many functions
 Many available I/O standards and features
 Fast programming
 A true ASIC: no configuration at power-on required
 Create and test design with FPGA device
 Migrate design to pin–compatible, functionally
equivalent ASIC device
 Verilog Hardware Description Language
 VDHL - Very high speed integrated circuits
Hardware Description Language
 Schematic design development
 Core IP
 SDRAM Controller
 Ethernet PHY, CustomTransceiver PHY
 PCIe PHY
 SDi, Display Port
 Megafunctions
 PLL
 I/O
 Custom logic blocks
 CPU data processing optimization
 Pipelining, parallelism
 OpenCL
B
A
A
ALU
Op
Val
Instruction
Fetch
Registers
Aaddr
Baddr
Caddr
PC Load Store
LdAddr StAddr
CWriteEnable
C
Op
LdData
StData
Op
CData
B
A
A
ALU
Op
Val
Instruction
Fetch
Registers
Aaddr
Baddr
Caddr
PC Load Store
LdAddr StAddr
CWriteEnable
C
Op
LdData
StData
Op
CData
B
A
A
ALU
Op
Val
Instruction
Fetch
Registers
Aaddr
Baddr
Caddr
PC Load Store
LdAddr StAddr
CWriteEnable
C
Op
LdData
StData
Op
CData
B
A
A
ALU
Op
Val
Instruction
Fetch
Registers
Aaddr
Baddr
Caddr
PC Load Store
LdAddr StAddr
CWriteEnable
C
Op
LdData
StData
Op
CData
B
A
A
ALU
Op
Val
Instruction
Fetch
Registers
Aaddr
Baddr
Caddr
PC Load Store
LdAddr StAddr
CWriteEnable
C
Op
LdData
StData
Op
CData
 Mem[100] += 42 * Mem[101]
 CPU instructions:
R0  Load Mem[100]
R1  Load Mem[101]
R2  Load #42
R2  Mul R1, R2
R0  Add R2, R0
Store R0  Mem[100]
A
A
A
A
A
R0  Load Mem[100]
R1  Load Mem[101]
R2  Load #42
R2  Mul R1, R2
R0  Add R2, R0
Store R0  Mem[100] A
Time
A
A
A
A
A
R0  Load Mem[100]
R1  Load Mem[101]
R2  Load #42
R2  Mul R1, R2
R0  Add R2, R0
Store R0  Mem[100] A
Space
A
A
A
A
A
R0  Load Mem[100]
R1  Load Mem[101]
R2  Load #42
R2  Mul R1, R2
R0  Add R2, R0
Store R0  Mem[100] A
1. Instructions are fixed. Remove
“Fetch”
A
A
A
A
A
R0  Load Mem[100]
R1  Load Mem[101]
R2  Load #42
R2  Mul R1, R2
R0  Add R2, R0
Store R0  Mem[100] A
1. Instructions are fixed. Remove
“Fetch”
2. Remove unused ALU ops
A
A
A
A
A
R0  Load Mem[100]
R1  Load Mem[101]
R2  Load #42
R2  Mul R1, R2
R0  Add R2, R0
Store R0  Mem[100] A
1. Instructions are fixed. Remove
“Fetch”
2. Remove unused ALU ops
3. Remove unused Load / Store
R0  Load Mem[100]
R1  Load Mem[101]
R2  Load #42
R2  Mul R1, R2
R0  Add R2, R0
Store R0  Mem[100]
1. Instructions are fixed. Remove
“Fetch”
2. Remove unused ALU ops
3. Remove unused Load / Store
4. Wire up registers properly! And
propagate state.
R0  Load Mem[100]
R1  Load Mem[101]
R2  Load #42
R2  Mul R1, R2
R0  Add R2, R0
Store R0  Mem[100]
1. Instructions are fixed. Remove
“Fetch”
2. Remove unused ALU ops
3. Remove unused Load / Store
4. Wire up registers properly! And
propagate state.
5. Remove dead data.
R0  Load Mem[100]
R1  Load Mem[101]
R2  Load #42
R2  Mul R1, R2
R0  Add R2, R0
Store R0  Mem[100]
1. Instructions are fixed. Remove
“Fetch”
2. Remove unused ALU ops
3. Remove unused Load / Store
4. Wire up registers properly! And
propagate state.
5. Remove dead data.
6. Reschedule!
Load Load
Store
42
FPGA datapath =Your algorithm, in silicon
Build exactly what you need:
Operations
Data widths
Memory size, configuration
Efficiency:
Throughput / Latency / Power
Accelerator
LocalMem
GlobalMem
LocalMemLocalMemLocalMem
AcceleratorAcceleratorAcceleratorProcessor
Accelerator
LocalMem
GlobalMem
LocalMemLocalMemLocalMem
AcceleratorAcceleratorAcceleratorProcessor
Host Accelerator
LocalMem
GlobalMem
LocalMemLocalMemLocalMem
AcceleratorAcceleratorAcceleratorProcessor
__kernel void
sum(__global float *a,
__global float *b,
__global float *y)
{
int gid = get_global_id(0);
y[gid] = a[gid] + b[gid];
}
main() {
read_data( … );
maninpulate( … );
clEnqueueWriteBuffer( … );
clEnqueueNDRange(…,sum,…);
clEnqueueReadBuffer( … );
display_result( … );
}
 Host + Accelerator Programming
Model
 Sequential Host program on
microprocessor
 Function offload onto a highly parallel
accelerator device
IPIP
EMIF
IP
Processor
Rest of the System ?
HLSvoid F(...) {
#pragma ...
for(int i ...) {
#pragma ...
for(int j ...) {
#pragma ...
}
}
}
RTL
OpenCL
kernel void F(...) {
for(int i ...) {
for(int j ...) {
}
}
}
?
Complete Platform
C-to-HW tools
Standard OpenCL
Users
Hardware
Designers
Target
FPGA
Only
FPGA
Expertise
Yes
Timing
Closure
Manual
Users
Software
Programmers
Target
Complete
Platforms
FPGA
Expertise
No
Timing
Closure
Automatic
 OpenCL kernels expresses parallelism explicitly
__kernel void
sum(__global const float *a,
__global const float *b,
__global float *answer)
{
int xid = get_global_id(0);
answer[xid] = a[xid] + b[xid];
}
for (int i=0; i < n; i++)
{
answer[i] = a[i] + b[i];
}
Host Code Kernel Code
setup_memory_buffers();
transfer_data_to_fpga();
size_t global_size = {N, 1, 1};
clEnqueueNDRangeKernel(
sum_kernel, .., &global_size, ..);
read_data_from_fpga();
 To achieve acceleration, we can pipeline each iteration of the
loop
 Analyze any dependencies between iterations
 Schedule these operations
 Launch the next iteration as soon as possible
float array[M];
for (int i=0; i < n*numSets; i++)
{
for (int j=0; j < M-1; j++)
array[j] = array[j+1];
array[M-1] = a[i];
for (int j=0; j < M; j++)
answer[i] += array[j] * coefs[j];
}
At this point, we can
launch the next
iteration
 No Loop Pipelining
i0
i1
i2
i0
i1
i2
i3
i4
Looks almost
like parallel
thread
execution!
 With Loop Pipelining
z-1
z-1
z-1
z-1
z-1
z-1
z-1
X X X X X X X X
C0 C1 C2 C3 C4 C5 C6 C7
x(n)
+
y(n)
 Q&A
 ThankYou!

More Related Content

What's hot

Introduction to FinFET
Introduction to FinFETIntroduction to FinFET
Introduction to FinFETManishKenchi
 
Vlsi Summer training report pdf
Vlsi Summer training report pdfVlsi Summer training report pdf
Vlsi Summer training report pdfGirjeshVerma2
 
Low power vlsi design ppt
Low power vlsi design pptLow power vlsi design ppt
Low power vlsi design pptAnil Yadav
 
Introduction to VLSI
Introduction to VLSIIntroduction to VLSI
Introduction to VLSIShams Tabrej
 
MOSFET and Short channel effects
MOSFET and Short channel effectsMOSFET and Short channel effects
MOSFET and Short channel effectsLee Rather
 
Fundamentals of FPGA
Fundamentals of FPGAFundamentals of FPGA
Fundamentals of FPGAvelamakuri
 
Verilog data types -For beginners
Verilog data types -For beginnersVerilog data types -For beginners
Verilog data types -For beginnersDr.YNM
 
VLSI Systems & Design
VLSI Systems & DesignVLSI Systems & Design
VLSI Systems & DesignAakash Mishra
 
Vlsi technology-dinesh
Vlsi technology-dineshVlsi technology-dinesh
Vlsi technology-dineshdinesh kumar
 
NMOS fabrication process
NMOS fabrication processNMOS fabrication process
NMOS fabrication processSemi Design
 
Ultra-thin body SOI MOSFETs: Term Paper_class presentation on Advanced topics...
Ultra-thin body SOI MOSFETs: Term Paper_class presentation on Advanced topics...Ultra-thin body SOI MOSFETs: Term Paper_class presentation on Advanced topics...
Ultra-thin body SOI MOSFETs: Term Paper_class presentation on Advanced topics...prajon
 
VLSI Introduction to PSPICE
VLSI Introduction to PSPICEVLSI Introduction to PSPICE
VLSI Introduction to PSPICEAbhishekvb
 

What's hot (20)

Introduction to FinFET
Introduction to FinFETIntroduction to FinFET
Introduction to FinFET
 
Vlsi Summer training report pdf
Vlsi Summer training report pdfVlsi Summer training report pdf
Vlsi Summer training report pdf
 
EMIR.pdf
EMIR.pdfEMIR.pdf
EMIR.pdf
 
DSP by FPGA
DSP by FPGADSP by FPGA
DSP by FPGA
 
Low power vlsi design ppt
Low power vlsi design pptLow power vlsi design ppt
Low power vlsi design ppt
 
Introduction to VLSI
Introduction to VLSIIntroduction to VLSI
Introduction to VLSI
 
MOSFET and Short channel effects
MOSFET and Short channel effectsMOSFET and Short channel effects
MOSFET and Short channel effects
 
Vlsi design 11
Vlsi design 11Vlsi design 11
Vlsi design 11
 
Fundamentals of FPGA
Fundamentals of FPGAFundamentals of FPGA
Fundamentals of FPGA
 
Verilog data types -For beginners
Verilog data types -For beginnersVerilog data types -For beginners
Verilog data types -For beginners
 
VLSI Systems & Design
VLSI Systems & DesignVLSI Systems & Design
VLSI Systems & Design
 
Vlsi
VlsiVlsi
Vlsi
 
finfet tsmc.pdf
finfet tsmc.pdffinfet tsmc.pdf
finfet tsmc.pdf
 
Vlsi technology-dinesh
Vlsi technology-dineshVlsi technology-dinesh
Vlsi technology-dinesh
 
NMOS fabrication process
NMOS fabrication processNMOS fabrication process
NMOS fabrication process
 
Asic design
Asic designAsic design
Asic design
 
Ultra-thin body SOI MOSFETs: Term Paper_class presentation on Advanced topics...
Ultra-thin body SOI MOSFETs: Term Paper_class presentation on Advanced topics...Ultra-thin body SOI MOSFETs: Term Paper_class presentation on Advanced topics...
Ultra-thin body SOI MOSFETs: Term Paper_class presentation on Advanced topics...
 
Velosity saturation
Velosity saturationVelosity saturation
Velosity saturation
 
VLSI Introduction to PSPICE
VLSI Introduction to PSPICEVLSI Introduction to PSPICE
VLSI Introduction to PSPICE
 
WDM Basics
WDM BasicsWDM Basics
WDM Basics
 

Viewers also liked

Developing an embedded video application on dual Linux + FPGA architecture
Developing an embedded video application on dual Linux + FPGA architectureDeveloping an embedded video application on dual Linux + FPGA architecture
Developing an embedded video application on dual Linux + FPGA architectureChristian Charreyre
 
FPGA Architecture Presentation
FPGA Architecture PresentationFPGA Architecture Presentation
FPGA Architecture Presentationomutukuda
 
FPGA Applications in Finance
FPGA Applications in FinanceFPGA Applications in Finance
FPGA Applications in Financezpektral
 
Speech Reognition Using FPGA Technology
Speech Reognition Using FPGA TechnologySpeech Reognition Using FPGA Technology
Speech Reognition Using FPGA TechnologyCarlos
 
Speech Recognition System By Matlab
Speech Recognition System By MatlabSpeech Recognition System By Matlab
Speech Recognition System By MatlabAnkit Gujrati
 

Viewers also liked (6)

Developing an embedded video application on dual Linux + FPGA architecture
Developing an embedded video application on dual Linux + FPGA architectureDeveloping an embedded video application on dual Linux + FPGA architecture
Developing an embedded video application on dual Linux + FPGA architecture
 
FPGA Architecture Presentation
FPGA Architecture PresentationFPGA Architecture Presentation
FPGA Architecture Presentation
 
FPGA Applications in Finance
FPGA Applications in FinanceFPGA Applications in Finance
FPGA Applications in Finance
 
Speech Reognition Using FPGA Technology
Speech Reognition Using FPGA TechnologySpeech Reognition Using FPGA Technology
Speech Reognition Using FPGA Technology
 
SoC FPGA Technology
SoC FPGA TechnologySoC FPGA Technology
SoC FPGA Technology
 
Speech Recognition System By Matlab
Speech Recognition System By MatlabSpeech Recognition System By Matlab
Speech Recognition System By Matlab
 

Similar to What is FPGA?

NIOS II Processor.ppt
NIOS II Processor.pptNIOS II Processor.ppt
NIOS II Processor.pptAtef46
 
Introduction to FPGA, VHDL
Introduction to FPGA, VHDL  Introduction to FPGA, VHDL
Introduction to FPGA, VHDL Amr Rashed
 
UNIT 3 - General Purpose Processors
UNIT 3 - General Purpose ProcessorsUNIT 3 - General Purpose Processors
UNIT 3 - General Purpose ProcessorsButtaRajasekhar2
 
VLSI design Dr B.jagadeesh UNIT-5.pptx
VLSI design Dr B.jagadeesh   UNIT-5.pptxVLSI design Dr B.jagadeesh   UNIT-5.pptx
VLSI design Dr B.jagadeesh UNIT-5.pptxjagadeesh276791
 
Track h asic prototyping - logtel
Track h   asic prototyping - logtelTrack h   asic prototyping - logtel
Track h asic prototyping - logtelchiportal
 
Track h asic prototyping - logtel
Track h   asic prototyping - logtelTrack h   asic prototyping - logtel
Track h asic prototyping - logtelchiportal
 
20081114 Friday Food iLabt Bart Joris
20081114 Friday Food iLabt Bart Joris20081114 Friday Food iLabt Bart Joris
20081114 Friday Food iLabt Bart Jorisimec.archive
 
System design using HDL - Module 3
System design using HDL - Module 3System design using HDL - Module 3
System design using HDL - Module 3Aravinda Koithyar
 
FPGA Overview
FPGA OverviewFPGA Overview
FPGA OverviewMetalMath
 
Embedded systems-unit-1
Embedded systems-unit-1Embedded systems-unit-1
Embedded systems-unit-1Prabhu Mali
 
1. FPGA architectures.pdf
1. FPGA architectures.pdf1. FPGA architectures.pdf
1. FPGA architectures.pdfTesfuFiseha1
 
Programable logic controller.pdf
Programable logic controller.pdfProgramable logic controller.pdf
Programable logic controller.pdfsravan66
 

Similar to What is FPGA? (20)

Snug
SnugSnug
Snug
 
NIOS II Processor.ppt
NIOS II Processor.pptNIOS II Processor.ppt
NIOS II Processor.ppt
 
Introduction to FPGA, VHDL
Introduction to FPGA, VHDL  Introduction to FPGA, VHDL
Introduction to FPGA, VHDL
 
UNIT 3 - General Purpose Processors
UNIT 3 - General Purpose ProcessorsUNIT 3 - General Purpose Processors
UNIT 3 - General Purpose Processors
 
VLSI design Dr B.jagadeesh UNIT-5.pptx
VLSI design Dr B.jagadeesh   UNIT-5.pptxVLSI design Dr B.jagadeesh   UNIT-5.pptx
VLSI design Dr B.jagadeesh UNIT-5.pptx
 
Track h asic prototyping - logtel
Track h   asic prototyping - logtelTrack h   asic prototyping - logtel
Track h asic prototyping - logtel
 
Track h asic prototyping - logtel
Track h   asic prototyping - logtelTrack h   asic prototyping - logtel
Track h asic prototyping - logtel
 
20081114 Friday Food iLabt Bart Joris
20081114 Friday Food iLabt Bart Joris20081114 Friday Food iLabt Bart Joris
20081114 Friday Food iLabt Bart Joris
 
System design using HDL - Module 3
System design using HDL - Module 3System design using HDL - Module 3
System design using HDL - Module 3
 
Introduction to Blackfin BF532 DSP
Introduction to Blackfin BF532 DSPIntroduction to Blackfin BF532 DSP
Introduction to Blackfin BF532 DSP
 
FPGA Overview
FPGA OverviewFPGA Overview
FPGA Overview
 
Embedded systems-unit-1
Embedded systems-unit-1Embedded systems-unit-1
Embedded systems-unit-1
 
Fpg as 11 body
Fpg as 11 bodyFpg as 11 body
Fpg as 11 body
 
1. FPGA architectures.pdf
1. FPGA architectures.pdf1. FPGA architectures.pdf
1. FPGA architectures.pdf
 
Dpdk applications
Dpdk applicationsDpdk applications
Dpdk applications
 
Fpga Knowledge
Fpga KnowledgeFpga Knowledge
Fpga Knowledge
 
Introduction to EDA Tools
Introduction to EDA ToolsIntroduction to EDA Tools
Introduction to EDA Tools
 
Altera trcak g
Altera  trcak gAltera  trcak g
Altera trcak g
 
Programable logic controller.pdf
Programable logic controller.pdfProgramable logic controller.pdf
Programable logic controller.pdf
 
Using FPGA in Embedded Devices
Using FPGA in Embedded DevicesUsing FPGA in Embedded Devices
Using FPGA in Embedded Devices
 

More from GlobalLogic Ukraine

GlobalLogic JavaScript Community Webinar #18 “Long Story Short: OSI Model”
GlobalLogic JavaScript Community Webinar #18 “Long Story Short: OSI Model”GlobalLogic JavaScript Community Webinar #18 “Long Story Short: OSI Model”
GlobalLogic JavaScript Community Webinar #18 “Long Story Short: OSI Model”GlobalLogic Ukraine
 
Штучний інтелект як допомога в навчанні, а не замінник.pptx
Штучний інтелект як допомога в навчанні, а не замінник.pptxШтучний інтелект як допомога в навчанні, а не замінник.pptx
Штучний інтелект як допомога в навчанні, а не замінник.pptxGlobalLogic Ukraine
 
Задачі AI-розробника як застосовується штучний інтелект.pptx
Задачі AI-розробника як застосовується штучний інтелект.pptxЗадачі AI-розробника як застосовується штучний інтелект.pptx
Задачі AI-розробника як застосовується штучний інтелект.pptxGlobalLogic Ukraine
 
Що треба вивчати, щоб стати розробником штучного інтелекту та нейромереж.pptx
Що треба вивчати, щоб стати розробником штучного інтелекту та нейромереж.pptxЩо треба вивчати, щоб стати розробником штучного інтелекту та нейромереж.pptx
Що треба вивчати, щоб стати розробником штучного інтелекту та нейромереж.pptxGlobalLogic Ukraine
 
GlobalLogic Java Community Webinar #16 “Zaloni’s Architecture for Data-Driven...
GlobalLogic Java Community Webinar #16 “Zaloni’s Architecture for Data-Driven...GlobalLogic Java Community Webinar #16 “Zaloni’s Architecture for Data-Driven...
GlobalLogic Java Community Webinar #16 “Zaloni’s Architecture for Data-Driven...GlobalLogic Ukraine
 
JavaScript Community Webinar #14 "Why Is Git Rebase?"
JavaScript Community Webinar #14 "Why Is Git Rebase?"JavaScript Community Webinar #14 "Why Is Git Rebase?"
JavaScript Community Webinar #14 "Why Is Git Rebase?"GlobalLogic Ukraine
 
GlobalLogic .NET Community Webinar #3 "Exploring Serverless with Azure Functi...
GlobalLogic .NET Community Webinar #3 "Exploring Serverless with Azure Functi...GlobalLogic .NET Community Webinar #3 "Exploring Serverless with Azure Functi...
GlobalLogic .NET Community Webinar #3 "Exploring Serverless with Azure Functi...GlobalLogic Ukraine
 
Страх і сила помилок - IT Inside від GlobalLogic Education
Страх і сила помилок - IT Inside від GlobalLogic EducationСтрах і сила помилок - IT Inside від GlobalLogic Education
Страх і сила помилок - IT Inside від GlobalLogic EducationGlobalLogic Ukraine
 
GlobalLogic .NET Webinar #2 “Azure RBAC and Managed Identity”
GlobalLogic .NET Webinar #2 “Azure RBAC and Managed Identity”GlobalLogic .NET Webinar #2 “Azure RBAC and Managed Identity”
GlobalLogic .NET Webinar #2 “Azure RBAC and Managed Identity”GlobalLogic Ukraine
 
GlobalLogic QA Webinar “What does it take to become a Test Engineer”
GlobalLogic QA Webinar “What does it take to become a Test Engineer”GlobalLogic QA Webinar “What does it take to become a Test Engineer”
GlobalLogic QA Webinar “What does it take to become a Test Engineer”GlobalLogic Ukraine
 
“How to Secure Your Applications With a Keycloak?
“How to Secure Your Applications With a Keycloak?“How to Secure Your Applications With a Keycloak?
“How to Secure Your Applications With a Keycloak?GlobalLogic Ukraine
 
GlobalLogic Machine Learning Webinar “Advanced Statistical Methods for Linear...
GlobalLogic Machine Learning Webinar “Advanced Statistical Methods for Linear...GlobalLogic Machine Learning Webinar “Advanced Statistical Methods for Linear...
GlobalLogic Machine Learning Webinar “Advanced Statistical Methods for Linear...GlobalLogic Ukraine
 
GlobalLogic Machine Learning Webinar “Statistical learning of linear regressi...
GlobalLogic Machine Learning Webinar “Statistical learning of linear regressi...GlobalLogic Machine Learning Webinar “Statistical learning of linear regressi...
GlobalLogic Machine Learning Webinar “Statistical learning of linear regressi...GlobalLogic Ukraine
 
GlobalLogic C++ Webinar “The Minimum Knowledge to Become a C++ Developer”
GlobalLogic C++ Webinar “The Minimum Knowledge to Become a C++ Developer”GlobalLogic C++ Webinar “The Minimum Knowledge to Become a C++ Developer”
GlobalLogic C++ Webinar “The Minimum Knowledge to Become a C++ Developer”GlobalLogic Ukraine
 
Embedded Webinar #17 "Low-level Network Testing in Embedded Devices Development"
Embedded Webinar #17 "Low-level Network Testing in Embedded Devices Development"Embedded Webinar #17 "Low-level Network Testing in Embedded Devices Development"
Embedded Webinar #17 "Low-level Network Testing in Embedded Devices Development"GlobalLogic Ukraine
 
GlobalLogic Webinar "Introduction to Embedded QA"
GlobalLogic Webinar "Introduction to Embedded QA"GlobalLogic Webinar "Introduction to Embedded QA"
GlobalLogic Webinar "Introduction to Embedded QA"GlobalLogic Ukraine
 
C++ Webinar "Why Should You Learn C++ in 2021-22?"
C++ Webinar "Why Should You Learn C++ in 2021-22?"C++ Webinar "Why Should You Learn C++ in 2021-22?"
C++ Webinar "Why Should You Learn C++ in 2021-22?"GlobalLogic Ukraine
 
GlobalLogic Test Automation Live Testing Session “Android Behind UI — Testing...
GlobalLogic Test Automation Live Testing Session “Android Behind UI — Testing...GlobalLogic Test Automation Live Testing Session “Android Behind UI — Testing...
GlobalLogic Test Automation Live Testing Session “Android Behind UI — Testing...GlobalLogic Ukraine
 
GlobalLogic Test Automation Online TechTalk “Test Driven Development as a Per...
GlobalLogic Test Automation Online TechTalk “Test Driven Development as a Per...GlobalLogic Test Automation Online TechTalk “Test Driven Development as a Per...
GlobalLogic Test Automation Online TechTalk “Test Driven Development as a Per...GlobalLogic Ukraine
 
GlobalLogic Azure TechTalk ONLINE “Marketing Data Lake in Azure”
GlobalLogic Azure TechTalk ONLINE “Marketing Data Lake in Azure”GlobalLogic Azure TechTalk ONLINE “Marketing Data Lake in Azure”
GlobalLogic Azure TechTalk ONLINE “Marketing Data Lake in Azure”GlobalLogic Ukraine
 

More from GlobalLogic Ukraine (20)

GlobalLogic JavaScript Community Webinar #18 “Long Story Short: OSI Model”
GlobalLogic JavaScript Community Webinar #18 “Long Story Short: OSI Model”GlobalLogic JavaScript Community Webinar #18 “Long Story Short: OSI Model”
GlobalLogic JavaScript Community Webinar #18 “Long Story Short: OSI Model”
 
Штучний інтелект як допомога в навчанні, а не замінник.pptx
Штучний інтелект як допомога в навчанні, а не замінник.pptxШтучний інтелект як допомога в навчанні, а не замінник.pptx
Штучний інтелект як допомога в навчанні, а не замінник.pptx
 
Задачі AI-розробника як застосовується штучний інтелект.pptx
Задачі AI-розробника як застосовується штучний інтелект.pptxЗадачі AI-розробника як застосовується штучний інтелект.pptx
Задачі AI-розробника як застосовується штучний інтелект.pptx
 
Що треба вивчати, щоб стати розробником штучного інтелекту та нейромереж.pptx
Що треба вивчати, щоб стати розробником штучного інтелекту та нейромереж.pptxЩо треба вивчати, щоб стати розробником штучного інтелекту та нейромереж.pptx
Що треба вивчати, щоб стати розробником штучного інтелекту та нейромереж.pptx
 
GlobalLogic Java Community Webinar #16 “Zaloni’s Architecture for Data-Driven...
GlobalLogic Java Community Webinar #16 “Zaloni’s Architecture for Data-Driven...GlobalLogic Java Community Webinar #16 “Zaloni’s Architecture for Data-Driven...
GlobalLogic Java Community Webinar #16 “Zaloni’s Architecture for Data-Driven...
 
JavaScript Community Webinar #14 "Why Is Git Rebase?"
JavaScript Community Webinar #14 "Why Is Git Rebase?"JavaScript Community Webinar #14 "Why Is Git Rebase?"
JavaScript Community Webinar #14 "Why Is Git Rebase?"
 
GlobalLogic .NET Community Webinar #3 "Exploring Serverless with Azure Functi...
GlobalLogic .NET Community Webinar #3 "Exploring Serverless with Azure Functi...GlobalLogic .NET Community Webinar #3 "Exploring Serverless with Azure Functi...
GlobalLogic .NET Community Webinar #3 "Exploring Serverless with Azure Functi...
 
Страх і сила помилок - IT Inside від GlobalLogic Education
Страх і сила помилок - IT Inside від GlobalLogic EducationСтрах і сила помилок - IT Inside від GlobalLogic Education
Страх і сила помилок - IT Inside від GlobalLogic Education
 
GlobalLogic .NET Webinar #2 “Azure RBAC and Managed Identity”
GlobalLogic .NET Webinar #2 “Azure RBAC and Managed Identity”GlobalLogic .NET Webinar #2 “Azure RBAC and Managed Identity”
GlobalLogic .NET Webinar #2 “Azure RBAC and Managed Identity”
 
GlobalLogic QA Webinar “What does it take to become a Test Engineer”
GlobalLogic QA Webinar “What does it take to become a Test Engineer”GlobalLogic QA Webinar “What does it take to become a Test Engineer”
GlobalLogic QA Webinar “What does it take to become a Test Engineer”
 
“How to Secure Your Applications With a Keycloak?
“How to Secure Your Applications With a Keycloak?“How to Secure Your Applications With a Keycloak?
“How to Secure Your Applications With a Keycloak?
 
GlobalLogic Machine Learning Webinar “Advanced Statistical Methods for Linear...
GlobalLogic Machine Learning Webinar “Advanced Statistical Methods for Linear...GlobalLogic Machine Learning Webinar “Advanced Statistical Methods for Linear...
GlobalLogic Machine Learning Webinar “Advanced Statistical Methods for Linear...
 
GlobalLogic Machine Learning Webinar “Statistical learning of linear regressi...
GlobalLogic Machine Learning Webinar “Statistical learning of linear regressi...GlobalLogic Machine Learning Webinar “Statistical learning of linear regressi...
GlobalLogic Machine Learning Webinar “Statistical learning of linear regressi...
 
GlobalLogic C++ Webinar “The Minimum Knowledge to Become a C++ Developer”
GlobalLogic C++ Webinar “The Minimum Knowledge to Become a C++ Developer”GlobalLogic C++ Webinar “The Minimum Knowledge to Become a C++ Developer”
GlobalLogic C++ Webinar “The Minimum Knowledge to Become a C++ Developer”
 
Embedded Webinar #17 "Low-level Network Testing in Embedded Devices Development"
Embedded Webinar #17 "Low-level Network Testing in Embedded Devices Development"Embedded Webinar #17 "Low-level Network Testing in Embedded Devices Development"
Embedded Webinar #17 "Low-level Network Testing in Embedded Devices Development"
 
GlobalLogic Webinar "Introduction to Embedded QA"
GlobalLogic Webinar "Introduction to Embedded QA"GlobalLogic Webinar "Introduction to Embedded QA"
GlobalLogic Webinar "Introduction to Embedded QA"
 
C++ Webinar "Why Should You Learn C++ in 2021-22?"
C++ Webinar "Why Should You Learn C++ in 2021-22?"C++ Webinar "Why Should You Learn C++ in 2021-22?"
C++ Webinar "Why Should You Learn C++ in 2021-22?"
 
GlobalLogic Test Automation Live Testing Session “Android Behind UI — Testing...
GlobalLogic Test Automation Live Testing Session “Android Behind UI — Testing...GlobalLogic Test Automation Live Testing Session “Android Behind UI — Testing...
GlobalLogic Test Automation Live Testing Session “Android Behind UI — Testing...
 
GlobalLogic Test Automation Online TechTalk “Test Driven Development as a Per...
GlobalLogic Test Automation Online TechTalk “Test Driven Development as a Per...GlobalLogic Test Automation Online TechTalk “Test Driven Development as a Per...
GlobalLogic Test Automation Online TechTalk “Test Driven Development as a Per...
 
GlobalLogic Azure TechTalk ONLINE “Marketing Data Lake in Azure”
GlobalLogic Azure TechTalk ONLINE “Marketing Data Lake in Azure”GlobalLogic Azure TechTalk ONLINE “Marketing Data Lake in Azure”
GlobalLogic Azure TechTalk ONLINE “Marketing Data Lake in Azure”
 

Recently uploaded

Introduction to IEEE STANDARDS and its different types.pptx
Introduction to IEEE STANDARDS and its different types.pptxIntroduction to IEEE STANDARDS and its different types.pptx
Introduction to IEEE STANDARDS and its different types.pptxupamatechverse
 
MANUFACTURING PROCESS-II UNIT-1 THEORY OF METAL CUTTING
MANUFACTURING PROCESS-II UNIT-1 THEORY OF METAL CUTTINGMANUFACTURING PROCESS-II UNIT-1 THEORY OF METAL CUTTING
MANUFACTURING PROCESS-II UNIT-1 THEORY OF METAL CUTTINGSIVASHANKAR N
 
BSides Seattle 2024 - Stopping Ethan Hunt From Taking Your Data.pptx
BSides Seattle 2024 - Stopping Ethan Hunt From Taking Your Data.pptxBSides Seattle 2024 - Stopping Ethan Hunt From Taking Your Data.pptx
BSides Seattle 2024 - Stopping Ethan Hunt From Taking Your Data.pptxfenichawla
 
Structural Analysis and Design of Foundations: A Comprehensive Handbook for S...
Structural Analysis and Design of Foundations: A Comprehensive Handbook for S...Structural Analysis and Design of Foundations: A Comprehensive Handbook for S...
Structural Analysis and Design of Foundations: A Comprehensive Handbook for S...Dr.Costas Sachpazis
 
Sheet Pile Wall Design and Construction: A Practical Guide for Civil Engineer...
Sheet Pile Wall Design and Construction: A Practical Guide for Civil Engineer...Sheet Pile Wall Design and Construction: A Practical Guide for Civil Engineer...
Sheet Pile Wall Design and Construction: A Practical Guide for Civil Engineer...Dr.Costas Sachpazis
 
Call Girls Service Nashik Vaishnavi 7001305949 Independent Escort Service Nashik
Call Girls Service Nashik Vaishnavi 7001305949 Independent Escort Service NashikCall Girls Service Nashik Vaishnavi 7001305949 Independent Escort Service Nashik
Call Girls Service Nashik Vaishnavi 7001305949 Independent Escort Service NashikCall Girls in Nagpur High Profile
 
Call Girls Pimpri Chinchwad Call Me 7737669865 Budget Friendly No Advance Boo...
Call Girls Pimpri Chinchwad Call Me 7737669865 Budget Friendly No Advance Boo...Call Girls Pimpri Chinchwad Call Me 7737669865 Budget Friendly No Advance Boo...
Call Girls Pimpri Chinchwad Call Me 7737669865 Budget Friendly No Advance Boo...roncy bisnoi
 
Java Programming :Event Handling(Types of Events)
Java Programming :Event Handling(Types of Events)Java Programming :Event Handling(Types of Events)
Java Programming :Event Handling(Types of Events)simmis5
 
(PRIYA) Rajgurunagar Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...
(PRIYA) Rajgurunagar Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...(PRIYA) Rajgurunagar Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...
(PRIYA) Rajgurunagar Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...ranjana rawat
 
Booking open Available Pune Call Girls Pargaon 6297143586 Call Hot Indian Gi...
Booking open Available Pune Call Girls Pargaon  6297143586 Call Hot Indian Gi...Booking open Available Pune Call Girls Pargaon  6297143586 Call Hot Indian Gi...
Booking open Available Pune Call Girls Pargaon 6297143586 Call Hot Indian Gi...Call Girls in Nagpur High Profile
 
VIP Call Girls Ankleshwar 7001035870 Whatsapp Number, 24/07 Booking
VIP Call Girls Ankleshwar 7001035870 Whatsapp Number, 24/07 BookingVIP Call Girls Ankleshwar 7001035870 Whatsapp Number, 24/07 Booking
VIP Call Girls Ankleshwar 7001035870 Whatsapp Number, 24/07 Bookingdharasingh5698
 
Call for Papers - Educational Administration: Theory and Practice, E-ISSN: 21...
Call for Papers - Educational Administration: Theory and Practice, E-ISSN: 21...Call for Papers - Educational Administration: Theory and Practice, E-ISSN: 21...
Call for Papers - Educational Administration: Theory and Practice, E-ISSN: 21...Christo Ananth
 
(SHREYA) Chakan Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Esc...
(SHREYA) Chakan Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Esc...(SHREYA) Chakan Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Esc...
(SHREYA) Chakan Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Esc...ranjana rawat
 
High Profile Call Girls Nagpur Isha Call 7001035870 Meet With Nagpur Escorts
High Profile Call Girls Nagpur Isha Call 7001035870 Meet With Nagpur EscortsHigh Profile Call Girls Nagpur Isha Call 7001035870 Meet With Nagpur Escorts
High Profile Call Girls Nagpur Isha Call 7001035870 Meet With Nagpur Escortsranjana rawat
 
Processing & Properties of Floor and Wall Tiles.pptx
Processing & Properties of Floor and Wall Tiles.pptxProcessing & Properties of Floor and Wall Tiles.pptx
Processing & Properties of Floor and Wall Tiles.pptxpranjaldaimarysona
 
University management System project report..pdf
University management System project report..pdfUniversity management System project report..pdf
University management System project report..pdfKamal Acharya
 
ONLINE FOOD ORDER SYSTEM PROJECT REPORT.pdf
ONLINE FOOD ORDER SYSTEM PROJECT REPORT.pdfONLINE FOOD ORDER SYSTEM PROJECT REPORT.pdf
ONLINE FOOD ORDER SYSTEM PROJECT REPORT.pdfKamal Acharya
 
Introduction and different types of Ethernet.pptx
Introduction and different types of Ethernet.pptxIntroduction and different types of Ethernet.pptx
Introduction and different types of Ethernet.pptxupamatechverse
 

Recently uploaded (20)

Introduction to IEEE STANDARDS and its different types.pptx
Introduction to IEEE STANDARDS and its different types.pptxIntroduction to IEEE STANDARDS and its different types.pptx
Introduction to IEEE STANDARDS and its different types.pptx
 
MANUFACTURING PROCESS-II UNIT-1 THEORY OF METAL CUTTING
MANUFACTURING PROCESS-II UNIT-1 THEORY OF METAL CUTTINGMANUFACTURING PROCESS-II UNIT-1 THEORY OF METAL CUTTING
MANUFACTURING PROCESS-II UNIT-1 THEORY OF METAL CUTTING
 
(INDIRA) Call Girl Aurangabad Call Now 8617697112 Aurangabad Escorts 24x7
(INDIRA) Call Girl Aurangabad Call Now 8617697112 Aurangabad Escorts 24x7(INDIRA) Call Girl Aurangabad Call Now 8617697112 Aurangabad Escorts 24x7
(INDIRA) Call Girl Aurangabad Call Now 8617697112 Aurangabad Escorts 24x7
 
BSides Seattle 2024 - Stopping Ethan Hunt From Taking Your Data.pptx
BSides Seattle 2024 - Stopping Ethan Hunt From Taking Your Data.pptxBSides Seattle 2024 - Stopping Ethan Hunt From Taking Your Data.pptx
BSides Seattle 2024 - Stopping Ethan Hunt From Taking Your Data.pptx
 
Structural Analysis and Design of Foundations: A Comprehensive Handbook for S...
Structural Analysis and Design of Foundations: A Comprehensive Handbook for S...Structural Analysis and Design of Foundations: A Comprehensive Handbook for S...
Structural Analysis and Design of Foundations: A Comprehensive Handbook for S...
 
Sheet Pile Wall Design and Construction: A Practical Guide for Civil Engineer...
Sheet Pile Wall Design and Construction: A Practical Guide for Civil Engineer...Sheet Pile Wall Design and Construction: A Practical Guide for Civil Engineer...
Sheet Pile Wall Design and Construction: A Practical Guide for Civil Engineer...
 
Call Girls Service Nashik Vaishnavi 7001305949 Independent Escort Service Nashik
Call Girls Service Nashik Vaishnavi 7001305949 Independent Escort Service NashikCall Girls Service Nashik Vaishnavi 7001305949 Independent Escort Service Nashik
Call Girls Service Nashik Vaishnavi 7001305949 Independent Escort Service Nashik
 
Call Girls Pimpri Chinchwad Call Me 7737669865 Budget Friendly No Advance Boo...
Call Girls Pimpri Chinchwad Call Me 7737669865 Budget Friendly No Advance Boo...Call Girls Pimpri Chinchwad Call Me 7737669865 Budget Friendly No Advance Boo...
Call Girls Pimpri Chinchwad Call Me 7737669865 Budget Friendly No Advance Boo...
 
Java Programming :Event Handling(Types of Events)
Java Programming :Event Handling(Types of Events)Java Programming :Event Handling(Types of Events)
Java Programming :Event Handling(Types of Events)
 
(PRIYA) Rajgurunagar Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...
(PRIYA) Rajgurunagar Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...(PRIYA) Rajgurunagar Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...
(PRIYA) Rajgurunagar Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...
 
Booking open Available Pune Call Girls Pargaon 6297143586 Call Hot Indian Gi...
Booking open Available Pune Call Girls Pargaon  6297143586 Call Hot Indian Gi...Booking open Available Pune Call Girls Pargaon  6297143586 Call Hot Indian Gi...
Booking open Available Pune Call Girls Pargaon 6297143586 Call Hot Indian Gi...
 
VIP Call Girls Ankleshwar 7001035870 Whatsapp Number, 24/07 Booking
VIP Call Girls Ankleshwar 7001035870 Whatsapp Number, 24/07 BookingVIP Call Girls Ankleshwar 7001035870 Whatsapp Number, 24/07 Booking
VIP Call Girls Ankleshwar 7001035870 Whatsapp Number, 24/07 Booking
 
Call for Papers - Educational Administration: Theory and Practice, E-ISSN: 21...
Call for Papers - Educational Administration: Theory and Practice, E-ISSN: 21...Call for Papers - Educational Administration: Theory and Practice, E-ISSN: 21...
Call for Papers - Educational Administration: Theory and Practice, E-ISSN: 21...
 
(SHREYA) Chakan Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Esc...
(SHREYA) Chakan Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Esc...(SHREYA) Chakan Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Esc...
(SHREYA) Chakan Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Esc...
 
High Profile Call Girls Nagpur Isha Call 7001035870 Meet With Nagpur Escorts
High Profile Call Girls Nagpur Isha Call 7001035870 Meet With Nagpur EscortsHigh Profile Call Girls Nagpur Isha Call 7001035870 Meet With Nagpur Escorts
High Profile Call Girls Nagpur Isha Call 7001035870 Meet With Nagpur Escorts
 
Water Industry Process Automation & Control Monthly - April 2024
Water Industry Process Automation & Control Monthly - April 2024Water Industry Process Automation & Control Monthly - April 2024
Water Industry Process Automation & Control Monthly - April 2024
 
Processing & Properties of Floor and Wall Tiles.pptx
Processing & Properties of Floor and Wall Tiles.pptxProcessing & Properties of Floor and Wall Tiles.pptx
Processing & Properties of Floor and Wall Tiles.pptx
 
University management System project report..pdf
University management System project report..pdfUniversity management System project report..pdf
University management System project report..pdf
 
ONLINE FOOD ORDER SYSTEM PROJECT REPORT.pdf
ONLINE FOOD ORDER SYSTEM PROJECT REPORT.pdfONLINE FOOD ORDER SYSTEM PROJECT REPORT.pdf
ONLINE FOOD ORDER SYSTEM PROJECT REPORT.pdf
 
Introduction and different types of Ethernet.pptx
Introduction and different types of Ethernet.pptxIntroduction and different types of Ethernet.pptx
Introduction and different types of Ethernet.pptx
 

What is FPGA?

  • 1.
  • 2.  Programmable Logic  Evolution:TTL  PLA  CPLD  FPGA  ASIC  Development aspects  Using FPGA for high speed data processing  OpenCL
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.  General features of logic implementations  Sum of products (AND-OR gates, combinatorial logic)  Stored results (registered outputs)  Wired together  What if  Logic functions were fixed (likeTTL), but combined into a single device?  Wiring (routing) connections could be controlled (programmed) somehow?
  • 11.  Simplest implementation of programmable logic  Logic gates and registers are fixed  Programmable sum of products array and output control
  • 12.  Fewer devices required  Lower cost  Power savings  Simpler to test and debug  Design security (prevent reverse engineering)  Design flexibility  Automated tools simplify and consolidate design flow  In-system reprogrammability! (in some cases)
  • 13.  Arrange multiple PAL arrays in a single device
  • 14.  Combine multiple PLDs in single device with programmable interconnect and I/O
  • 15.  Ample amounts of logic and advanced configurable I/Os  Programmable routing  Instant on  Low cost  Non-volatile configuration  Reprogrammable
  • 16.  Higher density CPLDs don’t scale well because of requires additional global routing  Rearrange LABs themselves into an array
  • 17.  LABs arranged in an array  Row and column programmable interconnect  Interconnect may span all or part of the array
  • 18.  FPGA LABs made up of logic elements (LEs) instead of product terms and macrocells  Easier to create complex functions through LE cascading
  • 19.  Replaces product term array  Combinational functions created with programmed “tables” (cascaded multiplexers)  LUT inputs are mux select lines
  • 20.  Based on LE, but includes dedicated resources & adaptive LUT (ALUT)  Improves performance and resource utilization
  • 21.  All device resources can feed into or be fed by any routing in device  Differing fixed lengths to adjust for timing  Scales linearly as density increases  Local interconnect  Connects between Les or ALMs within a LAB  Can include direct connections between adjacent LABs  Row and column interconnect  Fixed length routing segments  Span a number of LABs or entire device
  • 22.  Embedded multipliers  Useful for DSP  High-performance multiply/add/accumulate operations  Memory blocks  High-speed transceivers  Replace some LABs with dedicated functional hardware blocks  PLLs  SDRAM controllers  Hard Processor System
  • 23.
  • 24.  FPGA programming information must be stored somewhere to program device at power on  Use external EEPROM, CPLD or CPU to program  Two programming methods  Active: FPGA controls programming sequence automatically at power on  Passive: Intelligent host (typically CPU) controls programming  Also programmable through JTAG connection
  • 25.  High density to create many complex logic functions  High performance  Low cost  Integration of many functions  Many available I/O standards and features  Fast programming
  • 26.  A true ASIC: no configuration at power-on required  Create and test design with FPGA device  Migrate design to pin–compatible, functionally equivalent ASIC device
  • 27.  Verilog Hardware Description Language  VDHL - Very high speed integrated circuits Hardware Description Language
  • 28.  Schematic design development
  • 29.  Core IP  SDRAM Controller  Ethernet PHY, CustomTransceiver PHY  PCIe PHY  SDi, Display Port  Megafunctions  PLL  I/O  Custom logic blocks
  • 30.  CPU data processing optimization  Pipelining, parallelism  OpenCL
  • 36.  Mem[100] += 42 * Mem[101]  CPU instructions: R0  Load Mem[100] R1  Load Mem[101] R2  Load #42 R2  Mul R1, R2 R0  Add R2, R0 Store R0  Mem[100]
  • 37. A A A A A R0  Load Mem[100] R1  Load Mem[101] R2  Load #42 R2  Mul R1, R2 R0  Add R2, R0 Store R0  Mem[100] A Time
  • 38. A A A A A R0  Load Mem[100] R1  Load Mem[101] R2  Load #42 R2  Mul R1, R2 R0  Add R2, R0 Store R0  Mem[100] A Space
  • 39. A A A A A R0  Load Mem[100] R1  Load Mem[101] R2  Load #42 R2  Mul R1, R2 R0  Add R2, R0 Store R0  Mem[100] A 1. Instructions are fixed. Remove “Fetch”
  • 40. A A A A A R0  Load Mem[100] R1  Load Mem[101] R2  Load #42 R2  Mul R1, R2 R0  Add R2, R0 Store R0  Mem[100] A 1. Instructions are fixed. Remove “Fetch” 2. Remove unused ALU ops
  • 41. A A A A A R0  Load Mem[100] R1  Load Mem[101] R2  Load #42 R2  Mul R1, R2 R0  Add R2, R0 Store R0  Mem[100] A 1. Instructions are fixed. Remove “Fetch” 2. Remove unused ALU ops 3. Remove unused Load / Store
  • 42. R0  Load Mem[100] R1  Load Mem[101] R2  Load #42 R2  Mul R1, R2 R0  Add R2, R0 Store R0  Mem[100] 1. Instructions are fixed. Remove “Fetch” 2. Remove unused ALU ops 3. Remove unused Load / Store 4. Wire up registers properly! And propagate state.
  • 43. R0  Load Mem[100] R1  Load Mem[101] R2  Load #42 R2  Mul R1, R2 R0  Add R2, R0 Store R0  Mem[100] 1. Instructions are fixed. Remove “Fetch” 2. Remove unused ALU ops 3. Remove unused Load / Store 4. Wire up registers properly! And propagate state. 5. Remove dead data.
  • 44. R0  Load Mem[100] R1  Load Mem[101] R2  Load #42 R2  Mul R1, R2 R0  Add R2, R0 Store R0  Mem[100] 1. Instructions are fixed. Remove “Fetch” 2. Remove unused ALU ops 3. Remove unused Load / Store 4. Wire up registers properly! And propagate state. 5. Remove dead data. 6. Reschedule!
  • 45. Load Load Store 42 FPGA datapath =Your algorithm, in silicon Build exactly what you need: Operations Data widths Memory size, configuration Efficiency: Throughput / Latency / Power
  • 46. Accelerator LocalMem GlobalMem LocalMemLocalMemLocalMem AcceleratorAcceleratorAcceleratorProcessor Accelerator LocalMem GlobalMem LocalMemLocalMemLocalMem AcceleratorAcceleratorAcceleratorProcessor Host Accelerator LocalMem GlobalMem LocalMemLocalMemLocalMem AcceleratorAcceleratorAcceleratorProcessor __kernel void sum(__global float *a, __global float *b, __global float *y) { int gid = get_global_id(0); y[gid] = a[gid] + b[gid]; } main() { read_data( … ); maninpulate( … ); clEnqueueWriteBuffer( … ); clEnqueueNDRange(…,sum,…); clEnqueueReadBuffer( … ); display_result( … ); }  Host + Accelerator Programming Model  Sequential Host program on microprocessor  Function offload onto a highly parallel accelerator device
  • 47. IPIP EMIF IP Processor Rest of the System ? HLSvoid F(...) { #pragma ... for(int i ...) { #pragma ... for(int j ...) { #pragma ... } } } RTL OpenCL kernel void F(...) { for(int i ...) { for(int j ...) { } } } ? Complete Platform C-to-HW tools Standard OpenCL Users Hardware Designers Target FPGA Only FPGA Expertise Yes Timing Closure Manual Users Software Programmers Target Complete Platforms FPGA Expertise No Timing Closure Automatic
  • 48.  OpenCL kernels expresses parallelism explicitly __kernel void sum(__global const float *a, __global const float *b, __global float *answer) { int xid = get_global_id(0); answer[xid] = a[xid] + b[xid]; } for (int i=0; i < n; i++) { answer[i] = a[i] + b[i]; } Host Code Kernel Code setup_memory_buffers(); transfer_data_to_fpga(); size_t global_size = {N, 1, 1}; clEnqueueNDRangeKernel( sum_kernel, .., &global_size, ..); read_data_from_fpga();
  • 49.  To achieve acceleration, we can pipeline each iteration of the loop  Analyze any dependencies between iterations  Schedule these operations  Launch the next iteration as soon as possible float array[M]; for (int i=0; i < n*numSets; i++) { for (int j=0; j < M-1; j++) array[j] = array[j+1]; array[M-1] = a[i]; for (int j=0; j < M; j++) answer[i] += array[j] * coefs[j]; } At this point, we can launch the next iteration
  • 50.  No Loop Pipelining i0 i1 i2 i0 i1 i2 i3 i4 Looks almost like parallel thread execution!  With Loop Pipelining
  • 51. z-1 z-1 z-1 z-1 z-1 z-1 z-1 X X X X X X X X C0 C1 C2 C3 C4 C5 C6 C7 x(n) + y(n)