我有以下类型
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.
它所引用的行号是上面的类型定义。
错误是否正确,无约束的数组类型不能用于模拟?或者是否需要更改设置模拟器的设置?
感谢。
答案 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模拟器不支持上表中未提及的其他功能。