1

目前,下面的这段代码给了我第一种类型应该受到约束的错误!但我真的需要用户稍后指定!我该怎么做呢?

package mult_pack IS
  type mult_array is array (natural range <>) of integer range 0 to 9;
  type mult_levels is array (natural range <>) of mult_array;
END mult_pack;

我想用 mult_array 类型填充 mult_levels,所以对此的任何指针都非常感谢!

4

1 回答 1

1

在 VHDL2008 之前的 VHDL 版本中,不允许有无约束数组的无约束数组。
您实际尝试做的声明类似于type mult_levels is array (natural range<>) of natural (range<>) of integer range 0 to 9. 您会看到结果类型的多个维度实际上是不受约束的。因此,您会收到错误消息,指示将不受约束的数组维度的数量减少到只有一个。
在 VHDL2008 之前的 VHDL 版本中,这是不允许的,只有您定义的类型的一维可以不受约束。在 VHDL2008 中,这应该可以工作,至少在模拟中并且假设您使用的模拟程序支持 VHDL2008(我还不知道有任何支持新 VHDL2008 功能的综合工具)。

于 2014-05-25T10:52:27.070 回答