Clock Conditioning Circuits in IGLOO and ProASIC3 Devices
v1.1
4 - 5
The CLKDLY macro is a pass-through clock source that does not use the PLL, but provides the ability
to delay the clock input using a programmable delay. The CLKDLY macro takes the selected clock
input and adds a user-defined delay element. This macro generates an output clock phase shift
from the input clock.
The CLKDLY macro can be driven by an INBUF* macro to create a composite macro, where the I/O
macro drives the global buffer (with programmable delay) using a hardwired connection. In this
case, the I/O must be placed in one of the dedicated global I/O locations. Many specific INBUF
macros support the wide variety of single-ended and differential I/O standards supported by the
low-power flash family. The available INBUF macros are described in the
The CLKDLY macro can be driven directly from the FPGA core. The CLKDLY macro can also be driven
from an I/O that is routed through the FPGA regular routing fabric. In this case, users must
instantiate a special macro, PLLINT, to differentiate from the hardwired I/O connection described
earlier.
The visual CLKDLY configuration in the SmartGen part of the Actel Libero Integrated Design
Environment (IDE) and Designer tools allows the user to select the desired amount of delay and
configures the delay elements appropriately. SmartGen also allows the user to select the input
clock source. SmartGen will automatically instantiate the special macro, PLLINT, when needed.
CLKDLY Macro Signal Descriptions
The CLKDLY macro supports one input and one output. Each signal is described in
Table 4-2.
CLKDLY Macro Usage
When a CLKDLY macro is used in a CCC location, the programmable delay element is used to allow
the clock delays to go to the global network. In addition, the user can bypass the PLL in a CCC
location integrated with a PLL, but use the programmable delay that is associated with the global
network by instantiating the CLKDLY macro. The same is true when using programmable delay
elements in a CCC location with no PLLs (the user needs to instantiate the CLKDLY macro). There is
no difference between the programmable delay elements used for the PLL and the CLKDLY macro.
Note: For INBUF* driving a PLL macro or CLKDLY macro, the I/O will be hard-routed to the CCC; i.e., will be placed
by software to a dedicated Global I/O.
Figure 4-3 CCC Options: Global Buffers with Programmable Delay
PADN
PADP
Y
PAD
Y
Input LVDS/LVPECL Macro
INBUF* Macro
GLA
or
GLB
or
GLC
Clock Source
Clock Conditioning
Output
CLK
DLYGL[4:0]
GL
Table 4-2
Input and Output Description of the CLKDLY Macro
Signal
Name
I/O
Description
CLK
Reference Clock
Input
Reference clock input for PLL core
Input clock for primary output clock, GLA
GL
Global Output
Output Primary output clock to respective global/quadrant clock
networks