Verilog,逻辑或整个数组

时间:2013-05-17 22:03:35

标签: arrays input verilog

假设我有一个这样的数组:

parameter n=100;
reg array[0:n-1];

如何获得数组中每个位的逻辑OR值? 结果电路必须是组合的。

这是来自this one.的后续问题 (见答案下面的讨论)

1 个答案:

答案 0 :(得分:4)

我不知道这是否符合您的设计要求,但使用百位总线reg [n-1:0] array;可能比使用1位线阵列更容易。 Verilog没有最好的语法来支持数组。如果你有一辆公共汽车而你可以分配result = |array;

如果你必须使用一个数组,那么我可能会考虑首先把它变成带有生成循环的总线,然后再做同样的事情:

parameter n=100;
reg array[0:n-1];
wire [n-1:0] dummywire;

genvar i; 
generate 
  for (i = 0; i < n; i = i+1)  begin
    assign dummywire[i] = array[i];
  end  
endgenerate  

assign result = |dummywire;

我不知道有更优雅的方法在数组上执行此操作。