AR# 21514

7.1i XST - "ERROR:Xst:792 - "<filename>.v" line 8: Index 7 is not in range of signal <select> Set property "resynthesize = true" for unit <problem>"

描述

Keywords: range, signal, analysis, analyze

Urgency: Standard

General Description:
When trying to synthesize the following code:

----------------------------------------------------------------------------------------------
module problem(input_a, output_b);
parameter size = 1;
input [31:0] input_a;
output [size +8:0] output_b;

reg [size +8:0] select;
always@* begin
select[size +8 : size +6] = input_a[31:29];
select[size +5 : 0] = input_a[size +5 : 0];
end

assign output_b = select;

endmodule
-------------------------------------------------------------------------------------------

XST in ISE 7.1i, produces the following error:

"=========================================================================
* HDL Analysis *
=========================================================================
Analyzing top module <problem>.
size = 1
ERROR:Xst:792 - "problem.v" line 8: Index 7 is not in range of signal <select>.
Set property "resynthesize = true" for unit <problem>."


This used to work in ISE 6.3i version of XST.

解决方案

This is valid code and should work fine in XST, but there is a problem with the ISE 7.1i version of XST that causes this error.

The same code can be successfully recoded in the following manner:

------------------------------------------------------------------------------------------------------------
module problem(input_a, output_b);
parameter size = 1;
parameter msb1 = size+8;
parameter msb2 = size+5;
parameter lsb1 = size+6;

input [31:0] input_a;
output [msb1:0] output_b;

reg [msb1:0] select;
always@* begin
select[msb1 : lsb1] = input_a[31:29];
select[msb2 : 0] = input_a[msb2 : 0];
end

assign output_b = select;

endmodule
--------------------------------------------------------------------------------------------------------------

This issue is fixed in 10.1
AR# 21514
日期 01/08/2009
状态 Archive
Type 综合文章