实验内容
第一种方法:异步高电平复位
手工绘制的电路结构RTL设计图
- 思路:本题计数器需要用到的RTL符号有2个4位寄存器、2个双路选择器、2个加法器、2个比较器
- 异步高电平复位:复位信号只要变高电平就立即执行复位操作。CNT(计数值)预置初值为零;CNT_VAL_MAX(计数最大值)预置初值4’b0110(即CNT_VAL_min)。
- 判断CNT与CNT_VAL大小,若CNT>=CNT_VAL,则双路选择器选通输出4’h0给CNT寄存器的输入端;否则CNT计数+1再将其通过双路选择器选通输出送入CNT寄存器的输入端。如下图框内①
- 此外,当CNT>=CNT_VAL时,CNT_VAL计数+1并与9(即CNT_VAL_MAX)比较:若CNT_VAL>=9,则双路选择器选通输出4’h6给CNT_VAL寄存器的输入端;否则再将CNT_VAL原值送回CNT_VAL寄存器的输入端。如下图框内②
手工绘制RTL图:
Quartus扫描生成的电路RTL图
计数器的波形仿真截图
计数器在电路复位后会循环的从0值递增计数到最大值,计数最大值是一个循环变化的过程,计数器复位之后,第一次计数最大值是6,然后是7、8、9,然后计数最大值又变成6,如此往复循环,计数过程如下图所示。
异步高电平复位:复位信号只要变成高电平就执行复位操作,如下图所示。
计数器代码
module cnt_circle_0to9(
CLK , // clock
RST , //reset
CNT); // output
input CLK;//clock
input RST;//reset,
output [4-1:0] CNT;

该博客详细介绍了计数器的异步高电平复位和同步高电平复位两种方法。通过手工绘制的RTL设计图、Quartus生成的电路图及波形仿真截图,展示了计数器在复位后的计数过程。异步复位在复位信号变高时立即执行,而同步复位则在时钟有效上升沿且复位信号为高时执行。最后,作者对比了两种方法在波形仿真和RTL图中的不同。
最低0.47元/天 解锁文章
2412





