CRPR能补偿crosstalk吗?
明天就是清明小长假了,提前祝大家小长假玩的开心。上一期推送的原来电路最高工作频率是这么算出来的(STA 基础篇),最后留了一个思考题给大家,吾爱 IC 社区的公众号后台也陆续收到很多粉丝的答案,有的表示完全不会,有的给出大致解题过程(不知道如何去计算),有的给出错误的答案(答案反正是五花八门,什么结果都有)。看到这种情况让小编瞬间震惊!所以有必要让大家做个投票,选择自己认为正确的答案。全面统计下各位的基础后,能更具针对性地写一些文章。
下面我们进入今天的主题。主要介绍 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
芯片中的所有晶体管不能期望具有相同的加工制造工艺。由于掩模印刷、蚀刻等工艺的缺陷,沟道长度、氧化层厚度、掺杂浓度、金属厚度等都会发生变化。具体理论的知识可以自行查阅相关教程。
关键公式: ID \= (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 元钱,呵呵)。小编发文后开车都盼着每个路口遇红灯,为什么呢?目的有两个,一个是看阅读量,另外一个是看你们给打赏了没,呵呵。所以,请多多打赏,请多多转发,感谢!还是感谢!
相关文章推荐(不看保证后悔)
秒杀数字后端实现中 clock gating 使能端 setup violation 问题
教你轻松调 DCT 和 ICC 之间 Timing 与 Congestion 的一致性
Scan chain reordering 怎么用你知道吗?
数字后端实现时 congestion 比较严重,你 hold 得住吗?
Final netlist release 前,你应该做好哪些工作?
深入浅出讲透 set_multicycle_path,从此彻底掌握它
数字后端实现时 congestion 比较严重,你 hold 得住吗?
时钟树综合(clock tree synthesis)基础篇
好了,今天的内容分享就到这里。另外,因为公众号更改推送规则,小编分享的每篇干货不一定能及时推送给各位。为了避免错过精彩内容,请关注星标公众号,点击 “在看”,点赞并分享到朋友圈,让推送算法知道你是社区的老铁,这样就不会错过任何精彩内容了。
如果你想和小编有更进一步的沟通交流的机会,欢迎加入小编知识星球,让我们一起学习成长,共同进步。相信在这里能让你成就一个更完美的自己。
小编知识星球简介(如果你渴望进步,期望高薪,喜欢交流,欢迎加入 ****):
在这里,目前已经规划并正着手做的事情:
-
ICC/ICC2 lab 的编写
-
基于 ARM CPU 的后端实现流程
-
利用 ICC 中 CCD(Concurrent Clock Data)实现高性能模块的设计实现
-
基于 ARM 四核 CPU 数字后端 Hierarchical Flow 实现教程
-
时钟树结构分析
-
低功耗设计实现
-
定期将项目中碰到的问题以案例的形式做技术分享
-
基于 90nm 项目案例实现教程(ICC 和 Innovus 配套教程)
-
数字 IC 行业百科全书
吾爱 IC 社区知识星球星主为公众号” 吾爱 IC 社区” 号主,从事数字 ic 后端设计实现工作近八年,拥有55nm,40nm,28nm,22nm,14nm等先进工艺节点成功流片经验,成功tapeout 过三十多颗芯片。
这里是一个数字 IC 设计实现高度垂直细分领域的知识社群,是数字 IC 设计实现领域中最大,最高端的知识交流和分享的社区,这里聚集了无数数字 ic 前端设计,后端实现,模拟 layout 工程师们。
在这里大家可以多建立连接,多交流,多拓展人脉圈,甚至可以组织线下活动。在这里你可以就数字 ic 后端设计实现领域的相关问题进行提问,也可以就职业发展规划问题进行咨询,也可以把困扰你的问题拿出来一起讨论交流。对于提问的问题尽量做到有问必答,如遇到不懂的,也会通过查阅资料或者请教专家来解答问题。在这里鼓励大家积极发表主题,提问,从而促进整个知识社群的良性循环。每个月小编会针对活跃用户进行打赏。
最重要的是在这里,能够借助这个知识社群,短期内实现年薪百万的梦想!不管你信不信,反正已经进来的朋友肯定是相信的!相遇是一种缘分,相识更是一种难能可贵的情分!如若有缘你我一定会相遇相识!知识星球二维码如下,可以扫描或者长按识别二维码进入。目前已经有 881 星球成员,感谢这881童鞋的支持!欢迎各位渴望进步,期望高薪的铁杆粉丝加入!终极目标是打造实现本知识星球全员年薪百万的宏伟目标。
欢迎关注 “吾爱 IC 社区”
微信号:ic-backend2018
https://mp.weixin.qq.com/s/pTN-R5l21vOf1W7so9IDMA