title: Verilog Multiple Counters
body: <p>I have a Verilog module with the fowling input and outputs </p>
  
  <pre><code>  module Foo
      #(
          parameter DATA_BITS = 32,
          parameter ENUM_BITS = 8,
          parameter LED_BITS  = 8 
      )
      (
          //Module IO declarations
          input  logic    Clk_i,
          input  logic    Reset_i,
          input  logic    NoGoodError_i,
          input  logic    EncoderSignal_i,
          input  logic    [DATA_BITS-1:0]DistanceCount_i,
          //Enable the gate 
         output logic    GateEnable_o
     )
  </code></pre>
  
  <p>The overall design idea is the following. When I receive the positive edge of the NoGoodError_i  start a counter and count up to the DistanceCount_i count via the positive edges of the EncoderSignal_i signal.  That seems pretty straight forward, however my design challenge becomes that I could get another NoGoodError_i before I am finished counting the previous count.   So, I need a way to get up to 10 NoGoodError_i signal in row and start counters.  Then reuse the counters once they expire (Rollover).  Please any design tips would be greatly appreciated. </p>