2011-08-04 8 views
1

VerilogでFatICAアルゴリズムを実装しようとしています。私はコード全体を書いていますが、エラーは表示されませんが、コードを合成しようとすると、 ""の代わりに ""のようにエラーが発生します。Verilogの合成エラー

私は4つの浮動小数点モジュールを使用しています今、私はドット演算子

を使用して個々のインスタンスにアクセスしていますが

genvar s; 

generate 
    for(s=1;s<=4000;s=(s+1)) 

    begin:cov_mul_ins 
      Float32Mul cov_mul (.CLK(clk), 
         .nRST(1'b1), 
         .leftArg(dummy_14), 
         .rightArg(dummy_15), 
         .loadArgs(1'b1) 
         ); 
    end 
endgenerate 

を生成するためにcalculations.Followingの間でのためのループのために使用して、私はSQRT、合計1000個のインスタンスを生成していると計算...などは、コードです

for(d=1;d<=2;d=(d+1)) 

begin 
    for(e=1;e<=2;e=(e+1)) 
    begin 
     for(c=1;c<=1000;c=(c+1)) 
      begin 
     if((d==1)&&(e==1)) 
      begin 
      dummy_14=centered_data_copy[d][c]; 
      dummy_15=Parent.centered_data_float_trans[c][e]; 

     #10 ***cov_mul_ins[c].cov_mul***(.CLK(clk), 
          .nRST(1'b1), 
          .leftArg(dummy_14), 
          .rightArg(dummy_15), 
          .loadArgs(1'b1), 
          .product(cov_temp[c][1]) 
          ); 

私は感謝しますもし誰かが私が作っているエラーを指摘することができたら。注意すべき事柄の

+0

@osgx私はgenerateステートメントにエラーはないと思いますが、インスタンス化されたモジュールを適切な方法で処理しているかどうかはわかりません。ウェブ上でそれを検索しようとしましたが、何も見つかりませんでした。それから、samir palnitkarの本には配列のインスタンス化が似ているという例がありました。シミュレーション中はエラーは表示されませんが、合成中はエラーとなります。 – optimus

答えて

2

カップル:モジュールリファレンスのうち

  • を合成することができません。これは、コードを合成可能にしたい場合には、インスタンス化されたモジュールを「内部で調べて」ネットを調べたり、関数を呼び出すことができないことを意味します。それはテストベンチのための壮大です。
  • あなた未遂関数呼び出しは無視されます、それに遅れ、すなわち#10 cov_mul_ins[c].cov_mul (...);

を持っている私は、ソフトYできます-入れ-すべてイン・クラスと-call-にあなたの思考を見ることができますメソッドの方法。これはテストベンチには最適ですが、合成はあなたが見たように不平を言うでしょう。ハードウェアに関して言えば、ハードウェアについて考える必要があります。アルゴリズムを実行するためには、どのブロックをビルドする必要があるのでしょうか。たとえば、アルゴリズムが各入力サンプルで30の乗算を必要とする場合は、30の乗数または1つの乗数のいずれかを必要とし、30の演算をそれを通して順序付けします。または1サンプル周期あたり2回の乗算を行う15個の乗算器、または3回の乗算器を含む10個の乗算器...

+0

ご返信ありがとうございます。あなたが示唆していることは私よりも良いアプローチだと思います。 – optimus

+2

作成したい回路のブロック図はありますか?もしそうでなければ、それを描くのは良い考えです。巨大なデータパスであれば、すべてのインスタンスを描画する必要はありません。ラフなブロックダイアグラムは、どのブロックが繰り返されているかを知るのに役立ちます。 – Marty

+1

また、乗算器の出力をインスタンス化する際にそれらの出力を接続する必要があります。 – Marty

0

"#10"は合成できないと考えて削除してください。

関連する問題