sv2v/test/basic/simplify_binop.sv

35 lines
770 B
Systemverilog

`define TEST(expr) initial begin : \blk``expr \
localparam X = expr; \
localparam [63:0] Y = X; \
$display(`"expr %b %b %b`", expr, X, Y); \
end
`define TEST_LOGOP(op) \
`TEST(0``op``0) \
`TEST(0``op``1) \
`TEST(0``op``1'bx) \
`TEST(0``op``P) \
`TEST(0``op``Q) \
`TEST(0``op``R) \
`TEST(1``op``0) \
`TEST(1``op``1) \
`TEST(1``op``1'bx) \
`TEST(1``op``P) \
`TEST(1``op``Q) \
`TEST(1``op``R) \
`TEST(1'bx``op``0) \
`TEST(1'bx``op``1) \
`TEST(1'bx``op``1'bx) \
`TEST(1'bx``op``P) \
`TEST(1'bx``op``Q) \
`TEST(1'bx``op``R)
module top;
`TEST((12'hb03-12'hb07)+12'hb10)
parameter P = 0;
parameter Q = 1;
parameter R = 1'bx;
`TEST_LOGOP(||)
`TEST_LOGOP(&&)
endmodule