分清两个层次

SpinalHDL 使用 Scala 描述硬件并生成 HDL。Scala 编译成功只是一个阶段,还需要展开设计并检查生成的电路。从官方模板开始,保留一个可用配置。让 AI 明确区分生成阶段的计算与硬件中实际存在的逻辑,尤其要检查循环和条件构造。

约束参数范围

为寄存器或 FIFO 生成器记录合法位宽、深度、复位行为和传输协议,并确定非法配置应如何报错。让 AI 提出覆盖最小值、常用值和边界值的矩阵。如果架构实际要求深度为二的幂,就不要声称支持任意深度;应在设计约定和检查中明确这一限制。

确保生成过程可复现

官方模板示例使用 projectname.MyTopLevelVerilog 作为入口。请在已准备好的模板根目录运行下面的命令;其他工程需替换类名。记录依赖版本、参数和输出位置。分析展开阶段的诊断,再检查生成 RTL 的端口、位宽和复位逻辑,然后接入系统其他部分。

sh
sbt "runMain projectname.MyTopLevelVerilog"

验证每一种配置

对选定矩阵中的配置,分别执行生成、带自动判定的仿真及适用工具的综合。比较协议行为、延迟和资源,而不只是错误数量。可以让 AI 根据实际报告补充边界场景。每份结果都应关联具体配置:8 位版本通过验证,并不意味着 32 位版本也自动有效。

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

生成器验证的基本单元,是具体配置及其生成的 RTL 和报告。

来源