My design works correctly in Vivado 2015.3 but fails simulation with a fatal error in Vivado 2015.4.
FATAL_ERROR: Vivado Simulator kernel has discovered an exceptional condition from which it cannot recover.
Process will terminate. For technical support on this issue, please open a WebCase with this project attached at
Time: 0 ps Iteration: 0 Process: /tb_bug/test_p
File: /home/viv2015_4_bug/viv2015_4_bug/viv2015_4_bug.srcs/sources_1/new/tb_bug.vhd
HDL Line: /home/viv2015_4_bug/viv2015_4_bug/viv2015_4_bug.srcs/sources_1/new/tb_bug.vhd:51
The error points to a line where a function is called. Inside the function, a parameterized 2-D array is declared:
The issue is due to incorrect optimization for 2-D arrays in VHDL.
A work-around is to do value propagation at the RTL stage.
For Example, change the line from:
variable p : std_logic_2d(STAGE_C downto 0, 2**STAGE_C-1 downto 0);
Change the line to:
variable p : std_logic_2d(5 downto 0, 2**5-1 downto 0);
This issue is fixed in Vivado 2016.1.
AR# 66062 | |
---|---|
日期 | 04/21/2016 |
状态 | Active |
Type | 已知问题 |
器件 | |
Tools |