Skip to content

Commit 35a4586

Browse files
authored
Merge pull request #1269 from diffblue/operators1-splitup
Verilog: split up test `regression/verilog/operators1/main.v`
2 parents de19257 + c66835b commit 35a4586

22 files changed

+258
-129
lines changed
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
CORE
2+
arithmetic.sv
3+
--module main --bound 0
4+
^EXIT=0$
5+
^SIGNAL=0$
6+
--
7+
^warning: ignoring
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
module main(input[31:0] in1, in2, in3);
2+
3+
// follows
4+
// http://www.asic-world.com/verilog/operators1.html
5+
6+
// arithmetic
7+
always assert arith_p1: 5 + 10 === 15;
8+
always assert arith_p2: 5 - 10 === -5;
9+
always assert arith_p3: 10 - 5 === 5;
10+
always assert arith_p4: 10 * 5 === 50;
11+
always assert arith_p5: 10 / 5 === 2;
12+
always assert arith_p6: 10 / -5 === -2;
13+
always assert arith_p7: 10 % 3 === 1;
14+
always assert arith_p8: +5 === 5;
15+
always assert arith_p9: -5 === -5;
16+
always assert arith_p10: 2**3 === 8;
17+
always assert arith_p11: -2**3 === -8;
18+
19+
endmodule
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
CORE
2+
bit-wise.sv
3+
--module main --bound 0
4+
^EXIT=0$
5+
^SIGNAL=0$
6+
--
7+
^warning: ignoring
8+
--
Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
module main(input[31:0] in1, in2, in3);
2+
3+
// follows
4+
// http://www.asic-world.com/verilog/operators1.html
5+
6+
// bit-wise
7+
always assert bit_p1: ~4'b0001 === 4'b1110;
8+
always assert bit_p2: ~4'bx001 === 4'bx110;
9+
always assert bit_p3: ~4'bz001 === 4'bx110;
10+
always assert bit_p4: (4'b0001 & 4'b1001) === 4'b0001;
11+
always assert bit_p5: (4'b1001 & 4'bx001) === 4'bx001;
12+
always assert bit_p6: (4'b1001 & 4'bz001) === 4'bx001;
13+
always assert bit_p7: (4'b0001 | 4'b1001) === 4'b1001;
14+
always assert bit_p8: (4'b0001 | 4'bx001) === 4'bx001;
15+
always assert bit_p9: (4'b0001 | 4'bz001) === 4'bx001;
16+
always assert bit_p10: (4'b0001 ^ 4'b1001) === 4'b1000;
17+
always assert bit_p11: (4'b0001 ^ 4'bx001) === 4'bx000;
18+
always assert bit_p12: (4'b0001 ^ 4'bz001) === 4'bx000;
19+
always assert bit_p13: (4'b0001 ~^ 4'b1001) === 4'b0111;
20+
always assert bit_p14: (4'b0001 ~^ 4'bx001) === 4'bx111;
21+
always assert bit_p15: (4'b0001 ~^ 4'bz001) === 4'bx111;
22+
23+
endmodule
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
CORE
2+
concatenation.sv
3+
--module main --bound 0
4+
^EXIT=0$
5+
^SIGNAL=0$
6+
--
7+
^warning: ignoring
8+
--
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
module main(input[31:0] in1, in2, in3);
2+
3+
// follows
4+
// http://www.asic-world.com/verilog/operators2.html
5+
6+
// concatenation
7+
always assert concat_p1: {4'b1001,4'b10x1} === 'b100110x1;
8+
9+
endmodule
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
KNOWNBUG
2+
conditional.sv
3+
--module main --bound 0
4+
^EXIT=0$
5+
^SIGNAL=0$
6+
--
7+
^warning: ignoring
8+
--
9+
Fails an assertion
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
module main(input[31:0] in1, in2, in3);
2+
3+
// follows
4+
// http://www.asic-world.com/verilog/operators2.html
5+
6+
// conditional
7+
always assert cond_p1: (1'b0 ? 2'b11 : 1'b0) === 2'b00;
8+
always assert cond_p2: (1'b1 ? 2'b11 : 1'b0) === 2'b11;
9+
always assert cond_p3: (1'bz ? 2'b11 : 1'b0) === 2'bxx;
10+
always assert cond_p4: (1'bx ? 2'b11 : 1'b0) === 2'bxx;
11+
always assert cond_p5: (1'b1 ? 2'b11 : 1'bz) === 2'b11;
12+
always assert cond_p6: (1'b1 ? 2'b11 : 1'bx) === 2'b11;
13+
always assert cond_p7: (1'b0 ? 2'b11 : 1'bz) === 2'b0z;
14+
always assert cond_p8: (1'b0 ? 2'b11 : 1'bx) === 2'b0x;
15+
16+
endmodule
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
CORE
2+
equality.sv
3+
--module main --bound 0
4+
^EXIT=0$
5+
^SIGNAL=0$
6+
--
7+
^warning: ignoring
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
module main(input[31:0] in1, in2, in3);
2+
3+
// follows
4+
// http://www.asic-world.com/verilog/operators1.html
5+
6+
// equality
7+
always assert equal_p1: (4'bx001 === 4'bx001) == 1;
8+
always assert equal_p2: (4'bx0x1 === 4'bx001) == 0;
9+
always assert equal_p3: (4'bz0x1 === 4'bz0x1) == 1;
10+
always assert equal_p4: (4'bz0x1 === 4'bz001) == 0;
11+
always assert equal_p5: (4'bx0x1 !== 4'bx001) == 1;
12+
always assert equal_p6: (4'bz0x1 !== 4'bz001) == 1;
13+
always assert equal_p7: (5 == 10 ) == 0;
14+
always assert equal_p8: (5 == 5 ) == 1;
15+
always assert equal_p9: (5 != 5 ) == 0;
16+
always assert equal_p10: (5 != 6 ) == 1;
17+
18+
endmodule

0 commit comments

Comments
 (0)