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

POWER CONSUMPTION AT CIRCUIT OR LOGIC LEVEL IN CIRCUIT
POWER CONSUMPTION AT CIRCUIT OR LOGIC LEVEL IN CIRCUITPOWER CONSUMPTION AT CIRCUIT OR LOGIC LEVEL IN CIRCUIT
POWER CONSUMPTION AT CIRCUIT OR LOGIC LEVEL IN CIRCUITAnil Yadav
 
Intellectual property in vlsi
Intellectual property in vlsiIntellectual property in vlsi
Intellectual property in vlsiSaransh Choudhary
 
Flip Chip technology
Flip Chip technologyFlip Chip technology
Flip Chip technologyMantra VLSI
 
2019 2 testing and verification of vlsi design_verification
2019 2 testing and verification of vlsi design_verification2019 2 testing and verification of vlsi design_verification
2019 2 testing and verification of vlsi design_verificationUsha Mehta
 
Multi mode multi corner (mmmc)
Multi mode multi corner (mmmc)Multi mode multi corner (mmmc)
Multi mode multi corner (mmmc)shaik sharief
 
Define Width and Height of Core and Die (http://www.vlsisystemdesign.com/PD-F...
Define Width and Height of Core and Die (http://www.vlsisystemdesign.com/PD-F...Define Width and Height of Core and Die (http://www.vlsisystemdesign.com/PD-F...
Define Width and Height of Core and Die (http://www.vlsisystemdesign.com/PD-F...VLSI SYSTEM Design
 
Study of inter and intra chip variations
Study of inter and intra chip variationsStudy of inter and intra chip variations
Study of inter and intra chip variationsRajesh M
 
4.FPGA for dummies: Design Flow
4.FPGA for dummies: Design Flow4.FPGA for dummies: Design Flow
4.FPGA for dummies: Design FlowMaurizio Donna
 

What's hot (20)

POWER CONSUMPTION AT CIRCUIT OR LOGIC LEVEL IN CIRCUIT
POWER CONSUMPTION AT CIRCUIT OR LOGIC LEVEL IN CIRCUITPOWER CONSUMPTION AT CIRCUIT OR LOGIC LEVEL IN CIRCUIT
POWER CONSUMPTION AT CIRCUIT OR LOGIC LEVEL IN CIRCUIT
 
Intellectual property in vlsi
Intellectual property in vlsiIntellectual property in vlsi
Intellectual property in vlsi
 
Logic Synthesis
Logic SynthesisLogic Synthesis
Logic Synthesis
 
Flip Chip technology
Flip Chip technologyFlip Chip technology
Flip Chip technology
 
FPGA
FPGAFPGA
FPGA
 
FPGA Introduction
FPGA IntroductionFPGA Introduction
FPGA Introduction
 
PCI express
PCI expressPCI express
PCI express
 
Introduction to EDA Tools
Introduction to EDA ToolsIntroduction to EDA Tools
Introduction to EDA Tools
 
Signal Integrity (SI glitch)
Signal Integrity (SI glitch)Signal Integrity (SI glitch)
Signal Integrity (SI glitch)
 
2019 2 testing and verification of vlsi design_verification
2019 2 testing and verification of vlsi design_verification2019 2 testing and verification of vlsi design_verification
2019 2 testing and verification of vlsi design_verification
 
Multi mode multi corner (mmmc)
Multi mode multi corner (mmmc)Multi mode multi corner (mmmc)
Multi mode multi corner (mmmc)
 
Define Width and Height of Core and Die (http://www.vlsisystemdesign.com/PD-F...
Define Width and Height of Core and Die (http://www.vlsisystemdesign.com/PD-F...Define Width and Height of Core and Die (http://www.vlsisystemdesign.com/PD-F...
Define Width and Height of Core and Die (http://www.vlsisystemdesign.com/PD-F...
 
Study of inter and intra chip variations
Study of inter and intra chip variationsStudy of inter and intra chip variations
Study of inter and intra chip variations
 
Xilinx 4000 series
Xilinx 4000 seriesXilinx 4000 series
Xilinx 4000 series
 
FPGA
FPGAFPGA
FPGA
 
CPLD xc9500
CPLD xc9500CPLD xc9500
CPLD xc9500
 
VLSI Technology
VLSI TechnologyVLSI Technology
VLSI Technology
 
Communication Protocols (UART, SPI,I2C)
Communication Protocols (UART, SPI,I2C)Communication Protocols (UART, SPI,I2C)
Communication Protocols (UART, SPI,I2C)
 
Altera flex
Altera flexAltera flex
Altera flex
 
4.FPGA for dummies: Design Flow
4.FPGA for dummies: Design Flow4.FPGA for dummies: Design Flow
4.FPGA for dummies: Design Flow
 

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 (7)

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
 
FPGA
FPGAFPGA
FPGA
 
Speech Recognition System By Matlab
Speech Recognition System By MatlabSpeech Recognition System By Matlab
Speech Recognition System By Matlab
 

Similar to FPGA Fundamentals: Evolution, Architecture, Programming and Applications

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
 
Lecture1 - Computer Architecture
Lecture1 - Computer ArchitectureLecture1 - Computer Architecture
Lecture1 - Computer ArchitectureVolodymyr Ushenko
 

Similar to FPGA Fundamentals: Evolution, Architecture, Programming and Applications (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
 
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
 
Lecture1 - Computer Architecture
Lecture1 - Computer ArchitectureLecture1 - Computer Architecture
Lecture1 - Computer Architecture
 

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

CCS355 Neural Network & Deep Learning Unit II Notes with Question bank .pdf
CCS355 Neural Network & Deep Learning Unit II Notes with Question bank .pdfCCS355 Neural Network & Deep Learning Unit II Notes with Question bank .pdf
CCS355 Neural Network & Deep Learning Unit II Notes with Question bank .pdfAsst.prof M.Gokilavani
 
VIP Call Girls Service Kondapur Hyderabad Call +91-8250192130
VIP Call Girls Service Kondapur Hyderabad Call +91-8250192130VIP Call Girls Service Kondapur Hyderabad Call +91-8250192130
VIP Call Girls Service Kondapur Hyderabad Call +91-8250192130Suhani Kapoor
 
College Call Girls Nashik Nehal 7001305949 Independent Escort Service Nashik
College Call Girls Nashik Nehal 7001305949 Independent Escort Service NashikCollege Call Girls Nashik Nehal 7001305949 Independent Escort Service Nashik
College Call Girls Nashik Nehal 7001305949 Independent Escort Service NashikCall Girls in Nagpur High Profile
 
VIP Call Girls Service Hitech City Hyderabad Call +91-8250192130
VIP Call Girls Service Hitech City Hyderabad Call +91-8250192130VIP Call Girls Service Hitech City Hyderabad Call +91-8250192130
VIP Call Girls Service Hitech City Hyderabad Call +91-8250192130Suhani Kapoor
 
Gurgaon ✡️9711147426✨Call In girls Gurgaon Sector 51 escort service
Gurgaon ✡️9711147426✨Call In girls Gurgaon Sector 51 escort serviceGurgaon ✡️9711147426✨Call In girls Gurgaon Sector 51 escort service
Gurgaon ✡️9711147426✨Call In girls Gurgaon Sector 51 escort servicejennyeacort
 
Biology for Computer Engineers Course Handout.pptx
Biology for Computer Engineers Course Handout.pptxBiology for Computer Engineers Course Handout.pptx
Biology for Computer Engineers Course Handout.pptxDeepakSakkari2
 
Call Girls Delhi {Jodhpur} 9711199012 high profile service
Call Girls Delhi {Jodhpur} 9711199012 high profile serviceCall Girls Delhi {Jodhpur} 9711199012 high profile service
Call Girls Delhi {Jodhpur} 9711199012 high profile servicerehmti665
 
IVE Industry Focused Event - Defence Sector 2024
IVE Industry Focused Event - Defence Sector 2024IVE Industry Focused Event - Defence Sector 2024
IVE Industry Focused Event - Defence Sector 2024Mark Billinghurst
 
Current Transformer Drawing and GTP for MSETCL
Current Transformer Drawing and GTP for MSETCLCurrent Transformer Drawing and GTP for MSETCL
Current Transformer Drawing and GTP for MSETCLDeelipZope
 
power system scada applications and uses
power system scada applications and usespower system scada applications and uses
power system scada applications and usesDevarapalliHaritha
 
(ANVI) Koregaon Park Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...
(ANVI) Koregaon Park Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...(ANVI) Koregaon Park Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...
(ANVI) Koregaon Park Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...ranjana rawat
 
GDSC ASEB Gen AI study jams presentation
GDSC ASEB Gen AI study jams presentationGDSC ASEB Gen AI study jams presentation
GDSC ASEB Gen AI study jams presentationGDSCAESB
 
What are the advantages and disadvantages of membrane structures.pptx
What are the advantages and disadvantages of membrane structures.pptxWhat are the advantages and disadvantages of membrane structures.pptx
What are the advantages and disadvantages of membrane structures.pptxwendy cai
 
Oxy acetylene welding presentation note.
Oxy acetylene welding presentation note.Oxy acetylene welding presentation note.
Oxy acetylene welding presentation note.eptoze12
 
Microscopic Analysis of Ceramic Materials.pptx
Microscopic Analysis of Ceramic Materials.pptxMicroscopic Analysis of Ceramic Materials.pptx
Microscopic Analysis of Ceramic Materials.pptxpurnimasatapathy1234
 
CCS355 Neural Network & Deep Learning UNIT III notes and Question bank .pdf
CCS355 Neural Network & Deep Learning UNIT III notes and Question bank .pdfCCS355 Neural Network & Deep Learning UNIT III notes and Question bank .pdf
CCS355 Neural Network & Deep Learning UNIT III notes and Question bank .pdfAsst.prof M.Gokilavani
 
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
 
SPICE PARK APR2024 ( 6,793 SPICE Models )
SPICE PARK APR2024 ( 6,793 SPICE Models )SPICE PARK APR2024 ( 6,793 SPICE Models )
SPICE PARK APR2024 ( 6,793 SPICE Models )Tsuyoshi Horigome
 

Recently uploaded (20)

CCS355 Neural Network & Deep Learning Unit II Notes with Question bank .pdf
CCS355 Neural Network & Deep Learning Unit II Notes with Question bank .pdfCCS355 Neural Network & Deep Learning Unit II Notes with Question bank .pdf
CCS355 Neural Network & Deep Learning Unit II Notes with Question bank .pdf
 
VIP Call Girls Service Kondapur Hyderabad Call +91-8250192130
VIP Call Girls Service Kondapur Hyderabad Call +91-8250192130VIP Call Girls Service Kondapur Hyderabad Call +91-8250192130
VIP Call Girls Service Kondapur Hyderabad Call +91-8250192130
 
★ CALL US 9953330565 ( HOT Young Call Girls In Badarpur delhi NCR
★ CALL US 9953330565 ( HOT Young Call Girls In Badarpur delhi NCR★ CALL US 9953330565 ( HOT Young Call Girls In Badarpur delhi NCR
★ CALL US 9953330565 ( HOT Young Call Girls In Badarpur delhi NCR
 
College Call Girls Nashik Nehal 7001305949 Independent Escort Service Nashik
College Call Girls Nashik Nehal 7001305949 Independent Escort Service NashikCollege Call Girls Nashik Nehal 7001305949 Independent Escort Service Nashik
College Call Girls Nashik Nehal 7001305949 Independent Escort Service Nashik
 
VIP Call Girls Service Hitech City Hyderabad Call +91-8250192130
VIP Call Girls Service Hitech City Hyderabad Call +91-8250192130VIP Call Girls Service Hitech City Hyderabad Call +91-8250192130
VIP Call Girls Service Hitech City Hyderabad Call +91-8250192130
 
Gurgaon ✡️9711147426✨Call In girls Gurgaon Sector 51 escort service
Gurgaon ✡️9711147426✨Call In girls Gurgaon Sector 51 escort serviceGurgaon ✡️9711147426✨Call In girls Gurgaon Sector 51 escort service
Gurgaon ✡️9711147426✨Call In girls Gurgaon Sector 51 escort service
 
Biology for Computer Engineers Course Handout.pptx
Biology for Computer Engineers Course Handout.pptxBiology for Computer Engineers Course Handout.pptx
Biology for Computer Engineers Course Handout.pptx
 
Call Girls Delhi {Jodhpur} 9711199012 high profile service
Call Girls Delhi {Jodhpur} 9711199012 high profile serviceCall Girls Delhi {Jodhpur} 9711199012 high profile service
Call Girls Delhi {Jodhpur} 9711199012 high profile service
 
IVE Industry Focused Event - Defence Sector 2024
IVE Industry Focused Event - Defence Sector 2024IVE Industry Focused Event - Defence Sector 2024
IVE Industry Focused Event - Defence Sector 2024
 
Current Transformer Drawing and GTP for MSETCL
Current Transformer Drawing and GTP for MSETCLCurrent Transformer Drawing and GTP for MSETCL
Current Transformer Drawing and GTP for MSETCL
 
young call girls in Rajiv Chowk🔝 9953056974 🔝 Delhi escort Service
young call girls in Rajiv Chowk🔝 9953056974 🔝 Delhi escort Serviceyoung call girls in Rajiv Chowk🔝 9953056974 🔝 Delhi escort Service
young call girls in Rajiv Chowk🔝 9953056974 🔝 Delhi escort Service
 
power system scada applications and uses
power system scada applications and usespower system scada applications and uses
power system scada applications and uses
 
(ANVI) Koregaon Park Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...
(ANVI) Koregaon Park Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...(ANVI) Koregaon Park Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...
(ANVI) Koregaon Park Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...
 
GDSC ASEB Gen AI study jams presentation
GDSC ASEB Gen AI study jams presentationGDSC ASEB Gen AI study jams presentation
GDSC ASEB Gen AI study jams presentation
 
What are the advantages and disadvantages of membrane structures.pptx
What are the advantages and disadvantages of membrane structures.pptxWhat are the advantages and disadvantages of membrane structures.pptx
What are the advantages and disadvantages of membrane structures.pptx
 
Oxy acetylene welding presentation note.
Oxy acetylene welding presentation note.Oxy acetylene welding presentation note.
Oxy acetylene welding presentation note.
 
Microscopic Analysis of Ceramic Materials.pptx
Microscopic Analysis of Ceramic Materials.pptxMicroscopic Analysis of Ceramic Materials.pptx
Microscopic Analysis of Ceramic Materials.pptx
 
CCS355 Neural Network & Deep Learning UNIT III notes and Question bank .pdf
CCS355 Neural Network & Deep Learning UNIT III notes and Question bank .pdfCCS355 Neural Network & Deep Learning UNIT III notes and Question bank .pdf
CCS355 Neural Network & Deep Learning UNIT III notes and Question bank .pdf
 
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...
 
SPICE PARK APR2024 ( 6,793 SPICE Models )
SPICE PARK APR2024 ( 6,793 SPICE Models )SPICE PARK APR2024 ( 6,793 SPICE Models )
SPICE PARK APR2024 ( 6,793 SPICE Models )
 

FPGA Fundamentals: Evolution, Architecture, Programming and Applications

  • 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)