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