Verilog: compruebe si una señal tiene 100 tics activos?

1

Tengo una entrada y una salida. Y quiero convertir la salida a 1, si la entrada estaba activa a 100 tics (100 ciclos).

module check_100(
   input wire clock,
   input wire reset,
   input wire in_a,
   output reg out_a);  

reg[10:0] counter;  

always @(posedge clock) begin
    counter <= counter + 1;
    if(in_a && (counter == 100)) begin
        out_a <= 1;
    end
end

Pero no parece funcionar correctamente. ¿Es esta una buena manera de verificar si una señal tiene 100 tics / ciclos activos o no?

¡Gracias! :)

    
pregunta xEscape

2 respuestas

1

1) Necesita incrementar su contador cada vez que la entrada sea alta (lo que usted hace)
2) Debe restablecer su contador siempre que la entrada sea baja (lo que no hace)
3) Debe dejar de contar después de contar hasta 100 (en caso de que quiera que la salida permanezca alta). En realidad seguirá siendo alto en su caso, pero solo porque no está haciendo el (2).

    
respondido por el Eugene Sh.
2

Está comprobando si la señal está activa 100 ciclos después del inicio.

Realmente desea incrementar el contador solo cuando la señal está activa y restablecer el contador cuando se vuelve inactivo.

    
respondido por el Simon Richter

Lea otras preguntas en las etiquetas