首页 > 解决方案 > 我对 vhdl 中的当前时间有一些疑问

问题描述

我是最近第一个开始 vhdl 的学生。它目前正在FPGA板上工作。我希望每当我按下 RESET 按钮时,我的七段码都会有当前时间。有没有办法解决它?

我整天搜索stackoverflow。但我找不到解决方案..

  -- Time information
  constant HOUR_INT   : integer                       := 00;  --  I think we should put the current time in here.
  constant HOUR_HEX   : std_logic_vector(7 downto 0)  := X"00";
  constant MINUTE_INT : integer                       := 00;
  constant MINUTE_HEX : std_logic_vector(7 downto 0)  := X"00";
if reset = '0' then
      hour <= conv_std_logic_vector(datetime.hour_int, 5)

在这个代码比例中,为什么我必须在 hout_int 旁边输入 5?

标签: vhdlfpgahdl

解决方案


在 HDL 中,您只能使用一些从外部参考运行的计数器来跟踪经过的时间:具有已知频率的时钟信号。

您始终必须通过初始化1您的计数器寄存器来设置当前日期/时间。设置时间/日期通常通过 CPU 接口完成。这意味着您需要一个 CPU,它可以从某个地方(实时时钟或与外部世界的连接)获取时间,然后以某种格式将时间写入您的寄存器。

1即使您的 FPGA 有备用电池:它总是必须至少在第一次设置。


推荐阅读