02-18-2021 06:23 PM
I'd like to report a bug that was introduced in Vivado 2020.2. This bug does not occur with Vivado 2020.1 and earlier.
Vivado 2020.2 crashes (abnormal termination) during synthesis if in a VHDL source there is a ram_style attribute specified with a null string value, i.e. "".
A simple workaround is to specify value "auto", or even a single space " ". But Vivado should not crash on a null string value "", and did not prior to version 2020.2.
Vivado 2020.2 also doesn't seem to have a problem with null string values for attributes in general. The bug appears to be specific to the ram_style attribute.
For a trivial example to reproduce this bug, see the attached files example.vhd and example.tcl, and execute:
vivado -mode batch -source example.tcl
I'm also attaching a resulting crash error log. See.
I'm running Vivado on CentOS 8.
02-18-2021 08:15 PM
While we're at it, can Vivado stop putting vhdl generics and synthesis attributes in the same namespace. If your ram wrapper has a GENERIC called RAM_STYLE (that the wrapper then passes into the attribute internally) the compiler gets all sorts of pissy that "RAM_STYLE" is reserved. Even though it's a GENERIC and not a language reserved name. Xilinx programmers just got lazy and put the two kinds of objects into one dictionary/namespace inside the compiler. Renaming the generic would mean updating a 10 year old piece of code reused in lots of places.