Bueno, sigo teniendo este problema en muchos módulos y nunca me molestó porque estaba experimentando. Sin embargo, ahora estoy tratando de ser 100% correcto, así que ... Tengo este contador de anillo, por ejemplo, y le doy a la salida 8 leds de un FPGA. Está bien, funciona como un encanto, pero la condición de reinicio es defectuosa. Cuando alimente el binario en el FPGA, se inicia correctamente desde MSB = 1 y el resto de los bits son 0. Sin embargo, cuando presiono restablecer, el patrón de LED simplemente se congela y continúa la operación cuando suelto el botón. El problema en algunos módulos fue que tontamente tuve el mismo reinicio para el contador y el reloj, así que fue obvio por qué esto fue un problema. Sin embargo, ahora solo lo manejo desde otro botón de resistencia desplegable y sigo teniendo este problema.
module Ringcounter # ( parameter LENGTH = 8) (
input clk, rst,
output [LENGTH-1:0]q
);
reg [LENGTH-1:0] f;
genvar i;
for (i = 0; i < LENGTH; i = i+1)
assign q[i]=f[i];
always @ (posedge clk)begin
if (rst) begin f[LENGTH-1]=1'b1; f[LENGTH-2:0]=0; end
else
f={f[0],f[LENGTH-1:1]};
end
endmodule