![人工智能硬件电路设计基础及应用](https://wfqqreader-1252317822.image.myqcloud.com/cover/533/43738533/b_43738533.jpg)
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人
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=1738921866-LmdWRgvZ0ztHhbStrQVvIg6648bpxQA2-0-8f3b03e2d9fc4ad65769e156d177486d)
![](https://epubservercos.yuewen.com/B3251C/23020659009785406/epubprivate/OEBPS/Images/43035_112_1.jpg?sign=1738921866-RlvHzJC29tTOjDVdN0ZqrGEK7sG5jJwa-0-ad50e4c8aa03eea76583822765425c02)
图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=1738921866-naaYBCnGO01FZ5QD7Kh5n8l2wVwgYTIZ-0-4aab9ee6eafbb0082edb9c51a8c0c632)
图5.1 带异步清零端的模10计数器的仿真结果