Intro Fpga
Intro Fpga
Some people would design their own chips based on Gate Arrays, which
were nothing else than an array of NAND gates:
Historical Introduction
The first programmable chips were PLAs (Programmable Logic Arrays): two
level structures of AND and OR gates with user programmable connections.
Clk
[31:0]
DataInB[31:0] [31:0]
D[31:0] Q[31:0] [31:0]
D[0] Q[0]
[31:0]
dataBC[31:0] dataSelectC 0
[31:0] [31:0]
[31:0]
D[31:0] Q[31:0] [31:0]
DataOut[31:0]
[31:0]
DataSelect 1
DataOut[31:0]
DataOut_3[31:0]
[31:0]
+ [31:0]
High clock rate:
[31:0]
DataInA[31:0] [31:0]
D[31:0] Q[31:0]
sum[31:0] 144.9 MHz on a
[31:0]
dataAC[31:0]
[31:0]
6.90 ns Xilinx Spartan IIE.
DataSelect D[0] Q[0] D[0] Q[0]
dataSelectC dataSelectCD1
[31:0] [31:0]
Clk D[31:0] Q[31:0] [31:0]
0
[31:0] [31:0] [31:0]
DataInB[31:0] [31:0]
D[31:0] Q[31:0] [31:0] [31:0]
D[31:0] Q[31:0] [31:0]
DataOut[31:0]
dataACd1[31:0] [31:0]
1
dataBC[31:0] DataOut[31:0]
DataOut_3[31:0]
[31:0]
Higher clock rate:
DataInA[31:0] [31:0]
[31:0]
D[31:0] Q[31:0] [31:0]
[31:0]
sum_1[31:0]
+ [31:0]
[31:0]
D[31:0]
sum[31:0]
Q[31:0] [31:0]
151.5 MHz on the
dataAC[31:0]
6.60 ns same chip.
Overview Configurable
Logic Block (CLB)
Embedded PowerPC
Slice
Detail of half-slice
A practical example: Xilinx Virtex II Pro
family
Routing resources
FPGA state of the art
Implement your
Behavioral design using VHDL
HDL Simulation
or Verilog
Functional
Synthesis Simulation
Timing
Implementation Simulation
In-Circuit
Download Verification
Traditional design flow 2/3
Behavioral
HDL Simulation
Synthesize the
Functional
Synthesis Simulation design to create an
FPGA netlist
Timing
Implementation Simulation
In-Circuit
Download Verification
Traditional design flow 3/3
Behavioral
HDL Simulation
Functional
Synthesis Simulation
Translate, place
Timing and route, and
Implementation Simulation
generate a
bitstream to
In-Circuit download in the
Download Verification FPGA
VHDL 101