一个timing 分析工具,是静态时序分析的工具。
它提取整个电路的所有时序路径,通过计算信号沿在路径上的延迟找出违背时许约束的错误,主要是检查建立时间和保持时间是否满足要求,而它们又分别通过对最大路径延迟和最小路径延迟的分析得到。
而且无需仿真向量,所以仿真会非常快。
下面将介绍下面三部分
通过打断长长的timing path,将其打断,归类为PT基本的timing path(如上图path x ,path y,path z等等)
每一条path都会被计算以及check是否符合时0序。
详细的STA的三个主要步骤如下所示:
具体的4种 timing path 如下图所示:
如下图所示,cell delay的计算分为两种,
第一种是post-layout,也就是说PD已经完成了布局和绕线,我们可以通过SDF,来获取cell的延迟和net的延迟。
第二种是pre-layout,也就是说是一种预估的,通过设置input transition和outputload,从而获取cell delay。(这个表格是model中的,我们需要通过设置input transition和outputload,从而产生cell delay)
对于 net delay,如果是post-layout,同样通过SDF获取,pre-layout net通过模型去估计,比如WLM模型。
通过下达一些constraint,比如时间周期,case值等,去看timing path是否满足。
如下图所示,你需要读取db,另外你要读取verilog的网表
接下来就是下达constraint:
prelayout需要指定的一些约束,如下图,其意义在于告诉PT要以这些约束条件去计算。
对于post-layout ,我们通过读取sdf以及读取寄生参数
当前面我们读取了netist、db,然后下达了约束之后,就可以去通过PT报告了。
Timing Reports
path type是MAX,代表报告的是setup,如果是min 代表报告的是hold
在上图中,我们看到的是数据的path,从第一个寄存器的时钟clk—>Q—>D 一点点的累加,我们可以看到数据的data arrive time是3.47
除了看数据到达的时间以外,如上图所示,我们还需要看时钟的path,通过时钟周期,计算要求数据在至少时钟的上升沿前面多少到达。【脑袋里面需要联想,setup计算的经典图】
因此,我们可以看到data require timing:3.5减去不确定时间0.3 ,为2.97.
然后我们用required time 减去arrival time=-0.5【因为我们要求数据需要在2.97ns之前到达,但是数据是在3.47ns才到达】
所以有violation。