Primary Clocks Examples - 2023.2 English

Vivado Design Suite User Guide: Using Constraints (UG903)

Document ID
UG903
Release Date
2023-11-01
Version
2023.2 English

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.
Figure 1. Primary Clock Example

Corresponding 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 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]
Figure 2. GT Primary Clock Example

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]
Figure 3. Primary Clock on Differential Buffer Example