Types vhdl将活动hdl的子类型转换为类型

Types vhdl将活动hdl的子类型转换为类型,types,type-conversion,port,vhdl,subtype,Types,Type Conversion,Port,Vhdl,Subtype,我有一个pakcgae,其中声明了一系列子类型和类型。在活动HDL中,每当我尝试将子类型转换为端口时,似乎都会出现问题,因此我想知道是否有办法将它们转换为类型。以下是我要转换的子类型: 子类型字是标准逻辑向量(15到0);--单词(定义) 在不创建记录或数组类型的情况下,这是可能的吗? 谢谢不要认为可以基于另一个子类型直接创建类型,但是如果没有子类型,则可以像这样执行: type word_t is array (15 downto 0) of std_logic; 但是,由于VHDL的硬类型

我有一个pakcgae,其中声明了一系列子类型和类型。在活动HDL中,每当我尝试将子类型转换为端口时,似乎都会出现问题,因此我想知道是否有办法将它们转换为类型。以下是我要转换的子类型:

子类型字是标准逻辑向量(15到0);--单词(定义)

在不创建记录或数组类型的情况下,这是可能的吗?
谢谢

不要认为可以基于另一个
子类型直接创建
类型
,但是如果没有
子类型
,则可以像这样执行:

type word_t is array (15 downto 0) of std_logic;
但是,由于VHDL的硬类型特性,为端口创建一个新的
类型
,将使端口的使用变得繁琐

另一种解决方法是创建一个
子类型
,其范围为
word\u t
,如:

subtype word_range_t is natural range 15 downto 0;
然后在
端口
声明中将该
子类型
标准逻辑向量
一起使用,如:

... std_logic_vector(word_range_t);

然后,端口仍然与
std\u logic\u vector
兼容,并且字的大小仍然易于维护。

嘿,非常感谢,这似乎可行(第二种方法)。现在,这到底是为什么?向Aldec报告活动HDL问题可能是一个好主意,这样他们就可以在将来的版本中解决这个问题。无论如何,按子类型划分的范围通常非常有用。我已经报告过了,他们说这是一个他们将修复的bug。谢天谢地,Aldec通常对反馈非常敏感,这是制作好软件的方法。