Blog

逻辑综合前我都会过一遍的检查清单

synthesisrtlverificationtooling

为什么需要清单

综合脚本跑通 ≠ 设计意图被保留。下面这份清单来自多次「综合通过、硅前才发现」的复盘,按优先级排列。

可综合性

  • 避免综合不友好的结构:未解释的 initial、延迟控制、部分 real 运算等。
  • 明确哪些模块是行为级模型、哪些必须可综合;测试台与 DUT 分离。
  • casex / casez 与完整优先级:补默认分支,写清是否允许 X。

时钟与复位

  • 单异步复位还是同步复位?跨时钟域是否有明确同步器。
  • 门控时钟是否走标准单元流程;勿在 RTL 里手写危险门控 unless 有库支持。
  • 复位解除与首拍有效数据的关系写进断言或注释。

形式化前置

  • 关键属性是否已有 SVA / 形式化属性草稿。
  • 准备做等价性检查的参考模型版本是否冻结 tag。
  • don’t-care 与优化开关(面积优先 vs 时序优先)是否与验证假设一致。

综合脚本侧

  • 读库、约束(SDC)路径可复现;版本记入 README。
  • 保留综合前后网表与日志哈希,方便回归。
  • 关键路径报告人工扫一眼,而不是只看 WNS 数字。

收尾

清单本身也会迭代。若你从 AI 辅助改写 RTL,请把「等价性检查通过」加为硬门禁——详见上一篇博客。

← 返回 Blog