为何net delay是负值(数字后端实现时序篇)

揭秘为何net delay是负值(数字后端实现时序篇)

文章右侧广告为官方硬广告,与吾爱IC社区无关,用户勿点。点击进去后出现任何损失与社区无关。

今天吾爱 IC 社区的小编为大家做个关于 cell delay,net delay 方面的干货分享。前阵子在某个交流群看到居然有很多人没见过 “负的 net delay”,甚至不知道为何有 negative delay。看到这个现象小编很震惊!!!经过思考后,觉得一方面他们可能是刚工作一两年的数字后端工程师,另外一方面就是完全没有认真看过甚至没看过 STA 那本宝典。这本宝典堪称静态时序分析的葵花宝典,本文介绍的所有内容均在这本书有非常详细的介绍。公众号有 20 本数字 IC 设计电子书下载资源,有需要的童鞋可以前往下载。

【大师必备】最全的数字 IC 设计经典书籍电子版下载

  • 什么是传播延时

传播延时是指信号从逻辑门的输入端到其输出端所需要的时间。

这里引用一个英文的定义(很多时候用中文来描述专业术语,真的很别扭)

It is defined as the difference between the times when the transitioning input reaches 50% of its final value to the time when the output reaches 50% of the final value showing the effect of input change. 这里 50% 被定义为逻辑阈值。

以图 1 中的两输入与门为例。I1 端是一个 constant,value 为 1,I2 端信号波形如图所示。O 为两输入与门的输出。

图 1 propagation delay 示例

传播延时取决于

1.input transition

input transition 越小(即 fast slew),cell delay 越小。在数字后端设计实现中,常常看到 cell delay 比较大的原因之一就是 input transition 比较大(transition 比较差)导致的。

  1. output load

输出负载越大,需要给负载充电的时间就越长,因此 cell delay 也就越大。这里顺便提下,有的时候我们为了 balance delay 值,可以通过加 dummy net 来增加 load,从而增大 latency。

那么工具是如何来计算 propgation delay 的呢?

  • Liberty 文件

Liberty file 包含每个逻辑门每个输入到输出路径的查找表,我们也称之为 cell arc。这个查找表往往以. lib 或者. db 形式给出。通过查找表,可以得知某个的 input transition 和 output load 所对应的 cell delay 值。Lib 文件部分截图如图 2 所示。由于这个 Table 不可能做到无限大,无限精确,对于不在查找表中的 input transition 和 output load 的组合,工具会利用插值算法来计算 cell delay。这个 Liberty 文件一般是由 fab 提供的,对标准单元进行 K 库获得的。在数字后端实现时需要注意的是 transition 和 load 不要超表。

图 2 cell delay lockup table

  • SDF 文件: SDF (Standard Delay Format) is the extracted delay information of a design. The current delay information, as calculated, can be dumped into SDF file. It can, then, be read back. In case SDF is read, delays are not calculated and SDF delays are given precedence.

当前某个 cell 的 output transition 其实就是下一级 cell 的 input transition。因此我们也需要一张表来告诉工具如何计算 output transition 值。这个表如图 3 所示,计算 output transition 值的这个表是一个 3*3 的表格。从表中可以看出 Output transition 值也取决于 input transition 和 output load。

图 3 计算 output transition 的 lookup table

上面介绍了 cell delay 的计算方式,细心的人会发现 cell delay 都是正值。而实际上 cell delay 是存在负 delay 的情况。而且从 propagation delay 的定义可以看出,当 output 的 transition 足够快,完全可能出现 output 50% 电平提前于 input50% 电平,即发生负的 delay 情况,如图 4 所示。

出现负的 net delay 情况如下:

Drive 的驱动能力够大

Input transition 足够小

Output load 比较小

图 4 negative cell delay 示意图

  • Net delay

Net Delay refers to the total time needed to charge or discharge all of the parasitic (Capacitance / Resistance / Inductance) of a given Net.

Net delay 的计算往往是将整个 design 中的 net 拆分成若干段来进行的,同时把每段 net 用某种 RC 模型来表征。数字后端实现过程中 net delay 也仅仅是基于特定的 delay 模型来进行 net delay 的估算。PR 工具布线后的 database,需要利用 Start-RC 来进行 RC 抽取,以 SPEF 格式的 RC 文件输出。最后在 Timing signoff 工具 Primetime 中读取这个 RC spef 文件来进行 delay 的计算。更多关于 net delay 估算的模型后续会专门做个讨论。

那么 net delay 可能是负的 delay 值吗?答案是肯定的。在没有 crosstalk 的情况下,net delay 一定是正值。图 5 为一个简单 crosstalk 示例电路。其中 Net N1 为 Victim net,这条 net 边上有一条 net,我们称之为 Aggressor。Net N1 和 Aggressor 之间存在耦合电容 Cc,Cg 为 Net N1 的对地电容。

当 Net N1 有个上升沿的跳变时,且 Aggressor 这条 net 也是从 0 到 1 的跳变,且 transition 变化比 Net N1 还快时,此时就会存在一个负的 crosstalk(假设存在串扰)。正是由于这个 negative 的 crosstalk,反而使得 Net N1 的 transition 反而变得更好了,从而显现出负的 net delay 值。这种情景往往是用于分析 min path 即 hold 场景。

CRPR 能补偿 crosstalk 吗?

图 5 crosstalk effect

所以,对于 hold 分析而言,launch clock path 和 launch data path 上的 crosstalk 应当是 negative crosstalk,capture clock path 和 capture data path 上的 crosstalk 应当是 positive crosstalk。

小编知识星球简介:

在这里,目前已经规划并正着手做的事情:

  • ICC/ICC2 lab 的编写

  • 基于 ARM CPU 的后端实现流程

  • 利用 ICC 中 CCD(Concurrent Clock Data)实现高性能模块的设计实现

  • 其他内容待定

在这里,各位可以提问(支持匿名提问,提问从此不再害羞),小编会在 24 小时内给予解答(也可以发表你对某个知识点的看法,项目中遇到的难点,困惑或者职业发展规划等)。

反正它是一个缩减版的论坛,增强了大家的互动性。更为重要的是,微信有知识星球的小程序入口。星球二维码如下,可以扫描或者长按识别二维码进入。目前已经有九位星球成员,感谢这九位童鞋的支持!欢迎各位铁杆粉丝加入!

相关文章推荐(不看保证后悔)

PBA(Path Base Analysis)想说爱你不容易(静态时序分析基础篇)

一网打尽时钟树综合 Clock Skew

数字后端设计实现之时钟树综合实践篇

【惊呆了!】你居然还在用 flatten 方式进行 timing signoff

数字后端面试问答 No.16-18

合理的时钟结构能够加速 Timing 收敛(时钟树综合中级篇)

数字后端面试问答 No.13-15(每日三问)

【机密】从此没有难做的 floorplan(数字后端设计实现 floorplan 篇)

数字后端面试问答 No.10-12(每日三问)

数字后端面试问题 No.7-9(每日三问)

听说 Latch 可以高效修 hold 违例(Timing borrowing 及其应用)

15 天零基础入门到精通 python - 最全的视频教程

数字后端面试问答 No.4-6(每日三问)

IR Drop 分析之 Redhawk 分析流程

CRPR 能补偿 crosstalk 吗?

原来电路最高工作频率是这么算出来的(STA 基础篇)

数字后端面试问答 No.1-3(每日三问)

秒杀数字后端实现中 clock gating 使能端 setup violation 问题

教你轻松调 DCT 和 ICC 之间 Timing 与 Congestion 的一致性

数字芯片设计实现中修复 setup 违例的方法汇总

数字 IC 设计中 ECO 的那些事,其实并不是事!

Scan chain reordering 怎么用你知道吗?

如何评价数字后端设计中 floorplan 的好坏?

数字后端实现时 congestion 比较严重,你 hold 得住吗?

数字后端实现 place 过程进阶

Final netlist release 前,你应该做好哪些工作?

基于 Physical Aware 的动态功耗优化实现方案

深入浅出讲透 set_multicycle_path,从此彻底掌握它

【大师必备】最全的数字 IC 设计经典书籍电子版下载

你与数字后端大神的差距在这里,快来瞧瞧!

数字后端实现时 congestion 比较严重,你 hold 得住吗?

时钟树综合(clock tree synthesis)基础篇

【福利】数字 IC 后端各种 Userguide 下载

好了,今天的码字就到这里了,原创不容易,喜欢的可以帮忙转发和赞赏,你的转发和赞赏是我不断更新文章的动力。小编在此先谢过!与此同时,吾爱 IC 社区(52-ic.com)也正式上线了。吾爱 IC 社区(52-ic.com)是一个专业交流和分享数字 IC 设计与实现技术与经验的 IC 社区。如果大家在学习和工作中有碰到技术问题,欢迎在微信公众号给小编留言或者添加以下几种联系方式进行提问交流。

打赏的朋友,请长按下方二维码,识别小程序进行打赏,欢迎砸钱过来!小编晚饭能不能加个鸡腿,全靠它了,呵呵!

作者微信:

https://mp.weixin.qq.com/s/WC2oCIrVo-Sqtx4HKp8mXw

  • 4
    点赞
  • 105
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值