0

私はこのコードをlintチェッカー(スパイグラス)に実行しました:

     1 module test(
     2         output  [7:0] O_O,
     3         input   [7:0] I_1,
     4         input   [7:0] I_2
     5 );
     6
     7         wire    [14:0] result;
     8
     9         assign result = (I_1 + I_2) << 5;
    10         assign O_O = result[7:0];
    11 endmodule

この警告メッセージが表示されます:

    Bit-width mismatch in signal assignment (LHS: 'O_O' width 8 should match RHS: '((I_1 + I_2) << 5)' width 14). [Hierarchy:test]

この警告を回避するために、コードを次のように変更しました。

     1 module test(
     2         output  [7:0] O_O,
     3         input   [7:0] I_1,
     4         input   [7:0] I_2
     5 );
     6         wire    [15:0] result;
     7
     8         assign result = (I_1 + I_2) << 5;
     9         assign O_O = result[7:0];
    10 endmodule

次に、この警告メッセージを受け取りました

    Port 'O_O[4:0]' is 'tied-low'

これらの警告を修正するための推奨事項はありますか?

4

4 に答える 4

1

これは機能しますか?

 1 module test(
 2         output  [7:0] O_O,
 3         input   [7:0] I_1,
 4         input   [7:0] I_2
 5 );
 6
 7         wire    [14:0] result = (I_1 + I_2) << 5;
 8
 9         assign O_O = result[7:0];
10 endmodule
于 2012-01-24T16:21:56.743 に答える
1

これらのビットを常にゼロにすることを意図していることをlintチェッカーに伝える方法が必要です。ただし、ドキュメントを読んでその方法を確認する必要があります。ソースに追加できる特別なコメント、または「このコード行にこの警告が表示されることを期待してください」という別の構成ファイルがあります。

于 2012-01-24T11:40:53.847 に答える
0

免除ファイルを作成して、スパイグラスでそのような警告をすべて免除することができます。

于 2012-05-27T05:12:30.067 に答える
0

警告ウィンドウには、この警告を免除ファイルにシフトするオプションがあります。

.awl
.swl

意図的に追加されたものが表示され、無視する必要がありますが、警告ウィンドウには反映されなくなります。

于 2016-03-16T06:36:07.907 に答える