打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
CRPR能补偿crosstalk吗?

下面我们进入今天的主题。主要介绍OCV和CRPR的概念以及他们对setup,hold的影响。

OCV的全称是On Chip Variation。OCV的类型分为两种。一种被称之为global variation。另外一种则是Local  variation。

Global variation:

它是指受Process,Voltage,Temperature(简称PVT)的影响,芯片之间的性能差异性。因为芯片是成批加工制造的,无法保证每颗芯片上同一个device的性能一致性。

Local  variation:

它是指受Process,Voltage,Tempeture(简称PVT)的影响,同一个device在同一颗芯片上表现出性能的不一致性。它与Global variation的相同点是都是受PVT的影响而表现出来的性能不一致性。

  • Process

芯片中的所有晶体管不能期望具有相同的加工制造工艺。由于掩模印刷蚀刻等工艺的缺陷沟道长度氧化层厚度掺杂浓度金属厚度等都会发生变化。具体理论的知识可以自行查阅相关教程。

关键公式:  I= (1/2)μnCox (W/L)(VGS – VTh)2  (这个公式模电里面也学过的,忘记了可以翻书去)

  • Voltage

由于标准单元是被摆放在芯片中的不同位置,所以外部电源的供电电压从源头的参考电压,经历一段电源网络后,达到每个标准单元时的电压会显现出差异性。这就是我们经常所说的IR drop。

  • Temperature

芯片内的晶体管密度不均匀。芯片的某些区域的高cell density,高翻转率,会导致功耗比较高。因此,这些区域的结温较高,形成局部热点。芯片温度的变化会导致不同的延迟。

受到OCV的影响,一些cell可能快或慢于预期。如果不考虑这些变化,结果可能是乐观的,而实际情况可能导致setup或hold违例。那么,在数字IC设计实现阶段我们应该如何来表征这个OCV效应呢?我们的方法就是采用timing derate的方式来进行最终的Timing signoff。

考虑OCV效应的setup检查

如果不考虑OCV的影响,图1中的电路实际最高工作周期T=5.49ns,周期为1/T=182MHz(是不是发现跟上一期的思考题类似,其实有所区别)。下面我们

假设考虑OCV引进time derate的约束,命令如下:

set_timing_derate -early 0.9

set_timing_derate -late 1.2

set_timing_derate  -late 1.1 -cell_check

Launch clock path=2.0*1.2=2.4ns

MaxDataPath=5.2*1.2=6.24ns

CaptureClockPath=2.06*0.9=1.854ns

Tsetup_UFF1=0.35*1.1=0.385

Tmin=7.171ns

通过计算确实周期T变大了,即电路实际工作频率变低了(Performance降低)。同时我们发现UFF0和UFF1的clock tree上存在1.2ns的common path即那两个clock buffer(或者inverter),既在launch 的clock path上,又在capture的clock path上。所以在计算seutp时,common path上的cell delay被分别乘以不同的derate值(实际情况在芯片上只会处于一个特定的PVT环境下),这样的计算方式显然太过悲观。

因此,我们引进了CRPR(Clock Reconvergence Pessimism Removal)的概念,它的数值等于这两个差异值之差。

LatestArrivalTime atCommonPoint = 1.2 * 1.2 = 1.44ns

EarliestArrivalTime at CommonPoint = 1.2 * 0.9 = 1.08ns

CRPR值=1.44-1.08=0.36ns

因此CRPR补偿后,Tmin=7.171-0.36=6.811ns

图1  考虑ocv的setup检查

考虑OCV效应的hold检查

不考虑OCV的影响,图2中没有hold violation。假设施加以下timing derate:

set_timing_derate -early 0.9

set_timing_derate -late 1.2

set_timing_derate -early 0.95 -cell_check

LaunchClockPath = 0.85 * 0.9 = 0.765

MinDataPath = 1.7 * 0.9 = 1.53

CaptureClockPath = 1.00 * 1.2 = 1.2

Thold_UFF1 = 1.25 * 0.95 = 1.1875

Common clock path pessimism: 0.25 * (1.2 - 0.9) = 0.075

因此hold slack=0.765 + 1.53 – 1.2 - 1.1875 + 0.075 = -0.0175ns,即存在hold violations。

图2  考虑ocv的hold 检查

这里说明一点,正常我们timing signoff时derating都不会这么悲观。对于setup检查来说,检查的是在最worst的corner底下,此时cell delay已经是最慢,最悲观的,因此无需在launch path上加derate,只需要在capture上加额外的derate即可。同理,对hold检查来说,只需要在launch path上加derate。当然很多时候对于launch或者capture path,我们还区分clock path和data path,可以针对性设置derate。

介绍了这么多的概念和计算过程后,吾爱IC社区的小编又要抛出一个思考题给大家了,接招吧!

对于图2中的电路,假设在common_clock_tree path上存在0.10ns的crosstalk,请分析其对setup和hold的影响。这道题算是拓展题,面试的时候很有可能问到哦,以后可能成为你的加分项

小编都无私地分享了这么高级的玩意了,你们是不是得给小编打赏下(目前平均下来一天获得打赏1元钱,呵呵)。小编发文后开车都盼着每个路口遇红灯,为什么呢?目的有两个,一个是看阅读量,另外一个是看你们给打赏了没,呵呵。所以,请多多打赏,请多多转发,感谢!还是感谢!

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
Signoff 介绍——Flat OCV
后端 crosstalk相关
AOCV技术在45nm中的应用 : 新思科技
[Forward]静态时序分析(Static?Timing?Analysis)2
CTS的前世今生
ISE静态时序分析
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服