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

子类型 word_t 是 std_logic_vector(15 downto 0);-- 词(定义)

这是否可以在不创建记录或数组类型的情况下实现?谢谢

有帮助吗?

解决方案

不认为可以直接创建 type 基于另一个 subtype, ,但没有 subtype 可以这样做:

type word_t is array (15 downto 0) of std_logic;

然而,创建一个新的 type 由于VHDL的硬类型性质,对于端口的使用会使端口的使用变得麻烦。

另一种解决方法可能是制作 subtype 范围为 word_t, , 喜欢:

subtype word_range_t is natural range 15 downto 0;

然后用它 subtypestd_logic_vector 在里面 port 声明,如:

... std_logic_vector(word_range_t);

该端口仍然兼容 std_logic_vector, ,并且单词的大小仍然很容易维护。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top