~ubuntu-branches/ubuntu/wily/verilator/wily-proposed

« back to all changes in this revision

Viewing changes to test_regress/t/t_math_signed5.v

  • Committer: Package Import Robot
  • Author(s): أحمد المحمودي (Ahmed El-Mahmoudy)
  • Date: 2014-06-17 19:59:50 UTC
  • mfrom: (1.2.28)
  • Revision ID: package-import@ubuntu.com-20140617195950-cikhbkjg8x545qdy
Tags: 3.862-1
New upstream release.

Show diffs side-by-side

added added

removed removed

Lines of Context:
5
5
 
6
6
`define checkh(gotv,expv) do if ((gotv) !== (expv)) begin $write("%%Error: %s:%0d:  got='h%x exp='h%x\n", `__FILE__,`__LINE__, (gotv), (expv)); fail='1; end while(0)
7
7
`define checkf(gotv,expv) do if ((gotv) !== (expv)) begin $write("%%Error: %s:%0d:  got=%f exp=%f\n", `__FILE__,`__LINE__, (gotv), (expv)); fail='1; end while(0)
 
8
`ifdef VERILATOR
 
9
 `define c(v,vs) ($c(vs))  // Don't constify a value
 
10
`else
 
11
 `define c(v,vs) (v)
 
12
`endif
8
13
 
9
 
  module t (/*AUTOARG*/);
 
14
   module t (/*AUTOARG*/
 
15
   // Outputs
 
16
   ow4_u
 
17
   );
10
18
 
11
19
   bit fail;
12
20
 
15
23
   reg [2:0]        w3_u;
16
24
   reg [3:0]        w4_u;
17
25
   reg [4:0]        w5_u;
 
26
   reg [5:0]        w6_u;
 
27
   reg [15:0]       w16a_u;
 
28
   reg [15:0]       w16_u;
18
29
   real             r;
19
30
 
20
31
   reg signed [4:0] bug754_a;
116
127
      w4_u = (w3_u >> 2'b11) >> 1;
117
128
      `checkh(w4_u, 4'b0000);
118
129
 
 
130
      // bug766
 
131
      w16a_u = 16'h1234;
 
132
      w16_u = (w16a_u >> 16) >>> 32'h7ffffff1;
 
133
      `checkh(w16_u, 16'h0000);
 
134
 
 
135
      // bug768
 
136
      w4_s = 4'sd4;
 
137
      w4_u = $signed(5'd1 > w4_s-w4_s);
 
138
      `checkh(w4_u, 4'b1111);
 
139
      w4_s = `c(4,"4");  // Eval at runtime
 
140
      w4_u = $signed(5'd1 > w4_s-w4_s);
 
141
      `checkh(w4_u, 4'b1111);
 
142
 
 
143
      // bug772
 
144
      w4_s = w4_u << 1 <<< 0/0;
 
145
`ifndef VERILATOR       // In v4 can't check value as not 4-state
 
146
      `checkh(w4_s, 4'bxxxx);
 
147
`endif
 
148
 
 
149
      // bug773
 
150
      w5_u = `c(31, 31);
 
151
      w5_s = w5_u >> ((w5_u ? 1 : 2) << w5_u);
 
152
      `checkh(w5_s, 5'b0);
 
153
 
 
154
      // bug774
 
155
      w4_u = `c(4, 5);
 
156
      w6_u = `c(6, 35);
 
157
      w4_u = 64'd0 | (w4_u << w6_u);
 
158
      `checkh(w4_u, 0);
 
159
 
 
160
      // bug776
 
161
      w4_u = `c(4, 1);
 
162
      w4_u = (w4_u >> w4_u) ^~ (w4_u >> w4_u);
 
163
      `checkh(w4_u, 4'b1111);
 
164
 
119
165
      if (fail) $stop;
120
166
      $write("*-* All Finished *-*\n");
121
167
      $finish;
122
168
   end
 
169
 
 
170
   // bug775
 
171
   output [3:0]     ow4_u;  // Must be consumed
 
172
   assign  ow4_u = ((0/0) ? 1 : 2) % 0;
 
173
 
123
174
endmodule