Я разрабатываю код verilog для кумулятивного метода гистограммы для медианного фильтра. он использует вложенные для циклов, что вход второго цикла цикла зависит от выхода первого цикла. проблема здесь. Второй цикл цикла не принимает этот вход. пожалуйста помоги. кодвложенных для циклов в verilog, что второй для цикла зависит от вывода первого цикла for
module median(a, b,k,n,h);
input [4:0] a;
output [255:0] b;
output k,n,h;
reg [255:0] b;
reg [255:0]k,n,h;
always @(a) begin
for (n=0;n < 256;n=n+1)
b[n]=0;
for (n=0;n<=4;n=n+1) begin
b[a[n]]=b[a[n]]+1;
h=a[n]+1;
for (k = h;k <=255;k = k+1) begin
b[k]=b[k]+1;
end
end
for (n=0;n<=255 ;n=n+1) begin
if(b[n]==3)begin
$display ("the median is %d",n);
end
end
end
endmodule
Это комбинаторный цикл, который для симулятора будет выполняться в 0 раз, но у вас есть счетчик циклов 'n' в качестве вывода, в симуляции это всегда будет выглядеть как максимальное значение. Я бы рекомендовал писать как процесс с тактовой частотой и использовать несколько тактовых циклов для вычисления результата. – Morgan