HDLBits (104) — 1000计数器
本题链接:
https://hdlbits.01xz.net/wiki/Exams/ece241_2014_q7b
从一个1000赫兹的时钟中,导出一个1赫兹的信号,称为OneHertz,该信号可用于驱动一组时/分/秒计数器的使能信号,以创建数字挂钟。我们希望时钟每秒计数一次,因此OneHertz信号的一个周期必须准确地对应每一秒。为此需要使用模10(BCD)计数器和尽可能少的其他门构建分频器。还可以从您使用的每个BCD计数器输出启用信号(c_enable[0]表示最快的计数器,c_enable[2]表示最慢的计数器)。
以下是为您提供的BCD计数器。Enable必须为高,计数器才能运行。Reset是同步复位的,设置为高会强制计数器归零。电路中的所有计数器必须直接使用相同的1000 Hz信号。

题目

答案

输出波形



在990和1000间计数循环

为确保系统上电后有一个明确、稳定的初始状态,或系统运行状态紊乱时可以恢复到正常的初始状态,数字系统设计中一定要有复位电路模块。复位电路异常可能会导致整个系统的功能异常,所以在一定程度上,复位电路的重要性也不亚于时钟电路。
复位电路可分类为同步复位和异步复位。
同步复位
同步复位是指复位信号在时钟有效边沿到来时有效。如果没有时钟,无论复位信号怎样变化,电路也不执行复位操作。
同步复位常常会被综合成如下电路:

同步复位的优点:信号间是同步的,能滤除复位信号中的毛刺,有利于时序分析。
同步复位的缺点:大多数触发器单元是没有同步复位端的,采用同步复位会多消耗部分逻辑资源。且复位信号的宽度必须大于一个时钟周期,否则可能会漏掉复位信号。
异步复位
异步复位是指无论时钟到来与否,只要复位信号有效,电路就会执行复位操作。
异步复位常常会被综合成如下电路:

异步复位的优点:大多数触发器单元有异步复位端,不会占用额外的逻辑资源。且异步复位信号不经过处理直接引用,设计相对简单,信号识别快速方便。
异步复位的缺点:复位信号与时钟信号无确定的时序关系,异步复位很容易引起时序上 removal 和 recovery 的不满足。且异步复位容易受到毛刺的干扰,产生意外的复位操作。
参考内容:
5.1 Verilog 复位简介 | 菜鸟教程:
https://www.runoob.com/w3cnote/verilog2-reset.html