module top ( input logic clk, input logic rst, input logic din, output logic [2:0] q ); // Old q[1:0] and din are captured together at each rising edge. always_ff @(posedge clk) if (rst) q <= 3'b000; else q <= {q[1:0], din}; endmodule