Evolution of Implementation Technologies: Trend Toward Higher Levels of Integration
Evolution of Implementation Technologies: Trend Toward Higher Levels of Integration
Xilinx FPGAs - 1
Gate Array Technology (IBM - 1970s)
Xilinx FPGAs - 2
Field-Programmable Gate Arrays
Logic blocks
to implement combinational
and sequential logic
Interconnect
wires to connect inputs and
outputs to logic blocks
I/O blocks
special logic blocks at periphery
of device for external connections
Key questions:
how to make logic blocks programmable?
how to connect the wires?
after the chip has been fabbed
Xilinx FPGAs - 3
Enabling Technology
Xilinx FPGAs - 4
Programming Technologies
Xilinx FPGAs - 5
Tradeoffs in FPGAs
Xilinx FPGAs - 6
Xilinx Programmable Gate Arrays
IOB
Can be used as memory
CLB CLB
Three types of routing
IOB
direct
general-purpose Wiring Channels
long lines of various lengths IOB
RAM-programmable
CLB CLB
can be reconfigured
IOB
Xilinx FPGAs - 7
The Virtex CLB
Xilinx FPGAs - 9
Details of One Virtex Slice
Xilinx FPGAs - 10
Implements any Two 4-input Functions
4-input
function
3-input
function;
registered
Xilinx FPGAs - 11
Implements any 5-input Function
5-input
function
Xilinx FPGAs - 12
Implement Some Larger Functions
e.g. 9-input
parity
Xilinx FPGAs - 13
Two Slices: Any 6-input Function
from
other 6-input
slice function
Xilinx FPGAs - 14
Two Slices: Implement some larger functions
e.g. 19-input
parity
from
other
slice
Xilinx FPGAs - 15
Fast Carry Chain: Add two bits per slice
Carry(a,b,cin)
Sum(a,b,cin)
a
b
cin
Xilinx FPGAs - 16
Lookup Tables used as memory (16 x 2)
[ Distributed Memory ]
Xilinx FPGAs - 17
Lookup Tables used as memory (32 x 1)
Xilinx FPGAs - 18
Block RAM
Xilinx FPGAs - 19
Virtex Routing
Xilinx FPGAs - 20
Virtex Routing
Xilinx FPGAs - 21
Non-Local Routing
Hex wires
Extend 6 CLBs in one direction
Connections at 3 and 6 CLBs
Express busses
Take advantage of many metal layers
Long wires
Extend the length/height of the chip
Global signals
e.g. clk, reset
Tri-state busses
Extend across the chip
Use for datapath bit-slice
Xilinx FPGAs - 22
Using the DLL to De-Skew the Clock
Xilinx FPGAs - 23
Virtex IOB
Xilinx FPGAs - 24
Computer-aided Design
Xilinx FPGAs - 25
CAD Tool Path (contd)
Xilinx FPGAs - 26
Xilinx CAD Tools
Xilinx FPGAs - 27
Applications of FPGAs
Xilinx FPGAs - 28