IO Blocks and Programmable Interconnection Points
IO Blocks and Programmable Interconnection Points
IO Blocks and Programmable Interconnection Points
XILINX FPGA-BASICS
Field programmable gate array 2-D arrays cells separated by wiring channels
Basic structure: CLB - logic function generators IOB interface between IO pins & internal logic PI connect CLB & IOB
1
Programmable interconnections
IO BLOCKS
Interface between external package pins & internal logic Configured as an input, output, or bidirectional port. D flip-flops are included to provided registered inputs and outputs. Direct and Registered inputs can be selected by Mux Three main signal paths within the IOB: input path Output path 3-state path Input path: Delay element can be set to ensure a hold time of zero Output path: Tri-state driver is present
IO BLOCKS
IO BLOCKS
Output driver is active low enabled. D Flip Flop can be edge or level triggered Selectable polarity of signals from CLB using invertors CE is common to all FF CLK is separate for input and output Slew rate controlled to avoid noise Pull up and pull down used to connect unused IO to VCC or GRND
XILINX FPGA-INTERCONNECT
Routing resources: wires & switches (antifuse or pass transistors) Wire Segments: Wire unbroken by programmable switches Track: A sequence of one or more wire segments in a line. Routing Channels: group of parallel tracks (Horizontal channel or vertical channel)
Switch box
wires
Logic cell
wires
Logic cell
Wire segment
Horizontal channel
Logic cell
Logic cell
Logic cell
5
Vertical channel
2.
The model contains two basic structures: Connection block : connects the inputs and outputs of a logic block to the wire segments in the channels. Switch block: provides connectivity between the horizontal as well as vertical wire segments. In some architectures, the switch block and connection block are intermingled, and in others they are combined into a single structure.
INTERCONNECT - WIRES
1. 2.
3.
4. 5.
Five types of wire segments: Global Clk: Clock inputs to CLBs Direct connect : between two adjacent CLBs Single groups: flexible connectivity between adjacent CLBs which pass through switch matrix Double groups: travel past 2 CLBs Long groups: span entire chips length or width
INTERCONNECT - WIRES
10
CLB
11 12
PROGRAMMABLE INTERCONNECTS
CLB 1 CLB 2 CLB 3
CLB1
CLB3
CLB 4
CLB 5
CLB 6
CLB9
CLB 7
CLB 8
CLB 9
12
Horizontal channel
13
PSM
14
Programmable switch Element (PSE) connect to other lines For 4 lines, 6 possible pairwise connections can be formed 6 gates in each PSE
15
PIP are programmable pass transistors that connects CLB inputs outputs to routing network
16
SRAM Programming Technology Antifuse Programming Technology Floating Gate Programming Technology
17
MUX controls which one of the multiplexer inputs are connected to the output
18
Advantage: Fast reprogrammability Standard integrated circuit process technology Disadvantage: Large Area External Permanent memory required during power up
19
At the intersection of routing traces, a special contact is placed called an antifuse Unprogrammed state very high resistance between terminals Programmed state low resistance 11- 20 V and 5mA current is used for anitfuse programming
Horizontal wire
20
Vertical wire
ANTIFUSE
3 sandwiched layers: conductors at top and bottom and an insulator in the middle. Antifuses consist of either of the following: ONO dielectric between N+ diffusion and poly-silicon Amorphous silicon between metal layers Amorphous silicon between polysilicon and the first layer of metal
21
Advantage: Small Size Relatively low series resistance and parasitic resistance
ONO 300 to 500 ohm Amorphous si 50 to 100 ohm
Disadvantage: One time Programmable External Pass transistor required during programming
22
UV erasable EPROM and EEPROM devices used Transistor Permanently disabled by injecting charge on floating gate
24
Advantage: Re-programmability No external permanent memory Disadvantage: High ON resistance High Static power consumption due to pull up resistor
25
26
Programmable Interconnections
FPGA layout
cell1 2 3 4 5
Realized connections
cell1 cell2
cell11
6 7 8 9 10
cell5
cell10
27 11 12 13 14 15
FPGA Programming
f1 x1 x2
x1
x1 x2
x2
0 0 0 1
x2 f1 x3
0 1 0 0
f 2 x2 x3
f2
f x1 x2 x2 x3
f1 f2
0 1 1 1
f3
28
REFERENCES
Digital Design Principles and Practices John.F.Wakerly Architecture of FPGAs and CPLDs a tutorial Stephen Brown and Jonathan Rose www.xilinx.com