在编写Verilog时,我使用各种“错误提示”,它们会给出错误和警告。这些是我的模拟器(ModelSim),编译器(Quartus II)以及一个linter(Verilator)。总之,我可以很好地解决常见的陷阱,例如总线大小不匹配和推断的闩锁。
不幸的是,这三个工具均未检测到未复位的寄存器。要了解我的意思,请考虑以下内容。
reg a;
reg b;
always @(posedge clk_i or posedge rst_i) begin
if(rst_i) begin
a <= 1'b0; // Reset a
// Ooops, forgot to reset b
end else begin
// Do stuff with a and b
end
end
如何让我的工具自动检测未重置的寄存器?