反馈清零计数器
反馈清零法就是当计数器的状态转换到模长为 M 时,利用某个状态通过门电路产生清
零信号,反馈到芯片的清零端。
下面描述一个反馈清零型计数器,其模值为 12,当输出信号为 1011,输出一个进位信
号 co =1,通过反馈信号 dout = 4’b1011 使输出信号 dout = 4’b0000,然后从 0000 开始计数,
从而实现循环计数。
其 verilog HDL 设计代码如下:
1. modulecounter12(clk,rst_n,co,dout);
2. inputclk;
3. inputrst_n;
4. outputco;
5. output[3:0]dout;
6. reg[3:0]dout;
7.
8. always@(posedgeclk)
9. begin
10. if(!rst_n)
11. dout<=4'b0000;
12. elseif(dout==4'b1011)
13. dout<=4'b0000;
14. else
15. dout<=dout+1'b1;
16. end
17.
18. assignco=dout[3]&&dout[1]&&dout[0];
19. endmodule
其测试文件如下:
1. `timescale1ns/1ps;
2.
3. modulecounter12_tb;
4. regclk,rst_n;
5. wireco;
6. wire[3:0]dout;
7.
8. always
9. begin
10. #10clk=~clk;