- 人工智能硬件电路设计基础及应用
- 廖永波编著
- 521字
- 2022-05-06 17:41:41
5.1 带异步清零端的模10计数器
本示例设计的是带异步清零端的模10计数器,可实现对输入时钟计数,输出计数状态和进位,并且具有同步使能端和异步清零端。计数器内置了“0000”~“1001”共10种状态。计数器在时钟信号上升沿到来时,改变计数器的状态;如果计数器的当前状态是“1001”,那么,计数器的下一状态为“0000”,并且进位变为高电平。如果使能信号无效,计数器的状态和进位不变。如果清零信号有效,计数器的状态变为“0000”,进位归零。
本示例的VHDL代码如下。代码在实体端口声明后声明了计数器的最大计数状态数的常量,即计数器的模。
![](https://epubservercos.yuewen.com/B3251C/23020659009785406/epubprivate/OEBPS/Images/43035_111_1.jpg?sign=1739045102-I0vFNh0hzxqDRwDuI58nzORgMBfOTtgn-0-e7a65b346aac071239830d0cb78e292e)
![](https://epubservercos.yuewen.com/B3251C/23020659009785406/epubprivate/OEBPS/Images/43035_112_1.jpg?sign=1739045102-1lYc0OS7SEzIvMyor2U97Zkqsycp5bZk-0-49772ad582ed89af2f1583d9d37f9802)
图5.1是带异步清零端的模10计数器的仿真结果。输入是周期为20ns的时钟信号,使能信号在0ns至330ns始终有效,清零信号在245ns至285ns有效。0ns至330ns,计数器正常计数,在输入时钟上升沿,计数器自动进入下一状态。200ns处,计数器由“1001”进入“0000”,进位变为高电平;220ns处,计数器由“0000”进入“0001”,进位变为低电平。245ns处,清零信号有效,时钟信号没有处在上升沿处,计数器状态变为“0000”。285ns处,清零信号失效,计数器正常工作,计数器在300ns的时钟上升沿处由“0000”进入“0001”。330ns后,使能信号无效,计数器状态在时钟上升沿到来时不再改变。仿真结果验证了设计的正确性。
![](https://epubservercos.yuewen.com/B3251C/23020659009785406/epubprivate/OEBPS/Images/43035_113_1.jpg?sign=1739045102-P7EFZ00w9ryeFPVrQmI9ooYn5Qvi0vf1-0-6a79161f97378a41e6893f8c744aa9b6)
图5.1 带异步清零端的模10计数器的仿真结果