`default_nettype none module top; reg [7:0] doubleNibble; wire [3:0] sum; Device dut( .doubleNibble(doubleNibble), .sum(sum) ); reg [8:0] i; // Note that i is 1 bit wider than doubleNibble initial begin $monitor($time, " %h + %h = %h", doubleNibble[7:4], doubleNibble[3:0], sum); doubleNibble = 8'h00; for(i = 0; i <= 8'hff; i = i + 8'h1) begin #10 doubleNibble = i; // This drops upper order bits end end endmodule