////////////////////////////////////////////////////////////////////////////////////////////////////////////////
module test (input A0, A1, A2, A3,
input CE,
input CLK,
input D,
output Q);
reg [15:0] shift_reg;
initial
shift_reg [15:0] = 16'hFFFF;
wire [3:0] addr = {A3, A2, A1, A0};
always @ (posedge CLK) begin
if (CE)
shift_reg <= ({(shift_reg[14:0]), D});
end
assign Q = shift_reg[addr];
endmodule
///////////////////////////////////////////////////////////////////////////////////////////////////////////////