本文主要是介绍PT静态时序分析 第五课 第六课,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
第五课 Scripting:Collections and Procedures
关于TCL的语法部分,可以参考其它软件中的笔记。
- Collections
collection:是由collection的句柄指代的一组设计对象
set myvar [all_inputs] {"IN1","IN2","in3"}
- Attributes
可以用以下命令列出设计对象的属性:
list_attributes -application -class clock
两个示例:
示例2中-filter选项只选取出符合过滤项的对象
- fordach
tcl的循环语句foreach在collection里面不能使用,应当用PT特定的foreach_in_collection
foreach_in_collection variable collection(s) {body}
示例:
- Procedures
理解为进程或者函数,可以用来定义自己的命令。
例如,在multadd.pt中定义如下进程:
proc multadd {a b c} {
expr $a * $b + $c
}
运行以后,就可以调用此函数:
另外一个示例,此脚本可以输出某一类路径的Slack值:
第六课
Models
Introduction to Modeling Solutions & Top-Down Design Planning Methodology
应当学会如何使用模型
-
Large System STA
做完分模块的时序分析后需要做整合后的时序分析,整合后依然用STA的穷举法则会出现大量的重复和资源浪费。
因此需要设定模型告诉工具模型之中的路径不需要关注(已用模型代替了分模块),只要分析模型之外的时序。 -
Interface Logic Model(ILMs)
ILM模型会将模块内部的寄存器至寄存器的路径全部移除,只保留端口路径
优点和缺点:
信息保留比较全面,模型的构建很快;但ILM模型只移除了路径,模块内部的寄存器信息被完整保留,并且无法被某些软件(例如DC)兼容。 -
Extracted Timing Models(ETMs)
想要隐藏内部的寄存器信息,或者由DC软件兼容时,可以使用ELM模型,模块被简化为只有时序信息的黑盒子模型。
优点和缺点:
无法看到具体的信息,减少了runtime;但是模型本身的构建比较难,准确性降低 -
Quick Timing Models(QTM)
QTM的时序模型不是由既有的模块提取出来的,而是用脚本定义的。
适用于设计前期还没有具体布局布线时的模块。
三个模型可以用在数字模块设计的不同阶段
Top-down design
Timing closure:使设计的时序接近零slack的过程
Timing Convergence:使所有软件同意设计的时序接近零slack的过程
两者的概念有所区别
先对整体芯片施加约束,再去规划具体的模块。
- 第①步
用QTM模型进行初步的布局布线,然后再导入PT以及DC当中
- 第②步
有了第一步的细分的数据之后,在PT中导入上一次得到的模块布线的ILM,来进行静态时序分析
- 第③步
在这个阶段要用最终综合出网表逐渐替代原来的模型,来得到更准确的仿真数据。
这篇关于PT静态时序分析 第五课 第六课的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!