0% found this document useful (0 votes)
2 views38 pages

01_fpga

FPGAs, or Field Programmable Gate Arrays, are configurable digital circuits that can be programmed to perform various functions using Hardware Description Languages. The document outlines the history, components, and applications of FPGAs, highlighting their advantages and disadvantages compared to ASICs. It emphasizes the growing market for FPGAs and their widespread use in fields such as IoT, data centers, and machine learning.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
2 views38 pages

01_fpga

FPGAs, or Field Programmable Gate Arrays, are configurable digital circuits that can be programmed to perform various functions using Hardware Description Languages. The document outlines the history, components, and applications of FPGAs, highlighting their advantages and disadvantages compared to ASICs. It emphasizes the growing market for FPGAs and their widespread use in fields such as IoT, data centers, and machine learning.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 38

A Brief Introduction to FPGAs

October 3, 2022
Ahmet Can Mert
[email protected]
FPGA: Definition
• FPGA: Field Programmable Gate Arrays
• An array of logic cells with programmable control signals and a
programmable routing grid

• It can be configured/programmed to perform any digital circuits


• Microcontroller
• Video processor
• Crypto miner

• How to configure?
• Define its behavior using Hardware Description Languages
• Compile and download it to FPGA
FPGA: Definition
• FPGA: Field Programmable Gate Arrays
• Configurable Logic Blocks (CLBs)
• Programmable Interconnects
• Programmable I/O blocks
• Other functional blocks: DSPs, Block RAMs, Ultra RAMs, ...

Image is retrieved from [https://towardsdatascience.co m/introduction-to-fpga-and-its-architec ture-20a62c14421c]


FPGA: A Brief History of FPGAs
• Some major inventions that led to FPGAs
• 1957 – PROM (programmable read-only memory)
• 1960 – MOSFETs (metal–oxide–semiconductor field-effect transistor)
• 1965 – Moore's Law
FPGA: A Brief History of FPGAs
• Some major inventions that led to FPGAs
• 1957 – PROM (programmable read-only memory)
• 1960 – MOSFETs (metal–oxide–semiconductor field-effect transistor)
• 1965 – Moore's Law

Image is retrieved from [https://en.wikipedia.org/wiki/Moo re%27s_law]


FPGA: A Brief History of FPGAs
• Some major inventions that led to FPGAs
• 1957 – PROM (programmable read-only memory)
• 1960 – MOSFETs (metal–oxide–semiconductor field-effect transistor)
• 1965 – Moore's Law
• 1970 – EPROM
• 1975 – PLA (Programmable Logic Array)
• 1977 – PAL (Programmable Array Logic)
FPGA: A Brief History of FPGAs
• Some major inventions that led to FPGAs
• 1957 – PROM (programmable read-only memory)
• 1960 – MOSFETs (metal–oxide–semiconductor field-effect transistor)
• 1965 – Moore's Law
• 1970 – EPROM
• 1975 – PLA (Programmable Logic Array)
• 1977 – PAL (Programmable Array Logic)

Image is retrieved from [https://www.el ectronics-tutori al.n et /programmabl e-logic-devic es/pro grammabl e-array-lo gic /]
FPGA: A Brief History of FPGAs
• Some major inventions that led to FPGAs
• 1957 – PROM (programmable read-only memory)
• 1960 – MOSFETs (metal–oxide–semiconductor field-effect transistor)
• 1965 – Moore's Law
• 1970 – EPROM
• 1975 – PLA (Programmable Logic Array)
• 1977 – PAL (Programmable Array Logic)
• 1977 – EEPROM
• 1981 – Flash Memory
• 1985 – FPGA (Field Programmable Gate Arrays)
FPGA: First FPGA
• First FPGA: XC2064
• In 1980s, engineers were trying to get the most out of each transistor
• Ross Freeman came up with a different approach:
• "A chip packed with transistors that formed loosely organized logic
blocks with connections that could be configured and reconfigured with
software."
• A big problem: Sometimes, some of transistors will not be used!

Ross Freeman: "Moore’s Law would eventually make


transistors so cheap that no one would care."

Ross Freeman
Xilinx Co-founder
FPGA: First FPGA
• First FPGA: XC2064
• 8x8 grid of CLBs (Image from the Patent is a simplified 3x3 version)

• Each CLB has 4 inputs and 2 outputs


• Comb. Logic (Lookup Table – LUT)
• D-FF
• Multiplexers (MUX)

FPGA connections from Xilinx FPGA Patent

Images are retrieved from [https://semiwiki.com/fpga/290990-reverse- engin eering-the-fi rst-fpga-chip-xilinx-xc2064/]


FPGA: First FPGA
• First FPGA: XC2064
• Lookup Table – LUT
• Inside logic block, FPGAs do not have gates. Instead, they have lookup
tables with reconfigurable outputs.
• These lookup tables are used to implement truth table of an expression.
• It is capable of implementing any logic function of N Boolean variables.
• In modern XIlinx FPGAs, N is generally 6.
FPGA: First FPGA
• First FPGA: XC2064
• Lookup Table – LUT
• Inside logic block, FPGAs do not have gates. Instead, they have lookup
tables with reconfigurable outputs.
• These lookup tables are used to implement truth table of an expression.
• It is capable of implementing any logic function of N Boolean variables.
• In modern XIlinx FPGAs, N is generally 6.
• Example: AND gate with N=2
x0 x1 y
0
0 0 0
0
0 1 0
0
1 0 0
1
1 1 1
FPGA: First FPGA
• First FPGA: XC2064
• The interconnects
• There are several horizontal and vertical line segments.
• Interconnect points allow connections to be made between a horizontal
line and a vertical line, allowing arbitrary paths to be created.
• Switch matrices

Images are retrieved from [https://semiwiki.com/fpga/290990-reverse- engin eering-the-fi rst-fpga-chip-xilinx-xc2064/]


FPGA: Modern FPGAs
• Modern FPGAs have …
• More CLBs
• Larger LUTs (6-input LUTs)
• Custom building blocks (DSPs, BRAMs, Advanced I/O, ...)

• Major FPGA Vendors


• Xilinx (acquired by AMD for 49B$ in 2022)
• Altera (acquired by Intel for 15B$ in 2015)
• Others (Lattice semiconductor etc.)
FPGA: Modern FPGAs
• Example: Xilinx FPGA portfolio

• Virtex Ultrascale+ FPGA Product Table:


FPGA: Modern FPGAs Alveo-U250 Board
~7,700$
• Example: Xilinx FPGA portfolio

• Virtex Ultrascale+ FPGA Product Table:


FPGA: Why should I learn FPGA?
• FPGAs are now everywhere
• IoT to Data Centers
Amazon EC2 F1 instances use FPGAs to
deliver custom hardware accelerations.​
FPGA: Why should I learn FPGA?
• FPGAs are now everywhere
• IoT to Data Centers
Microsoft's Catapult Project
Amazon EC2 F1 instances use FPGAs to
deliver custom hardware accelerations.​
FPGA: Why should I learn FPGA?
• FPGAs are now everywhere
• IoT to Data Centers
Microsoft's Catapult Project
Amazon EC2 F1 instances use FPGAs to
deliver custom hardware accelerations.​
Intel Ships Xeon Skylake
Processor with Integrated FPGA​
FPGA: Why should I learn FPGA?
• FPGAs are now everywhere
• IoT to Data Centers
Microsoft's Catapult Project
Amazon EC2 F1 instances use FPGAs to
deliver custom hardware accelerations.​
Intel Ships Xeon Skylake
Processor with Integrated FPGA​

FPGAs are used for accelerating complex computations in blockchain technology


FPGA: Why should I learn FPGA?
• Growing market
• 2022: 8B$ market
• 2027: 15B$ market (estimated)
• Job market is not saturated

• Many research direction


• Acceleration of computation-intensive tasks
• Machine Learning, DNN
• Cryptography
• Video Processing
• FPGA security
• High level synthesis
FPGA: Where are FPGAs used?
• FPGAs could be …
• A target platform
• A prototype platform for ASIC or SoC
FPGA: Where are FPGAs used?
• FPGAs could be …
• A target platform
• A prototype platform for ASIC or SoC

• FPGAs are used in a variety of applications


• Machine Learning, AI
• Cybersecurity
• Video Processing
• Automotive
• Space Technology
• Finance
FPGA: Advantages and Disadvantages

Advantages Disadvantages
• Programmability • Low performance
• Fast design time (time to market) • Large area
• Low design cost (due to reconfigurability)
• Suitable for automation • High power consumption
• Parallel processing
• Prototyping
• System on chip
FPGA: FPGA vs ASIC

FPGA ASIC
• Simple design cycle • Difficult to design
• Short development time • Long development time
• High adaptability • Low adaptability
• Low NRE cost • High NRE cost
FPGA: FPGA vs ASIC

FPGA ASIC
• Simple design cycle • Difficult to design
• Short development time • Long development time
• High adaptability • Low adaptability
• Low NRE cost • High NRE cost
FPGA: FPGA vs ASIC

FPGA ASIC
• Simple design cycle • Difficult to design
• Short development time • Long development time
• High adaptability • Low adaptability
• Low NRE cost • High NRE cost
• Low performance • High performance
• Large area • Low area
• High power consumption • Low power consumption
FPGA: FPGA vs ASIC
• In ASIC, an expression is implemented using gates (AND, OR, etc.) while FPGAs
map the expression into lookup tables
• Example: Full Adder

S = A XOR B XOR Cin


Cout = (A AND B) OR (A XOR B AND)

ASIC FPGA with 4-input LUTs?


FPGA: Design Flow
• Design specification to FPGA programming
Implementation
(Desired functionality
and area/speed requirements)
Design Specification (Combines netlists with
Translate user constraints)
Design Entry
(i.e., Verilog code) (Maps translated netlist to
(RTL design) Map actual FPGA components)
Behavioral
Simulation Place and Route

(Code to netlist – a format STA


for depicting the circuit)
Synthesis
(Back-annotation)
Bitfile Generation
Post-Synthesis
Simulation
Program the FPGA
FPGA: Components (a bit more in detail)
• FPGA: Field Programmable Gate Arrays
• Configurable Logic Blocks (CLBs)
• Programmable Interconnects
• Programmable I/O blocks
• Other functional blocks: DSPs, Block RAMs, Ultra RAMs, ...

Image is retrieved from [https://towardsdatascience.co m/introduction-to-fpga-and-its-architec ture-20a62c14421c]


FPGA: Components (a bit more in detail)
• Building blocks of different vendors and FPGA series can show differences, here
we take Xilinx 7-series FPGAs as example.

• Main building blocks


• CLB, Slice, LUT
• Interconnects

• Custom blocks
• DSP
• Block RAM, Ultra RAM

• CPU core
• Soft and hard cores
FPGA: Components (a bit more in detail)
• 7-series overview (Artix-7)
• Modern FPGAs have diverse resources

Image is retrieved from [https://xilinx.eetrend.com/fil es-eetrend-xilinx/fo rum/201509/9204-20390-7_series_architecture_o vervi ew.pdf]


FPGA: Components (a bit more in detail)
• Configurable Logic Block (CLB)
• Has 2 slices
• SLICEM (LUT can be used for logic and memory)
• SLICEL (LUT can be used only for logic)
• Connected to interconnect through switch matrix

Image is retrieved from [https://xilinx.eetrend.com/fil es-eetrend-xilinx/fo rum/201509/9204-20390-7_series_architecture_o vervi ew.pdf]


FPGA: Components (a bit more in detail)
• CLB Slices
• Four 6-input LUTs
• D-FFs
• Multiplexers

Image is retrieved from [https://xilinx.eetrend.com/fil es-eetrend-xilinx/fo rum/201509/9204-20390-7_series_architecture_o vervi ew.pdf]


FPGA: Components (a bit more in detail)
• CLB Slices
• Four 6-input LUTs
• D-FFs
• Multiplexers

Image is retrieved from [https://xilinx.eetrend.com/fil es-eetrend-xilinx/fo rum/201509/9204-20390-7_series_architecture_o vervi ew.pdf]


FPGA: Components (a bit more in detail)
• DSP Slice
• Full-custom and low power DSP units
• Reconfigurable: P = (A±D) x B + C
FPGA: Components (a bit more in detail)
• Block RAM (BRAM)
• For storing large data
• Configurable (2 x 18Kb or 1 x 36 Kb)
• Two read/write ports

• Block ROM (BROM)

• Advanced FPGAs have Ultra RAM (URAM)


• 288 Kb
FPGA: Components (a bit more in detail)
• FPGA boards might be coupled with processors
• Xilinx PYNQ-Z2 has an ARM Cortex

• It is also possible to instantiate "soft" processor in FPGAs


• Xilinx's Microblaze soft processor core

• HW/SW co-design

You might also like