// 本文对应PrimeTime2018.06 Lab3的学习
- set_app_var可以通过-default参数将内部变量的值设为默认值。
- 可以使用report_analysis_coverage来快速地判断下哪些地方存在时序违例,表中的Constrained Pin即约束的endpoint。
- 使用report_constraint -all_violators命令将设计中违反design rule的violations打印出来,打印的信息基于path_group。
- 使用report_global_timing命令可以得到top-level的summary的时序,里面主要会有WNS、TNS和NUM信息。
- 使用report_qor命令可以得到设计的质量信息,qor即quality of design的简写。注意该命令可以得到各个path_group的状态,Cell的统计、Area、DRC信息等。
- setup的slack计算是(data required time) - (data_arrival time)。
- hold的slack计算是(data_arrival time) - (data required time)。
下面第一个是setup的report_timing,第二个是hold的report_timing。
--------
- 通常,flip-flop的下降沿延迟比上升沿延迟要短,因此下降沿延迟往往被使用在了hold slack的计算中,以便得到更差的slack结果。但是存在例外,同时考虑到flip-flop的上升沿延迟和end-point的hold time requirement时,我们也会使用上升沿来计算最差的slack,就如下面的例子一样(左侧是最差的slack,右侧是指定了-delay_type min_fall的slack)。
- 使用get_path_group命令可以得到路径组的集合。
report_timing -group [get_path_group *] -slack_lesser_than 0
- 使用all_outputs命令可以得到所有输出端口的集合。
report_timing -group PCI_CLK -to [all_outputs]
- 使用all_registers -level_sensitive命令来得到设计中的latch集合。-data_pins选项得到latch的引脚。
- 使用report_clock命令来得到时钟相关的信息。
- 使用report_timing -rise_from clk1 -fall_to clk2来灵活地指定start_point和end_point的transition驱动沿。类似的选项还有-fall_from、-rise_to。
- 使用report_timing -max_paths num命令可以将多条路径打印出来,需要注意使用-max_paths num选项时会隐式地设置-slack_lesser_than 0,因此时序满足的那部分是不会显示出来的。如果需要将满足时序的那部分也显示出来,那就需要显式声明slack,比如:-slack_less_than 100。
//ps1.如果有同学需要学习资料,可以共享交流,站内私信即可。