2016-03-31 5 views
2

私の入力(64ビットのコンプレックス)がIEEE-754フォーマット(倍精度)の2ポイントFFT用の小さなコードをコーディングしました。私のコード(蝶モジュール、加算/減算器モジュール、テストベンチ):"ポートのポートまたはポートが不正です

http://pastebin.com/LRnRzv4A

PS:私

http://pastebin.com/RNRx6J2E

私は、エラーの次のリストに直面していたテストベンチをシミュレートしようとすると、初心者なので、m書くスタイルが悪いかもしれません。この問題を解決するのを手伝ってください。

+0

エラーを再現する最小のコードを作成し、質問に貼り付けます。 – toolic

+0

http://pastebin.com/Y55fKX81 @toolic – Harsha

答えて

4

thisを参照すると、OPのコメントに記載されています。あなたのコードは、すべてのSystemVerilogシミュレータで正常に動作します。モジュールの出力は、からwireに接続する必要があります。内部モジュールは、reg又はwireであることができるから

Port connection rules

出力ポート次の図を参照してください。しかし、そのモジュールがのインスタンス化の場合、またはwireに接続する必要があります。

セクション23.3.3、IEEE 1800-2012を参照:各ポート接続一つ接続アイテムは、信号源としなければならない シンク連続割当のソースでなければならない

他の はシグナルシンクになります。割り当ては、入力ポートまたは出力ポートのソースからシンクへの連続的な割り当てでなければならない( )。

ポートは他のポートに、インスタンスでに接続されている場合、それは、定数割り当てであり、従ってそれは常にネットことがターゲットポートを必要とします。

ので、このコードでは、出力モジュールadd_subワイヤーを接続し、regoutr1に、ワイヤの値を割り当て、outr2など

// Draw wires to be connected as output 
    wire [63:0] t1,t2,ti1,ti2; 

    // Drive all regs from values of wires 
    always @* 
    begin 
     outr1 = t1; 
     outr2 = t2; 
     outi1 = ti1; 
     outi2 = ti2; 
    end 

    // Change : Wires connection 
    add_sub adder1(en,clk,inr1[63],inr2[63],inr1[62:52],inr2[62:52],inr1[51:0],inr2[51:0],1'b0,t1[63],t1[62:52],t1[51:0]); 
    //... 

私はEDAPlayground hereで、すべてのシミュレーターを使用してコードをシミュレートしていますそれはうまく動作します。 thisthisと同様の質問を参照してください。

+1

これは問題なく動作します。ありがとう@ sharvil111 – Harsha

関連する問題