always @* begin
for (i = 0; i < 256; i = i + 1) begin
for (j = 0; j < 256; j = j + 1) begin
if (image_data[i] == image_data[j]) begin
pattern_counts[i] = pattern_counts[i] + 1;
end
end
end
end
像这样,为什么pattern_counts = pattern_counts +1不会创建组合逻辑循环以及为什么这是可综合的
请帮助讲述有关 Verilog 的详细信息,它是如何工作的
您忘记初始化
pattern_counts
。你可能会做类似的事情:
always @* begin
for (i = 0; i < 256; i = i + 1) begin
pattern_counts[i] = 0 ; // <--- INITIALIZE
for (j = 0; j < 256; j = j + 1) begin
if (image_data[i] == image_data[j]) begin
pattern_counts[i] = pattern_counts[i] + 1;
end
end
end
end
没有初始化
pattern_counts
,值是x
(未知)并且x+1
仍然是x
。