ISE 转 Vivado 技巧:为什么 CPR 操作得出的效果却是相反的?

关注、星标公众号,精彩内容每日送达
来源:网络素材

为什么CPR操作得出的效果却是相反的?

在进行时序分析时片上工艺差别通常会导致严重的“时钟悲观效应”。这种问题可以通过CPR(Clock Pessimism Reduction)操作来恢复.然而经常有用户咨询我们说在他们的设计中CPR操作并没有降低“时钟悲观效应”,效果却是相反的,在时序上并没有增加反而离时序要求差的更多了。

在setup分析时,CPR通常会被添加到目标(目的)时钟路径,因此增加了要求时间。然而因为在用户的设计中CPR已经从目标时钟路径中移除,要求时间变得更早,而不是延后。结果就是用户认为他们损失了时间,而不是获得补偿时间。其实实际情况是用户没有任何损失。

进行OCV分析时,源路径和目标路径被认为具有不同的延迟时间。然而对于两者“共用”的路径,其延迟时间是保持不变的。CPR补偿了延迟差异,因此直到公用节点延迟数值变得一样了。

为了能够更好的理解发生了什么,请查看附件的时序分析报告。  (感谢Xilinx Tokyo的Matsuyama-san分享了他的一个示例设计的时序分析报告)

为了简单易懂,这个报告作了一些修改。在MMCME3_ADV_X1Y2之前源时钟和目标时钟都共享一个公用路径,然后源时钟走向BUFGCE_X1Y48节点,而目标时钟走向 BUFGCE_X1Y50节点。

让我们明确一下公用节点前的延迟(Vivado认为MMCM的输出作为公共节点,尽管两种时钟路径的输出管脚是不一样的)。

让我们看一下时序报告中源时钟路径:

时钟起点是:0(时序报告的21行),到达MMCM的输出端是-3.218(时序报告的31行)。因此公用节点前的延迟是-3.218。

对于目标时钟路径:

时钟起点是:3.33(时序报告的41行),到达MMCM的输出端是0.141(时序报告的50行),因此公用节点的延迟(目标时钟路径)是0.141-3.33=-3.189。目标路径的延迟(-3.189)看起来要比源时钟路径延迟(-3.218)要大一些(注意负号,不要仅看到延迟的数值)。

因此目标路径具有更高的延迟,需要进行补偿。因此在目标时钟中降低“时钟悲观效应”,这样才能减少要求时间。

现在,源时钟和目标时钟在公用节点之前都具有了相同的延迟,也就是说用户在公用节点(如示例中的MMCM节点)前没有任何损失也没有额外获得什么。

这种相反效应的现象在MMCM节点中是存在的,相对UltraScale系列器件,这种情况在7系列器件中更是普遍存在的。

354a7b43a42af287eff6c849ca0e5b51.jpeg

想要了解FPGA吗?这里有实例分享,ZYNQ设计,关注我们的公众号,探索

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值