lljlljlzh1

用循环生成语句描述的脉动加法器

0
阅读(5394)

//本模块生成的是一个门级脉冲加法器

module fpgaceshi (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;
//指定进位变量的第0位等于进位的输入
assign carry[0] = ci;
//什么临时变量
//仿真前,循环生成已经展平,所以用Verilog对设计进行仿真时,该变量已经不再存在
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 co = carry [N];
endmodule
 
 
 
编译有误??