Floyd-Stiengburgアルゴリズムを使用して8ビットピクセルをハーフトーンピクセルに変換するVerilogコードを書いています。以下は、 6ピクセル(8ビット)をハーフトーンピクセルに変換するコードです。Modelsimでこのコードを正常にコンパイルしましたが、シミュレーションでは、出力(ハーフトーンピクセル値)はXXXXXX(未定義)です。
module half_tone(pixel,htpv);
input [0:47]pixel;
output reg [1:6]htpv;
reg [8:1]error[1:6];
reg [8:1]pixel_1;
reg [9:0]cpv,cpv_round,e_av;
parameter threshold =128;
integer i=1;
initial
begin
error[0]=8'b00;
for(i=0;i<6;i=i+1)
begin
e_av=(2*error[i])>>4;
cpv=pixel[(i*8)+:8]+e_av;
cpv_round=(cpv<threshold)?0:255;
htpv[i]=(cpv_round==0)?0:1;
error[i]=cpv-cpv_round;
#10;
end
end
endmodule
出力がXXXXXX(未定義)である理由を分類できません。