/********************************************** _ _ Cook Darwin __
_ descript: 生成大块的值域用于 common_frame_table author : Cook.Darwin Version: VERA.0.0 creaded: 2016/12/19 madified: ***********************************************/ `timescale 1ns/1ps (* axi_stream = “true” *) module gen_big_field_table #(
parameter MASTER_MODE = "OFF", parameter DSIZE = 8, parameter FIELD_LEN = 16*8, //MAX 16*8 parameter FIELD_NAME = "Big Filed"
)(
input enable, input [DSIZE*FIELD_LEN-1:0] value, (* down_stream = "true" *) axi_stream_inf.master cm_tb
);
initial begin
assert(FIELD_LEN <= 128) else begin $error("'gen_big_field_table''FIELD_LEN[%d] MUST SMALLER THAN 129",FIELD_LEN); $stop; end
end
logic [DSIZE*16*8-1:0] value_tmp;
// assign value_tmp = {value,{(16*8-FIELD_LEN){1'b0}}}; generate if(FIELD_LEN < 128)
assign value_tmp[DSIZE*16*8-1-:DSIZE*FIELD_LEN] = value;
else
assign value_tmp = value;
endgenerate
localparam F0_LEN = (FIELD_LEN>=8*1 )? 8 : (FIELD_LEN%8 != 0)? FIELD_LEN%8 : 1; localparam F1_LEN = (FIELD_LEN>=8*2 )? 8 : (FIELD_LEN%8 != 0)? FIELD_LEN%8 : 1; localparam F2_LEN = (FIELD_LEN>=8*3 )? 8 : (FIELD_LEN%8 != 0)? FIELD_LEN%8 : 1; localparam F3_LEN = (FIELD_LEN>=8*4 )? 8 : (FIELD_LEN%8 != 0)? FIELD_LEN%8 : 1; localparam F4_LEN = (FIELD_LEN>=8*5 )? 8 : (FIELD_LEN%8 != 0)? FIELD_LEN%8 : 1; localparam F5_LEN = (FIELD_LEN>=8*6 )? 8 : (FIELD_LEN%8 != 0)? FIELD_LEN%8 : 1; localparam F6_LEN = (FIELD_LEN>=8*7 )? 8 : (FIELD_LEN%8 != 0)? FIELD_LEN%8 : 1; localparam F7_LEN = (FIELD_LEN>=8*8 )? 8 : (FIELD_LEN%8 != 0)? FIELD_LEN%8 : 1; localparam F8_LEN = (FIELD_LEN>=8*9 )? 8 : (FIELD_LEN%8 != 0)? FIELD_LEN%8 : 1; localparam F9_LEN = (FIELD_LEN>=8*10)? 8 : (FIELD_LEN%8 != 0)? FIELD_LEN%8 : 1; localparam F10_LEN = (FIELD_LEN>=8*11)? 8 : (FIELD_LEN%8 != 0)? FIELD_LEN%8 : 1; localparam F11_LEN = (FIELD_LEN>=8*12)? 8 : (FIELD_LEN%8 != 0)? FIELD_LEN%8 : 1; localparam F12_LEN = (FIELD_LEN>=8*13)? 8 : (FIELD_LEN%8 != 0)? FIELD_LEN%8 : 1; localparam F13_LEN = (FIELD_LEN>=8*14)? 8 : (FIELD_LEN%8 != 0)? FIELD_LEN%8 : 1; localparam F14_LEN = (FIELD_LEN>=8*15)? 8 : (FIELD_LEN%8 != 0)? FIELD_LEN%8 : 1; localparam F15_LEN = (FIELD_LEN>=8*16)? 8 : (FIELD_LEN%8 != 0)? FIELD_LEN%8 : 1;
localparam F0_SUM_LEN = F0_LEN; localparam F1_SUM_LEN = F0_SUM_LEN + F1_LEN; localparam F2_SUM_LEN = F1_SUM_LEN + F2_LEN; localparam F3_SUM_LEN = F2_SUM_LEN + F3_LEN; localparam F4_SUM_LEN = F3_SUM_LEN + F4_LEN; localparam F5_SUM_LEN = F4_SUM_LEN + F5_LEN; localparam F6_SUM_LEN = F5_SUM_LEN + F6_LEN; localparam F7_SUM_LEN = F6_SUM_LEN + F7_LEN;
localparam F8_SUM_LEN = F7_SUM_LEN + F8_LEN; localparam F9_SUM_LEN = F8_SUM_LEN + F9_LEN; localparam F10_SUM_LEN = F9_SUM_LEN + F10_LEN; localparam F11_SUM_LEN = F10_SUM_LEN+ F11_LEN; localparam F12_SUM_LEN = F11_SUM_LEN+ F12_LEN; localparam F13_SUM_LEN = F12_SUM_LEN+ F13_LEN; localparam F14_SUM_LEN = F13_SUM_LEN+ F14_LEN; localparam F15_SUM_LEN = F14_SUM_LEN+ F15_LEN;
localparam FIELD_TOTLE = FIELD_LEN/8 + (FIELD_LEN%8 != 0);
gen_common_frame_table #(
.MASTER_MODE (MASTER_MODE ), .FIELD_TOTLE (FIELD_TOTLE ), // MAX 16 :: default IP Frame .DSIZE (DSIZE ), //Field 0 //--------------------- .F0_LEN (F0_LEN ), .F0_NAME (FIELD_NAME), //Field 1 //--------------------- .F1_LEN (F1_LEN ), .F1_NAME (FIELD_NAME), //Field 2 //--------------------- .F2_LEN (F2_LEN ), .F2_NAME (FIELD_NAME), //Field 3 //--------------------- .F3_LEN (F3_LEN ), .F3_NAME (FIELD_NAME), //Field 4 //--------------------- .F4_LEN (F4_LEN ), .F4_NAME (FIELD_NAME), //Field 5 //--------------------- .F5_LEN (F5_LEN ), .F5_NAME (FIELD_NAME), //Field 6 //--------------------- .F6_LEN (F6_LEN ), .F6_NAME (FIELD_NAME ), //Field 7 //--------------------- .F7_LEN (F7_LEN ), .F7_NAME (FIELD_NAME), //Field 8 //--------------------- .F8_LEN (F8_LEN ), .F8_NAME (FIELD_NAME), //Field 9 //--------------------- .F9_LEN (F9_LEN ), .F9_NAME (FIELD_NAME), //Field 10 //--------------------- .F10_LEN (F10_LEN ), .F10_NAME (FIELD_NAME), //Field 11 //--------------------- .F11_LEN (F11_LEN ), .F11_NAME (FIELD_NAME), //Field 12 //--------------------- .F12_LEN (F12_LEN ), .F12_NAME (FIELD_NAME), //Field 13 //--------------------- .F13_LEN (F13_LEN ), .F13_NAME (FIELD_NAME), //Field 14 //--------------------- .F14_LEN (F14_LEN ), .F14_NAME (FIELD_NAME), //Field 15 //--------------------- .F15_LEN (F15_LEN ), .F15_NAME (FIELD_NAME)
)common_frame_table_0( /* input */ .enable (enable ), /* input [F0_LEN *DSIZE-1:0] */ .f0_value (value_tmp ), /* input [F1_LEN *DSIZE-1:0] */ .f1_value (value_tmp ), /* input [F2_LEN *DSIZE-1:0] */ .f2_value (value_tmp ), /* input [F3_LEN *DSIZE-1:0] */ .f3_value (value_tmp ), /* input [F4_LEN *DSIZE-1:0] */ .f4_value (value_tmp ), /* input [F5_LEN *DSIZE-1:0] */ .f5_value (value_tmp ), /* input [F6_LEN *DSIZE-1:0] */ .f6_value (value_tmp ), /* input [F7_LEN *DSIZE-1:0] */ .f7_value (value_tmp ), /* input [F8_LEN *DSIZE-1:0] */ .f8_value (value_tmp ), /* input [F9_LEN *DSIZE-1:0] */ .f9_value (value_tmp ), /* input [F10_LEN*DSIZE-1:0] */ .f10_value (value_tmp ), /* input [F11_LEN*DSIZE-1:0] */ .f11_value (value_tmp ), /* input [F12_LEN*DSIZE-1:0] */ .f12_value (value_tmp ), /* input [F13_LEN*DSIZE-1:0] */ .f13_value (value_tmp ), /* input [F14_LEN*DSIZE-1:0] */ .f14_value (value_tmp ), /* input [F15_LEN*DSIZE-1:0] */ .f15_value (value_tmp ), /* axi_stream_inf.master */ .cm_tb (cm_tb ) );
endmodule