1

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

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

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

这是此问题的后续问题 (见答案下面的讨论)

4

1 回答 1

4

我不知道这是否符合您的设计要求,但使用 100 位总线可能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;

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

于 2013-05-17T22:20:23.827 回答