/********************************************** _ _ Cook Darwin __

_ descript: base on planer author : Cook.Darwin Version: VERA.0.0 creaded: madified: ***********************************************/ `timescale 1ns/1ps `include “define_macro.sv” module axi_stream_latency #(

parameter LAT   = 3

)(

input                 reset,
axi_stream_inf.slaver axis_in,
axi_stream_inf.master axis_out

);

data_inf_c #(.DSIZE(axis_in.DSIZE + 1 + axis_in.KSIZE + axis_in.USIZE)) data_slaver (.clock(axis_in.aclk), .rst_n(axis_in.aresetn) ); data_inf_c #(.DSIZE(axis_in.DSIZE + 1 + axis_in.KSIZE + axis_in.USIZE + 1)) data_master (.clock(axis_in.aclk), .rst_n(axis_in.aresetn) );

data_inf_c_planer_A1 #(

.LAT        (LAT        ),
.DSIZE      (1      ),
.HEAD       ("ON"    )

)data_inf_c_planer_A1_inst( /* input */ .reset (reset ), /* input [DSIZE-1:0] */ .pack_data (1'b0 ), /* data_inf_c.slaver */ .slaver (data_slaver ), /* data_inf_c.master */ .master (data_master )///HEAD==“ON” : {pack_data,slaver.data} or /HEAD==“OFF” : {slaver.data,pack_data} );

assign data_slaver.data = {axis_in.axis_tuser, axis_in.axis_tkeep, axis_in.axis_tlast, axis_in.axis_tdata}; assign data_slaver.valid = axis_in.axis_tvalid; assign axis_in.axis_tready = data_slaver.ready;

// axis_to_data_inf #( // .CONTAIN_LAST (“ON”) // )axis_to_data_inf_inst( // /* axi_stream_inf.slaver */ .axis_in (axis_in ), // /* data_inf_c.master */ .data_out_inf (data_slaver ) // );

// data_c_to_axis_full data_c_to_axis_full_inst( // /* data_inf_c.slaver */ .data_in_inf (data_master ), // /* axi_stream_inf.master */ .axis_out (axis_out ) // );

assign {axis_out.axis_tuser, axis_out.axis_tkeep, axis_out.axis_tlast, axis_out.axis_tdata} = data_master.data; assign axis_out.axis_tvalid = data_master.valid; assign data_master.ready = axis_out.axis_tready;

endmodule