- The
initial blocks
need to be moved to a test bench. - You cannot connect the outputs with an
assign
statement and directly change the values in an initial block. - Synchrounus logic should use non-blocking (
<=
) inout
is a tri-state which need to be assigned as:assign adbus = output_enable ? adbus_out : 8'bz;
- The
clk
driver (always #10 clk = ~clk;
) needs to be in the test bench.