Clock Conditioning Circuits in IGLOO and ProASIC3 Devices
4- 2
v1.1
with up to three global outputs. Unused global outputs of a PLL can be used to implement
independent global buffers, up to a maximum of three global outputs for a given CCC.
CCC Programming
The CCC block is fully configurable, either via flash configuration bits set in the programming
bitstream or through an asynchronous interface. This asynchronous dedicated shift register
interface is dynamically accessible from inside the low-power flash devices to permit parameter
changes, such as PLL divide ratios and delays, during device operation.
To increase the versatility and flexibility of the clock conditioning system, the CCC configuration is
determined either by the user during the design process, with configuration data being stored in
flash memory as part of the device programming procedure, or by writing data into a dedicated
shift register during normal device operation.
This latter mode allows the user to dynamically reconfigure the CCC without the need for core
programming. The shift register is accessed through a simple serial interface. Refer to UJTAG Global Resources
Low-power flash devices provide three global routing networks (GLA, GLB, and GLC) for each of
the CCC locations. There are potentially many I/O locations; each global I/O location can be chosen
from only one of three possibilities. This is controlled by the multiplexer tree circuitry in each
global network. Once the I/O location is selected, the user has the option to utilize the CCCs before
the signals are connected to the global networks. The CCC in each location (up to six) has the same
structure, so generating the CCC macros is always done with an identical software GUI. The CCCs in
the corner locations drive the quadrant global networks, and the CCCs in the middle of the east
and west locations drive the chip global networks. The quadrant global networks span only a
quarter of the device, while the chip global networks span the entire device. For more details on
A global buffer can be placed in any of the three global locations (CLKA-GLA, CLKB-GLB, or
CLKC-GLC) of a given CCC. A PLL macro uses the CLKA CCC input to drive its reference clock. It uses
the GLA and, optionally, the GLB and GLC global outputs to drive the global networks. A PLL macro
can also drive the YB and YC regular core outputs. The GLB (or GLC) global output cannot be
Each global buffer, as well as the PLL reference clock, can be driven from one of the following:
3 dedicated single-ended I/Os using a hardwired connection
2 dedicated differential I/Os using a hardwired connection
The FPGA core