ISE使用求助

2019-07-15 23:48发布

本帖最后由 66077003 于 2015-6-20 21:17 编辑

小弟第一次接触ISE,以下简单测试代码在ISE中综合报错,求大神指导,谢谢!
module adder(
                                 x,
                                 y,
                                 cin,
                                 cout,
                                 sum
                                 );
                                 
         parameter N=32;
         input [N-1:0] x;
         input [N-1:0] y;
         input cin;
         output cout;
         output [N-1:0] sum;
         
         reg cout;
         reg [N-1:0] sum;
         reg q[N:0];
         
         always @(x or y or cin)begin
                 integer i;
                 q[0] = cin;
                 for(i=0; i<=N-1; i=i+1)begin
                        q[i+1] = (x&y) | (x&q) | (y&q);
                        sum=x ^ y ^ q;
                 end
                 cout = q[N];
         end
endmodule
在QUARTUS中能正常综合,但是在ISE中综合却出现报错情况:

ERROR:HDLCompilers:26 - "adder.v" line 21 unexpected token: 'integer'
ERROR:HDLCompilers:26 - "adder.v" line 21 unexpected token: ';'
ERROR:HDLCompilers:26 - "adder.v" line 22 unexpected token: '['
Module <adder> compiled
ERROR:HDLCompilers:26 - "adder.v" line 22 expecting 'endmodule', found '0'

-------------------------------------------------------------------------------------------------------------------
module adder(
                                 x,
                                 y,
                                 cin,
                                 cout,
                                 sum
                                 );
                                 
         parameter N=32;
         input [N-1:0] x;
         input [N-1:0] y;
         input cin;
         output cout;
         output [N-1:0] sum;
         
         reg cout;
         reg [N-1:0] sum;
         reg q[N:0];
         
         always @(x or y or cin)begin:ADDER
                 integer i;
                 q[0] = cin;
                 for(i=0; i<=N-1; i=i+1)begin
                        q[i+1] = (x&y) | (x&q) | (y&q);
                        sum=x ^ y ^ q;
                 end
                 cout = q[N];
         end
endmodule

加上标红部分(:ADDER)后却能正常综合,个人感觉语法上没什么错误,自己找不到原因,求指导!
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。