module array_mux (
    input           array_wr_csn,
    input   [15:0]  array_wr_raddr,

    input           array_rd_csn,
    input   [15:0]  array_rd_raddr,

    input           array_ref_csn,
    input   [15:0]  array_ref_raddr,

    input   [1:0]   array_mux_sel,

    output  reg         array_csn,
    output  reg [15:0]  array_raddr
);

    always @(*) begin
        case (array_mux_sel)
            2'b01:  begin
                array_csn   = array_ref_csn;
                array_raddr = array_ref_raddr;
            end
            2'b10:  begin
                array_csn   = array_wr_csn;
                array_raddr = array_wr_raddr;
            end
            2'b11:  begin
                array_csn   = array_rd_csn;
                array_raddr = array_rd_raddr;
            end
            default: begin
                array_csn   = 1'b1;
                array_raddr = 16'd0;
            end
        endcase
    end

endmodule