用途:在编写或修改 Verilog/SystemVerilog 文件(.v、.sv、.vh、.svh)或运行 Verilator 时应用,统一编码风格并规范仿真与综合流程。
主要能力:要求所有模块、wire、寄存器加注释;定点值用 TI 风格 Q 记法(Qm.n 有符号、UQm.n 无符号)标注;命名上低有效信号加 n 后缀,时钟用 clk 或 clk<domain>。always_ff 只允许简单非阻塞赋值,组合逻辑全部放入 always_comb;格式化要求一行一条语句、一行一个声明、字面量显式位宽、文件以 `default_nettype none 开头、if/else/case 均用 begin/end,模块建议不超过约 500 行。
综合兼容:可综合 RTL 需同时兼容 Verilator 与 Yosys(read_verilog -sv)。避免函数内 return、interface/modport、unique/priority case、端口多维打包数组;函数改用 Verilog-2005 风格赋值。使用 SystemVerilog 特性时须用实际综合流程验证,lint 通过不代表可综合。
测试与仿真:每个模块需测试台,构建运行命令为 verilator --binary -Wall module_tb.sv module.sv,再执行 ./obj_dir/Vmodule_tb;lint 用 verilator --lint-only -Wall module.sv,需修复全部警告而非用 pragma 抑制。仿真推荐标志包括 -Wall、-Wno-fatal、-j 0、--assert、--timing、--trace-fst、--trace-structs、--main-top-name "-"、--x-assign unique、--x-initial unique。
其它规范:模块实例化用命名端口连接;always_comb 开头给默认赋值并覆盖 default 以防锁存器;优先同步复位,外部异步复位先同步;FSM 分离状态寄存器与次态逻辑并用 enum;单比特跨时钟域用 2-FF 同步器,多比特用格雷码或握手;RAM/ROM 用标准推断模式;用 SVA 断言与 cover property 做验证。
限制:资料未提供该技能的安装方式、收费、平台支持范围或效果数据,暂未提供。