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

_ descript: 通用报文格式解析器 author : Cook.Darwin Version: VERA.0.0 2017/1/22

backup old file
this use A1

creaded: 2016/12/16 madified:2017/1/3 ***********************************************/ `timescale 1ns/1ps // (* axi_stream = “true” *) module parse_common_frame_table #(

parameter   FIELD_TOTLE = 11,        // MAX 16 :: default IP Frame
parameter   DSIZE       = 8,
parameter   TRY_PARSE   = "OFF",     // just check frame, bypass data
//Field 0
//---------------------
parameter   F0_LEN  = 1,
parameter   F0_NAME = "version+head length",
//Field 1
//---------------------
parameter   F1_LEN  = 1,
parameter   F1_NAME = "TOS",
//Field 2
//---------------------
parameter   F2_LEN  = 2,
parameter   F2_NAME = "totle length",
//Field 3
//---------------------
parameter   F3_LEN  = 2,
parameter   F3_NAME = "identify",
//Field 4
//---------------------
parameter   F4_LEN  = 1,
parameter   F4_NAME = "flag + offset MSB",
//Field 5
//---------------------
parameter   F5_LEN  = 1,
parameter   F5_NAME = "offset LSB",
//Field 6
//---------------------
parameter   F6_LEN  = 1,
parameter   F6_NAME = "TTL",
//Field 7
//---------------------
parameter   F7_LEN  = 1,
parameter   F7_NAME = "sub protocol",
//Field 8
//---------------------
parameter   F8_LEN  = 2,
parameter   F8_NAME = "head CRC",
//Field 9
//---------------------
parameter   F9_LEN  = 4,
parameter   F9_NAME = "source ip addr",
//Field 10
//---------------------
parameter   F10_LEN  = 4,
parameter   F10_NAME = "destination ip addr",
//Field 11
//---------------------
parameter   F11_LEN  = 1,
parameter   F11_NAME = "Filed 11",
//Field 12
//---------------------
parameter   F12_LEN  = 1,
parameter   F12_NAME = "Filed 12",
//Field 13
//---------------------
parameter   F13_LEN  = 1,
parameter   F13_NAME = "Field 13",
//Field 14
//---------------------
parameter   F14_LEN  = 1,
parameter   F14_NAME = "Field 14",
//Field 15
//---------------------
parameter   F15_LEN  = 1,
parameter   F15_NAME = "Field 15"

)(

input                                   enable,
output logic [F0_LEN *DSIZE-1:0]        f0_value,
output logic [F1_LEN *DSIZE-1:0]        f1_value,
output logic [F2_LEN *DSIZE-1:0]        f2_value,
output logic [F3_LEN *DSIZE-1:0]        f3_value,
output logic [F4_LEN *DSIZE-1:0]        f4_value,
output logic [F5_LEN *DSIZE-1:0]        f5_value,
output logic [F6_LEN *DSIZE-1:0]        f6_value,
output logic [F7_LEN *DSIZE-1:0]        f7_value,
output logic [F8_LEN *DSIZE-1:0]        f8_value,
output logic [F9_LEN *DSIZE-1:0]        f9_value,
output logic [F10_LEN*DSIZE-1:0]        f10_value,
output logic [F11_LEN*DSIZE-1:0]        f11_value,
output logic [F12_LEN*DSIZE-1:0]        f12_value,
output logic [F13_LEN*DSIZE-1:0]        f13_value,
output logic [F14_LEN*DSIZE-1:0]        f14_value,
output logic [F15_LEN*DSIZE-1:0]        f15_value,
output logic                            out_valid,
(* up_stream = "true" *)
axi_stream_inf.slaver                   cm_tb_s,
(* down_stream = "true" *)
axi_stream_inf.master                   cm_tb_m,
axi_stream_inf.mirror                   cm_mirror

);

parse_common_frame_table_A1 #(

.FIELD_TOTLE (FIELD_TOTLE),     // MAX 16 :: default IP Frame
.DSIZE       (DSIZE      ),
.TRY_PARSE   (TRY_PARSE  ),     // just check frame, bypass data
//Field 0
//---------------------
.F0_LEN      (F0_LEN     ),
.F0_NAME     (F0_NAME    ),
//Field 1
//---------------------
.F1_LEN      (F1_LEN     ),
.F1_NAME     (F1_NAME    ),
//Field 2
//---------------------
.F2_LEN      (F2_LEN     ),
.F2_NAME     (F2_NAME    ),
//Field 3
//---------------------
.F3_LEN      (F3_LEN     ),
.F3_NAME     (F3_NAME    ),
//Field 4
//---------------------
.F4_LEN      (F4_LEN     ),
.F4_NAME     (F4_NAME    ),
//Field 5
//---------------------
.F5_LEN      (F5_LEN     ),
.F5_NAME     (F5_NAME    ),
//Field 6
//---------------------
.F6_LEN      (F6_LEN     ),
.F6_NAME     (F6_NAME    ),
//Field 7
//---------------------
.F7_LEN      (F7_LEN     ),
.F7_NAME     (F7_NAME    ),
//Field 8
//---------------------
.F8_LEN      (F8_LEN     ),
.F8_NAME     (F8_NAME    ),
//Field 9
//---------------------
.F9_LEN      (F9_LEN     ),
.F9_NAME     (F9_NAME    ),
//Field 10
//---------------------
.F10_LEN      (F10_LEN     ),
.F10_NAME     (F10_NAME    ),
//Field 11
//---------------------
.F11_LEN      (F11_LEN     ),
.F11_NAME     (F11_NAME    ),
//Field 12
//---------------------
.F12_LEN      (F12_LEN     ),
.F12_NAME     (F12_NAME    ),
//Field 13
//---------------------
.F13_LEN      (F13_LEN     ),
.F13_NAME     (F13_NAME    ),
//Field 14
//---------------------
.F14_LEN      (F14_LEN     ),
.F14_NAME     (F14_NAME    ),
//Field 15
//---------------------
.F15_LEN      (F15_LEN     ),
.F15_NAME     (F15_NAME    )

)parse_common_frame_table_inst( /* input */ .enable (1'b1 ), /* output logic [F0_LEN *DSIZE-1:0] */ .f0_value (f0_value ), /* output logic [F1_LEN *DSIZE-1:0] */ .f1_value (f1_value ), /* output logic [F2_LEN *DSIZE-1:0] */ .f2_value (f2_value ), /* output logic [F3_LEN *DSIZE-1:0] */ .f3_value (f3_value ), /* output logic [F4_LEN *DSIZE-1:0] */ .f4_value (f4_value ), /* output logic [F5_LEN *DSIZE-1:0] */ .f5_value (f5_value ), /* output logic [F6_LEN *DSIZE-1:0] */ .f6_value (f6_value ), /* output logic [F7_LEN *DSIZE-1:0] */ .f7_value (f7_value ), /* output logic [F8_LEN *DSIZE-1:0] */ .f8_value (f8_value ), /* output logic [F9_LEN *DSIZE-1:0] */ .f9_value (f9_value ), /* output logic [F10_LEN*DSIZE-1:0] */ .f10_value (f10_value ), /* output logic [F11_LEN*DSIZE-1:0] */ .f11_value (f11_value ), /* output logic [F12_LEN*DSIZE-1:0] */ .f12_value (f12_value ), /* output logic [F13_LEN*DSIZE-1:0] */ .f13_value (f13_value ), /* output logic [F14_LEN*DSIZE-1:0] */ .f14_value (f14_value ), /* output logic [F15_LEN*DSIZE-1:0] */ .f15_value (f15_value ), /* output logic */ .out_valid (out_valid ), /* axi_stream_inf.slaver */ .cm_tb_s (cm_tb_s ), /* axi_stream_inf.master */ .cm_tb_m (cm_tb_m ), /* axi_stream_inf.mirror */ .cm_mirror (cm_mirror ) );

endmodule