AR# 6514

|

3.1i XST - " Done: failed with exit code: 0002" for VHDL designs with exponential operator, functions, and procedures.

描述

Keywords: XST, Done, exit, code, 0002, VHDL, exponent, function, procedure

Urgency: Standard

General Description:
Problems occur with a variable being used in the combination of the following items:

1. The variable is used as an index in the signal that is being operated on.
2. The variable is used as an index in a loop statement as the exponent.
3. The signal is passed to the function/procedure.

These points are illustrated in the following VHDL portions:
.
.
.
TYPE data_array IS ARRAY (integer range <>) OF std_logic_vector(7 DOWNTO 0);

Point 1: The variable "add_width" is used as an index in the signal "data".

SIGNAL data : data_array(0 to (2**add_width) );

procedure init_mem(signal memory_cell : inout data_array ) is
begin

Point 2: The variable "add_width" is the upper bound in the loop as an exponent.

for i in 0 to (2**add_width) loop
memory_cell(i) <= (others => '0');
end loop;

end init_mem;
.
.
.

Point 3: The signal "data" is being passed to the procedure.

init_mem ( data);

解决方案

This problem is fixed in the latest 3.1i Service Pack, available at:
http://support.xilinx.com/support/techsup/sw_updates.
The first service pack containing the fix is 3.1i Service Pack 3.
AR# 6514
日期 08/20/2002
状态 Archive
Type 综合文章
People Also Viewed