【问题标题】:Simulating VHDL 2008 unconstrained array type in Vivado 2017.1在 Vivado 2017.1 中模拟 VHDL 2008 无约束数组类型
【发布时间】:2017-12-27 12:28:43
【问题描述】:

我有以下类型

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.

它所指的行号就是上面的类型定义。

是不是错误是正确的,无约束的数组类型不能用于模拟?或者我需要更改某个设置以以不同方式配置模拟器?

谢谢。

【问题讨论】:

  • 完全正确。您可以随时尝试最新版本 (v2017.4)。
  • 你的用法是正确的。您需要将其作为错误提交给 Xilinx。这是 IEEE 标准化的 10 年和 Accellera 标准化的 12 年。不能说他们没有足够的时间来实施它。
  • 对于映射到二进制类型和模拟的综合来说,详细说明是完全不同的。用户指南 901(综合)列出了支持的不受约束的元素类型(第 8 章 VHDL-2008 语言支持,支持的 VHDL-2008 功能,类型)。用户指南 900(逻辑仿真)表 C-1 在 2017 年没有更改。对于支持具有无约束元素子类型的未绑定数组类型(IEEE Std 1076-2008 5.3.2)的模拟器,您几乎可以使用 ALDEC 或 Modelsim数组类型,5.3.2.1 通用)。
  • @JHBonarius “证明需求”是一些 EDA 供应商也称之为市场驱动的东西。因此,我们都需要提交错误报告来证明需求。事实上,我们需要的是一个具有标准化测试用例的网站和一种自动将它们提交给供应商的方法——这样一个人可以生成报告,每个希望该功能工作的人都可以提交它——从而证明对该功能的需求.
  • @JHBonarius 不要失去希望。像 SystemVerilog 这样的竞争性事情应该主要完成。我们的时间段是现在。提交那些错误。大声抱怨损坏的功能。

标签: vhdl fpga vivado


【解决方案1】:

所以你的问题是关于一个软件工具,它有大量的在线文档。所以你应该看看网站。 http://www.xilinx.com --> 支持 --> 文档 --> 开发工具 --> 硬件开发 --> Vivado Design Suite --> 用户指南。瞧:UG900 - Vivado Design Suite User Guide: Logic Simulationv2017.4

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

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

[部分]表C-1:

  • VHDL-2008 STD 和 IEEE 包预编译,包括新的固定和浮点包、无符号位等。
  • 简化的敏感度列表
  • 匹配关系运算符
  • 一元归约逻辑运算符
  • 简化案例陈述
  • 数组/位逻辑运算符
  • 数组/位加法运算符
  • 增强的位串文字
  • 条件语句和选定的顺序语句
  • 受保护的类型
  • 过程声明中的关键字“参数”
  • 子类型中的数组元素解析函数 定义
  • 阻止 cmets
  • 预定义的数组类型
  • 类型作为通用传递
  • 对信号的分层引用
  • 港口地图中的表达
  • 读取输出端口

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-07-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多