模式分析(Mode Analysis):
一些复杂的设计可能会有好多种功能模式,在每种模式种时序路径和特性完全不同。
在PrimeTime中可以定义和说明这些模式的时序,然后再为每种模式分别进行分析。这样做可以去除许多不合法的时序违规现象,因为那些路径被设置成是无效的。例如,一个RAM的写地址和读地址路径是不同的。一个时序报告可能会显示一条RAM的写地址路径,但是这条路径只有在RAM工作在读模式时才有效。
有两种方法定义模式:
. 在标志模型中将模式和时序弧联系起来 . 为一条特殊的路径定义一种模式
在定义了模式之后,可以用一部分或所有定义的模式来进行时序分析。
1. AM2910的Y模块有模式功能,因为在它的标记模型中已经定义了。在Y.mod文
件中查看已定义的模式: pt_shell>report_mode
2. 看设置了模式之后时序的改变:
pt_shell> set_case_analysis 0 [get_pins U4/OPERATION[*]]
pt_shell> set_mode data U4/core pt_shell> report_mode
pt_shell> report_timing -to Y_OUTPUT* pt_shell> set_mode stack U4/core pt_shell> report_mode
pt_shell> report_timing -to Y_OUTPUT* 3. 将所定义的模式复位:
pt_shell>reset_mode
报告合法路径(True Paths):
PrimeTime能够自动探测到设计中存在的一些不合法路径。这些路径可能是功能不合法
路径或是延时不合法路径。
下图所示一条功能不合法路径,因为它永远也不敏感(sensitize)。
PrimeTime还可以用自动生成测试模式automatic test-pattern generation(ATPG)方法在需要测试的时序路径上生成测试向量来进行分析。用户不用自己去说明这些向量,PrimeTime会自动生成并使其生效。
如果PrimeTime能够生成一个向量,它会认为这条路径是合法的,否则是不合法的。 PrimeTime不能在包含有黑箱单元的部分使用合法路径分析,因为它无法推算ATPG
向量经过不知道功能的黑箱单元之后将是什么样的输出。
report-timing 命令有三个选项可以用来作合法路径报告: -justify
对于所需分析的路径,报告每一条是合法还是不合法。如果合法,PrimeTime显示一条可以使其敏感的输入向量。将这个选项用在违规路径上查看潜在不合法违规。加上-nworst和-max_paths选项检查多条路径。
-true
启用一种搜索算法寻找最长的合法路径。使用这个选项在某些设计中会使CPU的运行时间延长。
-false
只报告不合法的路径。
仅在生成报告时使用合法路径分析。它不是PrimeTime的一种时序模型。 在例子中用合法路径报告来验证路径: pt_shell> report_timing -true
pt_shell> report_timing -justify -to MAPPING_ROM_ENABLE pt_shell> report_timing -false -max_paths 5
提取一个时序模型:
时序模型提取是从一个门级网表生成一个.db文件。PrimeTime和DC都能够使用这种提取得到的.db文件。
供应商(Vendors)用提取的方法提供时序模型。设计者可以用提取的方式生成一个完全与其他模块不相关的时序模型(可以被多次引用)。
提取是自动地从网表中提取时序模型并把信息保存为两个.db文件,类似于编译标记模型时的输出。
用这种方法提取一个时序模型: 1. 读入要提取的网表 2. 定义时钟
3. 反标延时和电容(如果可行的话) 4. 设置连线负载模型(如果可行的话)
5. 去除内部的例外情况(这些不保存到模型中) 6. 进行时序检查并改正任何错误 7. 设置提取时的环境变量
8. 在所有需要的运作条件下提取模型 9. 交换(Swap)提取的时序模型
现在UPC设计已经优化了,提取它的一个时序模型,用到芯片级的时序分析中去。 pt_shell> link_design UPC
pt_shell> create_clock -period 30 [get_ports CLOCK]
pt_shell> set_wire_load_model -name 20x20 -library pt_lib UPC pt_shell> check_timing; # Unconstrained outputs are OK pt_shell> set extract_model_tolerance 0.05 pt_shell> set extract_model_transition_limit 5.0 pt_shell> set extract_model_capacitance_limit 64 pt_shell> set extract_model_min_resolution 0.1
pt_shell> set extract_model_min_delay_threshold 0.5
pt_shell> set extract_model_conservative true
pt_shell> extract_model -operating_conditions {WCCOM NOM BCCOM} -output UPC.ext pt_shell> set link_path \pt_shell> read_db UPC.extr.db pt_shell> link_design AM2910
pt_shell> swap_cell U2 {UPC.extr.db:UPC} pt_shell> source AM2910.new.pt
pt_shell> report_cell; # Note UPC is now marked as a model pt_shell> report_constraint -all 检查结果。
反标标准延时格式文件(SDF):
PrimeTime支持以下版本的SDF文件: 读:1.0, 2.0, 2.1; 写:1.0, 2.1。
当PrimeTime用SDF进行延时标注时,它假定与负载相关的延时部分被包含到单元延时中。如果SDF在连线延时中包含了负载相关延时,在read_sdf命令中用-load_delay net选项。
写一个AM2910的最大和最小延时SDF文件:
pt_shell> set_operating_conditions -library pt_lib -min BCCOM -max WCCOM pt_shell> write_sdf -version 2.1 AM2910.sdf 将这个SDF文件读回PrimeTime中: pt_shell> read_sdf -min_max AM2910.sdf pt_shell> report_timing
检查报告。注意每一个反标延时都被标上了*号。
读寄生参数文件:
PrimeTime支持以下几种寄生参数文件: Reduced Standard Parasitic Format (RSPF) Detailed Standard Parasitic Format (DSPF) Standard Parasitic Exchange Format (SPEF) 命令格式为:
pt_shell> read_parasitics filename PrimeTime会自动识别文件的格式。
退出PrimeTime: pt_shell> quit