UPGRADE YOUR BROWSER

We have detected your current browser version is not the latest one. Xilinx.com uses the latest web technologies to bring you the best online experience possible. Please upgrade to a Xilinx.com supported browser:Chrome, Firefox, Internet Explorer 11, Safari. Thank you!

AR# 59631

2013.x - Vivado Timing - My CPR is negative. Is this incorrect?

Description

In the Setup checks, Clock Pessimism Removal (CPR) typically moves the clock arrival at the destination forward in time. 

This gives more time for setup to be valid and is helpful.. 

A negative CPR on the other hand would make the clock arrival at the destination occur sooner, which gives less time for the setup to be valid.

Is this correct?

Solution

Negative CPR can occur when a Clock Modifying Block (CMB) is used which deskews the clock to the input pad.

For the path below, the clock path moves through a PLL.

The PLL adds negative delay which deskews the output clock to the input port.

This means that the minimum clocking path will have a larger negative delay when compared to the maximum path.

Effectively, the pre-CPR analysis reduced the maximum path by more delay than the minimum path, which makes the calculation too optimistic.

In this scenario, CPR will cause the clock arrival at the destination to occur sooner, which will account for this optimism.
 
The CPR is applied at the common node and compensates for the fact that the common path cannot be both a minimum value and a maximum value at the same time.
 
In the timing report below, the source (data path) and destination (clock path) common node are the same as the net which follows the BUFG.
 
Capture.PNG

AR# 59631
Date Created 03/04/2014
Last Updated 08/22/2014
Status Active
Type General Article
Devices
  • FPGA Device Families
Tools
  • Vivado Design Suite