SuperAPI AI 工具集

gf-sim

通用与其它

查看项目

更新于 10-15 20:13

技能介绍

用途:编译并运行 SystemVerilog 仿真,输出结构化结果,便于自动化编排调用。

主要能力:运行前用 which verilator 检测工具,缺失则直接返回 ERROR 并提示安装(macOS: brew install verilator;Linux: sudo apt install verilator),不尝试无 Verilator 仿真。可自动扫描 .sv、rtl/.sv、tb/*.sv 识别文件,并按标记区分 DUT 与 testbench(如 initial begin、$display、$finish、$dumpfile、时钟生成、tb/ 目录或 *_tb.sv 归为 TB;always_ff、always_comb、可综合结构归为 DUT)。

使用方式:编译命令为 verilator --binary -j 0 -Wall --trace <dut-files> <testbench> -o sim,DUT 在前、testbench 在后;多顶层时加 --top-module <tb_name>。运行 ./obj_dir/sim(或 ./obj_dir/V<top_module>),并用退出码判断成败。结果按 PASS/FAIL/ERROR 分类,始终以 ---GATEFLOW-RESULT--- 块返回 STATUS、ERRORS、WARNINGS、FILES、DETAILS。

适用场景:需要自动化跑 SV 仿真并让编排器(如 /gf)解析结果的流程;PASS 报成功,FAIL 触发调试,ERROR 报环境问题。

限制:依赖 Verilator;多顶层、缺模块、X 值、超时、无 $finish 等需按文档排查。Verilator 对类与约束随机化仅部分支持,多周期 SVA 序列不支持,单周期并发 assert/cover、$past、$stable、$rose、$fell 支持。可用 --trace-fst 减小波形体积,--threads N 多线程,--coverage 系列做覆盖率,timeout 60 ./obj_dir/sim 防挂起。