UPGRADE YOUR BROWSER

We have detected your current browser version is not the latest one. Xilinx.com uses the latest web technologies to bring you the best online experience possible. Please upgrade to a Xilinx.com supported browser:Chrome, Firefox, Internet Explorer 11, Safari. Thank you!

cancel
Showing results for 
Search instead for 
Did you mean: 
Scholar jmcclusk
Scholar
1,220 Views
Registered: ‎02-24-2014

Request for VHDL2008 simulation improvement: Unconstrained Array Type as Subtype in Array Type Definition

I just installed the BITVis UVVM testbench packages for simulating an axilite master core in my Ultrascale design, and found that Vivado 2018.2 still lacks essential VHDL2008 language support.

 

ERROR: [XSIM 43-4187] File "D:/test_ip/test_axi_lite_master_1.0/src/types_pkg.vhd" Line 39 : The "Vhdl 2008 Unconstrained Array Type as Subtype in Array Type Definition" is not supported yet for simulation.

 

This problem, along with the lack of support for VHDL2008 Contexts,  is very annoying.    Please upgrade the priority of this language feature for Vivado.

 

REQUEST FOR OTHER VHDL USERS:     Please append your vote of support to this thread if you need this language upgrade in Vivado.

Don't forget to close a thread when possible by accepting a post as a solution.
12 Replies
Scholar richardhead
Scholar
1,185 Views
Registered: ‎08-01-2012

Re: Request for VHDL2008 simulation improvement: Unconstrained Array Type as Subtype in Array Type Definition

I support this.

Although if all it is doing is pushing users to 3rd party sim tools, I dont really see a business case for Xilinx.

1,155 Views
Registered: ‎01-22-2015

Re: Request for VHDL2008 simulation improvement: Unconstrained Array Type as Subtype in Array Type Definition

I support this  - and the need to make Vivado simulation better support all versions of VHDL.

 

For example, Vivado 2018.2 seems unable to do post implementation timing simulation (see <this> post) - even with older versions of VHDL.

 

Moderator
Moderator
1,120 Views
Registered: ‎04-24-2013

Re: Request for VHDL2008 simulation improvement: Unconstrained Array Type as Subtype in Array Type Definition

Hi markg@prosensing.com,

 

As per UG900 Post Synthesis and Post Implementation timing simulations are not supported for VHDL

 

Capture.JPG

 

Best Regards
Aidan

 

 

------------------------------------------------------------------------------------------------------------------
Please mark the Answer as "Accept as solution" if this answered your question
Give Kudos to a post which you think is helpful and may help other users
------------------------------------------------------------------------------------------------------------------
0 Kudos
1,114 Views
Registered: ‎01-22-2015

Re: Request for VHDL2008 simulation improvement: Unconstrained Array Type as Subtype in Array Type Definition

@amaccre

 

     ....timing simulations are not supported for VHDL

That's actually part of our overall complaint.   Why doesn't VHDL get equal footing with Verilog?

 

However, I did not write my original complaint clearly - sorry.

 

Yes, I do use VHDL.  However, as @graces explained to me "You can have a pure VHDL RTL design but write out a Verilog simulation netlist (write_verilog) from synthesized or implemented design. That netlist still allows you to perform timing simulation."  As shown in the post that I referenced, using write_verilog this way did not result in correct results for post-implementation timing simulation. 

 

It is still unclear to me whether this is a problem with post implementation timing simulation in general or whether it is a using-VHDL problem.

 

Thanks,

Mark

Tags (1)
Moderator
Moderator
1,100 Views
Registered: ‎04-24-2013

Re: Request for VHDL2008 simulation improvement: Unconstrained Array Type as Subtype in Array Type Definition

 

Hi markg@prosensing.com,

 

If you have a sample project that shows incorrect results / results different to another third party simulator and are willing to share it then let me know and I can send you an EzMove link to transfer the files securely.

 

If I can replicate the issue then I will be happy to file a Change Request to have the issue investigated and fixed.

 

Support for VHDL Timing simulations in Vivado Simulator are not likely to be included in the near future.

 

It is my understanding that full coverage for SystemVerilog and VHDL-2008 in synthesis currently has higher priority.

 

Best Regards
Aidan

 

------------------------------------------------------------------------------------------------------------------
Please mark the Answer as "Accept as solution" if this answered your question
Give Kudos to a post which you think is helpful and may help other users
------------------------------------------------------------------------------------------------------------------
1,095 Views
Registered: ‎01-22-2015

Re: Request for VHDL2008 simulation improvement: Unconstrained Array Type as Subtype in Array Type Definition

@amaccre

 

The following post has a lengthy discussion with @graces about my problem with post-impl timing simulation.  Message 16 in that post summarizes the problem and contains my archived project from Vivado v2018.2.

 

https://forums.xilinx.com/t5/Simulation-and-Verification/Simulation-behavioral-structural-functional-timing/td-p/878113/highlight/true/page/2

 

Thank you for help with my problem and for letting us know that we can expect improved support for VHDL-2008.

 

Mark

0 Kudos
Moderator
Moderator
1,081 Views
Registered: ‎04-24-2013

Re: Request for VHDL2008 simulation improvement: Unconstrained Array Type as Subtype in Array Type Definition

Hi markg@prosensing.com

 

I retrieved the project that you uploaded, implemented it and ran post implementation timing simulations in both Vivado Xsim 2018.2 and ModelSim 10.6c and the results were identical.

 

ModelSim

 

ModelSim.JPG

 

Vivado

 

Xsim.JPG

 

Let me know if I should have tried something different?


Best Regards
Aidan

 

------------------------------------------------------------------------------------------------------------------
Please mark the Answer as "Accept as solution" if this answered your question
Give Kudos to a post which you think is helpful and may help other users
------------------------------------------------------------------------------------------------------------------
0 Kudos
1,072 Views
Registered: ‎01-22-2015

Re: Request for VHDL2008 simulation improvement: Unconstrained Array Type as Subtype in Array Type Definition

Hi Aidan,

 

Thank you for continued help!

 

I did not compare results from ModelSim and Vivado for Post-Implementation Timing Simulation (PITS). However, results from Vivado PITS and Vivado Post-Implementation Function Simulation (PIFS) were found to be identical  - which is an indicator of the problem.

 

Specifically, please consider the circuit shown below whose behavior I am simulating.  In short, after the asynchronous clear, CLR1, for register, REG1, goes low then the output of REG1 (and output, OUT1) should go high “shortly after” the next rising edge of CLK1.

pulse_stretch.jpg

 

However, PITS and PIFS both show that OUT1 goes high on (and not “shortly after”) the rising edge of CLK1. For Kintex-7, I estimate “shortly after” to be the sum of delays through IBUF (~1ns), BUFR (~1ns), FDCE (~0.5ns), and OBUF(~2ns) – or about 4.5ns in total.

 

Since PITS shows that OUT1 goes high simultaneously with the rising edge of CLK1 (and not ~4.5ns after rising edge of CLK1) then I believe that PITS is not working properly (or I am not using PITS properly).

 

Thanks,

Mark

0 Kudos
Explorer
Explorer
1,021 Views
Registered: ‎05-22-2008

Re: Request for VHDL2008 simulation improvement: Unconstrained Array Type as Subtype in Array Type Definition

I ran across this thread after encountering an almost identical issue, wherein Vhdl2008 unconstrained record types are unsupported in simulation. This was a pretty simple piece of code, where I'm creating an AXI-Stream type and I don't want a bunch of types; one for 32 bits of tdata, 16 bits of tuser; another for 24 bits of tdata, 16 bits of tuser; and on an on ad infinity.

 

If the naming is accurate, VHDL-2008 is 10 years old now. Xilinx at least let us know what we can expect when. Will VHDL-2008 be supported in vivado simulator by 2020? 2025?

0 Kudos
728 Views
Registered: ‎10-03-2018

Re: Request for VHDL2008 simulation improvement: Unconstrained Array Type as Subtype in Array Type Definition

I fully support the request. This feature is absolutely fundamental in order to develop clean, portable code. Because of ths very issue alone my whole company has to use ModelSim for behavioural simulation, with considerable additional cost.

 

Vivado simulator is great and, for the rest, we are very happy with it, but please add this feature as soon as possible, it is making our life really hard.

0 Kudos
Scholar richardhead
Scholar
715 Views
Registered: ‎08-01-2012

Re: Request for VHDL2008 simulation improvement: Unconstrained Array Type as Subtype in Array Type Definition

Btw - to highlight how far behind Xilinx are:

VHDL 2018 is about to be, or has just been released - and Aldec are demoing some feature support in their beta releases. (Although they dont have all parts of 2008 supported yet)

 

Im sure Modelsim wont be too far behind.

Cadence will probably lag, but support will probably come.

0 Kudos
50 Views
Registered: ‎09-20-2018

Re: Request for VHDL2008 simulation improvement: Unconstrained Array Type as Subtype in Array Type Definition

Adding in a vote for essentially any VHDL-2008 support in simulation. Even the most fundamental "quality of life" features aren't implemented for simulation.

For a

Reset_i : in std_logic;

That then gets used in VHDL-2008 style as

if rising_edge(Clk_i) then
      if Reset_i then

Returns the error in simulation elaboration

ERROR: [XSIM 43-4187] File "<file>.vhd" Line 52 : The "Vhdl 2008 Condition Operator" is not supported yet for simulation.

We had a plan for this project to "keep things simple" and try to use Vivado as a fully integrated design environment, however now we have to choose between the benefits of "new" language fetaures and workflow simplicity. From the years of scattered posts on this matter in the forums, this remains a peristent unsolved problem.

 

Edit: from the advice of my local FAE, there is limited VHDL-2008 support in the simulator per UG900, Appendix C. However, there are obviously some important exclusions (see my above post) and numeric packages require modifying the library declarations in the source files.

0 Kudos