Q:本期我们设计实现计数值可变的计数器----5位模20计数器。
A:5位模k计数器概念:计数器位数为5,该计数器计数值范围为0到31。计数值可变的计数器,可以在计数值还没达到31时,计数器能停止计数,重新定义计数范围为0到k-1,当计数值达到k-1时,下一个计数值为0,然后重新开始计数从0到k-1。在时钟周期中包含一个名为rollover的计数器输出,当计数值达到k-1时,rollover输出为1。5位模20计数器即计数器计数值范围为0到19。
计数器Verilog代码:
使用DE2-115开发板的KEY[0]做为复位信号,KEY[1]作为时钟信号,LEDR[4:0]显示计数值,LEDR[5]显示rollover输出。例化计数器时可以使用defparam语句指定参数n和k的值为5和20,实现5位模20计数器。
ModelSim仿真结果: