half_adder.v
module half_adder(
input in0,
input in1,
output c,
output s
);
assign c = in0 & in1;
assign s = in0 ^ in1;
endmodule
adder_test.v
`timescale 1ps/1ps
module adder_test;
reg in0, in1;
wire c, s;
half_adder adder(
.in0(in0),
.in1(in1),
.c(c),
.s(s)
);
initial begin
$dumpfile("test.vcd");
$dumpvars(1, adder_test);
in0 = 0; in1 = 0;
#10 in0 = 1;
#10 in0 = 0; in1 = 1;
#10 in0 = 1;
#10 $finish;
end
endmodule
$ iverilog -o test.out -s addr_test adder_test.v half_adder.v $ vvp test.out $ gtkwave test.vcd