VHDL中的单词时间

时间:2018-08-30 07:44:05

标签: vhdl

我是VHDL的新手。 有一行,如下所示:

constant TIME_DELTA : time := 100 ns;

该行中的单词time是什么?数据类型是否像integer一样?当我在互联网上搜索VHDL帮助时,很多人都在使用它,但是没有人讨论它。我也搜索书籍,但没有用。 有人可以解释一下如何使用关键字time吗?

2 个答案:

答案 0 :(得分:2)

时间是预定义的物理类型

IEEE Std 1076™-2008:

  

5.2.4.2预定义的物理类型

     

唯一的预定义物理类型是TIME类型。 TIME的范围取决于实现,但它是   确保包含范围–2147483647至+2147483647。它是   以递增范围定义。延迟和所有规格   脉冲抑制极限应为TIME类型。类型的声明   TIME出现在第16条的STANDARD包中。

     

默认情况下,TIME(1 fs)类型的主要单位是分辨率   TIME类型的限制。绝对值较小的任何TIME值   超过此限制将被截断为零(0)个时间单位。一个实现   可以允许模型的给定阐述(请参阅第14条)选择   TIME类型的辅助单位作为分辨率限制。此外,   实施可能会限制表示的精度   TIME类型的值和TIME类型的表达式的结果,   只要与分辨率极限一样小的值是   在这些限制内可以代表。如果给定是错误的   TIME类型的单位出现在设计层次结构中的任何位置   定义要阐述的模型,以及该模型的位置编号   单位小于选择为   模型制作期间TIME类型的分辨率限制,   除非该单元是其抽象文字的物理文字的一部分   是整数值零或浮点值零。

在模拟器方面,我理解它是一个整数值,它表示具有主要限制的分辨率(例如1fs)的时间。
可以在您的代码中用真实的值表示形式,用更长的时间和更长的时间来表示:

-- time1 and time2 are equal
signal time1 : time := 1000.125 ms;
signal time2 : time := 1000125 us;

答案 1 :(得分:1)

time只是一种数据类型。在您的情况下,constant TIME_DELTA : time := 100 ns;可用作信号分配中的延迟,例如:

architecture some_arch of some_ent is
    constant TIME_DELTA: time := 100 ns;
begin
    dclk <= clk after TIME_DELTA;
end some_arch;