先定义逐周期行为

生成计数器或 FIFO 前,先定义位宽、复位极性、延迟和边界行为。对 FIFO,还要分别说明同时读写、空状态和满状态下的处理。让 AI 根据这份约定提出 RTL 和测试表。即使代码看起来很熟悉,也要明确检查指针运算、有无符号属性和状态更新条件。

先运行静态检查

下面的示例假设 top.v 中包含 top 模块。实际使用时,应提供工程的真实源文件和包含路径。分析位宽、未驱动信号及不完整赋值等诊断。让 AI 解释某条具体诊断,并提出最小修复。补丁应用后重新检查;大范围关闭警告会丢失有价值的评审信息。

sh
verilator --lint-only -Wall --top-module top top.v

结合仿真与综合证据

先运行带自动判定的仿真,再用 Yosys 针对目标器件进行综合。结合资源统计,检查层次结构、存储器和锁存器相关信息。Verilator 与 Yosys 的用途不同,通过其中一个并不能代替另一个。确认所用 HDL 子集受到支持;综合成功也不能证明布局布线后能够满足时序约束。

保存验收依据

保存工具版本、文件列表、参数、测试随机种子和报告。覆盖传输过程中的复位,以及约定中的每个边界场景。修复缺陷时,保留修改前会失败的测试。发布 FPGA 版本前,还需补充实际目标器件的引脚约束和实现流程产生的时序分析结果。

接受结果前需要检查的项目

静态检查、测试和综合相互补充,任何一项都不能独自证明设计正确。

来源