5

次のモジュールがあります。

module add_8bit ( output wire co,
              output wire [7:0] r,

              input wire ci,
              input wire [7:0] x,
              input wire [7:0] y );

次のコードで使用しようとしています。

 wire rbit [7:0];
 wire onebit [7:0];
 wire twocomp [7:0];

 wire tco, tci;

 add_8bit t9 ( tco, twocomp, tci, rbit, onebit );

最後の行のためにコンパイルされません。なぜですか?

ありがとう。

4

2 に答える 2

5

You've the wire declarations back to front in the second code snippet. Should be:

wire [7:0] rbit;
wire [7:0] onebit;
wire [7:0] twocomp;
于 2010-02-26T13:28:06.647 に答える
3

モジュール定義で、3つの8ビットwireポートを宣言しました。

 output wire [7:0] r,
 input  wire [7:0] x,
 input  wire [7:0] y

ただし、呼び出し元のモジュールで、3つの1ビット幅×8ビット深さのwire 配列を宣言しました(VerilogのIEEE標準、1364-2005、セクション4.9「配列」を参照)。

 wire rbit    [7:0];
 wire onebit  [7:0];
 wire twocomp [7:0];

これらのワイヤアレイをモジュールインスタンスに接続すると、ポート接続タイプの不一致が発生し、コンパイルエラーが発生します。

この状況を修正するには、インスタンスへの接続に使用される信号のタイプがモジュールのポートタイプと一致していることを確認する必要があります。マーティが指摘したように、おそらく、呼び出し元のモジュールwire宣言を次のように変更する必要があります。

wire [7:0] rbit;
wire [7:0] onebit;
wire [7:0] twocomp;

もう1つの可能性は、呼び出し元のモジュールワイヤに一致するようにモジュールポートを変更することですが、それがあなたの望むものであるとは心から疑っています。

于 2010-02-26T13:58:02.190 に答える