Skip to content

Commit a187ce1

Browse files
committed
SystemVerilog: add test for all blocking procedural assignments
1 parent 3039bb4 commit a187ce1

File tree

2 files changed

+65
-0
lines changed

2 files changed

+65
-0
lines changed
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
KNOWNBUG
2+
procedural_assignments1.sv
3+
--bound 0
4+
^EXIT=0$
5+
^SIGNAL=0$
6+
--
7+
^warning: ignoring
8+
--
9+
The += assignment is broken.
Lines changed: 56 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,56 @@
1+
module main(input [31:0] in);
2+
3+
reg [31:0] data;
4+
5+
always @in begin
6+
data = 1;
7+
a01: assert(data == 1);
8+
9+
data++;
10+
a02: assert(data == 2);
11+
12+
data--;
13+
a03: assert(data == 1);
14+
15+
data <= in; // non-blocking
16+
a04: assert(data == 1);
17+
18+
data += 10;
19+
a05: assert(data == 11);
20+
21+
data -= 10;
22+
a06: assert(data == 1);
23+
24+
data *= 5;
25+
a07: assert(data == 5);
26+
27+
data /= 2;
28+
a08: assert(data == 2);
29+
30+
data %= 3;
31+
a09: assert(data == 2);
32+
33+
data &= 3;
34+
a10: assert(data == 2);
35+
36+
data |= 1;
37+
a11: assert(data == 3);
38+
39+
data ^= 1;
40+
a12: assert(data == 2);
41+
42+
data <<= 1;
43+
a13: assert(data == 4);
44+
45+
data >>= 1;
46+
a14: assert(data == 2);
47+
48+
data <<<= 1;
49+
a15: assert(data == 4);
50+
51+
data >>>= 1;
52+
a16: assert(data == 2);
53+
54+
end
55+
56+
endmodule

0 commit comments

Comments
 (0)