概述
第九课 Extracted and Interface Logic Models
学会在已经有设计好的门级网表的前提下,创建interface logic model,或者extracted timing model
学会用命令比较创建出的模型和门级网表之间的区别
- 为什么要创建模型?
为了实现超大规模集成电路的静态时序分析,需要简化电路。
Create an ILM
好处:可以做分层的STA;可以真实地还原网表的物理状况;模型容易创建
ILM的特性:
-
创建ILM之前
1.保证设计的约束完整
2.排除不需要约束的时序弧
3.检查所有时序路径都有约束
4.检查有无违例
-
第一步:定义端口逻辑
用命令为当前设计(current_design)的所有端口逻辑打上标签,并且忽略扇出过高的输入端口
identify_interface_logic
被打上标签的端口的is_interface_logic_pin属性变为true
第二步:画出ILM Verilog网表
用命令画出网表:
write_ilm_netlist
write_ilm_netlist -include_all_net_pins -verbose BlockA_ILM.v
包括了会影响延时的所有网表和pin,也包含了第一步当中没有打上标签的端口逻辑。(但是忽略了理想化的端口)
第三步:添加约束
导出脚本来描述模型中的断言/约束或者特殊处理的路径,用于顶层模块的分析和模型构建
write_ilm_script -instance I_BlockA_ILM.pt
write_ilm_script BlockA_ILM.pt
Example
- Pre-layout
从一个加法器/减法器的电路中创建ILM模型和脚本文件。
- Post-layout
post-layout和pre-layout相比,不一样的地方在于创建ILM之前读入的是物理信息文件,包括SDF文件和寄生参数。
并且需要已经生长好时钟树,才能保证ILM是准确的。
创建ILM后导出寄生参数文件:
write_ilm_sdf BlockA.sdf
write_ilm_parasitics -input_ports BlockA.spef
- 顶层模块的STA中使用ILM模型的实例
Extract a Timing Model
ETM的应用场景:需要在其它的工具,例如DC等软件中描写时序,或者一个模块不能改动/不能查看时,可以使用ETM模型。
因此ETM是一个黑盒子静态时序模型,不包含内部的寄存器路径,除了部分时钟也无法看到内部的pin脚。
ETM创建自已经设计好的门级网表,要求时序弧延时是输入转换时间和电容负载的函数。
-
创建ETM之前
需要检查的事项和ILM相同
-
Pre-layout
一条命令可以创建出两个db文件
1.modelname.db:包含了模块的详细网表和子模块的例化信息
2.modelname_lib.db:只包含抽取出来的时序信息
两个文件的准确性和应用场景有所不同。 -
Pre-layout
和ILM模型的区别在于,只读取SPEF中的寄生参数不读取SDF文件,因为SDF文件内容过于详细,不利于构建模型。
Validation of Both ILM and ETM
两种模型创建出来以后需要进行验证,才能判断好坏和准确性。
从原始网表和模型同时提取出interface timing并进行比较,提取出的文件包含以下内容:
提取的命令实例:
read_db ETM_ADDSUB.db; link_design
source ADDSUB.pt
check_timing; report_analysis_coverage
write_interface_timing ETM_ADDSUB.txt
提取出所有2个(3个)文本以后对其进行比较,比较结果会保存在compare.txt当中:
compare_interface_timing -slcak-tol 0.1
-output compare.txt ETM_ADDSUB.txt ADDSUB.txt
总结
ILM模型准确性高,模型生成速度快,仿真速度优化程度中等
ETM仿真速度优化程度高,准确性中等,模型生成速度中等
最后
以上就是光亮哈密瓜为你收集整理的PT静态时序分析 第九课的全部内容,希望文章能够帮你解决PT静态时序分析 第九课所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复