FPGA小学生
Verilator 的核心优势是把设计编译成 C++ 模型,仿真执行时是原生机器码,所以纯逻辑仿真速度确实比 VCS 这类解释型仿真器快一个数量级。但它的瓶颈也很明显:首先,它不支持时序仿真,你的设计必须是可综合的 RTL,并且它默认是零延迟的 cycle-accurate 模型,如果需要带时序的仿真(比如后仿),那就没法用。其次,对 SystemVerilog 的支持有限,很多高级语法和面向验证的特性(如 SVA 断言、随机约束、覆盖率收集)它原生不支持,需要额外插件或自己写 C++ 来补,这在大规模验证中很麻烦。
所以,在项目里,Verilator 最适合用在早期架构探索和模块级的功能验证。比如你们可以先用它快速跑大量向量,验证算法或数据通路是否正确,快速迭代。等基本功能稳定了,再用 VCS 做全系统的、带断言和覆盖率的验证。
实际芯片公司里,Verilator 经常用于构建快速仿真平台,比如做软件协同仿真(把 RTL 模型和软件一起跑),或者作为 FPGA 原型前的软模型。但它不能替代 VCS 在 sign-off 前的全面验证。如果你的设计规模变大,还要注意 Verilator 编译时间会很长,而且内存占用可能很高,这是另一个潜在瓶颈。
