FPGA Basics - faculty-web.msoe.edu · FPGA Basics •Additional Fixed Blocks - Memory •M9K Block...

37
FPGA Basics Last updated 7/18/19

Transcript of FPGA Basics - faculty-web.msoe.edu · FPGA Basics •Additional Fixed Blocks - Memory •M9K Block...

Page 1: FPGA Basics - faculty-web.msoe.edu · FPGA Basics •Additional Fixed Blocks - Memory •M9K Block •8192 RAM bits (9216 including parity) •284-MHz performance •True dual-port

FPGA Basics

Last updated 7/18/19

Page 2: FPGA Basics - faculty-web.msoe.edu · FPGA Basics •Additional Fixed Blocks - Memory •M9K Block •8192 RAM bits (9216 including parity) •284-MHz performance •True dual-port

2 © tjEE 3921

FPGA Basics

• Field Programmable Gate Array• Long history• PROM, PAL, CPLD

• Gate Array, Standard Cells

• Why FPGAs• Rapid prototyping

• In field test / modification

• Rapidly changing technology / standard

• Low / mid volume production• High volume → ASIC or ASSP

Page 3: FPGA Basics - faculty-web.msoe.edu · FPGA Basics •Additional Fixed Blocks - Memory •M9K Block •8192 RAM bits (9216 including parity) •284-MHz performance •True dual-port

3 © tjEE 3921

FPGA Basics

• Advantages• Flexibility

• Speed to market

• Well characterized

• Disadvantages• COST

• Maximum clock frequency

• Power

Page 4: FPGA Basics - faculty-web.msoe.edu · FPGA Basics •Additional Fixed Blocks - Memory •M9K Block •8192 RAM bits (9216 including parity) •284-MHz performance •True dual-port

4 © tjEE 3921

FPGA Basics

• Basic Concept• Many small fixed circuits

+

• Multiple levels of interconnect

+

• Programmable connections

• Enhancements• Fixed IP blocks• Memory

• Processors

• Interfaces

Page 5: FPGA Basics - faculty-web.msoe.edu · FPGA Basics •Additional Fixed Blocks - Memory •M9K Block •8192 RAM bits (9216 including parity) •284-MHz performance •True dual-port

5 © tjEE 3921

FPGA Basics

• FPGA – programmable• 3 primary programming methods• RAM• Volatile

• Must be loaded on power-up

• Most common

• Electrically erasable (flash)• Non-volatile

• Expensive

• Fuse / Anti-fuse• Non-volatile

Page 6: FPGA Basics - faculty-web.msoe.edu · FPGA Basics •Additional Fixed Blocks - Memory •M9K Block •8192 RAM bits (9216 including parity) •284-MHz performance •True dual-port

6 © tjEE 3921

FPGA Basics

• FPGA – programmable• JTAG Programming Configurations• Load programming information (xx.sof file)

• Directly into the Configuration RAM via the JTAG interface

• Configuration FLASH holds the default program

Src: MAX 10 FPGA Configuration Guide

xx.sof fileSRAM Object File

ConfigurationRAM

Page 7: FPGA Basics - faculty-web.msoe.edu · FPGA Basics •Additional Fixed Blocks - Memory •M9K Block •8192 RAM bits (9216 including parity) •284-MHz performance •True dual-port

7 © tjEE 3921

FPGA Basics

• FPGA – programmable• SRAM based

Src: Altera - PLDBasics_FPGA_Architecture

Switches

Page 8: FPGA Basics - faculty-web.msoe.edu · FPGA Basics •Additional Fixed Blocks - Memory •M9K Block •8192 RAM bits (9216 including parity) •284-MHz performance •True dual-port

8 © tjEE 3921

FPGA Basics

• FPGA – programmable• Switch configurations

Wire A Wire B

Wire A

Wire B

Page 9: FPGA Basics - faculty-web.msoe.edu · FPGA Basics •Additional Fixed Blocks - Memory •M9K Block •8192 RAM bits (9216 including parity) •284-MHz performance •True dual-port

9 © tjEE 3921

FPGA Basics

• Top Level View

Src: MAX 10 Device Handbook

Page 10: FPGA Basics - faculty-web.msoe.edu · FPGA Basics •Additional Fixed Blocks - Memory •M9K Block •8192 RAM bits (9216 including parity) •284-MHz performance •True dual-port

10 © tjEE 3921

FPGA Basics

• Top Level View• 10M50DAF484C7G

Src: MAX 10 Device Overview

Page 11: FPGA Basics - faculty-web.msoe.edu · FPGA Basics •Additional Fixed Blocks - Memory •M9K Block •8192 RAM bits (9216 including parity) •284-MHz performance •True dual-port

11 © tjEE 3921

FPGA Basics

• Top Level View• 10M50DAF484C7G

Src: MAX 10 Device Overview

Page 12: FPGA Basics - faculty-web.msoe.edu · FPGA Basics •Additional Fixed Blocks - Memory •M9K Block •8192 RAM bits (9216 including parity) •284-MHz performance •True dual-port

12 © tjEE 3921

FPGA Basics

• Logic Array• Array of Logic Elements (LEs)

Src: MAX 10 Device Handbook

Page 13: FPGA Basics - faculty-web.msoe.edu · FPGA Basics •Additional Fixed Blocks - Memory •M9K Block •8192 RAM bits (9216 including parity) •284-MHz performance •True dual-port

13 © tjEE 3921

FPGA Basics

• Logic Elements• 1 LE can have both an asynchronous and synchronous

path

Src: MAX 10 Device Handbook

Page 14: FPGA Basics - faculty-web.msoe.edu · FPGA Basics •Additional Fixed Blocks - Memory •M9K Block •8192 RAM bits (9216 including parity) •284-MHz performance •True dual-port

14 © tjEE 3921

FPGA Basics

• Logic Elements• Look-Up Table (LUT)• Multiplexor

b15b14b13b12b11b10b9b8b7b6b5b4b3b2b1b0

Inp

ut

1In

pu

t 2

Inp

ut

3In

pu

t 4

LUT Mask Output

4 3 2 1 OUT

0 0 0 0 b0

0 0 0 1 b1

0 0 1 0 b2

0 0 1 1 b3

0 1 0 0 b4

0 1 0 1 b5

0 1 1 0 b6

0 1 1 1 b7

1 0 0 0 b8

1 0 0 1 b9

1 0 1 0 b10

1 0 1 1 b11

1 1 0 0 b12

1 1 0 1 b13

1 1 1 0 b14

1 1 1 1 b15

Inputs

Page 15: FPGA Basics - faculty-web.msoe.edu · FPGA Basics •Additional Fixed Blocks - Memory •M9K Block •8192 RAM bits (9216 including parity) •284-MHz performance •True dual-port

15 © tjEE 3921

FPGA Basics

• Logic Elements• Look-Up Table (LUT)

(In1 | In2) & (In2 | In3) & !(In4)

4 3 2 1 OUT

0 0 0 0 0

0 0 0 1 0

0 0 1 0 1

0 0 1 1 1

0 1 0 0 0

0 1 0 1 1

0 1 1 0 1

0 1 1 1 1

1 0 0 0 0

1 0 0 1 0

1 0 1 0 0

1 0 1 1 0

1 1 0 0 0

1 1 0 1 0

1 1 1 0 0

1 1 1 1 0

Inputs

0000000011101100

Inp

ut

1In

pu

t 2

Inp

ut

3In

pu

t 4

Out

0000000011101100

1 1 0 0

1

Page 16: FPGA Basics - faculty-web.msoe.edu · FPGA Basics •Additional Fixed Blocks - Memory •M9K Block •8192 RAM bits (9216 including parity) •284-MHz performance •True dual-port

16 © tjEE 3921

FPGA Basics

• Logic Array• Normal Mode

Src: MAX 10 Device Handbook

Page 17: FPGA Basics - faculty-web.msoe.edu · FPGA Basics •Additional Fixed Blocks - Memory •M9K Block •8192 RAM bits (9216 including parity) •284-MHz performance •True dual-port

17 © tjEE 3921

FPGA Basics

• Logic Array• Arithmetic Mode• 1 LUT can implement an adder

Src: MAX 10 Device Handbook

Page 18: FPGA Basics - faculty-web.msoe.edu · FPGA Basics •Additional Fixed Blocks - Memory •M9K Block •8192 RAM bits (9216 including parity) •284-MHz performance •True dual-port

18 © tjEE 3921

FPGA Basics

• Logic Array• Arithmetic Mode• 3 input LUTs

In 1

In 2

In 3

In 4

b15

b14

b13

b12

b11

b10

b9

b8

b7

b6

b5

b4

b3

b2

b1

b0

Page 19: FPGA Basics - faculty-web.msoe.edu · FPGA Basics •Additional Fixed Blocks - Memory •M9K Block •8192 RAM bits (9216 including parity) •284-MHz performance •True dual-port

19 © tjEE 3921

FPGA Basics

• Logic Array Block• 16 LEs

• LAB control signals

• LE carry chains

• Register chains

• Local interconnect

Page 20: FPGA Basics - faculty-web.msoe.edu · FPGA Basics •Additional Fixed Blocks - Memory •M9K Block •8192 RAM bits (9216 including parity) •284-MHz performance •True dual-port

20 © tjEE 3921

FPGA Basics

• LAB

Src: MAX 10 Device Handbook

Page 21: FPGA Basics - faculty-web.msoe.edu · FPGA Basics •Additional Fixed Blocks - Memory •M9K Block •8192 RAM bits (9216 including parity) •284-MHz performance •True dual-port

21 © tjEE 3921

FPGA Basics

• Multiple Levels of Interconnect• Local Interconnect

Src: MAX 10 Device Handbook

Page 22: FPGA Basics - faculty-web.msoe.edu · FPGA Basics •Additional Fixed Blocks - Memory •M9K Block •8192 RAM bits (9216 including parity) •284-MHz performance •True dual-port

22 © tjEE 3921

FPGA Basics

• Multiple Levels of Interconnect• Direct Link Interconnect

Src: MAX 10 Device Handbook

Page 23: FPGA Basics - faculty-web.msoe.edu · FPGA Basics •Additional Fixed Blocks - Memory •M9K Block •8192 RAM bits (9216 including parity) •284-MHz performance •True dual-port

23 © tjEE 3921

FPGA Basics

• Multiple Levels of Interconnect• Global Interconnect - direct

Src: MAX 10 Device Handbook

Page 24: FPGA Basics - faculty-web.msoe.edu · FPGA Basics •Additional Fixed Blocks - Memory •M9K Block •8192 RAM bits (9216 including parity) •284-MHz performance •True dual-port

24 © tjEE 3921

FPGA Basics

• Multiple Levels of Interconnect• Global Interconnect - indirect

Src: MAX 10 Device Handbook

Page 25: FPGA Basics - faculty-web.msoe.edu · FPGA Basics •Additional Fixed Blocks - Memory •M9K Block •8192 RAM bits (9216 including parity) •284-MHz performance •True dual-port

25 © tjEE 3921

FPGA Basics

• Multiple Levels of Interconnect• Row/Column Interconnect

Src: MAX 10 Device Handbook

Page 26: FPGA Basics - faculty-web.msoe.edu · FPGA Basics •Additional Fixed Blocks - Memory •M9K Block •8192 RAM bits (9216 including parity) •284-MHz performance •True dual-port

26 © tjEE 3921

FPGA Basics

• Additional Fixed Blocks - Clocks

Src: MAX 10 Device Handbook

Page 27: FPGA Basics - faculty-web.msoe.edu · FPGA Basics •Additional Fixed Blocks - Memory •M9K Block •8192 RAM bits (9216 including parity) •284-MHz performance •True dual-port

27 © tjEE 3921

FPGA Basics

• Additional Fixed Blocks – Clocks• PLL

Src: MAX 10 Device Handbook

Page 28: FPGA Basics - faculty-web.msoe.edu · FPGA Basics •Additional Fixed Blocks - Memory •M9K Block •8192 RAM bits (9216 including parity) •284-MHz performance •True dual-port

28 © tjEE 3921

FPGA Basics

• Additional Fixed Blocks - Clocks• PLL locations

Src: MAX 10 Device Handbook

Page 29: FPGA Basics - faculty-web.msoe.edu · FPGA Basics •Additional Fixed Blocks - Memory •M9K Block •8192 RAM bits (9216 including parity) •284-MHz performance •True dual-port

29 © tjEE 3921

FPGA Basics

• Additional Fixed Blocks - Memory• M9K Block• 8192 RAM bits (9216 including parity)

• 284-MHz performance

• True dual-port memory

• Simple dual-port memory

• Single-port memory

• Byte enable

• Parity bits

• Shift register

• FIFO buffer

• ROM

• Various clock modes

• Address clock enable

Page 30: FPGA Basics - faculty-web.msoe.edu · FPGA Basics •Additional Fixed Blocks - Memory •M9K Block •8192 RAM bits (9216 including parity) •284-MHz performance •True dual-port

30 © tjEE 3921

FPGA Basics

• Additional Fixed Blocks - Multiplier• 144 - 18 x 18 multipliers

• Can be configured as 2 – 9 x 9 multipliers

Src: MAX 10 Device Handbook

Page 31: FPGA Basics - faculty-web.msoe.edu · FPGA Basics •Additional Fixed Blocks - Memory •M9K Block •8192 RAM bits (9216 including parity) •284-MHz performance •True dual-port

31 © tjEE 3921

FPGA Basics

• Additional Fixed Blocks - Multiplier• Configured as 2 – 9 x 9 multipliers

Src: MAX 10 Device Handbook

Page 32: FPGA Basics - faculty-web.msoe.edu · FPGA Basics •Additional Fixed Blocks - Memory •M9K Block •8192 RAM bits (9216 including parity) •284-MHz performance •True dual-port

32 © tjEE 3921

FPGA Basics

• Additional Fixed Blocks - ADC• 12 bit

• 1Mbps

Src: MAX 10 Device Handbook

Page 33: FPGA Basics - faculty-web.msoe.edu · FPGA Basics •Additional Fixed Blocks - Memory •M9K Block •8192 RAM bits (9216 including parity) •284-MHz performance •True dual-port

33 © tjEE 3921

FPGA Basics

• Additional Fixed Blocks - User Flash• 2 user partitions

• 5888Kb total memory

Src: MAX 10 Device Handbook

Page 34: FPGA Basics - faculty-web.msoe.edu · FPGA Basics •Additional Fixed Blocks - Memory •M9K Block •8192 RAM bits (9216 including parity) •284-MHz performance •True dual-port

34 © tjEE 3921

FPGA Basics

• Additional Fixed Blocks - IO

Src: MAX 10 Device Handbook

Page 35: FPGA Basics - faculty-web.msoe.edu · FPGA Basics •Additional Fixed Blocks - Memory •M9K Block •8192 RAM bits (9216 including parity) •284-MHz performance •True dual-port

35 © tjEE 3921

FPGA Basics

• Additional Fixed Blocks - IO

Src: Max 10 Device Handbook

Page 36: FPGA Basics - faculty-web.msoe.edu · FPGA Basics •Additional Fixed Blocks - Memory •M9K Block •8192 RAM bits (9216 including parity) •284-MHz performance •True dual-port

36 © tjEE 3921

FPGA Basics

• Additional Fixed Blocks - IO

Src: Max 10 Device Handbook

Page 37: FPGA Basics - faculty-web.msoe.edu · FPGA Basics •Additional Fixed Blocks - Memory •M9K Block •8192 RAM bits (9216 including parity) •284-MHz performance •True dual-port

37 © tjEE 3921

FPGA Basics

• Dual Power Supply

Src: MAX 10 Device Handbook