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.
The following subsections describe which Xilinx architectural families are included in each 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.
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.
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).
The title XC5200 pertains to the XC5200 family.
The title XC9000 pertains to the XC9500 and XC9500XL CPLD families.
The Spartan library pertains to the Spartan family XCS* devices.
The SpatanXL library pertains to the SpartanXL family XCS*XL devces.
The Virtex Library pertains to the Virtex family XCV* devices.
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.
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 |
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.
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 |
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.
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 | - |
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.
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 |
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.
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 |
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.
For information on how to instantiate output MUXs with inverted inputs, see the Synopsys (XSI) Interface/ Tutorial Guide.
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 |
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.
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 |