0

シミュレーション用に以下の Verilog コードを作成しました。シミュレーション中は正常に動作しています。

 module read_1(clk,reset);
 input clk,reset;
 reg [0:23]dataout;
 reg htpv;
 reg [0:23]e_data;
 reg[1:24]data_out;
 reg [25:0]cpv,cpv_round,e_av;
 reg [0:23]data[0:0]; 
 parameter threshold =8388608;
 integer i,f1;
 always @(negedge reset) 
  begin
   i=0;
   $readmemb("ppm_data.txt",data); 
   dataout=data[0];
   e_data=24'b0;
  end
always @(negedge clk)
  begin
   f1=$fopen("xxxx.txt","a");
   if(i==0)
   begin
   data_out=dataout[(i*24)+:24];
   e_av=(e_data[0:23])>>4;
   e_data=e_data<<24;
   cpv=data_out+e_av;
   cpv_round=(cpv<threshold)?0:16777215;
   htpv=(cpv_round==0)?1:0;
   e_data[0:23]=cpv-cpv_round;
   $fwrite(f1,"%b",htpv);
   i=i+1;
end
 $fclose(f1);
 end
endmodule

現在、Lattice Diamond を使用して上記のコードを合成していますが、「Map Design」ステップでエラーが発生しています。エラーは以下のとおりです:-

ERROR - map: Design is empty.
ERROR - map: Errors found in users design.  Output files not written.

これらのエラーが発生する理由と解決方法。

4

1 に答える 1

2

シンセサイザーは巧妙で、出力に影響を与えないロジックを削除します。

sがなく、outputs のみregがあるため、すべてのロジックが最適化され、デザインは空と見なされます。

$fopenおよび$fwriteは合成できないため、「出力」としてカウントしないことに注意してください。

于 2013-02-06T13:26:56.243 に答える