introduction to fpgas & its applications

32
Introduction to FPGAs & Its Applications Presented by: Mohammad Ebrahimi IPM Institute for Research in Fundamental Sciences

Upload: others

Post on 23-Feb-2022

3 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Introduction to FPGAs & Its Applications

Introduction to FPGAs & Its

Applications

Presented by: Mohammad Ebrahimi

IPM – Institute for Research in Fundamental Sciences

Page 2: Introduction to FPGAs & Its Applications

Outline

What is an FPGA

FPGA structure

What’s inside – Core components

FPGA design flow overview

FPGA applications

A brief look at our project

Conclusion

2

Page 3: Introduction to FPGAs & Its Applications

What is an FPGA

FPGAs (is an acronym for field-programmable

gate array) are integrated circuits that enable

designers to program customized digital logic in

the field

An FPGA is a semiconductor device on which its

function can be defined and modified even after

manufacturing

3

Page 4: Introduction to FPGAs & Its Applications

ASIC as a competitor

4

ASIC stands for Application Specific Integrated

Circuit

A chip which serves the purpose for which it has

been designed and cannot be reprogrammed or

modified to perform another function

Designers have to engage with hardware details at

the lowest levels (layout and transistors)

Page 5: Introduction to FPGAs & Its Applications

FPGA vs ASIC

5

Page 6: Introduction to FPGAs & Its Applications

FPGA Architecture

Xilinx FPGA

6

Page 7: Introduction to FPGAs & Its Applications

FPGA Architecture

Configurable logic block (CLB)

GRM

slices

Xilinx FPGA

7

Page 8: Introduction to FPGAs & Its Applications

FPGA Architecture

Configurable logic block (CLB)

GRM

slices

Xilinx FPGA

8

Page 9: Introduction to FPGAs & Its Applications

FPGA Architecture

Configurable logic block (CLB)

GRM

slices

Xilinx FPGA

9

Page 10: Introduction to FPGAs & Its Applications

FPGA Architecture

Configurable logic block (CLB)

GRM

slices

Xilinx FPGA

10

Page 11: Introduction to FPGAs & Its Applications

FPGA Architecture

Configurable logic block (CLB)

GRM

slices

A B C D

Lookup Table (LUT)

‘0’

0

1

1

1

1

1

1

1

0

1

0

0

1

0

1

0

Xilinx FPGA

11

Page 12: Introduction to FPGAs & Its Applications

FPGA Architecture

Configurable logic block (CLB)

GRM

slices

A B C D

Lookup Table (LUT)

‘0’

0

1

1

1

1

1

1

1

0

1

0

0

1

0

1

0

Boolean Function

F(A,B,C,D)

Xilinx FPGA

12

Page 13: Introduction to FPGAs & Its Applications

FPGA Architecture

Xilinx FPGA

BRAM

13

Page 14: Introduction to FPGAs & Its Applications

Multipliers or DSP blocks

High speed serial IOs (gigabit transceivers)

Clocking resources

I/O (Input/Output)

PCIe block

SERDES

14

What’s inside – Core components

Page 15: Introduction to FPGAs & Its Applications

Implementation flow (Synthesis)

15

Register

a

b

output

clk

reset

clear

D Q

process(clk, reset)

begin

if reset = ‚1‘ then

output <= ‚0‘;

elsif rising_edge(clk) then

output <= a XOR b;

end if;

end process;

HDL

(VHDL /

Verilog)

Synthesize

Netlist

Map

Place

Route

Bitstrea

m

Page 16: Introduction to FPGAs & Its Applications

FPGA design flow (Mapping)

16

HDL

(VHDL /

Verilog)

Synthesize

Netlist

Map

Place

Route

Bitstrea

m

Register

a

b

output

clk

reset

clear

D Q

Page 17: Introduction to FPGAs & Its Applications

FPGA design flow (Place&Route)

17

HDL

(VHDL /

Verilog)

Synthesize

Netlist

Map

Place

Route

Bitstrea

m

Page 18: Introduction to FPGAs & Its Applications

Data analytics

Telecommunication

Artificial Intelligence

Video processing

Cyber security

Genomics

Aerospace & defense

High energy physics

18

FPGA Applications

Page 19: Introduction to FPGAs & Its Applications

For example, in CMS upgrade project, each FPGA

performs a real-time process on 96 active input

channels in parallel

CPU based platforms cannot meet performance

and power requirements

19

FPGA High energy physics

Page 20: Introduction to FPGAs & Its Applications

Single Event Upset (SEU) problem

20

Page 21: Introduction to FPGAs & Its Applications

Configuration memory bits

CLB slice

LUT

Single Event Upset (SEU) problem

21

Page 22: Introduction to FPGAs & Its Applications

Configuration memory bits

CLB slice

LUT

Single Event Upset (SEU) problem

22

Page 23: Introduction to FPGAs & Its Applications

Configuration memory bits

CLB slice00

01

01

11

0

00

101

11

I1 I2 I3 I4

LUT

LUT

Single Event Upset (SEU) problem

23

Page 24: Introduction to FPGAs & Its Applications

Configuration memory bits

CLB slice00

01

01

11

0

00

101

11

I1 I2 I3 I4

LUT

routing

LUT

Single Event Upset (SEU) problem

24

Page 25: Introduction to FPGAs & Its Applications

Solution: Scrubbing Configuration Data

SRAM-based FPGA

OSC

INIT

DONE

CCLK

OE/RESET

CLK

XQR18V04

DATA[7:0] DATA[7:0]

CE

WR

GND

OE/RESET

CLK

XQR18V04

DATA[7:0]

CE

I/O

GND

CS

BOOT

SCRUB

• No application interruption

PROM

00000001010

10101010100

10101010010

10101010101

01010100101

11111111101

11100000000

11101010101

10101010101

00101000010

00000001010

10101010100

10101010010

10101010101

01010100101

11111111101

11100000000

11101010101

10101010101

00101000010

I/O

I/O

I/O

SCRUB

Controller

I/O

Configuration bits

Original bitstream

10101000101

25

Page 26: Introduction to FPGAs & Its Applications

SRAM-based FPGA

OSC

INIT

DONE

CCLK

OE/RESET

CLK

XQR18V04

DATA[7:0] DATA[7:0]

CE

WR

GND

OE/RESET

CLK

XQR18V04

DATA[7:0]

CE

I/O

GND

CS

BOOT

SCRUB

• No application interruption

PROM

00000001010

10101010100

10101010010

10101010101

01010100101

11111111101

11100000000

11101010101

10101010101

00101000010

00000001010

10101010100

10101010010

10101000101

01010100101

11111111101

11100000000

11101010101

10101010101

00101000010

I/O

I/O

I/O

SCRUB

Controller

I/O

Configuration bits

Original bitstream

26

Solution: Scrubbing Configuration Data

Page 27: Introduction to FPGAs & Its Applications

ScrubColumn

x

Configuration

Upset

27

Solution: Scrubbing Configuration Data

Page 28: Introduction to FPGAs & Its Applications

ScrubColumn

x

Configuration

Upset

28

Solution: Scrubbing Configuration Data

Page 29: Introduction to FPGAs & Its Applications

ScrubColumn

x

Configuration

Upset

29

Solution: Scrubbing Configuration Data

Page 30: Introduction to FPGAs & Its Applications

ScrubColumn

x

Configuration

Upset

30

Solution: Scrubbing Configuration Data

Page 31: Introduction to FPGAs & Its Applications

ScrubColumn

Configuration

Upset

Repaired

Scrubbing can be performed:

from outside the FPGA by another FPGA controller

from inside the FPGA: Internal Configuration Access Port (ICAP)

31

Solution: Scrubbing Configuration Data

Page 32: Introduction to FPGAs & Its Applications

Conclusion

A brief look at the FPGA structure

Discussion about Implementation flow of FPGA

based designs

Introduction to wide usage of FPGAs in modern

applications

A brief look at our solution to make commercial

FPGAs reliable for using in safety-critical

applications

32