module top; reg inp; initial begin $display("Hello I'm Interface!"); $display("Hello I'm Interface!"); $display("Hello I'm Interface!"); $display("Hello I'm ModuleA 0!"); $display("Hello I'm ModuleA 1!"); $display("Hello I'm ModuleA 1!"); $display("Hello I'm ModuleB 3!"); $display("Hello I'm ModuleB 2!"); $display("Hello I'm ModuleB 1!"); $display("Hello I'm ModuleB 1!"); $display("Hello I'm ModuleB 1!"); $display("Hello I'm ModuleB 3!"); $display("Hello I'm ModuleASet 1 1 0!"); $display("Hello I'm Interface!"); $display("Hello I'm Interface!"); $display("Hello I'm Interface!"); $display("Hello I'm ModuleA 0!"); $display("Hello I'm ModuleA 1!"); $display("Hello I'm ModuleA 1!"); $display("Hello I'm ModuleB 3!"); $display("Hello I'm ModuleB 2!"); $display("Hello I'm ModuleB 1!"); $display("Hello I'm ModuleB 1!"); $display("Hello I'm ModuleB 1!"); $display("Hello I'm ModuleB 3!"); $display("Hello I'm ModuleCSet 0 0 1!"); inp = 0; tick; inp = 1; tick; inp = 0; tick; inp = 1; tick; end task tick; begin #1; $display("I i = %b, v = %b, o = %b", inp, inp, inp ^ 1'b1); $display("I i = %b, v = %b, o = %b", inp, inp ^ 1'b1, inp ^ 1'b1); $display("I i = %b, v = %b, o = %b", inp, inp ^ 1'b1, inp); $display("A i.v = %b", inp); $display("A i.v = %b", inp ^ 1'b1); $display("A i.v = %b", inp ^ 1'b1); $display("B i_concat = %b, v_concat = %b", {3 {inp}}, {inp, inp ^ 1'b1, inp ^ 1'b1}); $display("BN i_concat = %b, v_concat = %b", {3 {inp}}, {inp, inp ^ 1'b1, inp ^ 1'b1}); $display("B i_concat = %b, v_concat = %b", {2 {inp}}, {inp, inp ^ 1'b1}); $display("BN i_concat = %b, v_concat = %b", {2 {inp}}, {inp, inp ^ 1'b1}); $display("B i_concat = %b, v_concat = %b", {1 {inp}}, inp); $display("BN i_concat = %b, v_concat = %b", {1 {inp}}, inp); $display("B i_concat = %b, v_concat = %b", {1 {inp}}, inp ^ 1'b1); $display("BN i_concat = %b, v_concat = %b", {1 {inp}}, inp ^ 1'b1); $display("B i_concat = %b, v_concat = %b", {1 {inp}}, inp ^ 1'b1); $display("BN i_concat = %b, v_concat = %b", {1 {inp}}, inp ^ 1'b1); $display("B i_concat = %b, v_concat = %b", {3 {inp}}, {inp, inp ^ 1'b1, inp ^ 1'b1}); $display("BN i_concat = %b, v_concat = %b", {3 {inp}}, {inp, inp ^ 1'b1, inp ^ 1'b1}); $display("AS i.v = %b", inp ^ 1'b1); $display("AS i.v = %b", inp ^ 1'b1); $display("AS i.v = %b", inp); $display("I i = %b, v = %b, o = %b", inp, inp ^ 1'b1, inp); $display("I i = %b, v = %b, o = %b", inp, inp, inp); $display("I i = %b, v = %b, o = %b", inp, inp, inp ^ 1'b1); $display("A i.v = %b", inp ^ 1'b1); $display("A i.v = %b", inp); $display("A i.v = %b", inp); $display("B i_concat = %b, v_concat = %b", {3 {~inp}}, {inp ^ 1'b1, inp, inp}); $display("BN i_concat = %b, v_concat = %b", {3 {~inp}}, {inp ^ 1'b1, inp, inp}); $display("B i_concat = %b, v_concat = %b", {2 {~inp}}, {inp ^ 1'b1, inp}); $display("BN i_concat = %b, v_concat = %b", {2 {~inp}}, {inp ^ 1'b1, inp}); $display("B i_concat = %b, v_concat = %b", {1 {~inp}}, inp ^ 1'b1); $display("BN i_concat = %b, v_concat = %b", {1 {~inp}}, inp ^ 1'b1); $display("B i_concat = %b, v_concat = %b", {1 {~inp}}, inp); $display("BN i_concat = %b, v_concat = %b", {1 {~inp}}, inp); $display("B i_concat = %b, v_concat = %b", {1 {~inp}}, inp); $display("BN i_concat = %b, v_concat = %b", {1 {~inp}}, inp); $display("B i_concat = %b, v_concat = %b", {3 {~inp}}, {inp ^ 1'b1, inp, inp}); $display("BN i_concat = %b, v_concat = %b", {3 {~inp}}, {inp ^ 1'b1, inp, inp}); $display("CS i.v = %b", inp); $display("CS i.v = %b", inp); $display("CS i.v = %b", inp ^ 1'b1); end endtask endmodule