// tail.v tail, right, left, osc, right_light, left_light `timescale 1ns/1ns // set time unit and time lsb // `include "tail_lights.v" module tail_lights(tail, right, left, osc, right_light, left_light); input tail; input right; input left; input osc; output right_light; output left_light; assign #1 right_light = (tail&~right)|(right&osc); assign #1 left_light = (osc&left)|(~left&tail); endmodule // tail_lights module tail; reg tail, right, left, osc; wire right_light, left_light; tail_lights tl(tail, right, left, osc, right_light, left_light); initial begin tail = 0; right = 0; left = 0; osc = 1; // should be 1010101010 ... end always begin #2 $display("tail=%b, right=%b, left=%b, osc=%b, right_light=%b, left_light=%b", tail, right, left, osc, right_light, left_light); #3tail = 1; #4 $display("tail=%b, right=%b, left=%b, osc=%b, right_light=%b, left_light=%b", tail, right, left, osc, right_light, left_light); #5tail = 0; #5right = 1; #6 $display("tail=%b, right=%b, left=%b, osc=%b, right_light=%b, left_light=%b", tail, right, left, osc, right_light, left_light); #7right = 0; #7left = 1; #8 $display("tail=%b, right=%b, left=%b, osc=%b, right_light=%b, left_light=%b", tail, right, left, osc, right_light, left_light); $finish; end endmodule