/********************************************** _ _ Cook Darwin __
_ descript: author : Cook.Darwin Version: VERA.0.0 created: 2021-04-16 17:01:06 +0800 madified: ***********************************************/ `timescale 1ns/1ps
module axis_insert_copy (
input [15:0] insert_seed, input [7:0] insert_len, axi_stream_inf.slaver in_inf, axi_stream_inf.master out_inf
);
//========================================================================== //——– define ———————————————————- logic clock; logic rst_n; logic insert_tri; axi_stream_inf #(.DSIZE(in_inf.DSIZE),.FreqM(in_inf.FreqM),.USIZE(1)) in_inf_valve (.aclk(in_inf.aclk),.aresetn(in_inf.aresetn),.aclken(1'b1)) ; //========================================================================== //——– instance ——————————————————– axis_connect_pipe axis_connect_pipe_inst( /* axi_stream_inf.slaver */.axis_in (in_inf_valve ), /* axi_stream_inf.master */.axis_out (out_inf ) ); //========================================================================== //——– expression —————————————————— assign clock = in_inf.aclk; assign rst_n = in_inf.aresetn;
assign in_inf_valve.axis_tdata = in_inf.axis_tdata; assign in_inf_valve.axis_tvalid = in_inf.axis_tvalid|insert_tri; assign in_inf_valve.axis_tuser = in_inf.axis_tuser; assign in_inf_valve.axis_tkeep = in_inf.axis_tkeep; assign in_inf.axis_tready = in_inf_valve.axis_tready&~insert_tri; assign in_inf_valve.axis_tlast = in_inf.axis_tlast&~insert_tri;
always_ff@(posedge clock,negedge rst_n) begin
if(~rst_n)begin insert_tri <= 1'b0; end else begin if(insert_seed=='0)begin if(in_inf.axis_tvalid && in_inf.axis_tready && in_inf.axis_tlast)begin insert_tri <= 1'b1; end else if(in_inf_valve.axis_tvalid && in_inf_valve.axis_tready)begin insert_tri <= (in_inf_valve.axis_tcnt<(insert_len-1'b1)); end else if(in_inf_valve.axis_tcnt=='0&&~(in_inf.axis_tvalid && in_inf.axis_tready))begin insert_tri <= 1'b1; end else begin insert_tri <= insert_tri; end end else begin if(in_inf_valve.axis_tvalid && in_inf_valve.axis_tready)begin if(in_inf_valve.axis_tcnt>=(insert_seed-1'b1) &&(in_inf_valve.axis_tcnt<((insert_seed+insert_len)-1'b1))&&~in_inf.axis_tlast)begin insert_tri <= 1'b1; end else begin insert_tri <= 1'b0; end end else begin insert_tri <= insert_tri; end end end
end
endmodule