如何启动有条件的计数器



我正试图用条件启动计数器(0到9),例如当条件发生时,计数器会重置自身并开始计数,直到10,然后从0开始。但它不起作用。

我已经有了:

always @(posedge clk ) begin
  if (enable  & sample)
    counter <= 4'b0;
  else 
    counter <= counter + 4'b1;
  if ( counter == 4'd9 )
    counter <= 4'b0;
  else 
    counter <= counter + 4'b1;
end 

有什么帮助吗?

它看起来像是"enable and sample"clear,否则它会递增。此外,在您的示例中,与9的比较将覆盖上一个值,此检查将重置为0或增量。您需要将此条件放入else中。

always @(posedge clk ) begin
  if (enable & sample) begin
    counter <= 4'b0;
  end
  else begin
    if ( counter == 4'd9 ) begin
       counter <= 4'b0;
    end
    else begin
      counter <= counter + 4'b1;
    end
  end
end

我怀疑您实际上不希望它在enable较低时递增?这意味着需要更新初始同步重置逻辑。

相关内容

  • 没有找到相关文章

最新更新