我有一个pakcgae,其中我声明了一堆子类型和类型。在Active HDL中,每当我尝试从子类型中创建一个端口时似乎存在问题,所以我想知道是否有办法将它们转换为类型。以下是我要转换的子类型:
子类型word_t是std_logic_vector(15 downto 0); - 单词(定义)
这可能不仅仅创建一个记录类型或数组吗? 感谢
答案 0 :(得分:1)
不要认为可以根据另一个type
直接创建subtype
,但如果没有subtype
,就可以这样做:
type word_t is array (15 downto 0) of std_logic;
但是,由于VHDL的硬性特性,为端口创建新的type
会使端口变得麻烦。
另一种解决方法可能是制作subtype
word_t
的范围,例如:
subtype word_range_t is natural range 15 downto 0;
然后在subtype
声明中将std_logic_vector
与port
一起使用,例如:
... std_logic_vector(word_range_t);
该端口仍然与std_logic_vector
兼容,然后该字的大小仍然可以轻松维护。