|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?注册
x
代码里是一个很简单的ripple adder,在modelsim10.1C里通过编译,但是在quartus15.0里没有通过,想知道一下是为什么,代码应该怎么改?
quartus15.0中显示的错误代码是:
Error (10232): Verilog HDL error at test.v(19): index 4 cannot fall outside the declared range [3:0] for vector "carry"
大致意思也就是第19行的carry[i+1]循坏展开后会超过定义中的wire [N-1:0] carry
- module test(co,sum,a0,a1,ci);
- parameter N=4;
- output [N-1:0] sum;
- output co;
- input[N-1:0] a0,a1;
- input ci;
- wire [N-1:0] carry;
- genvar i;
- generate
- for(i=0;i<N;i=i+1) begin:r_loop
- wire t1,t2,t3;
- xor g1(t1,a0[i],a1[i]);
- xor g2(sum[i],t1,carry[i]);
- and g3(t2,a0[i],a1[i]);
- and g4(t3,t1,carry[i]);
- or g5(carry[i+1],t2,t3);
- end
- endgenerate
- assign carry[0] = ci;
- assign co = carry[N];
- endmodule
复制代码 |
|