Skip to content

Commit b0f4fe4

Browse files
committed
Verilog: Tests for signing and size casts
1 parent 8fe2c5e commit b0f4fe4

File tree

8 files changed

+75
-0
lines changed

8 files changed

+75
-0
lines changed
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
KNOWNBUG
2+
signing_cast2.sv
3+
--module main
4+
^EXIT=0$
5+
^SIGNAL=0$
6+
--
7+
^warning: ignoring
8+
--
9+
This is not yet implemented.
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
module main;
2+
3+
// four-valued signing cast
4+
initial assert (signed'(4'b11xx) === 8'sb1111_11xx);
5+
initial assert (signed'(4'bx000) === 8'sbxxxx_x000);
6+
7+
// four-valued signing cast
8+
initial assert (unsigned'(4'sb11xx) === 8'b0000_11xx);
9+
initial assert (unsigned'(4'sbx000) === 8'b0000_x000);
10+
11+
endmodule
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
CORE
2+
signing_cast3.sv
3+
--module main
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;
2+
3+
// 1800-2017 6.24.1
4+
// "the cast shall return the value that a variable of the casting type
5+
// would hold after being assigned the expression."
6+
// Hence, this is an assignment context with $bits width.
7+
initial assert(signed'(1'b1 + 1'b1) == 0);
8+
9+
endmodule
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
KNOWNBUG
2+
size_cast2.sv
3+
--module main
4+
^EXIT=0$
5+
^SIGNAL=0$
6+
--
7+
^warning: ignoring
8+
--
9+
This is not yet implemented.
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
module main;
2+
3+
// four-valued zero extension
4+
initial assert (8'(4'b11xx) === 8'b0000_11xx);
5+
initial assert (8'(4'bx000) === 8'b0000_x000);
6+
7+
// four-valued sign extension
8+
initial assert (8'(4'sb11xx) === 8'sb1111_11xx);
9+
initial assert (8'(4'sbx000) === 8'sbxxxx_x000);
10+
11+
endmodule
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
KNOWNBUG
2+
size_cast3.sv
3+
--module main
4+
^EXIT=0$
5+
^SIGNAL=0$
6+
--
7+
^warning: ignoring
8+
--
9+
This is not yet implemented.
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
module main;
2+
3+
// 1800-2017 6.24.1
4+
// "the cast shall return the value that a variable of the casting type
5+
// would hold after being assigned the expression."
6+
// Hence, this is an assignment context.
7+
initial assert(8'(1'b1 + 1'b1) == 8'd2);
8+
9+
endmodule

0 commit comments

Comments
 (0)