假设我有一个这样的数组:
parameter n=100;
reg array[0:n-1];
如何获得数组中每一位的逻辑或值?结果电路必须是组合的。
这是此问题的后续问题。 (见答案下面的讨论)
我不知道这是否符合您的设计要求,但使用 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;
我不知道在数组上执行此操作的更优雅的方法。