子类型指示VHDL200X的语法非法

时间:2016-05-02 18:53:16

标签: vhdl synthesis xilinx-ise

我正在尝试创建一个“动态”2D数组,我可以在我的实体中使用泛型设置。

我按照第32页的https://s3.amazonaws.com/verificationhorizons.verificationacademy.com/volume-8_issue-3/articles/stream/vhdl-2008-why-it-matters_vh-v8-i3.pdf中的示例进行操作。

在包中声明我的类型(TypeDeclarations):

library ieee;
use ieee.std_logic_1164.all;
use ieee.numeric_std.all;

package TypeDeclarations is

-- Type BusArray -----------------------------------------------------
-- Can be used by: DArray((Y - 1) downto 0)((X - 1) downto 0);      --
                                                                    --
    type TArray is array (natural range <>) of std_logic_vector;    --
                                                                    --
----------------------------------------------------------------------
end package;

我的实体:

-- Libraries
library ieee;
use ieee.std_logic_1164.all;

-- Own libraries
use work.TypeDeclarations.all;

entity DynamicRegisterSet is
    generic (
        INPUT_DATAWIDTH  : integer := 1;
        OUTPUT_DATAWIDTH : integer := 8;
        N_REGISTERS      : integer := 1);
    port (
        MCLK : in std_logic := '0';
        WE   : in std_logic := '0';

        -- input data
        DATA : in std_logic_vector((INPUT_DATAWIDTH-1) downto 0) := (others => '0');
        SEL  : in integer range 0 to (INPUT_DATAWIDTH-1) := 0;

        -- in/output data (register set)
        REGISTERSET : inout TArray((N_REGISTERS-1) downto 0)((OUTPUT_DATAWIDTH-1) downto 0) := (others => (others => '0')));
end DynamicRegisterSet;

这是我第一次使用更新的编译器(VHDL200X),我不认为我这样做错了,但我不会收到这条消息:

  

VHDL \ CommonBlocks \ DynamicRegisterSet \ Sources \ DynamicRegisterSet.vhd“第25行:子类型指示的非法语法

有人有什么建议吗?我非常感谢,谢谢!

2 个答案:

答案 0 :(得分:3)

Xilinx ISE 14.7没有VHDL-2008支持......

他们支持完整的VHDL-2002/2008功能,但不支持无约束的数组元素。

Vivado在2016.1中添加了VHDL-2008支持并将其设置为默认值。但据我所知,它没有完整的VHDL-2008支持。

有一个Xilinx XST综合用户指南,列出了VHDL部分中的这些功能。 (对不起,我的手机上没有UG号码。)

答案 1 :(得分:0)

ISE

ISE根本不支持VHDL-2008。阅读有关Xilinx forum或XST指南ISE12 ISE14

的更多详细信息
  

支持的VHDL IEEE标准

     

XST支持以下VHDL IEEE标准:

     
      
  • Std1076-1987
  •   
  • Std1076-1993
  •   
  • Std1076-2006
  •   
     

请注意部分1076-2006标准的实施。

Vivado

Vivado具有一组可合成的VHDL-2008构建体。在UG901中了解更多详细信息 (受支持的VHDL-2008功能一章)