Element | XC3000 | XC4000E | XC4000X | XC5200 | XC9000 | Spartan | SpartanXL | Virtex |
---|---|---|---|---|---|---|---|---|
BUFE | Macro | Macro | Macro | Macro | Primitive* | Macro | Macro | Primitive |
BUFE4, BUFE8, BUFE16 | Macro | Macro | Macro | Macro | Macro* | Macro | Macro | Macro |
* not supported for XC9500XL devices |
BUFE, BUFE4, BUFE8, and BUFE16 are single or multiple tristate buffers with inputs I, I3 - I0, I7 - I0, and I15 - I0, respectively; outputs O, O3 - O0, O7 - O0, and O15 - O0, respectively; and active-High output enable (E). When E is High, data on the inputs of the buffers is transferred to the corresponding outputs. When E is Low, 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 BUFE symbols can be tied together to form a bus or a multiplexer. Make sure that only one E is High at any one time. If none of the E inputs is active-High, a weak-keeper circuit (FPGAs) keeps the output bus from floating but does not guarantee that the bus remains at the last value driven onto it.
In XC3000, XC4000, and Spartans, the E signal in BUFE macros is implemented by using a BUFT with an inverter on the active-Low enable (T) pin. This inverter can add an extra level of logic to the data path. Pull-up resistors can be used to establish a High logic level if all BUFE elements are Off.
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, BUFE 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, BUFE elements need a PULLUP element connected to their output. NGDBuild inserts a PULLUP element if one is not connected.
Inputs | Outputs | |
---|---|---|
E | I | O |
0 | X | Z |
1 | 1 | 1 |
1 | 0 | 0 |
Figure 3.35 BUFE Implementation XC3000, XC4000, XC5200, Spartans |
Figure 3.36 BUFE8 Implementation XC3000, XC4000, XC5200, Spartans |
Figure 3.37 BUFE8 Implementation XC9000, Virtex |