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# 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 综合文章
的页面