From 6c04749a689d11e8c25d0710704601dfd2374e7f Mon Sep 17 00:00:00 2001 From: Stephen Williams Date: Sun, 13 Feb 2022 18:48:40 -0800 Subject: [PATCH] Add the l_impl test for the logical implication operator. --- ivtest/ivltests/l_impl.v | 112 +++++++++++++++++++++++++++++++++++++++ ivtest/regress-sv.list | 1 + 2 files changed, 113 insertions(+) create mode 100644 ivtest/ivltests/l_impl.v diff --git a/ivtest/ivltests/l_impl.v b/ivtest/ivltests/l_impl.v new file mode 100644 index 000000000..19623b04c --- /dev/null +++ b/ivtest/ivltests/l_impl.v @@ -0,0 +1,112 @@ +module top; + reg val1, val2; + reg res ; + reg pass; + + initial begin + pass = 1'b1; + + val1 = 1'b0; + val2 = 1'b0; + res = val1 -> val2; + if (res !== 1'b1) begin + $display("FAILED: 1'b0 -> 1'b0 returned %b not 1'b1", res); + pass = 1'b0; + end + val2 = 1'b1; + res = val1 -> val2; + if (res !== 1'b1) begin + $display("FAILED: 1'b0 -> 1'b1 returned %b not 1'b1", res); + pass = 1'b0; + end + val2 = 1'bx; + res = val1 -> val2; + if (res !== 1'b1) begin + $display("FAILED: 1'b0 -> 1'bx returned %b not 1'b1", res); + pass = 1'b0; + end + val2 = 1'bz; + res = val1 -> val2; + if (res !== 1'b1) begin + $display("FAILED: 1'b0 -> 1'bz returned %b not 1'b1", res); + pass = 1'b0; + end + val1 = 1'b1; + val2 = 1'b0; + res = val1 -> val2; + if (res !== 1'b0) begin + $display("FAILED: 1'b1 -> 1'b0 returned %b not 1'b0", res); + pass = 1'b0; + end + val2 = 1'b1; + res = val1 -> val2; + if (res !== 1'b1) begin + $display("FAILED: 1'b1 -> 1'b1 returned %b not 1'b1", res); + pass = 1'b0; + end + val2 = 1'bx; + res = val1 -> val2; + if (res !== 1'bx) begin + $display("FAILED: 1'b1 -> 1'bx returned %b not 1'bx", res); + pass = 1'b0; + end + val2 = 1'bz; + res = val1 -> val2; + if (res !== 1'bx) begin + $display("FAILED: 1'b1 -> 1'bz returned %b not 1'bx", res); + pass = 1'b0; + end + val1 = 1'bx; + val2 = 1'b0; + res = val1 -> val2; + if (res !== 1'bx) begin + $display("FAILED: 1'bx -> 1'b0 returned %b not 1'bx", res); + pass = 1'b0; + end + val2 = 1'b1; + res = val1 -> val2; + if (res !== 1'b1) begin + $display("FAILED: 1'bx -> 1'b1 returned %b not 1'b1", res); + pass = 1'b0; + end + val2 = 1'bx; + res = val1 -> val2; + if (res !== 1'bx) begin + $display("FAILED: 1'bx -> 1'bx returned %b not 1'bx", res); + pass = 1'b0; + end + val2 = 1'bz; + res = val1 -> val2; + if (res !== 1'bx) begin + $display("FAILED: 1'bx -> 1'bz returned %b not 1'bx", res); + pass = 1'b0; + end + val1 = 1'bz; + val2 = 1'b0; + res = val1 -> val2; + if (res !== 1'bx) begin + $display("FAILED: 1'bz -> 1'b0 returned %b not 1'bx", res); + pass = 1'b0; + end + val2 = 1'b1; + res = val1 -> val2; + if (res !== 1'b1) begin + $display("FAILED: 1'bz -> 1'b1 returned %b not 1'b1", res); + pass = 1'b0; + end + val2 = 1'bx; + res = val1 -> val2; + if (res !== 1'bx) begin + $display("FAILED: 1'bz -> 1'bx returned %b not 1'bx", res); + pass = 1'b0; + end + val2 = 1'bz; + res = val1 -> val2; + if (res !== 1'bx) begin + $display("FAILED: 1'bz -> 1'bz returned %b not 1'bx", res); + pass = 1'b0; + end + + if (pass) $display("PASSED"); + end +endmodule diff --git a/ivtest/regress-sv.list b/ivtest/regress-sv.list index 945873c52..b0e865eb5 100644 --- a/ivtest/regress-sv.list +++ b/ivtest/regress-sv.list @@ -297,6 +297,7 @@ inc_dec_stmt normal,-g2009 ivltests int_param normal,-g2009 ivltests ishortint_test normal,-g2005-sv ivltests iuint1 normal,-g2005-sv ivltests +l_impl normal,-g2005-sv ivltests l_equiv normal,-g2005-sv ivltests l_equiv_ca normal,-g2005-sv ivltests l_equiv_const normal,-g2005-sv ivltests