module uart_in  #( parameter PipeSpec = `PS_DATA( 8 ), parameter ClockFrequency = 12000000, parameter BaudRate = 9600 ) (
        input clock,
        input reset,

        inout [`P_m(PipeSpec):0] pipe_out,

        input pin_rx
    );

    wire [`P_Data_w(PipeSpec)-1:0] out_data;
    wire                     out_valid;
    wire                     out_ready;

    uart_in_np #( .ClockFrequency( ClockFrequency ), .BaudRate( BaudRate ) )  u_i_np (
            .clock( clock ),
            .reset( reset ),

            .in_data( out_data ),
            .in_valid( out_valid ),
            .in_ready( out_ready ),

            .uart_rx( pin_rx )
        );

    p_pack_data        #( .PipeSpec( PipeSpec ) ) out_pack_d ( out_data,             pipe_out );
    p_pack_valid_ready #( .PipeSpec( PipeSpec ) ) out_pack_vr( out_valid, out_ready, pipe_out );

endmodule