Element | XC3000 | XC4000E | XC4000X | XC5200 | XC9000 | Spartan | SpartanXL | Spartan2 | Virtex |
---|---|---|---|---|---|---|---|---|---|
BUFT | Primitive | Primitive | Primitive | Primitive | Primitive* | Primitive | Primitive | Primitive | Primitive |
BUFT4, BUFT8, BUFT16 | Macro | Macro | Macro | Macro | Macro* | Macro | Macro | Macro | Macro |
* not supported for XC9500XL and XC9500XV devices |
BUFT, BUFT4, BUFT8, and BUFT16 are single or multiple 3-state buffers with inputs I, I3 - I0, I7 - I0, and I15 - 10, respectively; outputs O, O3 - O0, O7 - O0, and O15 - O0, respectively; and active-Low output enable (T). When T is Low, data on the inputs of the buffers is transferred to the corresponding outputs. When T is High, the output is high impedance (Z state or off). The outputs of the buffers are connected to horizontal longlines in FPGA architectures.
The outputs of separate BUFT symbols can be tied together to form a bus or a multiplexer. Make sure that only one T is Low at one time. If none of the T inputs is active (Low), a weak-keeper circuit (FPGAs) prevents the output bus from floating but does not guarantee that the bus remains at the last value driven onto it.
Pull-up resistors can be used to establish a High logic level if all BUFT elements are off in XC3000, XC4000, Spartan, and SpartanXL.
In the XC5200 architecture, pull-ups cannot be used in conjunction with BUFT or BUFE macros because there are no pull-ups available at the ends of the horizontal longlines.
For XC9500 devices, BUFT output nets assume the High logic level when all connected BUFE/BUFT buffers are disabled. On-chip 3-state multiplexing is not available in XC9500XL devices.
For Virtex and Spartan2, when all BUFTs on a net are disabled, the net is High. For correct simulation of this effect, a PULLUP element must be connected to the net. NGDBuild inserts a PULLUP element if one is not connected so that back-annotation simulation reflects the true state of the Virtex or Spartan2 chip.
Inputs | Outputs | |
---|---|---|
T | I | O |
1 | X | Z |
0 | 1 | 1 |
0 | 0 | 0 |