verilog设置24进制计数器_?HDLBits--(Verilog在线学习)--"105: Count Clock"( 续)

70a7aa831c2a083a8691cc7905961596.png

Verilog HDLBits--Count Clock (Complement)

这篇文章延续上一篇HDLBits--(Verilog在线学习)--"105: Count Clock"。继常规 one-digit BCD编码,各位(如分钟的个位、十位等)分开单独显示 方法后,笔者提出一种十进制计数直接转BCD显示的方法。为强调两种方法的区别,本文方法取名为two-digit BCD(时钟计数中最高涉及到两位数)。相比 one-digit BCD 设计,two-digit BCD 需要额外的十进制计数器进行时钟计数,然后直接将该十进制数字转换成BCD编码。该方法常用于二进制转BCD编码类问题,涉及移位加3算法,笔者也会简要说明。

为方便阅读,这里先附上题目。

Problem105: Count Clock (Complement)

要求: 设计一个满足12小时计时的时钟系列计数器(包括am/pm指示)。该计数器由一个fast-running clk驱动,每当时钟需要增加计时时,ena信号则会发生脉冲信号(如:每秒一次)。 reset信号复位时钟到12:00 AM。pm信号为0时指示AM,为1时指示PM。hh、mm、ss都为两个BCD digits(8 bits),分别表示小时(01-12)、分钟(00-59)、秒(00-59)。reset 比 enable信号优先级更高,即使未使能,也要执行复位操作。 下面的时序图展示了时钟从11:59:59 AM 到12:00:00 PM的信号变化,以及同步复位和使能操作结果。

c8a31bc9dec79ac26b2eece704245e76.png

hint: 注意11:59:59 PM 在下一个时钟周期应为12:00:00 AM ;12:59:59 PM 在下一时钟周期应为 01:00:00 PM 。没有00:00:00这种形式。

1 正确答案

1  module top_module(
2      input clk,
3      input reset,
4      input ena
  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值