08-13-2017 05:01 PM
The latest Vivado synthesis guide (UG901, 2017.2) still promotes the usage of the non standard conform packages like std_logic_unsigned.
These packages are vendor specific packages and were never approved by IEEE!
So why does Xilinx promote code snippets that are not in line with the coding rules of IEEE Std. 1076-2008?
08-13-2017 05:19 PM
Hey @paebbels,
So why does Xilinx promote code snippets that are not in line with the coding rules of IEEE Std. 1076-2008?
I could probably simply answer that with: because they don't care about the standard, but the truth is probably a lot more complicated than that.
First, the Xilinx tools are way behind regarding IEEE 1076-2008, there are bugs and kinks on all ends and most of the newer constructs do not even work in most of them.
Secondly, documentation takes a lot of time and effort, especially if it includes examples which are supposed to work. Simply throwing out 'old' examples because there is a 'new' standard is not something you can do there easily.
And finally, they are not really 'promoting' those packages, they are just not pointing out the fact that those are not up-to-date.
Personally I can understand your frustration because I face it every time when I try to simulate a piece of VHDL 2008 code which was already tailored to pass the synthesis tool, and the simulator complains about something perfectly valid because it simply doesn't follow the standard.
Hope this helps,
Herbert
08-13-2017 05:30 PM
Xilinx claimed in another press release that starting with 2016.3, all source files will be considered VHDL-2008 by default. Currently I can't see this behavior. Even Vivado 2017.2 projects are still using old VHDL-93 syntax.
Maybe they noticed that both synthesis and simulation are running into severe problems when 2008 is activated. So it's still disabled by default...
Synthesis will produce false netlists when the new ?** operators are used and simulation has race conditions like old iSim. Normally, these should be fixed when using protected types for shared variables, but I can produce the same race conditions with protected types in xSim and VHDL-2008 enabled.
08-13-2017 07:40 PM
Well, those are not the only problems with VHDL 2008 support, the list goes on and on ...
Especially simulation is more '93 than 2008 ...
Let's hope this changes before the next standard is released :)
Best,
Herbert
08-13-2017 10:27 PM
Let's hope this changes before the next standard is released :)
I don't think so ....
We'll release VHDL-2017 at the end of the year or in early 2018. Aldec and Synopsis have ensured to support VHDL-2017 by the end of the year or in the 1st half of the next year.
08-14-2017 06:38 AM
We'll release VHDL-2017 at the end of the year or in early 2018.
Ouch ... what's new in VHDL-2017? Anything exciting?
Aldec and Synopsis have ensured to support VHDL-2017 by the end of the year or in the 1st half of the next year.
Good to know ... maybe this helps to convince Xilinx to get at least VHDL-2008 finished, but maybe not.
Best,
Herbert
08-14-2017 10:15 AM
Here is the list of approved Language Changes.
Interesting things for synthesis:
- incomplete types
- view modes (interfaces)
- 64-bit integers and physical types
- new attributes
- a new "assignment" operator
- ...
Interesting things for simulation:
- more powerful protected types
- new APIs
- ...
08-14-2017 11:24 AM
Thanks, appreciated!
All the best,
Herbert