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

_ descript: author : Cook.Darwin Version: VERA.1.0 2017/9/29

rewrite

creaded: 2017/2/22 madified: ***********************************************/ `timescale 1ns/1ps import DataInterfacePkg::*; (* axi_stream = “true” *) module axi_stream_partition_A1 (

input                      valve,               // [1] open [0] close
input [31:0]               partition_len,       //[0] mean 1 len
(* up_stream = "true" *)
axi_stream_inf.slaver      axis_in,
(* down_stream = "true" *)
axi_stream_inf.master      axis_out

);

wire clock,rst_n,clk_en; assign clock = axis_in.aclk; assign rst_n = axis_in.aresetn; assign clk_en = axis_in.aclken;

axi_stream_inf #(

.DSIZE       (axis_in.DSIZE )

)axis_valve(

.aclk        (clock            ),
.aresetn     (rst_n            ),
.aclken      (clk_en           )

);

axis_valve axis_valve_inst( /* input */ .button (valve ), /* axi_stream_inf.slaver */ .axis_in (axis_valve ), /* axi_stream_inf.master */ .axis_out (axis_out ) );

initial begin

wait(rst_n);
forever begin
    @(posedge clock);
    assert(partition_len > 1)
    else begin
        $error("\nAXIS PARTITION LENGTH MUST LARGER THAN 1\n");
        $finish;
    end
end

end

axis_length_split axis_length_split_inst( /* input [31:0] */ .length (partition_len+1), /* axi_stream_inf.slaver */ .axis_in (axis_in ), /* axi_stream_inf.master */ .axis_out (axis_valve ) );

endmodule