report_constraint命令及报告解读
1.report_constraint
这个命令可以输出design中的constrain违反具体情况,包括setup, hold check, drv, clock gating check,min_period,min_pulse_width等
参数见下图。图中也列出了所有可以报出的constraint情况。

2.report_timing和report_constraint的区别
- report_constraint:用于查看设计中配置的 “时序约束规则” 详情。比如时钟频率、输入输出延迟、多周期路径、例外约束等的具体定义,不涉及路径时序计算结果。
- report_timing:用于分析 “具体时序路径的性能表现”,判断是否满足约束要求。会计算路径的延迟(组合逻辑 + 布线延迟)、建立 / 保持时间 slack,明确路径是否违例。
比如在报maxdelay/setup的constraint和timing时:
report_constraint的结果如下:

如果是report_timing会报整条path从startPoint到endPoint的data_required_time和data_arrival_time。
而report_constraint只关注EndPoint(检查点)是否有violation。
这里面required path delay就是report_timing的data_required_time;Actual Path Delay就是report_timing的data_arrival_time
report_timing只有 max(maxDelay,setup,recovery)和min(minDelay,hold,removal)两类.
min_period和min_pulse_width都在report_constraint中报
在以min_period的constraint报告为例:

这里需要关注的是:
required min period是sram lib里查找的minPeriod
Actual min period是综合实际跑的CK周期
如果实际跑的CK周期<sram lib minPeriod 就会有violation
