多个wire变量求和问题

2019-03-25 09:02发布

请问哪位大侠知道怎么简化多个变量求和的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 编辑 ] 此帖出自小平头技术问答
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
5条回答
409451697
1楼-- · 2019-03-25 16:01
< / wire[13:0] a;
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
试试看!
仅供参考,欢迎批评指正!
collinsw
2楼-- · 2019-03-25 21:46
已试过在always语句里进行求和,但结果与预期不一样,所以才使用wire求和。
有没有能简化多个register变量求和给wire变量的方法?
eeleader
3楼-- · 2019-03-25 22:54
使用时钟流水线,循环加了
amyxxf
4楼-- · 2019-03-25 23:45
原帖由 eeleader 于 2012-8-22 21:59 发表
使用时钟流水线,循环加了
是的,需要输出wire就直接赋值就可以了
eeleader
5楼-- · 2019-03-26 00:10
 精彩回答 2  元偷偷看……

一周热门 更多>