今天我们要介绍的时序分析基本概念是PBA分析模式,全称Path Based Analysis Mode.
和GBA模式相比,PBA要更加乐观,因为它会计算具体哪些路径是实际的路径。如下图中的timing path,在setup分析模式下,如果采用GBA分析模式,工具只考虑每颗cell最悲观的情况,因此timing path会选用最悲观的情况,就是绿色箭头指向的路径;而如果采用PBA分析模式,工具在计算slew propagation时会采用真实存在的路径,也就是黑色箭头指向的路径。
PBA的计算模式虽然更加精确,更加真实,但它也有缺点,就是运算量太大,导致运行时间成倍增长。如下图这样一个5级的逻辑,到Z[2] pin就会有320条时序路径。
因此,当我们设计规模大到上百万门以后,如果采用PBA计算模式,那工具会花费非常长的时间去寻找真实的slew propagation。因此,一般情况下,我们都是采用GBA模式去分析时序。只有在signoff最后阶段,violation的timing path较少时,才会使用PBA模式去除悲观性。
最后,PBA模式还分为两种计算方式:Path和 Exhaustive . 他们各自的算法有一定区别。
Path
基于GBA分析的结果,选择最差的路径重新用PBA计算同样的path.
Exhaustive
基于每个endpoint,会重新计算这个终点上所有的timing path(最多25000条),然后选择其中最差的path再重新用PBA计算slack。
如下图所示:当GBA模式下,最差的三条path是1,2,3时,
如果使用path计算方法的pba mode,如下面命令:
report_timing -nworst 2 -pba_mode path
工具会将1和2这两条path重新计算一遍,报出pba的slack.所以得出的最差slack path是2和1
如果使用exhaustive计算方法的pba mode,如下面命令。
report_timing -nworst 2 -pba_mode exhaustive
工具会将1,2,3这三条path全部重新计算一遍,报出pba的slack.然后得到的最差slack path是2和3
因此我们看出, path计算方式的pba并不能保证得到的path是真正的最差slack的path。但是通常这种方式速度较快,适用于我们想看下pba能带来多少timing的improvement。 而exhaustive是最真实的pba计算方式,但是它的runtime非常慢,适合于接近signoff最后阶段,violation的timing path较少时的情况。
全部0条评论
快来发表一下你的评论吧 !