企业网站手机版,商城网站有什么好处,大连做网站哪家好一点,绵阳市三台县城乡建设局网站完整的STA需要满足以下两点#xff1a;
完整的设计约束#xff08;完整并不意味着正确#xff09;运行所有需要的时序检查可以用以下两条命令来进行完整性的检查#xff1a; check_timing // 检查是否缺少了约束条件 report_analysis_cove… 完整的STA需要满足以下两点
完整的设计约束完整并不意味着正确运行所有需要的时序检查可以用以下两条命令来进行完整性的检查 check_timing // 检查是否缺少了约束条件 report_analysis_coverage // 检查是否是否对时序进行check 一、检查约束的完整性 check_timing 这一命令会检查设计中的每个现有约束如果有缺失的约束则会发出警告我们可以根据警告对设置的约束进行检查。 check_timing的完整检查项目如下粗体表示默认选项 我们以下图所示电路为例对check_timing的检查内容进行说明。 1、No input delay 这类警告是默认关闭的,你需要设置变量: pt_shellset_app_var timing_input_port_default_clock true 收到这种警告信息我们需要知道这个输入引脚和什么相连哪条路径会受到这条警告的影响或者此case缺少输入端口的分析 我们需要检查是否有必要约束这个port一些情况下,是不需要为input port添加约束的
假设这个端口应该由set_case_analysis 命令设置驱动一个固定的信号比如假设以这个port为起点的路径在当前模式的分析中是不存在的;2、No output delay 收到这类警告需要去知道输出端口连接的是什么,寄存器还是输入端口这条警告所影响的路径是哪一条,他是否是一个输出的时钟端口 输出端口必须被output delay 所约束 如果这个端口是一个输出的时钟端口我们不需要为端口定义output_delay创建所需要的generate_clock 然后忽略这条警告;
3、No clock 收到这类警告需要去知道哪里需要创建一个时钟去驱动受影响的端口; 检查时钟信号是否由于某些时序弧的禁用或用户使用set_sense命令手动停止信号而在时钟端口的扇出中被阻断。 二、检查执行的完整性 report _ analysis _coverage 这一命令会检查设计中的每个现有时序检查如果有任何未执行则会发出警告和原因。我们需要决定这个时序检查是否有必要,还有检查什么原因导致时序检查没有被执行。 导致时序检查未执行的原因由下面这些 我们以下图为例对这些原因进行具体的说明。 1、False path false_path一般是用户使用set_false_paths指定异步或者专用的时钟组; 收到此类的警告,我们需要去知道:1.这条时序路径包含哪个时钟2.F1的上一级触发器是什么3.哪条false_path的命令或者clock_group的命令与此warning相关 设置false path使用的命令为 pt_shell set_false_path -from F2/CLK -to F1/D 2、user disabled 出现此类的warning我们需要去知道:这个时序检查只是对指定cellF1无效还是定义在cell库中,对所有instance都无效这两者在命令的书写上是不同的: pt_shell set_disable_timing -from CLK -to D F1 pt_shell set_disable_timing -from CLK -to D {get_lib_cell core_slow.db/fdesf2a15} 3、constant_disable 这种警告一般出现在:
用户指定 set_case_analysis信号固定为高电平或低电平;出现此警告我们需要确认这个timing的disable是不是由于用户指定的case或者恒高或者恒低电平的信号导致的用户哪条约束导致了 timing的disable。 pt_shell set_case_analysis 0 scan_en 三、Debug命令 当使用check_timing 和 report_analysis_coverage 命令对约束进行检查时按上文所述有可能出现一些warning这时我们需要对出现的warning进行检查最常用的debug命令如下图 这些命令可以让我们快速定位问题所在。
1、all_fanin 如上图当F1的clk端发出no clock warning我们可以使用以下命令 pt_shell all_fanin -startpoints -flat -to F1/CLK 即可以找到CLK的起始点溯源问题发生的原因。 all_fanin的用法如下 如例子中的图所示all_fanin会追踪时序弧最后在三种端口停下
输入端口input portCLK flop pins 锁存器的G和D pins时序弧被disable或missing的cell 的输出pins
2、report_cell 如果我们定位到了问题的所在可以使用report_cell命令查看该单元的详细信息。 report_cell的用法如下 3、get_attribute PrimeTime中针对每一个设计对象design objects的信息都存储在attribute中我们可以利用get_attribute命令来获取单独的设计对象的信息。 上图中指定的clocks这一attribute存储了所有穿过该pin的时钟信息。
4、report_disable_timing report_disable_timing这一命令会检查disable的时序弧并给出原因。 其具体用法如下 5、report_case_propagation 我们可以使用 report_case_propagation命令来查找用户定义的值。 其用法如下 6、all_fanout 这一命令与all_fanin类似 用法也基本一致 合理利用PT提供的命令我们可以很快地找到问题的所在快速修改时序约束不合理的地方。