在 Synopsys Primetime 工具中可以检查.lib 文件中时钟输入的最小周期。想象这样一个场景,有一个设计 A,它有一个名为 clk 的时钟,并且该设计的 clk 周期被设定为一个值,比如 2 纳秒,即 500MHz。假设我们在进行静态时序分析时在顶层读取这个设计 A 的.lib 文件,而连接到 A 的 clk 的顶层时钟周期被定义为 1 纳秒,即 1GHz。显然,设计 A 将无法正常工作。为了找出这样的差异,我们可以检查最小周期违规情况。为此,clk 的最小周期约束应该在设计 A 的.lib 文件中指定。
lib中定义的min period如下:
这表明到达 CP 引脚的时钟应该具有 2 纳秒的最小周期。如果不是,那么在 “report_constraint min_period -verbose report” 报告中将会显示违反了多少余量。这也将是 “report_constraint -all_violators report” 报告的一部分。
命令 “report_analysis_coverage” 也涵盖最小周期检查。可以如下进行检查:“report_analysis_coverage -check_type min_period”。
当看到最小周期违规时需要做什么?
这些违规应该在设计周期的初始init阶段就进行检查和分析。首先,我们需要分析那个特定的时钟是否应该到达那个设计实例。有时由于一些缺失的情况分析,多个时钟可能会到达同一个引脚。还要确认特定引脚在.lib 设计内部本身是否被用作时钟。经过分析,如果结果是有效的最小周期违规,我们需要通知顶层架构 / RTL 团队和设计.lib 的所有者关于频率差异,并让他们进行修复,例如选用LowVT的mem,split mem等
引用自:
https://tech.tdzire.com/what-is-minimum-period-check/