File: t_lint_width_shift_bad.v

package info (click to toggle)
verilator 5.038-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 162,552 kB
  • sloc: cpp: 139,204; python: 20,931; ansic: 10,222; yacc: 6,000; lex: 1,925; makefile: 1,260; sh: 494; perl: 282; fortran: 22
file content (31 lines) | stat: -rw-r--r-- 981 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
// DESCRIPTION: Verilator: Verilog Test module
//
// This file ONLY is placed under the Creative Commons Public Domain, for
// any use, without warranty, 2009 by Wilson Snyder.
// SPDX-License-Identifier: CC0-1.0

module t
  (input signed [3:0] i4,
   output signed [2:0] ol3,
   output signed [3:0] ol4,
   output signed [4:0] ol5,
   output signed [2:0] or3,
   output signed [3:0] or4,
   output signed [4:0] or5,
   output signed [2:0] os3,
   output signed [3:0] os4,
   output signed [4:0] os5);

   assign ol3 = i4 << 1;  // WIDTHTRUNC
   assign ol4 = i4 << 1;
   assign ol5 = i4 << 1;  // WIDTHEXPAND, but ok due to shift amount 1

   assign or3 = i4 >> 1;  // WIDTHTRUNC, currently warn, but in future ok due to shift amount 1?
   assign or4 = i4 >> 1;
   assign or5 = i4 >> 1;  // WIDTHEXPAND

   assign os3 = i4 >>> 1;  // WIDTHTRUNC, currently warn, but in future ok due to shift amount 1?
   assign os4 = i4 >>> 1;
   assign os5 = i4 >>> 1;  // WIDTHEXPAND

endmodule