2

ザイリンクス Vivado の IP パッケージ ツールを使用して、AXI-Lite インターフェイスを備えたコプロセッサを作成し、それをデジタル システム エンジニアリング クラスの Zynq SoC デザインで使用しようとしています。コプロセッサは、以前の課題の一部として既に開発した GCD 計算機です。インストラクターの指示に従って、GCD 計算機から IP を作成しました。ここにある PDF のチュートリアル 4A に大まかに従って、AXI インターフェイスを作成しました (I/O 宣言は、GCD 計算機に合わせて明らかに変更されています)。計算機に値を送信するために、AXI IP と GCD IP から実行される「data」というデータ バスがあります。しかし、デザインを合成しようとすると、次のエラー メッセージが表示されます。

[Synth 8-685] variable 'data' should not be used in output port connection'

このエラーは、データ ポートが定義されている AXI バス インターフェイス インスタンシエーションの行に表示されます。

このエラーの解決策を何時間もオンラインで検索してきましたが、ザイリンクスの Web サイトや入手可能なザイリンクスのドキュメントでさえ、このエラーに関する情報はなく、見つけることもできませんでした。同じエラーが発生した人からのアカウント。

私は教授に何かアイデアがあるかどうかを確認するために電子メールを送りましたが、彼はおそらくあと 6 時間は起きておらず、課題の提出期限は今日 (明日?) です。

誰かがこのエラーについて聞いたことがありますか、またはそれを修正する方法を知っていますか?

エラーのソースを含むコードの一部を次に示します。

// Instantiation of Axi Buss Interface S00_AXI
myip_v1.0_0_S00_AVI # (
    .C_S_AXI_DATA_WIDTH(C_S00_AXI_DATA_WIDTH),
    .C_S_AXI_ADDR_WIDTH(C_S00_AXI_ADDR_WIDTH)
) myip_v1_0_S00_AXI_inst (
    .done_async(done_async),
    .go(go),
    .data(data), // The error points to this line
    .S_AXI_ACLK(s00_axi_aclk),
    ... // all remaining ports were generated by the IP tools
);

ありがとう、

-アンドリュー

4

1 に答える 1

2

インスタンス化されたモジュールの出力から変数を駆動しようとしているように見えます。Verilog では、インスタンス化されたモジュールから変数を駆動できません。これは Verilog では違法です (ただし、SystemVerilog にはありません)。

reg OP;                                     -- this is a variable    
SOME_MODULE MODULE_INST (.IP(IP), .OP(OP)); 

これは違法ではありません:

wire OP;                                    -- this is a net
SOME_MODULE MODULE_INST (.IP(IP), .OP(OP)); 
于 2016-04-18T07:46:36.927 に答える