As shown in the following figure, the board clock enters the device
through the port sysclk
, then propagates through an
input buffer and a clock buffer before reaching the path registers.
- Its period is 10 ns.
- Its duty cycle is 50%.
- Its phase is not shifted.
Corresponding Xilinx Design Constraints (XDC):
create_clock -period 10 [get_ports sysclk]
Similar to sysclk
, a board clock devclk
enters the device through the port ClkIn
.
- Its period is 10 ns.
- Its duty cycle is 25%.
- It is phase shifted by 90 degrees.
Corresponding XDC:
create_clock -name devclk -period 10 -waveform {2.5 5} [get_ports ClkIn]
The following figure shows a transceiver gt0, which recovers the clock
rxclk
from a high speed link on the board. The
clock rxclk
has a 3.33 ns period, a 50% duty cycle and
is routed to an MMCM, which generates several compensated clocks for the design.
When defining rxclk
on the output driver
pin of GT0, all the generated clocks driven by the MMCM have a common source point,
which is gt0/RXOUTCLK. The slack computation on paths between them uses the proper clock
latency and uncertainty values.
create_clock -name rxclk -period 3.33 [get_pins gt0/RXOUTCLK]
In the following figure, a differential buffer drives the PLL. In such a scenario, the primary clock must only be created on the positive input of the differential buffer. Creating a primary clock on each of the positive/negative inputs of the buffer would result in unrealistic CDC paths. For example:
create_clock -name sysclk -period 3.33 [get_ports SYS_CLK_clk_p]