Return to previous page Advance to next page
Libraries Guide
Chapter 3: Design Elements (ACC1 to BYPOSC)

BUFG

Global Clock Buffer

XC3000
XC4000E
XC4000X
XC5200
XC9000
Spartan
SpartanXL
Spartan2
Virtex
Primitive
Primitive
Primitive
Primitive
Primitive
Primitive
Primitive
Primitive
Primitive

BUFG, an architecture-independent global buffer, distributes high fan-out clock signals throughout a PLD device. The Xilinx implementation software converts each BUFG to an appropriate type of global buffer for the target PLD device. If you want to use a specific type of buffer, instantiate it manually.

To use a BUFG in a schematic, connect the input of the BUFG symbol to the clock source. Depending on the target PLD family, the clock source can be an external PAD symbol, an IBUF symbol, or internal logic. For a negative-edge clock input, insert an INV (inverter) symbol between the BUFG output and the clock input. The inversion is implemented at the Configurable Logic Block (CLB) or Input Output Block (IOB) clock pin.

For an XC3000 design, you can use a maximum of two BUFG symbols (assuming that no specific GCLK or ACLK buffer is specified). For XC3000 designs, MAP always selects an ACLK, then a GCLK.

For XC4000, Spartan, or SpartanXL designs, you can use a maximum of eight BUFG symbols (assuming that no specific BUFGP or BUFGS buffers are specified). For XC4000, Spartan, or SpartanXL designs, MAP always selects a BUFGS before a BUFGP.

For XC9000 designs, consult the device data sheet for the number of available global pins. For XC9000 designs, BUFG is always implemented using an IOB. Connect the input of BUFG to an IPAD or an IOPAD that represents an external signal source. Each BUFG can drive any number of register clocks in a design. For XC9000 designs, the output of a BUFG may also be used as an ordinary input signal to other logic elsewhere in the design.

In Virtex and Spartan2, the BUFG cannot be driven directly from a pad. It can be driven from an IBUFG to indicate to use the dedicated pin (GCLKIOB pin) or from an internal driver to create an internal clock. BUFG can also be driven with an IBUF to represent an externally driven clock that does not use the dedicated pin.