固定位宽不匹配

时间:2012-01-24 08:35:01

标签: verilog lint

我已将此代码运行到lint checker(spyglass):

     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'

修复这些警告的任何建议?

3 个答案:

答案 0 :(得分: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

答案 1 :(得分:0)

您可以创建一个弃权文件以免除spyglass中的所有此类警告。

答案 2 :(得分:0)

在警告窗口中,可以选择将此警告转移到弃权文件,即,

.awl
.swl

将显示故意添加的内容并需要忽略,不再反映在警告窗口中。