HDLBits(16)4.19
1|03 电路
1|13.2 时序逻辑
3.2.2 计数器
- Count1to10(Decade counter again)
与上题一样,区别是复位为1
- Coutslow(Slow decade couter)
一个0-9,同步复位且复位为0的计数器,但计数器不随clk变化而递增,而是由slowena使能信号控制
- Counter 1-12
根据以下输入输出信号设计一个计算1~12的计数器
Reset:同步复位信号,高复位,将计数器复位为1.
Enable:使能信号高有效
Clk:时钟上升沿触发计数器工作
Q[3:0]:计数器输出
c_enable, c_load, c_d[3:0]:题目中给我们提供了一个4-bit的计数器,这三个信号是用于该4-bit计数器的控制信号。
题目提供给我们4-bit计数器
- 有enable信号,带复位和置位的计数器,将该计数器例化至我们的代码中。
- 再用一些其他的逻辑门来完成本题
- Counter1000
OneHertz: 从1000Hz中分离出1Hz的信号;这个信号主要用作于数字时钟中。
利用一个模10的BCD计数器和尽量少的逻辑门建立一个时钟分频器。同时输出每个BCD计算器的使能信号(c_enable[0]为高位,c_enable[2]为低位)
- Countbcd(4-digit decimal counter)
设计一个4位BCD计数器。每个十进制数字使用4-bit来表示:q[3:0]是个位,q[4:7]是十位等,ena[3:1]表示个位、十位、百位的进位
- Count clock
用计数器设计一个带AM/PM的12小时时钟。该计数器通过一个CLK进行计时,用ena使能信号来驱动时钟的递增。
reset信号将时钟复位为12:00 AM。 信号pm为0代表AM,为1代表PM。hh、mm和ss由数两个BCD计器构成hours(01~12), minutes(00~59) , second(00~59)。Reset信号比enable信号有更高的优先级,即使没有enable信号也可以进行复位操作。
Hint:需要注意的是从11:59:59 PM 到12:00:00 AM和从12:59:59 PM到01:00:00 PM的变化。
3.2.3 移位寄存器
- Shift4(4-bit shift register)
设计一个4bit异步复位,拥有同步置位和使能的右移移位寄存器
areset : 寄存器复位为0
load : 将data[3:0]输入至移位寄存器中
ena : 使能信号控制向右移动(q[3]q[2]q[1]q[0] ---> 0q[3]q[2]q[1],q[0]在移动后消失了,原先q[3]的位置变为0)
q : 移位寄存器中的数据
如果ena和load同时为高,load有更高的优先级。
__EOF__

本文链接:https://www.cnblogs.com/LhTian/p/17331092.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角【推荐】一下。您的鼓励是博主的最大动力!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY