SlideShare une entreprise Scribd logo
1  sur  32
Télécharger pour lire hors ligne
ESS | FPGA for Dummies | 2016-08-23 | Maurizio Donna
FPGA for
Dummies
Basic FPGA architecture
ESS | FPGA for Dummies | 2016-08-23 | Maurizio Donna
FPGA for Dummies
• FPGA Architecture:
 basic blocks (Logic, FFs, wires and IOs);
 additional modern elements;
• FPGA Programming:
HDL languages;
Design flow;
• FPGA DSP:
Arithmetic, FFT and filters;
ESS | FPGA for Dummies | 2016-08-23 | Maurizio Donna
FPGA for Dummies
• FPGA Architecture:
 basic blocks (Logic, FFs, wires and IOs);
 additional modern elements;
• FPGA Programming:
HDL languages;
Design flow;
• FPGA DSP:
Arithmetic, FFT and filters;
ESS | FPGA for Dummies | 2016-08-23 | Maurizio Donna
Particle Physics Electronics
Some special dedicated Logic Functions are not possible in CPUs, like
Ultra Fast Trigger Algorithms, or Massively Parallel Data Processing.
To do this you need custom designed Printed Circuit Boards (PCBs)
that uses commercial Programmable Logic Devices (PLDs).
• Glossary:
Integrated Circuit (IC) is a miniaturized electronic circuit consisting
of transistors, resistors and capacitors.
• LOGIC is one of the three major classes of ICs in most digital
electronic systems: microprocessor, memory, and logic. Logic is
used for data manipulation and control functions that require higher
speed than a microprocessor can provide.
ESS | FPGA for Dummies | 2016-08-23 | Maurizio Donna
Analog-to-Digital (ADC)
and Digital-to-Analog (DAC)
Converters
DACs and ADCs are important building blocks which interface sensors (e.g.
temperature, pressure, light, sound) to digital systems.
ADC takes an analog signal and
converts it into a binary one
DAC converts a binary signal into
an analog value.
SAMPLING is the reduction of a continuous signal to a discrete
signal: a SAMPLE is a value or set of values at a point in time
and/or space, a sampler is a subsystem or operation that
extracts samples from a continuous signal.
ESS | FPGA for Dummies | 2016-08-23 | Maurizio Donna
Analog-to-Digital (ADC)
and Digital-to-Analog (DAC)
Converters
The jitter on the rising edge of the clock signal
creates uncertainty on when/where the input
signal is sampled by the ADC (same for the
DAC to create an analog signal).
The clock signal is a key part for digital system
performance.
ESS | FPGA for Dummies | 2016-08-23 | Maurizio Donna
Complex Programmable Logic
Devices (CPLDs)
CPLD is an IC that perform
simple logic function, using
input signal and internal value.
The key resource in a CPLD is
the PROGRAMMABLE
INTERCONNECT
(Tradeoff between
SPACE FOR MACROCELLS
and
SPACE FOR
INTERCONNECTION)
ESS | FPGA for Dummies | 2016-08-23 | Maurizio Donna
Field Programmable Gate Arrays
(FPGAs)
FPGAs initially were Similar to CPLDs, so a function to be
implemented in FPGA is partitioned into modules (each
implemented in a logic block) and then the logic blocks are
connected with the programmable interconnection: ARRAY
of logic GATES is the G and A in FPGA.
By way of a configuration file or bit stream, an FPGA can be
configured to implement the user’s desired function: this
allows customization at the user’s electronics bench, or
even in the final end product.
This is why FPGAs are FIELD PROGRAMMABLE.
ESS | FPGA for Dummies | 2016-08-23 | Maurizio Donna
FPGA Architecture
The basic structure of an FPGA is
composed of the following elements:
 Look-up table (LUT): This element
performs logic operations
 Flip-Flop (FF): This register
element stores the result of the
LUT
 Wires: These elements connect
elements to one another, both
Logic and clock
 Input/Output (I/O) pads: These
physically available ports get
signals in and out of the FPGA.
ESS | FPGA for Dummies | 2016-08-23 | Maurizio Donna
FPGA Logic blocks
How can we implement any circuit in an FPGA?
Combinational logic is represented by a truth table
(e.g. full adder).
 Implement truth table in small memories (LUTs).
 A function is implemented by writing all possible
values that the function can take in the LUT
 The inputs values are used to address the LUT
and retrieve the value of the function
corresponding to the input values
ESS | FPGA for Dummies | 2016-08-23 | Maurizio Donna
FPGA Logic blocks
A LUT is basically a multiplexer that
evaluates the truth table stored in the
configuration SRAM cells (can be seen as
a one bit wide ROM).
How to handle sequential logic?
Add a flip-flop to the output of LUT
(Clocked Storage element).
This is called Basic Logic Element (BLE):
circuit can now use output from LUT or
from FF.
ESS | FPGA for Dummies | 2016-08-23 | Maurizio Donna
Flip-Flop Capabilities
All flip-flops are D type
All flip-flops have a single clock input (CLK)
 Clock can be inverted at the slice
boundary
All flip-flops have an active high chip enable (CE)
All flip-flops have an active high SR input
 Input can be synchronous or
asynchronous, as determined by the
configuration bit stream
 Sets the flip-flop value to a pre-
determined state, as determined by the
configuration bit stream
ESS | FPGA for Dummies | 2016-08-23 | Maurizio Donna
Flip-Flop Timing
Signal timing must satisfy
 Setup & Hold times;
 Propagation delay;
At the maximum required frequency
ESS | FPGA for Dummies | 2016-08-23 | Maurizio Donna
FPGA wires
Before FPGA is programmed, it doesn’t
know which Logic block will be connected:
connections are design dependent, so
there are wires everywhere (both for DATA
and CLOCK)!!!!!
Logic blocks are typically arranged in a
grid, with wires on all sides.
Logic
block
Logic
block
Logic
block
Logic
block
Logic
block
Logic
block
To connect Logic blocks to wires
some Connection box are used:
these devices allow inputs and
outputs of Logic block to connect to
different wires
Logic
block
Logic
block
ESS | FPGA for Dummies | 2016-08-23 | Maurizio Donna
FPGA Components: wires
Connection boxes allow Logic locks to connect to routing wires but
that only allows to move signals along a single wire; to connect wires
together Switch boxes (switch matrices) are used: these connect
horizontal and vertical routing channels. The flexibility defines how
many wires a single wire can connect into the box.
Logic
block
Logic
block
Logic
block
Logic
block
Switch box/matrix
ROUTABILITY is a measure of the
number of circuits that can be routed
HIGHER FLEXIBILITY
=
BETTER ROUTABILITY
ESS | FPGA for Dummies | 2016-08-23 | Maurizio Donna
FPGA Components: wires
FPGA layout is called a “FABRIC”: is a 2-dimensional array of Logic
blocks and programmable interconnections. Sometimes referred to as an
“island style” architecture. 16-bit SR
flip-flop
clock
mux
y
q
e
a
b
c
d
16x1 RAM
4-input
LUT
clock enable
set/reset
In the switch boxes there are short channels (useful for
connecting adjacent Logic blocks) and long channels
(useful for connecting Logic blocks that are separated, this
reduce routing delay for non-adjacent Logic blocks)
ESS | FPGA for Dummies | 2016-08-23 | Maurizio Donna
FPGA Components: memory
The FPGA fabric includes embedded memory
elements that can be used as random-access
memory (RAM), read-only memory (ROM), or
shift registers. These elements are block RAMs
(BRAMs), LUTs, and shift registers.
Using LUTs as SRAM, this is called
DISTRIBUTE RAM
Included dedicated RAM components in the FPGA fabric are called
BLOCKs RAM
ESS | FPGA for Dummies | 2016-08-23 | Maurizio Donna
FPGA Components: input/output
The IO PAD connect the signals from the
PCB to the internal logic.
The IOB are organized in banks (depending
on the technology and the producer the
number of IOB per bank change).
All the PAD in the same bank, share a
common supply voltage: not all the different
standard could be implemented at the same
time in the same bank!!!!
There are special PAD for ground (GND),
supplies (VCC, VCCINT, VCCAUX, etc…),
clocks and for programming (JTAG).
ESS | FPGA for Dummies | 2016-08-23 | Maurizio Donna
FPGA Components: input/output
The IO Blocks (IOB) support a wide range of commercial standard (LVTTL,
LVCMOS, LVDS, etc…) both single ended and differential (in that case
pair of contiguous pad are used). In the PAD are available FF that are use
to resynchronize the signal with the internal clock.
ESS | FPGA for Dummies | 2016-08-23 | Maurizio Donna
FPGA Architecture
ESS | FPGA for Dummies | 2016-08-23 | Maurizio Donna
FPGA for Dummies
Extra material
(XILINX, ALTERA, LATTICESEMI)
ESS | FPGA for Dummies | 2016-08-23 | Maurizio Donna
Xilinx Configurable Logic
Blocks (CLBs)
Xilinx Configurable Logic
Blocks (CLBs) usually
contain more than 1 BLE:
this is an efficient way of
handling common I/O
between adjacent LUTs and
saves routing resources
(eg. Ripple-carry adder).
3-in, 2-out
LUT
FF
2x1
FF
2x1
3-in, 2-out
LUT
FF
2x1
FF
2x1
2x1
ESS | FPGA for Dummies | 2016-08-23 | Maurizio Donna
Xilinx Configurable Logic
Blocks (CLBs)
The arithmetic logic provides a XOR-gate and
faster carry chain to build faster adder
without wasting too much LUT-resources.
ESS | FPGA for Dummies | 2016-08-23 | Maurizio Donna
Xilinx Configurable Logic
Blocks (CLBs)
The CLB is the modern Xilinx FPGA basic block: the number of CLB
varies from devices to devices:
Spartan 3, VirtexII, Virtex II-Pro
Virtex 4:
 4 slices
 2 basic blocks per slice
Virtex 5:
 2 slices
 4 basic blocks per slice
Virtex 6:
 2 slices (split in 2
columns)
 4 6-inputs LUT
 8 FF (storing LUT
results)
Virtex 7:
 2 pairs of slices (split in 2
columns arranged
symmetrically)
 4 6-inputs LUT
 8 FF (storing LUT results)
ESS | FPGA for Dummies | 2016-08-23 | Maurizio Donna
Altera FPGA Logic Array Blocks
Altera’s FPGAs (Cyclone, FLEX) basic unit of logic is the Logic Element
(LE) and is also LUT-based (4-LUT, flip flop, multiplexer and additional
logic for carry chain) similar to Xilinx: LEs can operate in different modes
each of which defines different usage of the LUT inputs. Altera LEs are
grouped into Logic Array Blocks (LAB)).
ESS | FPGA for Dummies | 2016-08-23 | Maurizio Donna
Altera FPGA Logic Array Blocks
Altera’s Stratix II FPGAs the basic computing unit is called Adaptive
Logic Module (ALM): each LAB contains 8 ALMs.
ESS | FPGA for Dummies | 2016-08-23 | Maurizio Donna
Altera FPGA Logic Array Blocks
ALM can be used to implement functions with variable number of
inputs. This ensures a backward compatibility to 4-input-based
designs. It is possible to implement module with up to 8 inputs.
ESS | FPGA for Dummies | 2016-08-23 | Maurizio Donna
LatticeSemiconductor FPGA Logic
Blocks
The Programmable Logic Cell (PLC) is the fundamental building
block of the FPGA Fabric.
The PLC consists of 2 components:
 PFU – Programmable Function Unit (Very simple logic!)
 Programmable Routing Block or Big Switch Box (Muxes)
ESS | FPGA for Dummies | 2016-08-23 | Maurizio Donna
FPGA Components: memory
XILINX 36K/18KALTERA Embedded Memory
ESS | FPGA for Dummies | 2016-08-23 | Maurizio Donna
Vendor comparison
ESS | FPGA for Dummies | 2016-08-23 | Maurizio Donna
XILINX 7 serie families
ESS | FPGA for Dummies | 2016-08-23 | Maurizio Donna
ALTERA 10/V serie families

Contenu connexe

Tendances (20)

Fpga
FpgaFpga
Fpga
 
FPGA
FPGAFPGA
FPGA
 
FPGA Introduction
FPGA IntroductionFPGA Introduction
FPGA Introduction
 
Dr.s.shiyamala fpga ppt
Dr.s.shiyamala  fpga pptDr.s.shiyamala  fpga ppt
Dr.s.shiyamala fpga ppt
 
Logic Synthesis
Logic SynthesisLogic Synthesis
Logic Synthesis
 
Vlsi Synthesis
Vlsi SynthesisVlsi Synthesis
Vlsi Synthesis
 
FPGA TECHNOLOGY AND FAMILIES
FPGA TECHNOLOGY AND FAMILIESFPGA TECHNOLOGY AND FAMILIES
FPGA TECHNOLOGY AND FAMILIES
 
Unit VI CPLD-FPGA Architecture
Unit VI CPLD-FPGA ArchitectureUnit VI CPLD-FPGA Architecture
Unit VI CPLD-FPGA Architecture
 
Fpga Knowledge
Fpga KnowledgeFpga Knowledge
Fpga Knowledge
 
4.FPGA for dummies: Design Flow
4.FPGA for dummies: Design Flow4.FPGA for dummies: Design Flow
4.FPGA for dummies: Design Flow
 
Vlsi
VlsiVlsi
Vlsi
 
Seminar on field programmable gate array
Seminar on field programmable gate arraySeminar on field programmable gate array
Seminar on field programmable gate array
 
Session 2,3 FPGAs
Session 2,3 FPGAsSession 2,3 FPGAs
Session 2,3 FPGAs
 
ASIC vs SOC vs FPGA
ASIC  vs SOC  vs FPGAASIC  vs SOC  vs FPGA
ASIC vs SOC vs FPGA
 
Flip Chip technology
Flip Chip technologyFlip Chip technology
Flip Chip technology
 
Creating Your Own PCI Express System Using FPGAs: Embedded World 2010
Creating Your Own PCI Express System Using FPGAs: Embedded World 2010Creating Your Own PCI Express System Using FPGAs: Embedded World 2010
Creating Your Own PCI Express System Using FPGAs: Embedded World 2010
 
FPGA
FPGAFPGA
FPGA
 
ASIC VS FPGA.ppt
ASIC VS FPGA.pptASIC VS FPGA.ppt
ASIC VS FPGA.ppt
 
Logic synthesis,flootplan&placement
Logic synthesis,flootplan&placementLogic synthesis,flootplan&placement
Logic synthesis,flootplan&placement
 
axi protocol
axi protocolaxi protocol
axi protocol
 

Similaire à 1.FPGA for dummies: Basic FPGA architecture

2.FPGA for dummies: modern FPGA architecture
2.FPGA for dummies: modern FPGA architecture2.FPGA for dummies: modern FPGA architecture
2.FPGA for dummies: modern FPGA architectureMaurizio Donna
 
5.FPGA for dummies: DSP
5.FPGA for dummies: DSP5.FPGA for dummies: DSP
5.FPGA for dummies: DSPMaurizio Donna
 
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
 
Programmable Hardware - An Overview
Programmable Hardware - An OverviewProgrammable Hardware - An Overview
Programmable Hardware - An OverviewS Yousuf Imam
 
FPGA Architecture and application
FPGA Architecture and application FPGA Architecture and application
FPGA Architecture and application ADARSHJKALATHIL
 
L12_PROGRAMMABLE+LOGIC+DEVICES+(PLD).ppt
L12_PROGRAMMABLE+LOGIC+DEVICES+(PLD).pptL12_PROGRAMMABLE+LOGIC+DEVICES+(PLD).ppt
L12_PROGRAMMABLE+LOGIC+DEVICES+(PLD).pptMikeTango5
 
L12 programmable+logic+devices+(pld)
L12 programmable+logic+devices+(pld)L12 programmable+logic+devices+(pld)
L12 programmable+logic+devices+(pld)NAGASAI547
 
Spartan-II FPGA (xc2s30)
Spartan-II FPGA (xc2s30)Spartan-II FPGA (xc2s30)
Spartan-II FPGA (xc2s30)A B Shinde
 
3.FPGA for dummies: HDL languages
3.FPGA for dummies: HDL languages3.FPGA for dummies: HDL languages
3.FPGA for dummies: HDL languagesMaurizio Donna
 
0.FPGA for dummies: Historical introduction
0.FPGA for dummies: Historical introduction0.FPGA for dummies: Historical introduction
0.FPGA for dummies: Historical introductionMaurizio Donna
 
Lecture Slide (1).pptx
Lecture Slide (1).pptxLecture Slide (1).pptx
Lecture Slide (1).pptxBilalMumtaz9
 
1. FPGA architectures.pdf
1. FPGA architectures.pdf1. FPGA architectures.pdf
1. FPGA architectures.pdfTesfuFiseha1
 
Cpld and fpga mod vi
Cpld and fpga   mod viCpld and fpga   mod vi
Cpld and fpga mod viAgi George
 

Similaire à 1.FPGA for dummies: Basic FPGA architecture (20)

2.FPGA for dummies: modern FPGA architecture
2.FPGA for dummies: modern FPGA architecture2.FPGA for dummies: modern FPGA architecture
2.FPGA for dummies: modern FPGA architecture
 
5.FPGA for dummies: DSP
5.FPGA for dummies: DSP5.FPGA for dummies: DSP
5.FPGA for dummies: DSP
 
FPGA In a Nutshell
FPGA In a NutshellFPGA In a Nutshell
FPGA In a Nutshell
 
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
 
VLSI PLDS pla, pal
VLSI PLDS pla, palVLSI PLDS pla, pal
VLSI PLDS pla, pal
 
Programmable Hardware - An Overview
Programmable Hardware - An OverviewProgrammable Hardware - An Overview
Programmable Hardware - An Overview
 
FIELD PROGRAMMABLE GATE ARRAYS AND THEIR APPLICATIONS
FIELD PROGRAMMABLE GATE ARRAYS AND THEIR APPLICATIONSFIELD PROGRAMMABLE GATE ARRAYS AND THEIR APPLICATIONS
FIELD PROGRAMMABLE GATE ARRAYS AND THEIR APPLICATIONS
 
FPGA Architecture and application
FPGA Architecture and application FPGA Architecture and application
FPGA Architecture and application
 
L12_PROGRAMMABLE+LOGIC+DEVICES+(PLD).ppt
L12_PROGRAMMABLE+LOGIC+DEVICES+(PLD).pptL12_PROGRAMMABLE+LOGIC+DEVICES+(PLD).ppt
L12_PROGRAMMABLE+LOGIC+DEVICES+(PLD).ppt
 
L12 programmable+logic+devices+(pld)
L12 programmable+logic+devices+(pld)L12 programmable+logic+devices+(pld)
L12 programmable+logic+devices+(pld)
 
Spartan-II FPGA (xc2s30)
Spartan-II FPGA (xc2s30)Spartan-II FPGA (xc2s30)
Spartan-II FPGA (xc2s30)
 
3.FPGA for dummies: HDL languages
3.FPGA for dummies: HDL languages3.FPGA for dummies: HDL languages
3.FPGA for dummies: HDL languages
 
4_BIT_ALU
4_BIT_ALU4_BIT_ALU
4_BIT_ALU
 
0.FPGA for dummies: Historical introduction
0.FPGA for dummies: Historical introduction0.FPGA for dummies: Historical introduction
0.FPGA for dummies: Historical introduction
 
Asic vs fpga
Asic vs fpgaAsic vs fpga
Asic vs fpga
 
Lecture Slide (1).pptx
Lecture Slide (1).pptxLecture Slide (1).pptx
Lecture Slide (1).pptx
 
1. FPGA architectures.pdf
1. FPGA architectures.pdf1. FPGA architectures.pdf
1. FPGA architectures.pdf
 
Pld dp
Pld dpPld dp
Pld dp
 
Fpga 03-cpld-and-fpga
Fpga 03-cpld-and-fpgaFpga 03-cpld-and-fpga
Fpga 03-cpld-and-fpga
 
Cpld and fpga mod vi
Cpld and fpga   mod viCpld and fpga   mod vi
Cpld and fpga mod vi
 

Dernier

Designing A Time bound resource download URL
Designing A Time bound resource download URLDesigning A Time bound resource download URL
Designing A Time bound resource download URLRuncy Oommen
 
Machine Learning Model Validation (Aijun Zhang 2024).pdf
Machine Learning Model Validation (Aijun Zhang 2024).pdfMachine Learning Model Validation (Aijun Zhang 2024).pdf
Machine Learning Model Validation (Aijun Zhang 2024).pdfAijun Zhang
 
IaC & GitOps in a Nutshell - a FridayInANuthshell Episode.pdf
IaC & GitOps in a Nutshell - a FridayInANuthshell Episode.pdfIaC & GitOps in a Nutshell - a FridayInANuthshell Episode.pdf
IaC & GitOps in a Nutshell - a FridayInANuthshell Episode.pdfDaniel Santiago Silva Capera
 
Empowering Africa's Next Generation: The AI Leadership Blueprint
Empowering Africa's Next Generation: The AI Leadership BlueprintEmpowering Africa's Next Generation: The AI Leadership Blueprint
Empowering Africa's Next Generation: The AI Leadership BlueprintMahmoud Rabie
 
Meet the new FSP 3000 M-Flex800™
Meet the new FSP 3000 M-Flex800™Meet the new FSP 3000 M-Flex800™
Meet the new FSP 3000 M-Flex800™Adtran
 
Anypoint Code Builder , Google Pub sub connector and MuleSoft RPA
Anypoint Code Builder , Google Pub sub connector and MuleSoft RPAAnypoint Code Builder , Google Pub sub connector and MuleSoft RPA
Anypoint Code Builder , Google Pub sub connector and MuleSoft RPAshyamraj55
 
NIST Cybersecurity Framework (CSF) 2.0 Workshop
NIST Cybersecurity Framework (CSF) 2.0 WorkshopNIST Cybersecurity Framework (CSF) 2.0 Workshop
NIST Cybersecurity Framework (CSF) 2.0 WorkshopBachir Benyammi
 
Artificial Intelligence & SEO Trends for 2024
Artificial Intelligence & SEO Trends for 2024Artificial Intelligence & SEO Trends for 2024
Artificial Intelligence & SEO Trends for 2024D Cloud Solutions
 
Building Your Own AI Instance (TBLC AI )
Building Your Own AI Instance (TBLC AI )Building Your Own AI Instance (TBLC AI )
Building Your Own AI Instance (TBLC AI )Brian Pichman
 
VoIP Service and Marketing using Odoo and Asterisk PBX
VoIP Service and Marketing using Odoo and Asterisk PBXVoIP Service and Marketing using Odoo and Asterisk PBX
VoIP Service and Marketing using Odoo and Asterisk PBXTarek Kalaji
 
UiPath Platform: The Backend Engine Powering Your Automation - Session 1
UiPath Platform: The Backend Engine Powering Your Automation - Session 1UiPath Platform: The Backend Engine Powering Your Automation - Session 1
UiPath Platform: The Backend Engine Powering Your Automation - Session 1DianaGray10
 
Apres-Cyber - The Data Dilemma: Bridging Offensive Operations and Machine Lea...
Apres-Cyber - The Data Dilemma: Bridging Offensive Operations and Machine Lea...Apres-Cyber - The Data Dilemma: Bridging Offensive Operations and Machine Lea...
Apres-Cyber - The Data Dilemma: Bridging Offensive Operations and Machine Lea...Will Schroeder
 
Videogame localization & technology_ how to enhance the power of translation.pdf
Videogame localization & technology_ how to enhance the power of translation.pdfVideogame localization & technology_ how to enhance the power of translation.pdf
Videogame localization & technology_ how to enhance the power of translation.pdfinfogdgmi
 
Basic Building Blocks of Internet of Things.
Basic Building Blocks of Internet of Things.Basic Building Blocks of Internet of Things.
Basic Building Blocks of Internet of Things.YounusS2
 
AI You Can Trust - Ensuring Success with Data Integrity Webinar
AI You Can Trust - Ensuring Success with Data Integrity WebinarAI You Can Trust - Ensuring Success with Data Integrity Webinar
AI You Can Trust - Ensuring Success with Data Integrity WebinarPrecisely
 
Computer 10: Lesson 10 - Online Crimes and Hazards
Computer 10: Lesson 10 - Online Crimes and HazardsComputer 10: Lesson 10 - Online Crimes and Hazards
Computer 10: Lesson 10 - Online Crimes and HazardsSeth Reyes
 
Cybersecurity Workshop #1.pptx
Cybersecurity Workshop #1.pptxCybersecurity Workshop #1.pptx
Cybersecurity Workshop #1.pptxGDSC PJATK
 
Comparing Sidecar-less Service Mesh from Cilium and Istio
Comparing Sidecar-less Service Mesh from Cilium and IstioComparing Sidecar-less Service Mesh from Cilium and Istio
Comparing Sidecar-less Service Mesh from Cilium and IstioChristian Posta
 

Dernier (20)

Designing A Time bound resource download URL
Designing A Time bound resource download URLDesigning A Time bound resource download URL
Designing A Time bound resource download URL
 
Machine Learning Model Validation (Aijun Zhang 2024).pdf
Machine Learning Model Validation (Aijun Zhang 2024).pdfMachine Learning Model Validation (Aijun Zhang 2024).pdf
Machine Learning Model Validation (Aijun Zhang 2024).pdf
 
IaC & GitOps in a Nutshell - a FridayInANuthshell Episode.pdf
IaC & GitOps in a Nutshell - a FridayInANuthshell Episode.pdfIaC & GitOps in a Nutshell - a FridayInANuthshell Episode.pdf
IaC & GitOps in a Nutshell - a FridayInANuthshell Episode.pdf
 
Empowering Africa's Next Generation: The AI Leadership Blueprint
Empowering Africa's Next Generation: The AI Leadership BlueprintEmpowering Africa's Next Generation: The AI Leadership Blueprint
Empowering Africa's Next Generation: The AI Leadership Blueprint
 
201610817 - edge part1
201610817 - edge part1201610817 - edge part1
201610817 - edge part1
 
Meet the new FSP 3000 M-Flex800™
Meet the new FSP 3000 M-Flex800™Meet the new FSP 3000 M-Flex800™
Meet the new FSP 3000 M-Flex800™
 
Anypoint Code Builder , Google Pub sub connector and MuleSoft RPA
Anypoint Code Builder , Google Pub sub connector and MuleSoft RPAAnypoint Code Builder , Google Pub sub connector and MuleSoft RPA
Anypoint Code Builder , Google Pub sub connector and MuleSoft RPA
 
NIST Cybersecurity Framework (CSF) 2.0 Workshop
NIST Cybersecurity Framework (CSF) 2.0 WorkshopNIST Cybersecurity Framework (CSF) 2.0 Workshop
NIST Cybersecurity Framework (CSF) 2.0 Workshop
 
Artificial Intelligence & SEO Trends for 2024
Artificial Intelligence & SEO Trends for 2024Artificial Intelligence & SEO Trends for 2024
Artificial Intelligence & SEO Trends for 2024
 
Building Your Own AI Instance (TBLC AI )
Building Your Own AI Instance (TBLC AI )Building Your Own AI Instance (TBLC AI )
Building Your Own AI Instance (TBLC AI )
 
VoIP Service and Marketing using Odoo and Asterisk PBX
VoIP Service and Marketing using Odoo and Asterisk PBXVoIP Service and Marketing using Odoo and Asterisk PBX
VoIP Service and Marketing using Odoo and Asterisk PBX
 
UiPath Platform: The Backend Engine Powering Your Automation - Session 1
UiPath Platform: The Backend Engine Powering Your Automation - Session 1UiPath Platform: The Backend Engine Powering Your Automation - Session 1
UiPath Platform: The Backend Engine Powering Your Automation - Session 1
 
20230104 - machine vision
20230104 - machine vision20230104 - machine vision
20230104 - machine vision
 
Apres-Cyber - The Data Dilemma: Bridging Offensive Operations and Machine Lea...
Apres-Cyber - The Data Dilemma: Bridging Offensive Operations and Machine Lea...Apres-Cyber - The Data Dilemma: Bridging Offensive Operations and Machine Lea...
Apres-Cyber - The Data Dilemma: Bridging Offensive Operations and Machine Lea...
 
Videogame localization & technology_ how to enhance the power of translation.pdf
Videogame localization & technology_ how to enhance the power of translation.pdfVideogame localization & technology_ how to enhance the power of translation.pdf
Videogame localization & technology_ how to enhance the power of translation.pdf
 
Basic Building Blocks of Internet of Things.
Basic Building Blocks of Internet of Things.Basic Building Blocks of Internet of Things.
Basic Building Blocks of Internet of Things.
 
AI You Can Trust - Ensuring Success with Data Integrity Webinar
AI You Can Trust - Ensuring Success with Data Integrity WebinarAI You Can Trust - Ensuring Success with Data Integrity Webinar
AI You Can Trust - Ensuring Success with Data Integrity Webinar
 
Computer 10: Lesson 10 - Online Crimes and Hazards
Computer 10: Lesson 10 - Online Crimes and HazardsComputer 10: Lesson 10 - Online Crimes and Hazards
Computer 10: Lesson 10 - Online Crimes and Hazards
 
Cybersecurity Workshop #1.pptx
Cybersecurity Workshop #1.pptxCybersecurity Workshop #1.pptx
Cybersecurity Workshop #1.pptx
 
Comparing Sidecar-less Service Mesh from Cilium and Istio
Comparing Sidecar-less Service Mesh from Cilium and IstioComparing Sidecar-less Service Mesh from Cilium and Istio
Comparing Sidecar-less Service Mesh from Cilium and Istio
 

1.FPGA for dummies: Basic FPGA architecture

  • 1. ESS | FPGA for Dummies | 2016-08-23 | Maurizio Donna FPGA for Dummies Basic FPGA architecture
  • 2. ESS | FPGA for Dummies | 2016-08-23 | Maurizio Donna FPGA for Dummies • FPGA Architecture:  basic blocks (Logic, FFs, wires and IOs);  additional modern elements; • FPGA Programming: HDL languages; Design flow; • FPGA DSP: Arithmetic, FFT and filters;
  • 3. ESS | FPGA for Dummies | 2016-08-23 | Maurizio Donna FPGA for Dummies • FPGA Architecture:  basic blocks (Logic, FFs, wires and IOs);  additional modern elements; • FPGA Programming: HDL languages; Design flow; • FPGA DSP: Arithmetic, FFT and filters;
  • 4. ESS | FPGA for Dummies | 2016-08-23 | Maurizio Donna Particle Physics Electronics Some special dedicated Logic Functions are not possible in CPUs, like Ultra Fast Trigger Algorithms, or Massively Parallel Data Processing. To do this you need custom designed Printed Circuit Boards (PCBs) that uses commercial Programmable Logic Devices (PLDs). • Glossary: Integrated Circuit (IC) is a miniaturized electronic circuit consisting of transistors, resistors and capacitors. • LOGIC is one of the three major classes of ICs in most digital electronic systems: microprocessor, memory, and logic. Logic is used for data manipulation and control functions that require higher speed than a microprocessor can provide.
  • 5. ESS | FPGA for Dummies | 2016-08-23 | Maurizio Donna Analog-to-Digital (ADC) and Digital-to-Analog (DAC) Converters DACs and ADCs are important building blocks which interface sensors (e.g. temperature, pressure, light, sound) to digital systems. ADC takes an analog signal and converts it into a binary one DAC converts a binary signal into an analog value. SAMPLING is the reduction of a continuous signal to a discrete signal: a SAMPLE is a value or set of values at a point in time and/or space, a sampler is a subsystem or operation that extracts samples from a continuous signal.
  • 6. ESS | FPGA for Dummies | 2016-08-23 | Maurizio Donna Analog-to-Digital (ADC) and Digital-to-Analog (DAC) Converters The jitter on the rising edge of the clock signal creates uncertainty on when/where the input signal is sampled by the ADC (same for the DAC to create an analog signal). The clock signal is a key part for digital system performance.
  • 7. ESS | FPGA for Dummies | 2016-08-23 | Maurizio Donna Complex Programmable Logic Devices (CPLDs) CPLD is an IC that perform simple logic function, using input signal and internal value. The key resource in a CPLD is the PROGRAMMABLE INTERCONNECT (Tradeoff between SPACE FOR MACROCELLS and SPACE FOR INTERCONNECTION)
  • 8. ESS | FPGA for Dummies | 2016-08-23 | Maurizio Donna Field Programmable Gate Arrays (FPGAs) FPGAs initially were Similar to CPLDs, so a function to be implemented in FPGA is partitioned into modules (each implemented in a logic block) and then the logic blocks are connected with the programmable interconnection: ARRAY of logic GATES is the G and A in FPGA. By way of a configuration file or bit stream, an FPGA can be configured to implement the user’s desired function: this allows customization at the user’s electronics bench, or even in the final end product. This is why FPGAs are FIELD PROGRAMMABLE.
  • 9. ESS | FPGA for Dummies | 2016-08-23 | Maurizio Donna FPGA Architecture The basic structure of an FPGA is composed of the following elements:  Look-up table (LUT): This element performs logic operations  Flip-Flop (FF): This register element stores the result of the LUT  Wires: These elements connect elements to one another, both Logic and clock  Input/Output (I/O) pads: These physically available ports get signals in and out of the FPGA.
  • 10. ESS | FPGA for Dummies | 2016-08-23 | Maurizio Donna FPGA Logic blocks How can we implement any circuit in an FPGA? Combinational logic is represented by a truth table (e.g. full adder).  Implement truth table in small memories (LUTs).  A function is implemented by writing all possible values that the function can take in the LUT  The inputs values are used to address the LUT and retrieve the value of the function corresponding to the input values
  • 11. ESS | FPGA for Dummies | 2016-08-23 | Maurizio Donna FPGA Logic blocks A LUT is basically a multiplexer that evaluates the truth table stored in the configuration SRAM cells (can be seen as a one bit wide ROM). How to handle sequential logic? Add a flip-flop to the output of LUT (Clocked Storage element). This is called Basic Logic Element (BLE): circuit can now use output from LUT or from FF.
  • 12. ESS | FPGA for Dummies | 2016-08-23 | Maurizio Donna Flip-Flop Capabilities All flip-flops are D type All flip-flops have a single clock input (CLK)  Clock can be inverted at the slice boundary All flip-flops have an active high chip enable (CE) All flip-flops have an active high SR input  Input can be synchronous or asynchronous, as determined by the configuration bit stream  Sets the flip-flop value to a pre- determined state, as determined by the configuration bit stream
  • 13. ESS | FPGA for Dummies | 2016-08-23 | Maurizio Donna Flip-Flop Timing Signal timing must satisfy  Setup & Hold times;  Propagation delay; At the maximum required frequency
  • 14. ESS | FPGA for Dummies | 2016-08-23 | Maurizio Donna FPGA wires Before FPGA is programmed, it doesn’t know which Logic block will be connected: connections are design dependent, so there are wires everywhere (both for DATA and CLOCK)!!!!! Logic blocks are typically arranged in a grid, with wires on all sides. Logic block Logic block Logic block Logic block Logic block Logic block To connect Logic blocks to wires some Connection box are used: these devices allow inputs and outputs of Logic block to connect to different wires Logic block Logic block
  • 15. ESS | FPGA for Dummies | 2016-08-23 | Maurizio Donna FPGA Components: wires Connection boxes allow Logic locks to connect to routing wires but that only allows to move signals along a single wire; to connect wires together Switch boxes (switch matrices) are used: these connect horizontal and vertical routing channels. The flexibility defines how many wires a single wire can connect into the box. Logic block Logic block Logic block Logic block Switch box/matrix ROUTABILITY is a measure of the number of circuits that can be routed HIGHER FLEXIBILITY = BETTER ROUTABILITY
  • 16. ESS | FPGA for Dummies | 2016-08-23 | Maurizio Donna FPGA Components: wires FPGA layout is called a “FABRIC”: is a 2-dimensional array of Logic blocks and programmable interconnections. Sometimes referred to as an “island style” architecture. 16-bit SR flip-flop clock mux y q e a b c d 16x1 RAM 4-input LUT clock enable set/reset In the switch boxes there are short channels (useful for connecting adjacent Logic blocks) and long channels (useful for connecting Logic blocks that are separated, this reduce routing delay for non-adjacent Logic blocks)
  • 17. ESS | FPGA for Dummies | 2016-08-23 | Maurizio Donna FPGA Components: memory The FPGA fabric includes embedded memory elements that can be used as random-access memory (RAM), read-only memory (ROM), or shift registers. These elements are block RAMs (BRAMs), LUTs, and shift registers. Using LUTs as SRAM, this is called DISTRIBUTE RAM Included dedicated RAM components in the FPGA fabric are called BLOCKs RAM
  • 18. ESS | FPGA for Dummies | 2016-08-23 | Maurizio Donna FPGA Components: input/output The IO PAD connect the signals from the PCB to the internal logic. The IOB are organized in banks (depending on the technology and the producer the number of IOB per bank change). All the PAD in the same bank, share a common supply voltage: not all the different standard could be implemented at the same time in the same bank!!!! There are special PAD for ground (GND), supplies (VCC, VCCINT, VCCAUX, etc…), clocks and for programming (JTAG).
  • 19. ESS | FPGA for Dummies | 2016-08-23 | Maurizio Donna FPGA Components: input/output The IO Blocks (IOB) support a wide range of commercial standard (LVTTL, LVCMOS, LVDS, etc…) both single ended and differential (in that case pair of contiguous pad are used). In the PAD are available FF that are use to resynchronize the signal with the internal clock.
  • 20. ESS | FPGA for Dummies | 2016-08-23 | Maurizio Donna FPGA Architecture
  • 21. ESS | FPGA for Dummies | 2016-08-23 | Maurizio Donna FPGA for Dummies Extra material (XILINX, ALTERA, LATTICESEMI)
  • 22. ESS | FPGA for Dummies | 2016-08-23 | Maurizio Donna Xilinx Configurable Logic Blocks (CLBs) Xilinx Configurable Logic Blocks (CLBs) usually contain more than 1 BLE: this is an efficient way of handling common I/O between adjacent LUTs and saves routing resources (eg. Ripple-carry adder). 3-in, 2-out LUT FF 2x1 FF 2x1 3-in, 2-out LUT FF 2x1 FF 2x1 2x1
  • 23. ESS | FPGA for Dummies | 2016-08-23 | Maurizio Donna Xilinx Configurable Logic Blocks (CLBs) The arithmetic logic provides a XOR-gate and faster carry chain to build faster adder without wasting too much LUT-resources.
  • 24. ESS | FPGA for Dummies | 2016-08-23 | Maurizio Donna Xilinx Configurable Logic Blocks (CLBs) The CLB is the modern Xilinx FPGA basic block: the number of CLB varies from devices to devices: Spartan 3, VirtexII, Virtex II-Pro Virtex 4:  4 slices  2 basic blocks per slice Virtex 5:  2 slices  4 basic blocks per slice Virtex 6:  2 slices (split in 2 columns)  4 6-inputs LUT  8 FF (storing LUT results) Virtex 7:  2 pairs of slices (split in 2 columns arranged symmetrically)  4 6-inputs LUT  8 FF (storing LUT results)
  • 25. ESS | FPGA for Dummies | 2016-08-23 | Maurizio Donna Altera FPGA Logic Array Blocks Altera’s FPGAs (Cyclone, FLEX) basic unit of logic is the Logic Element (LE) and is also LUT-based (4-LUT, flip flop, multiplexer and additional logic for carry chain) similar to Xilinx: LEs can operate in different modes each of which defines different usage of the LUT inputs. Altera LEs are grouped into Logic Array Blocks (LAB)).
  • 26. ESS | FPGA for Dummies | 2016-08-23 | Maurizio Donna Altera FPGA Logic Array Blocks Altera’s Stratix II FPGAs the basic computing unit is called Adaptive Logic Module (ALM): each LAB contains 8 ALMs.
  • 27. ESS | FPGA for Dummies | 2016-08-23 | Maurizio Donna Altera FPGA Logic Array Blocks ALM can be used to implement functions with variable number of inputs. This ensures a backward compatibility to 4-input-based designs. It is possible to implement module with up to 8 inputs.
  • 28. ESS | FPGA for Dummies | 2016-08-23 | Maurizio Donna LatticeSemiconductor FPGA Logic Blocks The Programmable Logic Cell (PLC) is the fundamental building block of the FPGA Fabric. The PLC consists of 2 components:  PFU – Programmable Function Unit (Very simple logic!)  Programmable Routing Block or Big Switch Box (Muxes)
  • 29. ESS | FPGA for Dummies | 2016-08-23 | Maurizio Donna FPGA Components: memory XILINX 36K/18KALTERA Embedded Memory
  • 30. ESS | FPGA for Dummies | 2016-08-23 | Maurizio Donna Vendor comparison
  • 31. ESS | FPGA for Dummies | 2016-08-23 | Maurizio Donna XILINX 7 serie families
  • 32. ESS | FPGA for Dummies | 2016-08-23 | Maurizio Donna ALTERA 10/V serie families

Notes de l'éditeur

  1. An FPGA is a type of integrated circuit (IC) that can be programmed for different algorithms after fabrication. Modern FPGA devices consist of up to two million logic cells that can be configured to implement a variety of software algorithms. Although the traditional FPGA design flow is more similar to a regular IC than a processor, an FPGA provides significant cost advantages in comparison to an IC development effort and offers the same level of performance in most cases. Another advantage of the FPGA when compared to the IC is its ability to be dynamically reconfigured. This process, which is the same as loading a program in a processor, can affect part or all of the resources available in the FPGA fabric.
  2. The LUT is the basic building block of an FPGA and is capable of implementing any logic function of N Boolean variables. The flip-flop is the basic storage unit within the FPGA fabric. This element is always paired with a LUT to assist in logic pipelining and data storage. The basic structure of a flip-flop includes a data input, clock input, clock enable, reset, and data output. During normal operation, any value at the data input port is latched and passed to the output on every pulse of the clock. The purpose of the clock enable pin is to allow the flip-flop to hold a specific value for more than one clock pulse. New data inputs are only latched and passed to the data output port when both clock and clock enable are equal to one.
  3. The LUT is the basic building block of an FPGA and is capable of implementing any logic function of N Boolean variables. The flip-flop is the basic storage unit within the FPGA fabric. This element is always paired with a LUT to assist in logic pipelining and data storage. The basic structure of a flip-flop includes a data input, clock input, clock enable, reset, and data output. During normal operation, any value at the data input port is latched and passed to the output on every pulse of the clock. The purpose of the clock enable pin is to allow the flip-flop to hold a specific value for more than one clock pulse. New data inputs are only latched and passed to the data output port when both clock and clock enable are equal to one.
  4. In electronic design, wire routing, commonly called simply routing, is a step in the design of printed circuit boards (PCBs) and integrated circuits (ICs).
  5. In electronic design, wire routing, commonly called simply routing, is a step in the design of printed circuit boards (PCBs) and integrated circuits (ICs).
  6. An FPGA is a type of integrated circuit (IC) that can be programmed for different algorithms after fabrication. Modern FPGA devices consist of up to two million logic cells that can be configured to implement a variety of software algorithms. Although the traditional FPGA design flow is more similar to a regular IC than a processor, an FPGA provides significant cost advantages in comparison to an IC development effort and offers the same level of performance in most cases. Another advantage of the FPGA when compared to the IC is its ability to be dynamically reconfigured. This process, which is the same as loading a program in a processor, can affect part or all of the resources available in the FPGA fabric.