在Vivado 2017.1中模拟VHDL 2008无约束阵列类型

时间:2017-12-27 12:28:43

标签: vhdl fpga vivado

我有以下类型

type VECTOR_ARRAY_TYPE is array(natural range <>) of std_logic_vector;

我在我的实体中使用如下:

entity mux is

  generic (
    sel_width  : positive := 2;
    data_width : positive := 3
  );

  port (
    d   : in  VECTOR_ARRAY_TYPE(2**sel_width - 1 downto 0)(data_width - 1 downto 0);
    sel : in  std_logic_vector(sel_width - 1 downto 0);
    q   : out std_logic_vector(data_width - 1 downto 0)
  );

end mux;

我正在使用Vivado 2017.1并将文件标记为VHDL 2008.文件合成得非常好,但在尝试运行模拟时出现以下错误:

ERROR: [XSIM 43-4187] File "/project_dir/sources_1/new/alu_data.vhd" Line 42 : The "Vhdl 2008 Unconstrained Array Type as Subtype in Array Type Definition" is not supported yet for simulation.

它所引用的行号是上面的类型定义。

错误是否正确,无约束的数组类型不能用于模拟?或者是否需要更改设置模拟器的设置?

感谢。

1 个答案:

答案 0 :(得分:2)

所以你的问题是关于一个软件工具,它有一个广泛的在线文档。所以你应该在网站上看。 http://www.xilinx.com - &gt;支持 - &gt;文档 - &gt;开发工具 - &gt;硬件开发 - &gt; Vivado设计套件 - &gt;用户指南。 Et voila:UG900 - Vivado Design Suite User Guide: Logic Simulation v2017.4

  

附录C:Vivado模拟器中的VHDL 2008支持

     

Vivado®模拟器支持VHDL 2008(IEEE 1076-2008)的子集。完整列表见表C-1。

     

[partial]表C-1:

     
      
  • VHDL-2008 STD和IEEE软件包预编译,包括新的固定和浮动包,无符号位等。
  •   
  • 简化敏感度列表
  •   
  • 匹配关系运算符
  •   
  • 一元缩减逻辑运算符
  •   
  • 简化案例陈述
  •   
  • 阵列/位逻辑运算符
  •   
  • 数组/位添加运算符
  •   
  • 增强的位字符串文字
  •   
  • 条件和选定的顺序陈述
  •   
  • 受保护类型
  •   
  • 程序声明中的关键字'参数'
  •   
  • 子类型中的数组元素分辨率函数   定义
  •   
  • 阻止评论
  •   
  • 预定义的数组类型
  •   
  • 类型传递为Generic
  •   
  • 对信号的分层引用
  •   
  • 端口映射中的表达式
  •   
  • 读取输出端口
  •   
     

注意:Vivado模拟器不支持上表中未提及的其他功能。