module Tester(input clock);
    parameter WIDTH = 1;

    localparam DATA_WIDTH = 2 ** WIDTH;

    reg [2*DATA_WIDTH-1:0] x;
    initial x = 1;

    wire [WIDTH-1:0] idx1, idx2;
    assign idx1 = $clog2(x[2*DATA_WIDTH-1:DATA_WIDTH]);
    assign idx2 = $clog2(x[DATA_WIDTH-1:0]);

    integer i = 0;
    initial #1 $display("shadow i = %d, %b", i, x);

    always @(posedge clock) begin : block
        localparam SIZE = 2 * DATA_WIDTH;
        integer i;
        reg temp;
        temp = x[SIZE-1];
        for (i = SIZE-1; i > 0; i = i - 1) begin
            x[i] = x[i-1];
        end
        x[0] = temp;
    end

    always @(negedge clock)
        $display("%d %0d %2d %2d %b", $time, WIDTH, idx1, idx2, x);
endmodule