Cuando escribo 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 problemas comunes, como desajustes de tamaño de bus y cierres inferidos.
Desafortunadamente, ninguna de las tres herramientas detecta registros que no se están restableciendo. Para ver a qué me refiero, 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 registros que no se restablecen?