`default_nettype none module top; reg [7:0] dataIn; wire [31:0] dataOut; reg clock, clear; Device dut( .dataIn(dataIn), .dataOut(dataOut), .clock(clock), .clear(clear) ); // Just some random test bench code to make sure it works as expected initial begin clock = 1; forever #5 clock = ~clock; end initial begin $monitor($time," dataIn: %h dataOut: %h shift: %b", dataIn, dataOut, dut.consumer.local_shift); clear <= 1'b1; dataIn <= 8'h0; repeat(5) @(posedge clock); clear <= 1'b0; @(posedge clock); dataIn <= 8'h44; @(posedge clock); dataIn <= 8'h77; @(posedge clock); dataIn <= 8'h11; @(posedge clock); dataIn <= 8'h0; repeat(5) @(posedge clock); $finish; end endmodule