cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
rkalinsky
Visitor
Visitor
530 Views
Registered: ‎02-10-2014

Bug report: Vivado 2020.2 crashes on ram_style attribute null string value

Jump to solution

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 hs_err_pid577877.log.

I'm running Vivado on CentOS 8.

0 Kudos
1 Solution

Accepted Solutions
pulim
Xilinx Employee
Xilinx Employee
514 Views
Registered: ‎02-16-2014

Hi @rkalinsky 

Thanks for reporting this issue. I have filed a CR to get this issue fixed.

 

Thanks,

Manusha

View solution in original post

3 Replies
pulim
Xilinx Employee
Xilinx Employee
515 Views
Registered: ‎02-16-2014

Hi @rkalinsky 

Thanks for reporting this issue. I have filed a CR to get this issue fixed.

 

Thanks,

Manusha

View solution in original post

bitjockey
Adventurer
Adventurer
495 Views
Registered: ‎03-21-2011

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.

0 Kudos
rkalinsky
Visitor
Visitor
494 Views
Registered: ‎02-10-2014

Thanks, @pulim .

0 Kudos