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!

AR# 66062

Vivado Simulator 2015.4 - FATAL_ERROR: Vivado Simulator kernel has discovered an exceptional condition from which it cannot recover

Description

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:

  type std_logic_2d is array(integer range <>, integer range <>) of std_logic;

  function bin_decode_chu (a  : std_logic_vector;
                           en : std_logic) return std_logic_vector is
    constant STAGE_C : natural := a'length;
    variable p       : std_logic_2d(STAGE_C downto 0, 2**STAGE_C-1 downto 0);

Solution

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
Date Created 11/29/2015
Last Updated 04/21/2016
Status Active
Type Known Issues
Devices
  • FPGA Device Families
Tools
  • Vivado Design Suite - 2015.4