打开APP
userphoto
未登录

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

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

在数字IC后端设计实现中,我们常常能听到GBA和PBA这两个概念。特别是在Timing signoff最后阶段,碰到有5ps的setup violation,而且很难fix。这时候大家都会想到能不能P掉。这里说的P掉,就是指能不能报下PBA 模式下是否还有timing margin。今天吾爱IC社区的小编跟大家分享下这两个概念以及它们的应用场景。另外,吾爱IC微信技术交流群继续对各位开放,需要进群的朋友,可以加小编微信。

  •  什么是GBA?

GBA的全称是(Graph Base Analysis)。Primetime在计算timing时,默认是采用GBA模式来报timing的。以图1中FF1和FF2直接的组合逻辑为例,整条路径为A-->Y-->B-->Y-->B-->Y-->A-->Z-->D(大家需要搞清楚slew和transition的区别联系)

图1 slew propgation

Setup分析:

对于或门OR: 在计算A-->Z的delay时,会采用B pin的transition做为input transition(slow slew)。

对于与非门NAND: 在计算B-->Z的delay时,会采用A pin transition做为input transition (slow slew)。

对于异或门XOR: 在计算B-->Z的delay时,会采用A pin或者B pin的transition做为input transition(两个pin均为slow slew)。

对于与门NAN: 在计算A-->Z的delay时,会采用B pin的transition做为input transition(slow slew)。

Hold分析:

对于或门OR: 在计算A-->Z的delay时,会采用A pin的transition做为input transition(fast slew)。

对于与非门NAND: 在计算B-->Z的delay时,会采用B pin transition做为input transition (fast slew)。

对于异或门XOR: 在计算B-->Z的delay时,会采用B pin或者A pin的transition做为input transition(两个pin均为slow slew)。

对于与门NAN: 在计算A-->Z的delay时,会采用A pin的transition做为input transition(fast slew)。

所以,对于setup而言,GBA模式下是将某个standard cell所有input transition中最大的transition值作为所有输入的input transition来计算delay值。而对于hold来说,则采用最小的transition值来计算delay值。

  • PBA (Path Base Analysis)

对于或门OR: 在计算A-->Z的delay时,直接采用A pin的transition做为input transition。

对于与非门NAND: 在计算B-->Z的delay时,直接采用B pin transition做为input transition 。

对于异或门XOR: 在计算B-->Z的delay时,直接采用B pin的transition做为input transition。

对于与门NAN: 在计算A-->Z的delay时,直接采用A pin的transition做为input transition。

所以基于PBA的timing计算模式,是根据实际timing arc上某个pin的transition值来计算cell delay的。

下面再结合一个具体的例子来分析下,以图2为例。其中net delay和cell delay均已标注,如A pin连接的net,其net_max_delay为2.5ns, net_min_delay为2.0ns。

图2  简易电路示意图

图3和图4分别为GBA模式下延迟计算和PBA模式下延迟计算示例图。这个例子可以作为数字IC后端的笔试或者面试题目,希望各位能够弄清楚。通过这个例子能够得知,有的时候为什么GBA和PBA结果是一样的。所以在PBA下,并不是所有path的timing会变得更好(重新计算后)。

图3 GBA模式下各个路径延迟计算

图4  PBA模式下各个路径延迟计算

通过上面的计算,我们知道A--> Y的delay情况为:

Graph base analysis (Min, Max) : 7.25ns, 10.35ns

Path base analysis (Min, Max) : 7.55ns, 10.10ns

所以在A-->Y这段可以得出以下结论:
min_delay_in_GBA < min_delay_in_PBA

max_delay_in_GBA > max_delay_in_PBA

B –>Y的delay情况为:

Graph base analysis (Min, Max) : 7.75ns, 10.85ns

Path base analysis (Min, Max) : 7.75ns, 10.30ns

所以在B-->Y这段可以得出以下结论:
min_delay_in_GBA = min_delay_in_PBA
max_delay_in_GBA > max_delay_in_PBA

C-->Y的delay情况为:

Graph base analysis (Min, Max) : 7.05ns, 9.05ns

Path base analysis (Min, Max) : 7.25ns, 9.05ns

所以在C-->Y这段可以得出以下结论:
min_delay_in_GBA < min_delay_in_PBA
max_delay_in_GBA = max_delay_in_PBA

综上所述,我们可以做出如下归纳总结:

min_delay_in_GBA <= min_delay_in_PBA
max_delay_in_GBA >= max_delay_in_PBA

  • GBA(PBA)的利与弊

通过上面的例子,我们可以得知基于GBA的timing计算方式会比较悲观。而PBA模式下timing更真实。既然这样,很多人会想那直接用PBA来计算timing不是很好。理想是丰满的,现实是残酷的。因为PBA模式timing的计算方式相对复杂,所以runtime会比较久。在大规模的design当中,我们如果用PBA的模式来进行timing signoff,势必会导致run time成几何指数上升(原来可能跑一个corner的pt只需要6个小时,用pba后runtime可能变成26小时)。

  • 何时用PBA

在跑完Primetime后,我们需要检查下计算timing的slew propagation是否是选用worst_slew。命令如下:

pt_shell> printvar timing_slew_propagation_mode

timing_slew_propagation_mode = 'worst_slew'

报PBA模式下的timing命令如下所示。值得注意的是pba_mode中path和exhaustive的区别,建议认真查看手册或者找男人去(Man,这个男人很给力哦):

# default and recommended

set timing_slew_propagation_mode worst_slew

# recalculate timing path using PBA

report_timing –pba_mode path 

get_timing_paths –pba_mode path 

OR

report_timing –pba_mode exhaustive

get_timing_paths –pba_mode exhaustive 

默认情况下,都是采用GBA方式来计算timing的。通过上面的介绍,我们也知道GBA计算方式简单,runtime快,但相对悲观。

如果在Timing signoff最后阶段发现有5ps左右的setup violation,而且已经优化到极致了(cell均无法upsize,clock tree也没有做manual eco的可能性了)。此时,我们可以报下PBA模式下setup是否可以meet。

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

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

之所以我们敢用PBA去看最critical path的timing,主要是因为setup margin事先预留了(比如clock_uncertainty, timing_derate等),而且gba本身较悲观。另外也有项目schedule和timing tradeoff的考虑。

那么,如果在Timing signoff最后阶段发现有3ps左右的hold violation,你会怎么做?这个问题作为思考题,留给大家思考吧。

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

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
CTS的前世今生
File 介绍——sta.timing File
灵活使用示波器触发功能的几个诀窍 来自 skm的博客
MAX5048BAUT+T-ASEMI代理亚德诺规格书
MAX2062应用电路
建立时间和保持时间(1)
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服