2014-05-25 89 views
1

當前下面的代碼給了我第一個類型應該受到限制的錯誤!但我真的需要用戶稍後指定!我怎麼能這樣做呢?在VHDL中聲明維數組的類型

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,所以對此的任何指針都非常感謝!

回答

1

在VHDL2008之前的VHDL版本中,不允許有無約束數組的無約束數組。
你實際嘗試做的聲明就像type mult_levels is array (natural range<>) of natural (range<>) of integer range 0 to 9。您會發現結果類型的多個維度實際上不受約束。因此,您會收到錯誤消息,指示將無約束數組維數減少到只有一個。
在VHDL2008之前的VHDL版本中,這是不允許的,只有您定義類型的一個維度可以不受約束。在VHDL2008中,這應該可以工作,至少在仿真中並假設您使用的仿真程序支持VHDL2008(我不知道任何支持新VHDL2008功能的綜合工具)。