我是 VHDL 新手。有一行,如下所示:
constant TIME_DELTA : time := 100 ns;
Run Code Online (Sandbox Code Playgroud)
time行中的这个词是什么?它的数据类型就像吗integer?当我在互联网上搜索 VHDL 帮助时,很多人都使用它,但没有人讨论任何有关它的内容。我也查过书,但没有用。有人可以解释一下这个关键字是如何time使用的吗?
时间是预定义的物理类型
\n\nIEEE 标准 1076\xe2\x84\xa2-2008 :
\n\n\n\n\n5.2.4.2 预定义的物理类型
\n\n唯一预定义的物理类型是 TIME 类型。TIME 的范围取决于实现,但保证包含范围 \xe2\x80\x932147483647 到 +2147483647。它是用升序范围定义的。所有延迟和脉冲抑制限制的规范均应为 TIME 类型。TIME 类型的声明出现在第 16 条中的 STANDARD 包中。
\n\n默认情况下,TIME 类型的主要单位 (1 fs) 是 TIME 类型的分辨率限制。绝对值小于此限制的任何 TIME 值都会被截断为零 (0) 个时间单位。实现可以允许模型的给定阐述(参见第 14 条)选择 TIME 类型的辅助单位作为分辨率限制。此外,实现可能会限制 TIME 类型值的表示精度和 TIME 类型表达式的结果,前提是在这些限制内可以表示与分辨率限制一样小的值。如果给定的 TIME 类型单元出现在定义要详细说明的模型的设计层次结构中的任何位置,并且该单元的位置编号小于选为辅助单元的位置编号,则这是一个错误。 n 模型细化期间类型 TIME 的分辨率限制,\n 除非该单元是物理文字的一部分,而其抽象文字\n 是整数值零或浮点值零。
\n
我将其理解为,在模拟器方面,它是一个整数值,表示具有主要限制分辨率的时间(例如 1fs)。
\n它可以在您的代码中用更大的时间和更大的时间尺度的实数值表示来表示:
-- time1 and time2 are equal\nsignal time1 : time := 1000.125 ms;\nsignal time2 : time := 1000125 us;\nRun Code Online (Sandbox Code Playgroud)\n