3

I have the following type

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

which I use in my entity as follows:

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;

I am using Vivado 2017.1 and have marked the files as VHDL 2008. The files synthesize perfectly well, but I get the following error when trying to Run Simulation:

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.

The line number it is referring to is the type definition above.

Is it the case that the error is correct, and that unconstrained array types cannot be used for simulation? Or is there a setting somewhere which I need to change to configure the simulator differently?

Thanks.

epsilon_j
  • 325
  • 4
  • 14
  • 1
    prolly correct. You can always try the newest version (v2017.4). – JHBonarius Dec 27 '17 at 14:51
  • 1
    Your usage is correct. You need to submit it as a bug to Xilinx. It is 10 years after this was standardized in IEEE and 12 years after it was standardized by Accellera. Can't really claim they have not had sufficient time to implement it. – Jim Lewis Dec 27 '17 at 18:32
  • 1
    Elaboration is completely different for synthesis which maps to binary types and simulation. User Guide 901 (Synthesis) lists unconstrained element types as supported (Ch. 8 VHDL-2008 Language Support, Supported VHDL-2008 Features, Types). User Guide 900 (Logic Simulation) Table C-1 hasn't been changed in 2017. That pretty much leaves you with ALDEC or Modelsim for a simulator supporting an unbound array type with an unconstrained element subtype (IEEE Std 1076-2008 5.3.2 Array types, 5.3.2.1 General). –  Dec 27 '17 at 18:55
  • @jimlewis I spoke a Xilinx representative once about missing support for several VHDL-2008 constructs: he told me they do not intend to support everything, as it is not commercially interesting. According to them, there is not sufficient demand from the market for this. They rather focus on HLS and Python, to attract more markets. – JHBonarius Dec 28 '17 at 09:28
  • 1
    @JHBonarius "Demonstrated demand" is what some EDA vendors also call market driven. Hence, we all need to submit bug reports to demonstrate the demand. In fact, what we need is a website with standardized test cases and a method to automatically submit them to vendors - that way one person can generate the report and each person who wants that feature to work can submit it - hence demonstrating demand for the feature. – Jim Lewis Dec 30 '17 at 02:19
  • @JHBonarius If we fail to submit bug reports and "demonstrate demand" then we will be victim of someone else's marketing objectives. – Jim Lewis Dec 30 '17 at 02:45
  • @jimlewis true, but my experience with altera and xilinx is that they are very good in prioritizing the bugs that give them commercial benefits. Over the years I suggested a number of bugs and improvements and only a few were ever picked up. And now I made the step from industry to academia I notice the biggest difference: in industry I got monthly up to daily (on-site) support, free gadgets and conferences etc. Now I'm happy if they even answer my e-mail. It's all about the money. – JHBonarius Dec 30 '17 at 09:30
  • 1
    @JHBonarius Don't loose hope. Competing things like SystemVerilog should be mostly done. Our time slot is now. Submit those bugs. Complain loudly about broken features. – Jim Lewis Dec 30 '17 at 21:06
  • @JHBonarius Where is Xilinx supporting Python? I have never seen Python anywhere. – Paebbels Jan 02 '18 at 14:25
  • @Paebbels "Support" is a big word here. Xilinx has been trying to push development kits for Python developers for about a year now: [PYNQ](http://www.pynq.io/) – JHBonarius Jan 02 '18 at 14:35

1 Answers1

3

So your question is about a software tool, which has an extensive on-line documentation. So you should look on the website. http://www.xilinx.com --> support --> documentation --> Development tools --> Hardware development --> Vivado Design Suite --> User Guides. Et voila: UG900 - Vivado Design Suite User Guide: Logic Simulation v2017.4

Appendix C: VHDL 2008 Support in Vivado Simulator

The Vivado® simulator supports the subset of VHDL 2008(IEEE 1076-2008). The complete list is given in Table C-1.

[partial] Table C-1:

  • VHDL-2008 STD and IEEE packages precompiled, including new fixed and float packages, unsigned bit etc.
  • Simplified sensitivity list
  • Matching Relational Operators
  • Unary Reduction Logic Operators
  • Simplified Case Statement
  • Array / Bit Logic Operators
  • Array / Bit Addition Operators
  • Enhanced Bit String Literals
  • Conditional and selected sequential statements
  • Protected type
  • Keyword ‘parameter’ in procedure declaration
  • Array element resolution function in subtype definition
  • Block comments
  • Predefined array types
  • Type passed as Generic
  • Hierarchical references to signal
  • Expression in port map
  • Reading output port

Note: Other features that are not mentioned in the above table, are not supported by Vivado Simulator.

JHBonarius
  • 10,824
  • 3
  • 22
  • 41