Previous

Appendix C

Instantiated Components

This appendix lists the Xilinx Unified Library components most frequently instantiated in synthesis designs for FPGAs. This appendix contains the following sections:

The function of each component is briefly described and the pin names are supplied, along with a listing of the Xilinx product families involved. Associated instantiation can be used to include the component in an HDL design. For complete lists of the Xilinx components, see the online Libraries Guide.

Library/Architecture Definitions

The following subsections describe which Xilinx architectural families are included in each library.

XC3000 Library

Information appearing under the title of XC3000 pertains to the XC3000A and XC3100A families. This includes the XC3000L and XC3100L, which are identical in architecture and features to the XC3000A and XC3100A, respectively, but operate at a nominal supply voltage of 3.3 V.

XC4000E Library

Wherever XC4000E is mentioned, it includes the XC4000E and XC4000L families. The XC4000L is identical in architecture and features to the XC4000E but operates at a nominal supply voltage of 3.3 V.

XC4000X Library

Information under the title XC4000X pertains to the XC4000EX, XC4000XL, XC4000XV, and XC4000XLA families. The XC4000XL is identical in architecture and features to the XC4000EX but operates at a nominal supply voltage of 3.3 V. The XC4000XV has identical library symbols to the XC4000EX and XC4000XL but operates at a nominal supply voltage of 2.5 V and includes additional features (the DRIVE attribute).

XC5200 Library

The title XC5200 pertains to the XC5200 family.

XC9000 Library

The title XC9000 pertains to the XC9500 and XC9500XL CPLD families.

Spartan Library

The Spartan library pertains to the Spartan family XCS* devices.

SpartanXL Library

The SpatanXL library pertains to the SpartanXL family XCS*XL devces.

Virtex Library

The Virtex Library pertains to the Virtex family XCV* devices.

STARTUP Component

The STARTUP component is typically used to access the global set/reset and global 3-state signals. STARTUP can also be used to access the startup sequence clock.

For information on the startup sequence and the associated signals, see the Programmable Logic Data Book and the online Libraries Guide.

Table C_1 Design STARTUP Components

Name
Library
Description
Outputs
Inputs
STARTUP
XC4000E
XC4000X
XC5200*
Spartan
SpartanXL
Used to connect Global Set/Reset, global 3-state control, and user configuration clock.
Q2, Q3, Q1Q4, DONEIN
GSR, GTS, CLK
STARTUP_
VIRTEX
Virtex
Used to connect Global Set/Reset, global 3-state control, and user configuration clock.

GSR, GTS, CLK
* For 5200, GSR pin is GR

BSCAN Component

To use the boundary-scan (BSCAN) circuitry in a Xilinx FPGA, the BSCAN component must be present in the input design. The TDI, TDO, TMS, and TCK components are typically used to access the reserved boundary scan device pads for use with the BSCAN component but can be connected to user logic as well. For more information on the BSCAN component, the internal boundary scan circuitry, and the directional properties of the four reserved boundary scan pads, refer to Programmable Logic Data Book and the online Libraries Guide.

Table C_2 Boundary Scan Components

Name
Library
Description
Outputs
Inputs
BSCAN
XC4000E
XC4000X
XC5200
Spartan
SpartanXL
Indicates that the boundary scan logic should be enabled after the FPGA has been configured.
TDO, DRCK, IDLE, SEL1, SEL2
TDI, TMS, TCK, TDO1, TDO2
TDI
XC4000E
XC4000X
XC5200
Spartan
SpartanXL
Connects to the BSCAN TDI input. Loads instructions and data on each low-to-high TCK transition.
I
-
TDO
XC4000E
XC4000X
XC5200
Spartan
SpartanXL
Connects to the BSCAN TDO output. Provides the boundary scan data on each low-to-high TCK transition.
-
O
TMS
XC4000E
XC4000X
XC5200
Spartan
SpartanXL
Connects to the BSCAN TMS input. It determines which boundary scan is performed.
I
-
TCK
XC4000E
XC4000X
XC5200
Spartan
SpartanXL
Connects to the BSCAN TCK input. Shifts the serial data and instructions into and out of the boundary scan data registers.
I
-
* The XC5200 has three additional pins: Reset, Update, Shift

READBACK Component

To use the dedicated readback logic in a Xilinx FPGA, the READBACK component must be inserted in the input design. The MD0, MD1, and MD2 components are typically used to access the mode pins for use with the readback logic but can be connected to user logic as well. For more information on the READBACK component, the internal readback logic, and the directional properties of the three reserved mode pins, see the Programmable Logic Data Book and the online Libraries Guide.

Table C_3 Readback Components

Name
Library
Description
Outputs
Inputs
READBACK
XC4000E
XC4000X
XC5200
Spartan
SpartanXL
Accesses the bitstream readback function. A low-to-high transition on the TRIG input initiates the readback process.
DATA, RIP
CLK, TRIG
MD0
XC4000E
XC4000X
XC5200
Connects to the Mode 0 (M0) input pin, which is used to determine the configuration mode.
I
-
MD1
XC4000E
XC4000X
XC5200
Connects to the Mode 1 (M1) input pin, which is used to determine the configuration mode.
-
O
MD2
XC4000E
XC4000X
XC5200
Connects to the Mode 2 (M2) input pin, which is used to determine the configuration mode.
I
-

RAM and ROM

Some of the most frequently instantiated library components are the RAM and ROM primitives. Because most synthesis tools are unable to infer RAM or ROM components from the source HDL, the primitives must be used to build up more complex structures. The following list of RAM and ROM components is a complete list of the primitives available in the Xilinx library. For more information on the components, see the Programmable Logic Data Book and the online Libraries Guide.

Table C_4 Memory Components

Name
Library
Description
Outputs
Inputs
RAM16X1
XC4000E
XC4000X
A 16-word by 1-bit static read-write random-access memory component.
O
D, A3, A2, A1, A0, WE
RAM16X1D
XC4000E
XC4000X
Spartan
SpartanXL
Virtex
A 16-word by 1-bit dual port random access memory with synchronous write capability and asynchronous read capability.
SPO,
DPO
D, A3, A2, A1, A0, DPRA3, DPRA2, DPRA1, DPRA0, WE, WCLK
RAM16X1S
XC4000E
XC4000X
Spartan
SpartanXL
Virtex
A 16-word by 1-bit static random access memory with synchronous write capability and asynchronous read capability.
O
D, A3, A2, A1, A0, WE, WCLK
RAM32X1
XC4000E
XC4000X
A 32-word by 1-bit static read-write random access memory.
O
D, A0, A1, A2, A3, A4, WE
RAM32X1S
XC4000E
XC4000X
Spartan
SpartanXL
Virtex
A 32-word by 1-bit static random access memory with synchronous write capability and asynchronous read capability.
O
D, A4, A3, A2, A1, A0, WE, WCLK
ROM16X1
XC4000E
XC4000X
Spartan
SpartanXL
A 16-word by 1-bit read-only memory component.
O
A3, A2, A1, A0
ROM32X1
XC4000E
XC4000X
Spartan
SpartanXL
A 32-word by 1-bit read-only memory component.
O
A4, A3, A2, A1, A0

Global Buffers

Each Xilinx PLD device has multiple styles of global buffers; the XC4000EX devices have 20 actual global buffers - eight BUFGLSs, eight BUFEs, and four BUFFCLKs. For some designs it may be necessary to use the exact buffer desired to ensure appropriate clock distribution delay.

For most designs, the BUFG, BUFGS, and BUFGP components can be inferred or instantiated, thus allowing the design implementation tools to make an appropriate physical buffer allocation. For more information on the components, see the Programmable Logic Data Book.

Table C_5 Global Buffer Components

Name
Library
Description
Outputs
Inputs
BUFG
XC3000
XC4000E
XC4000X
XC5200
XC9000
Spartan
SpartanXL
Virtex
An architecture-independent global buffer, distributes high fan-out clock signals throughout a PLD device.
O
I
BUFGP*
XC4000E
XC5200
Spartan
Virtex
A primary global buffer, distributes high fan-out clock or control signals throughout PLD devices.
O
I
BUFGS**
XC4000E
XC5200
Spartan
A secondary global buffer, distributes high fan-out clock or control signals throughout a PLD device.
O
I
BUFGLS
XC4000X
SpartanXL
Global low-skew buffer. BUFGLS components can drive all flip-flop clock pins.
O
I
BUFGE
XC4000X
Global early buffer. XC4000EX devices have eight total, two in each corner. BUFGE components can drive all clock pins in their corner of the device.
O
I
BUFFCLK
XC4000X
Fast clocks. XC4000EX devices have 4 total, 2 each on the left and right sides. BUFFCLK components can drive all IOB clock pins on their left or right half edge.
O
I
BUFGSR
XC9000
Global Set/Reset buffer
O
I
BUFGTS
XC9000
Global Tri-State Enable buffer.
O
I
* BUFGP_F for Synopsys
** BUFGS_F for Synopsys

Fast Output Primitives (XC4000X only)

One of the features added to the XC4000X architecture is the fast output MUX. There is one fast output MUX located in each IOB which can be used to implement any two input logic functions. Each component can have zero, one, or two inverted inputs. Because the output MUX is located in the IOB, it must be connected to the input pin of either an OBUF or an OBUT. For more information on the output primitives, see the Programmable Logic Data Book.


NOTE

For information on how to instantiate output MUXs with inverted inputs, see the Synopsys (XSI) Interface/ Tutorial Guide.


Table C_6 Fast Output Primitives

Name
Library
Description
Outputs
Inputs
OAND2
XC4000X
2-input AND gate that is implemented in the output multiplexer of the XC4000EX IOB.
O
F, I0
ONAND2
XC4000X
2-input NAND gate that is implemented in the output multiplexer of the XC4000EX IOB.
O
F, I0
OOR2
XC4000X
2-input OR gate that is implemented in the output multiplexer of the XC4000EX IOB.
O
F, I0
ONOR2
XC4000X
2-input NOR gate that is implemented in the output multiplexer of the XC4000EX IOB.
O
F, I0
OXOR2
XC4000X
2-input exclusive OR gate that is implemented in the output multiplexer of the XC4000EX IOB.
O
F, I0
OXNOR2
XC4000X
2-input exclusive NOR gate that is implemented in the output multiplexer of the XC4000EX IOB.
O
F, I0
OMUX2
XC4000X
2-by-1 MUX implemented in the output multiplexer of the XC4000EX IOB.
O
D0, D1, S0

IOB Components

Depending on the synthesis vendor being used, some IOB components must be instantiated directly in the input design. Most synthesis tools support IOB D-type flip-flop inferences but may not yet support IOB D-type flip-flop inference with clock enables. Because there are many slew rates and delay types available, there are many derivatives of the primitives shown. For a complete list of the IOB primitives, see the online Libraries Guide.

Table C_7 Input/Output Block Components

Name
Library
Description
Outputs
Inputs
IBUF
XC3000
XC4000E
XC4000X
XC5200
XC9000
Spartan
SpartanXL
Single input buffers. An IBUF isolates the internal circuit from the signals coming into a chip.
O
I
OBUF
XC3000
XC4000E
XC4000X
XC5200
XC9000
Spartan
SpartanXL
Single output buffers. An OBUF isolates the internal circuit and provides drive current for signals leaving a chip.
O
I
OBUFT
XC3000
XC4000E
XC4000X
XC5200
XC9000
Spartan
SpartanXL
Single 3-state output buffer with active-low output enable. (3-state High.)
O
I,T
OBUFE
XC9000
Single 3-state output buffer with active-high output enable. (3-state Low.)
O
I, T
IFD
XC3000
XC4000E
XC4000X
XC5200
Spartan
SpartanXL
Single input D flip-flop.
Q
D, C
OFD
XC3000
XC4000E
XC4000X
XC5200
Spartan
SpartanXL
Single output D flip-flop.
Q
D, C
OFDT
XC3000
XC4000E
XC4000X
XC5200
Spartan
SpartanXL
Single D flip-flop with active-high 3-state active-low output enable buffers.
O
D, C,T
IFDX
XC4000E
XC4000X
Spartan
SpartanXL
Single input D flip-flop with clock enable.
Q
D0, D1, S0
OFDX
XC4000E
XC4000X
Spartan
SpartanXL
Single output D flip-flop with clock enable.
Q
D, C, CE
OFDTX
XC4000E
XC4000X
XC5200
Spartan
SpartanXL
Single D flip-flop with active-high tristate and active-low output enable buffers.
O
D, C, CE, T
ILD_1
XC3000
XC4000E
XC4000X
XC5200
Spartan
SpartanXL
Transparent input data latch with inverted gate. (Transparent High.)
Q
D, G

Next