3

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(未定義)である理由を分類できません。

4

1 に答える 1

2

Incisive シミュレーターでコードをコンパイルすると、次の警告メッセージが表示されました。

   error[0]=8'b00;
       |
ncelab: *W,BNDMEM (./half_tone.v,11|7): Memory index out of declared bounds [4.2.2(IEEE)].

error正しく初期化する必要があります。たぶんerror[1]=8'b00;

于 2013-01-17T13:48:40.360 に答える