人工智能硬件电路设计基础及应用
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

5.1 带异步清零端的模10计数器

本示例设计的是带异步清零端的模10计数器,可实现对输入时钟计数,输出计数状态和进位,并且具有同步使能端和异步清零端。计数器内置了“0000”~“1001”共10种状态。计数器在时钟信号上升沿到来时,改变计数器的状态;如果计数器的当前状态是“1001”,那么,计数器的下一状态为“0000”,并且进位变为高电平。如果使能信号无效,计数器的状态和进位不变。如果清零信号有效,计数器的状态变为“0000”,进位归零。

本示例的VHDL代码如下。代码在实体端口声明后声明了计数器的最大计数状态数的常量,即计数器的模。

图5.1是带异步清零端的模10计数器的仿真结果。输入是周期为20ns的时钟信号,使能信号在0ns至330ns始终有效,清零信号在245ns至285ns有效。0ns至330ns,计数器正常计数,在输入时钟上升沿,计数器自动进入下一状态。200ns处,计数器由“1001”进入“0000”,进位变为高电平;220ns处,计数器由“0000”进入“0001”,进位变为低电平。245ns处,清零信号有效,时钟信号没有处在上升沿处,计数器状态变为“0000”。285ns处,清零信号失效,计数器正常工作,计数器在300ns的时钟上升沿处由“0000”进入“0001”。330ns后,使能信号无效,计数器状态在时钟上升沿到来时不再改变。仿真结果验证了设计的正确性。

图5.1 带异步清零端的模10计数器的仿真结果