PT 工具介绍
PT即Prime Time,一个STA静态时序分析的工具。
它提取整个电路的所有时序路径,通过计算信号沿在路径上的延迟找出违背时序约束的错误,主要是检查建立时间和保持时间是否满足要求,而它们又分别通过对最大路径延迟和最小路径延迟的分析得到。
STA中的“静态”是指整个电路的分析是静态进行的,不依赖于输入端口的激励,无需仿真向量,所以仿真会非常快。
PT相关信息
1、PT配库文件
PR后的Verilog、时序约束文件sdc、PR后的spef
2、PT过程文件
主程序run,子程序脚本,环境参数脚本scripts,配置条件脚本config,输入文件link等。
3、运行pt完后看pt结果文件
跑完第一时间看反标文件,没问题就接着看report的结果。
Timing report:判断异常setup和hold的path及分析其出现的原因
Drv report:Drv报告通常包含max transition 、max capacitance、max fanout 、min period 、min pulse width、noise
使用pt_shell report_timing
1、打开pt_shell
在你想要查找余量对应的corner下使用命令“bsub -Is xterm pt_shell” 打开pt_shell软件。
2、导入pt的session
在打开的gui界面输入“restore_session dmsa_session”,导入session的数据。
3、使用report_timing进行报告setup和hold的余量
report_timing -input_pins -nets -nosplit -pba_mode path -delay_type max -path_type full_clock_expanded -transition_time -derate -through
report_timing -input_pins -nets -nosplit -pba_mode path -delay_type min -path_type full_clock_expanded -transition_time -derate -through
通过对最大路径延迟和最小路径延迟的分析,得到setup和hold的余量。
pt_shell还可以报其他的东西,比如report_annotated_parasitics、report_global_timin等,功能强大,还在探索中。
修PT时序的一些命令语句
setEcoMode -batchMode true
setEcoMode -batchMode false
在进行eco之前要打开ecomode,对buffer等cell进行插入完成后,也一定要把ecomode给false掉,不然会对后续的项目设计造成不可逆的结果。后边就是一些命令插buffer、删线语句:
ecoChangeCell -cell -inst
editDelete -net
ecoAddRepeater -relativeDistToSink 1 -cell -term
ecoDeleteRepeater -inst
一些配合命令:
selectInst $cellname
placeInstance $cellname $pt_x $pt_y $ori
反标的含义
后仿用的时序信息通常包括延迟信息、时序检查时间,一般都用标准的SDF(standarddelay format)格式的文件提供。在SDF中有两种类型的延迟信息。一种是连线的延迟信息;另一种是单元的延迟信息。连线的延迟信息不多说,单元的延迟通常是根据单元时序库(timing library) 中定义的timing arc,从电路图形中间接提取计算出来的而这些timing arc,要和仿真模型中 (specify block) 定义的io path要一一对应,在反标过程中才能标注成功。
那为什么叫反标呢?因为通常设计电路都是根据事先定义好的设计规格,而设计规格中就包含了时序的规格 (例如SDC)。所以当电路设计好了,时序信息也确定了,把这些时序信息标注到电路的网表中,实际上是一个回溯的过程,所以叫反向标注。SDF实际上也可以提供类似SDC一样的前向标注的时序信息,指导电路的设计实现。另一方面基础单元的仿真模型中默认也是有时序信息的,通常是单位时间或者零时间。所以用电路的真实时序信息标注的过程,其实是一个覆盖默认时序信息的过程,所以也叫反标。
感觉暂时对pt没有很深的理解,或许是依托脚本flow太多了,还没有进行很深的理解,有其他的理解也会在这里继续更新。