如何修改异步循环计数器代码使其计数至5时自动复位?
修改后的Verilog代码及说明
核心修改点
- 适配高电平异步复位需求:调整敏感列表与复位判断逻辑
- 实现计数到5自动复位:添加计数边界判断,到达5时重置为0
修改后的完整代码
always @(posedge CLOCK_50 or posedge reset) begin if (reset) count <= 0; else if (enable) count <= (count == 5) ? 0 : count + 1; end
细节解释
复位逻辑调整:
原代码采用低有效复位(negedge reset_n),现在改为高电平异步复位,因此敏感列表加入posedge reset,判断条件直接使用if (reset),确保复位信号高电平时计数器立即置0。计数循环实现:
当enable信号有效时,通过条件运算符判断当前计数值:- 若
count等于5,直接将计数器置0; - 否则执行
count + 1,实现0→1→2→3→4→5→0的循环遍历。
- 若
内容的提问来源于stack exchange,提问作者Dylan de Hoyos
相关产品推荐
相关产品推荐

