FPGA Slides
FPGA Slides
FPGA
buttons LEDs
switches
FPGA Principles
• A Field-Programmable Gate Array (FPGA)
is an integrated circuit that can be
configured by the user to emulate any
digital circuit as long as there are enough
resources
CLB SB CLB
SB SB SB
Interconnection Network
CLR Q
CLB SB CLB
SB SB SB
Interconnection Network
A B C D O
0 0 0 0 0
0 0 0 1 0 0
0
0 0 1 0 0 0
A 0
MUX O
0 0 1 1 0 0
0 SET
0 1 0 0 0 B 0 D Q
0
0 1 0 1 0 0
C 0
0
0 1 1 0 0 0 CLR Q
0 1 1 1 0 D 0
0 0
0
1 0 0 0 0 1
1 0 0 1 0
1 0 1 0 0 Configuration bits
1 0 1 1 0
1 1 0 0 0
1 1 0 1 0
1 1 1 0 0
1 1 1 1 1
Example 2: Find the configuration
bits for the following circuit
A0
2-to-1 SET
MUX
D Q
A1
CLR Q
S A0 MUX
Clock SET
A1 D Q
A0 A1 S
S
0 0 0
CLR Q
0 0 1
0 1 0
0 1 1
1 0 0
Configuration bits
1 0 1
1 1 0
1 1 1
Interconnection Network
Configuration
bits 0 1
0
CLB SB CLB 0
0 0
SB SB SB
Interconnection Network
Input2
CLB0 SB0 CLB1
Input1 D
SET
Q
Input2 Output
Q
Input3 CLR
Input3
CLB2 SB4 CLB3 Output
CLBs required
CLB 1 CLB 2
Input1 D
SET
Q
Input2 Output
CLR Q
Input3
0
0
MUX O MUX Output
SET
0 D Q D
SET
Q
Input1 O 1
Input2 0 Input3 1
CLR Q CLR Q
1 0
1 0
Input2
CLB0 SB0 CLB1
Input3
CLB2 SB4 CLB3 Output
Routing: Select path
Input1
SB1
Configuration bits
Input2
CLB0 SB0 CLB1
0 0
0
1
0 0
SB1 SB2 SB3
SB4
Configuration bits
Input3
CLB2 SB4 CLB3 Output
0 0
1
0
0 0
Configuration Bitstream
• The configuration bitstream must include ALL CLBs and
SBs, even unused ones
• CLB0: 00011
• CLB1: 01100
• CLB2: XXXXX
• CLB3: ?????
• SB0: 000000
• SB1: 000010
• SB2: 000000
• SB3: 000000
• SB4: 000001
Realistic FPGA CLB: Xilinx
FPGA EDA Tools
• Must provide a design environment based
on digital design concepts and
components (gates, flip-flops, MUXs, etc.)