8

typeVHDL和VHDL 有什么区别,subtype我应该在哪里使用它们?

我的理解是,这subtype只是主要类型之一的缩小版本,例如integersubtype small_integer is integer range -128 to 127;所有可能在主要类型上的操作,也可能在subtypes(当然,有一定的限制)上。此外,最好使用它subtypes来防止错误。

那么 的目的是type什么?

donwtotofor the和有什么不一样integers?(为了明白这一点,这里是一个例子)
subtype bit_index is integer range 31 downto 0;
subtype bit_index is integer range 0 to 31;

谢谢 !

4

3 回答 3

10
  • 正如您所说的那样,类型subtypes的基础;没有类型就没有子类型。然而,子类型只是在模拟中更安全;在真实硬件中,没有边界检查等......

  • VHDL 的标准库定义了许多基本类型供您构建,例如std_logic, std_ulogic, std_logic_vector(unconstrained, defined in package std_logic_1164) integer, character(defined in package standard) 等等。您自己的定义,例如std_logic_vector(7 downto 0)间接创建子类型(或者如果您明确定义和命名子类型,则直接创建子类型)

  • 当您查看自己的枚举时,例如,在描述状态机的状态时,您需要一个类型:

    type tState is (IDLE, DO_SOMETHING, DONE);

  • 我不确定downtoandto对于整数,它似乎没用,但是 VHDL 根本没有另一种机制来定义range,并且这种机制允许todownto

于 2012-09-24T07:41:16.107 回答
0

TO 和 DOWNTO 在印度性方面不同(最高位的 MSB 与位 0)

于 2014-11-18T07:10:43.403 回答
0
std_logic_vector(7 downto 0) 

1 000 0001”是MSB,“1000 000 1 ”是LSB

std_logic_vector(0 downto 3) 

1 000 0001”是LSB,“1000 000 1 ”是MSB

于 2019-06-19T04:29:19.547 回答