在 VHDL 中将数字时钟的时间模式从 12HR 更改为 24HR

发布于 2024-08-14 00:24:18 字数 279 浏览 5 评论 0原文

大家好。

我正在用 VHDL 设计一个数字时钟,我应该在 FPGA 上综合它。我级联 S1、S2、M1、M2、H1 和 H2,其中(S1 = 第 1 秒,M1 = 第 1 分钟,H1 = 第 1 小时等)。 要求之一是时钟在 24 小时显示格式和 12 小时显示格式之间切换。鉴于 H1 和 H2 分别由 4 位(即 8 位)表示,我该怎么做 总共显示当前小时。我是否需要连接 HR1 和 HR2,然后减去 12,然后再次取消连接?请记住,X mod 12 不是在 FPGA 中实现的可综合运算。

非常感谢。

Greetings everyone.

I am designing a digital clock in VHDL which I am supposed to synthesize on a FPGA . I am cascading S1,S2,M1,M2,H1 and H2 where (S1 = second 1, M1 = Minute 1, H1 = hour 1 etc.).
One of the requirements is for the clock to switch between 24HR display to a 12HR display format. How do I do it given that H1 and H2 are represented by 4 bits each i.e. 8 bits
in total to display the current hour. Will I need to concatenate HR1 and HR2 and then subtract 12 and then de-concatenate it again? keep in mind that X mod 12 is not a synthesizable operation for implementation in FPGA.

Thank you very much.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

画尸师 2024-08-21 00:24:18

基本上,您正在以二进制编码的十进制(BCD)进行所有算术运算。因此,只需为自己构建一个 BCD 比较器/减法器即可:

if h1 = 1 and h2 > 2
  subtract 1 off h1
  subtract 2 off h2
  if h2 wrapped
     subtract 1 off h1

无需 mod!

Basically you are doing all your arithmetic in binary coded decimal (BCD). So just build yourself a BCD comparator/subtractor:

if h1 = 1 and h2 > 2
  subtract 1 off h1
  subtract 2 off h2
  if h2 wrapped
     subtract 1 off h1

No mod required!

最美的太阳 2024-08-21 00:24:18

如果有空闲资源,可以将H寄存器加倍。让 H24-1 和 H24-2 (正如你已经拥有的那样)以及 H12-1 和 H12-2 “mod12”寄存器放在旁边。这两对都将始终被计时,因此您将在每个时钟周期准备好两种格式。不仅仅是使用一些 MUX 来切换显示其中的哪一个。

If you have spare resources, you can double the H registers. Let make H24-1 and H24-2 (as you already have) and H12-1 and H12-2 "mod12" registers beside. Both pairs will be clocked all the times, so you will have both format ready every clock cycle. Than just use some MUX to switch which of them are displayed.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文