请问哪位大侠知道怎么简化多个变量求和的verilog编程?输出为wire。
现在我一个一个输入,太麻烦了。程序如下:
wire [13:0] a;
reg [7:0] b [0:63];
...
assign a = b[0]+ b[1]+ b[2]+...+ b[63];
...
我试过用for语句,可是编译总是通不过。
for (j=0; j<=63; j=j+1)
begin
assign a= a+b[j];
end
Error (10170): Verilog HDL syntax error at ADC.v(53) near text "for"; expecting "endmodule"
各位有什么好方法?
[
本帖最后由 collinsw 于 2012-8-21 08:53 编辑 ]
此帖出自
小平头技术问答
reg[13:0] a_buf;
reg[7:0] b[0:63];
...
assign a = (flag) ? a_buf:14'd0;
...
reg[6:0] j;
begin
for(j = 7'd0;j<= 7'd63;j = j + 1'd0)
begin
flag = 1'b0;
a_buf = a_buf + b[j];
end
flag = 1'b1;
end
试试看!
仅供参考,欢迎批评指正!
一周热门 更多>