GBA PBA(path exhaustive)

2023-11-05 10:40
文章标签 path pba exhaustive gba

本文主要是介绍GBA PBA(path exhaustive),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

1,Timing Graph:

图片

图中的ports 和 pins 组成了graph 的节点,通过timing arc 把节点连接起来,组成timing graph。Graph中包含着每一个timing arc 的min 和 max timing,以及一些case analysis 值和 disable arc等信息。

Path-based analysis 相当于重新计算一条Graph中的一条path,会更加精准。

图片

2,Slew Merge Points

Design中经常看到多个arc 汇集到一个点,每个arc可能有不同的slew 值,这就要求工具在计算delay 的时候,必须选择其中之一,这种点称为slew merge points。很多情况下是一个cell 的output pin,也有可能是cell的input pin (driven by tristate drivers),如下图所示

图片

下图是计算的一个例子:

两个不同slew 的timing arc 到达U1/Z,工具应该如何选择这两个slew,这决定着本级cell 的delay,也影响着下级U2/U3(downstream logic cells)的delay 。为了确保安全和快速,GBA会把最快和最慢的两个留下来,并作为min/max slew传递下去,工具在计算min delay 的时候,为了满足最快需求(满足最worst情况),会使用最快的slew (arc b)来计算,计算max delay 的时候会选择arc a。

图片

按照上述的选择就会有一个问题,如下如所示:

FF1/FF2  通过不同的路径到达FF3,在计算max delay的时候,显然FF2 to FF3是最差的path,但是U1按照GBA 计算选用的是比较慢的slew (arc a),而且会继续传递给U2, U3,因为GBA只会选择最悲观的那个值,而不看具体的path怎么走。

图片

图片

所以,计算FF1到FF3这个path的timing时,GBA是准确的,计算FF2到FF3的时候,GBA就相对比较悲观了。

GBA 相比于PBA的优势就是快,存储的参数比较小。GBA相当于每一个pin 都存储了固定的四个值(min/max rise/fall),计算的时候特别快。PBA在真实情况下,每一个arc 可能受到前级多个timing 行为的影响,如果每一个arc都把every possible upstream path 的值都存储下来,可能有成千上万个,着极大的占用了资源。

3,Path Recalculation

Path-based analysis 时,工具会基于GBA(the graph path) 重新计算新的timing,这种操作叫做 path recalculation。有三种方法可以提高PBA的精度:

(1)pba计算某一个path的timing时,是按照这个path的真实路径的slew传递来计算的,也就是每个pin只有一个值,而不是去多个值里面去选择。即使在某个slew merge points有别的更慢的slew进来,PBA也不管。所以pba看到的slew会真实,会没那么悲观。

(2)pba一次只看一个单一的path,path上的slew没有min/max的区分了,所以这条path也不会有timing window的概念了。这对crosstalk非常有好处的。如下图左,按照GBA计算时,这根net有一个timing window,当它和旁边有耦合的net的timing window有overlap时,就会认为有crosstalk,从而导致slew变化。而右图的PBA模式下,path的net本身只有单个slew,没有window,所以产生crosstalk的几率会大大较少。

图片

(3)即使产生了crosstalk,slew受到的影响也会相对GBA小。因为PBA传递的是不是worst的slew,slew越小,crosstalk也越小。如下图所示,左图GBA 传输的slew 很大,会产生较大的crosstalk,右图的PBA选的时真实的slew,不是worst 的,所以即使有slew,也会比较小。

图片

(4)SDF文件时基于GBA 的,里面存储着每一个arc 对应的一组值。

4,PBA mode 下,path 和 exhaustive 的区别

path:基于GBA分析的结果,选择最差的路径重新用PBA计算同样的path。

exhaustive:基于每个endpoint,会重新计算这个终点上所有的timing path,然后选择其中最差的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。

参考资料:

1,Accurate Signoff Analysis with Path-Based Analysis in PrimeTime

更多文章和专题请关注微信公共号

 

这篇关于GBA PBA(path exhaustive)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/349310

相关文章

Flask 创建app 时候传入的 static_folder 和 static_url_path参数理解

Flask 在创建app的时候 是用 app = Flask(__name__) 来创建的,不传入 static_folder参数的话 ,默认的静态文件的位置是在 static目录下 我们可以进入 Flask的源码里面查看 ctrl+鼠标左键进入 这是Flask的 __init__源码(后面还有一些,我就选了需要的代码)     def __init__(self,import_

(4)SVG-path中的椭圆弧A(绝对)或a(相对)

1、概念 表示经过起始点(即上一条命令的结束点),到结束点之间画一段椭圆弧 2、7个参数 rx,ry,x-axis-rotation,large-arc-flag,sweep-flag,x,y (1)和(2)rx,ry rx:椭圆的x轴半径(即水平半径) ry:椭圆的y轴半径(即垂直半径) 这两个参数好理解,就是椭圆的两条对称轴半径,相等即为圆 也可以写比例,写比例时默认用符合条件

【ArcGIS Pro实操第二期】最小成本路径(Least-cost path)原理及实操案例

ArcGIS Pro实操第一期:最小成本路径原理及实操案例 概述(Creating the least-cost path)1.1 原理介绍1.2 实现步骤1.3 应用案例 2 GIS实操2.1 工具箱简介2.1.1 成本路径(Cost path)2.1.2 成本距离(Cost distance)2.1.2 路径距离(Path Distance) 2.2 案例: 参考 概述(Cre

大数据Java基础-JAVA IO 9】java IO流 (九) Path、Paths、Files的使用

1.NIO的使用说明: >Java NIO (New IO,Non-Blocking IO)是从Java 1.4版本开始引入的一套新的IO API,可以替代标准的Java IO AP。 >NIO与原来的IO同样的作用和目的,但是使用的方式完全不同,NIO支持面向缓冲区的(IO是面向流的)、基于通道的IO操作。 >NIO将以更加高效的方式进行文件的读写操作。 >随着 JDK 7 的发布,Java对N

最短路径(Shortest Path)

单源最短路径问题 Dijkstra算法:基于递推的思想设计 未达顶点的最短路径一定是由已到达顶点的最短路径求出 所有顶点之间的最短路径,任意两个顶点之间的最短路径 Floyd算法:只是Dijkstra最短路径算法的加强,其本质还是递推

【ArcGIS Pro实操第一期】最小成本路径(Least-cost path)原理及实操案例

ArcGIS Pro实操第一期:最小成本路径原理及实操案例 概述(Creating the least-cost path)1.1 原理介绍1.2 实现步骤1.3 应用案例 2 GIS实操2.1 工具箱简介2.1.1 成本路径(Cost path)2.1.2 成本距离(Cost distance)2.1.2 路径距离(Path Distance) 2.2 案例: 参考 概述(Cre

[LeetCode] 64. Minimum Path Sum

题:https://leetcode.com/problems/minimum-path-sum/description/ 题目 Given a m x n grid filled with non-negative numbers, find a path from top left to bottom right which minimizes the sum of all numbers

[LeetCode] 687. Longest Univalue Path

题:https://leetcode.com/problems/longest-univalue-path/description/ 题目 Given a binary tree, find the length of the longest path where each node in the path has the same value. This path may or may no

C#从入门到精通(22)—Path类的使用

前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家!人工智能学习网站 前言: 大家好,我是上位机马工,硕士毕业4年年入40万,目前在一家自动化公司担任软件经理,从事C#上位机软件开发8年以上!我们在开发上位机软件的过程中,有时候需要对文件的路径、文件名、扩展名进行操作,下面进行详细介绍: 1、合并路径 将盘符、文件夹、文件进行合并成最全的文件路径 st

【HDU】2807 The Shortest Path 最短路

传送门:【HDU】2807 The Shortest Path 题目分析:题目很简单,矩阵计算出两个城市的连通性,建边,然后每次询问求最短路回答(或者floyd预处理)。 当然暴力的代价是惨痛的,用堆优化+dij+输入优化最多800ms。 然后很好奇前面的是怎么跑的这么快的,看了别人写的题解才发现,原来他们是用了hash的方法将二维化为一维了,虽然可能会错误,但在出题人不是故意去卡的情