我正试图用条件启动计数器(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较低时递增?这意味着需要更新初始同步重置逻辑。