Al escribir Verilog, utilizo una variedad de "linters" que darán errores y advertencias. Estos son mi simulador (ModelSim), mi compilador (Quartus II), junto con un linter (Verilator). Juntos, tengo una buena cobertura para las fallas comunes, como los desajustes en el tamaño del bus y los cierres inferidos.
Lamentablemente, ninguna de las tres herramientas detecta registros que no se están restableciendo. Para ver lo que quiero decir, considere lo siguiente.
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
¿Cómo puedo hacer que mis herramientas detecten automáticamente los registros que no se están restableciendo?