`define PARAMS_INIT_9 \ .INIT_00(slice_init('h00)), \ .INIT_01(slice_init('h01)), \ .INIT_02(slice_init('h02)), \ .INIT_03(slice_init('h03)), \ .INIT_04(slice_init('h04)), \ .INIT_05(slice_init('h05)), \ .INIT_06(slice_init('h06)), \ .INIT_07(slice_init('h07)), \ .INIT_08(slice_init('h08)), \ .INIT_09(slice_init('h09)), \ .INIT_0A(slice_init('h0a)), \ .INIT_0B(slice_init('h0b)), \ .INIT_0C(slice_init('h0c)), \ .INIT_0D(slice_init('h0d)), \ .INIT_0E(slice_init('h0e)), \ .INIT_0F(slice_init('h0f)), \ .INIT_10(slice_init('h10)), \ .INIT_11(slice_init('h11)), \ .INIT_12(slice_init('h12)), \ .INIT_13(slice_init('h13)), \ .INIT_14(slice_init('h14)), \ .INIT_15(slice_init('h15)), \ .INIT_16(slice_init('h16)), \ .INIT_17(slice_init('h17)), \ .INIT_18(slice_init('h18)), \ .INIT_19(slice_init('h19)), \ .INIT_1A(slice_init('h1a)), \ .INIT_1B(slice_init('h1b)), \ .INIT_1C(slice_init('h1c)), \ .INIT_1D(slice_init('h1d)), \ .INIT_1E(slice_init('h1e)), \ .INIT_1F(slice_init('h1f)), `define PARAMS_INITP_9 \ .INITP_00(slice_initp('h00)), \ .INITP_01(slice_initp('h01)), \ .INITP_02(slice_initp('h02)), \ .INITP_03(slice_initp('h03)), `define PARAMS_INIT_18 \ .INIT_00(slice_init('h00)), \ .INIT_01(slice_init('h01)), \ .INIT_02(slice_init('h02)), \ .INIT_03(slice_init('h03)), \ .INIT_04(slice_init('h04)), \ .INIT_05(slice_init('h05)), \ .INIT_06(slice_init('h06)), \ .INIT_07(slice_init('h07)), \ .INIT_08(slice_init('h08)), \ .INIT_09(slice_init('h09)), \ .INIT_0A(slice_init('h0a)), \ .INIT_0B(slice_init('h0b)), \ .INIT_0C(slice_init('h0c)), \ .INIT_0D(slice_init('h0d)), \ .INIT_0E(slice_init('h0e)), \ .INIT_0F(slice_init('h0f)), \ .INIT_10(slice_init('h10)), \ .INIT_11(slice_init('h11)), \ .INIT_12(slice_init('h12)), \ .INIT_13(slice_init('h13)), \ .INIT_14(slice_init('h14)), \ .INIT_15(slice_init('h15)), \ .INIT_16(slice_init('h16)), \ .INIT_17(slice_init('h17)), \ .INIT_18(slice_init('h18)), \ .INIT_19(slice_init('h19)), \ .INIT_1A(slice_init('h1a)), \ .INIT_1B(slice_init('h1b)), \ .INIT_1C(slice_init('h1c)), \ .INIT_1D(slice_init('h1d)), \ .INIT_1E(slice_init('h1e)), \ .INIT_1F(slice_init('h1f)), \ .INIT_20(slice_init('h20)), \ .INIT_21(slice_init('h21)), \ .INIT_22(slice_init('h22)), \ .INIT_23(slice_init('h23)), \ .INIT_24(slice_init('h24)), \ .INIT_25(slice_init('h25)), \ .INIT_26(slice_init('h26)), \ .INIT_27(slice_init('h27)), \ .INIT_28(slice_init('h28)), \ .INIT_29(slice_init('h29)), \ .INIT_2A(slice_init('h2a)), \ .INIT_2B(slice_init('h2b)), \ .INIT_2C(slice_init('h2c)), \ .INIT_2D(slice_init('h2d)), \ .INIT_2E(slice_init('h2e)), \ .INIT_2F(slice_init('h2f)), \ .INIT_30(slice_init('h30)), \ .INIT_31(slice_init('h31)), \ .INIT_32(slice_init('h32)), \ .INIT_33(slice_init('h33)), \ .INIT_34(slice_init('h34)), \ .INIT_35(slice_init('h35)), \ .INIT_36(slice_init('h36)), \ .INIT_37(slice_init('h37)), \ .INIT_38(slice_init('h38)), \ .INIT_39(slice_init('h39)), \ .INIT_3A(slice_init('h3a)), \ .INIT_3B(slice_init('h3b)), \ .INIT_3C(slice_init('h3c)), \ .INIT_3D(slice_init('h3d)), \ .INIT_3E(slice_init('h3e)), \ .INIT_3F(slice_init('h3f)), `define PARAMS_INIT_18_U \ .INIT_00(slice_init('h40)), \ .INIT_01(slice_init('h41)), \ .INIT_02(slice_init('h42)), \ .INIT_03(slice_init('h43)), \ .INIT_04(slice_init('h44)), \ .INIT_05(slice_init('h45)), \ .INIT_06(slice_init('h46)), \ .INIT_07(slice_init('h47)), \ .INIT_08(slice_init('h48)), \ .INIT_09(slice_init('h49)), \ .INIT_0A(slice_init('h4a)), \ .INIT_0B(slice_init('h4b)), \ .INIT_0C(slice_init('h4c)), \ .INIT_0D(slice_init('h4d)), \ .INIT_0E(slice_init('h4e)), \ .INIT_0F(slice_init('h4f)), \ .INIT_10(slice_init('h50)), \ .INIT_11(slice_init('h51)), \ .INIT_12(slice_init('h52)), \ .INIT_13(slice_init('h53)), \ .INIT_14(slice_init('h54)), \ .INIT_15(slice_init('h55)), \ .INIT_16(slice_init('h56)), \ .INIT_17(slice_init('h57)), \ .INIT_18(slice_init('h58)), \ .INIT_19(slice_init('h59)), \ .INIT_1A(slice_init('h5a)), \ .INIT_1B(slice_init('h5b)), \ .INIT_1C(slice_init('h5c)), \ .INIT_1D(slice_init('h5d)), \ .INIT_1E(slice_init('h5e)), \ .INIT_1F(slice_init('h5f)), \ .INIT_20(slice_init('h60)), \ .INIT_21(slice_init('h61)), \ .INIT_22(slice_init('h62)), \ .INIT_23(slice_init('h63)), \ .INIT_24(slice_init('h64)), \ .INIT_25(slice_init('h65)), \ .INIT_26(slice_init('h66)), \ .INIT_27(slice_init('h67)), \ .INIT_28(slice_init('h68)), \ .INIT_29(slice_init('h69)), \ .INIT_2A(slice_init('h6a)), \ .INIT_2B(slice_init('h6b)), \ .INIT_2C(slice_init('h6c)), \ .INIT_2D(slice_init('h6d)), \ .INIT_2E(slice_init('h6e)), \ .INIT_2F(slice_init('h6f)), \ .INIT_30(slice_init('h70)), \ .INIT_31(slice_init('h71)), \ .INIT_32(slice_init('h72)), \ .INIT_33(slice_init('h73)), \ .INIT_34(slice_init('h74)), \ .INIT_35(slice_init('h75)), \ .INIT_36(slice_init('h76)), \ .INIT_37(slice_init('h77)), \ .INIT_38(slice_init('h78)), \ .INIT_39(slice_init('h79)), \ .INIT_3A(slice_init('h7a)), \ .INIT_3B(slice_init('h7b)), \ .INIT_3C(slice_init('h7c)), \ .INIT_3D(slice_init('h7d)), \ .INIT_3E(slice_init('h7e)), \ .INIT_3F(slice_init('h7f)), `define PARAMS_INITP_18 \ .INITP_00(slice_initp('h00)), \ .INITP_01(slice_initp('h01)), \ .INITP_02(slice_initp('h02)), \ .INITP_03(slice_initp('h03)), \ .INITP_04(slice_initp('h04)), \ .INITP_05(slice_initp('h05)), \ .INITP_06(slice_initp('h06)), \ .INITP_07(slice_initp('h07)), `define PARAMS_INIT_36 \ .INIT_00(slice_init('h00)), \ .INIT_01(slice_init('h01)), \ .INIT_02(slice_init('h02)), \ .INIT_03(slice_init('h03)), \ .INIT_04(slice_init('h04)), \ .INIT_05(slice_init('h05)), \ .INIT_06(slice_init('h06)), \ .INIT_07(slice_init('h07)), \ .INIT_08(slice_init('h08)), \ .INIT_09(slice_init('h09)), \ .INIT_0A(slice_init('h0a)), \ .INIT_0B(slice_init('h0b)), \ .INIT_0C(slice_init('h0c)), \ .INIT_0D(slice_init('h0d)), \ .INIT_0E(slice_init('h0e)), \ .INIT_0F(slice_init('h0f)), \ .INIT_10(slice_init('h10)), \ .INIT_11(slice_init('h11)), \ .INIT_12(slice_init('h12)), \ .INIT_13(slice_init('h13)), \ .INIT_14(slice_init('h14)), \ .INIT_15(slice_init('h15)), \ .INIT_16(slice_init('h16)), \ .INIT_17(slice_init('h17)), \ .INIT_18(slice_init('h18)), \ .INIT_19(slice_init('h19)), \ .INIT_1A(slice_init('h1a)), \ .INIT_1B(slice_init('h1b)), \ .INIT_1C(slice_init('h1c)), \ .INIT_1D(slice_init('h1d)), \ .INIT_1E(slice_init('h1e)), \ .INIT_1F(slice_init('h1f)), \ .INIT_20(slice_init('h20)), \ .INIT_21(slice_init('h21)), \ .INIT_22(slice_init('h22)), \ .INIT_23(slice_init('h23)), \ .INIT_24(slice_init('h24)), \ .INIT_25(slice_init('h25)), \ .INIT_26(slice_init('h26)), \ .INIT_27(slice_init('h27)), \ .INIT_28(slice_init('h28)), \ .INIT_29(slice_init('h29)), \ .INIT_2A(slice_init('h2a)), \ .INIT_2B(slice_init('h2b)), \ .INIT_2C(slice_init('h2c)), \ .INIT_2D(slice_init('h2d)), \ .INIT_2E(slice_init('h2e)), \ .INIT_2F(slice_init('h2f)), \ .INIT_30(slice_init('h30)), \ .INIT_31(slice_init('h31)), \ .INIT_32(slice_init('h32)), \ .INIT_33(slice_init('h33)), \ .INIT_34(slice_init('h34)), \ .INIT_35(slice_init('h35)), \ .INIT_36(slice_init('h36)), \ .INIT_37(slice_init('h37)), \ .INIT_38(slice_init('h38)), \ .INIT_39(slice_init('h39)), \ .INIT_3A(slice_init('h3a)), \ .INIT_3B(slice_init('h3b)), \ .INIT_3C(slice_init('h3c)), \ .INIT_3D(slice_init('h3d)), \ .INIT_3E(slice_init('h3e)), \ .INIT_3F(slice_init('h3f)), \ .INIT_40(slice_init('h40)), \ .INIT_41(slice_init('h41)), \ .INIT_42(slice_init('h42)), \ .INIT_43(slice_init('h43)), \ .INIT_44(slice_init('h44)), \ .INIT_45(slice_init('h45)), \ .INIT_46(slice_init('h46)), \ .INIT_47(slice_init('h47)), \ .INIT_48(slice_init('h48)), \ .INIT_49(slice_init('h49)), \ .INIT_4A(slice_init('h4a)), \ .INIT_4B(slice_init('h4b)), \ .INIT_4C(slice_init('h4c)), \ .INIT_4D(slice_init('h4d)), \ .INIT_4E(slice_init('h4e)), \ .INIT_4F(slice_init('h4f)), \ .INIT_50(slice_init('h50)), \ .INIT_51(slice_init('h51)), \ .INIT_52(slice_init('h52)), \ .INIT_53(slice_init('h53)), \ .INIT_54(slice_init('h54)), \ .INIT_55(slice_init('h55)), \ .INIT_56(slice_init('h56)), \ .INIT_57(slice_init('h57)), \ .INIT_58(slice_init('h58)), \ .INIT_59(slice_init('h59)), \ .INIT_5A(slice_init('h5a)), \ .INIT_5B(slice_init('h5b)), \ .INIT_5C(slice_init('h5c)), \ .INIT_5D(slice_init('h5d)), \ .INIT_5E(slice_init('h5e)), \ .INIT_5F(slice_init('h5f)), \ .INIT_60(slice_init('h60)), \ .INIT_61(slice_init('h61)), \ .INIT_62(slice_init('h62)), \ .INIT_63(slice_init('h63)), \ .INIT_64(slice_init('h64)), \ .INIT_65(slice_init('h65)), \ .INIT_66(slice_init('h66)), \ .INIT_67(slice_init('h67)), \ .INIT_68(slice_init('h68)), \ .INIT_69(slice_init('h69)), \ .INIT_6A(slice_init('h6a)), \ .INIT_6B(slice_init('h6b)), \ .INIT_6C(slice_init('h6c)), \ .INIT_6D(slice_init('h6d)), \ .INIT_6E(slice_init('h6e)), \ .INIT_6F(slice_init('h6f)), \ .INIT_70(slice_init('h70)), \ .INIT_71(slice_init('h71)), \ .INIT_72(slice_init('h72)), \ .INIT_73(slice_init('h73)), \ .INIT_74(slice_init('h74)), \ .INIT_75(slice_init('h75)), \ .INIT_76(slice_init('h76)), \ .INIT_77(slice_init('h77)), \ .INIT_78(slice_init('h78)), \ .INIT_79(slice_init('h79)), \ .INIT_7A(slice_init('h7a)), \ .INIT_7B(slice_init('h7b)), \ .INIT_7C(slice_init('h7c)), \ .INIT_7D(slice_init('h7d)), \ .INIT_7E(slice_init('h7e)), \ .INIT_7F(slice_init('h7f)), `define PARAMS_INIT_36_U \ .INIT_00(slice_init('h80)), \ .INIT_01(slice_init('h81)), \ .INIT_02(slice_init('h82)), \ .INIT_03(slice_init('h83)), \ .INIT_04(slice_init('h84)), \ .INIT_05(slice_init('h85)), \ .INIT_06(slice_init('h86)), \ .INIT_07(slice_init('h87)), \ .INIT_08(slice_init('h88)), \ .INIT_09(slice_init('h89)), \ .INIT_0A(slice_init('h8a)), \ .INIT_0B(slice_init('h8b)), \ .INIT_0C(slice_init('h8c)), \ .INIT_0D(slice_init('h8d)), \ .INIT_0E(slice_init('h8e)), \ .INIT_0F(slice_init('h8f)), \ .INIT_10(slice_init('h90)), \ .INIT_11(slice_init('h91)), \ .INIT_12(slice_init('h92)), \ .INIT_13(slice_init('h93)), \ .INIT_14(slice_init('h94)), \ .INIT_15(slice_init('h95)), \ .INIT_16(slice_init('h96)), \ .INIT_17(slice_init('h97)), \ .INIT_18(slice_init('h98)), \ .INIT_19(slice_init('h99)), \ .INIT_1A(slice_init('h9a)), \ .INIT_1B(slice_init('h9b)), \ .INIT_1C(slice_init('h9c)), \ .INIT_1D(slice_init('h9d)), \ .INIT_1E(slice_init('h9e)), \ .INIT_1F(slice_init('h9f)), \ .INIT_20(slice_init('ha0)), \ .INIT_21(slice_init('ha1)), \ .INIT_22(slice_init('ha2)), \ .INIT_23(slice_init('ha3)), \ .INIT_24(slice_init('ha4)), \ .INIT_25(slice_init('ha5)), \ .INIT_26(slice_init('ha6)), \ .INIT_27(slice_init('ha7)), \ .INIT_28(slice_init('ha8)), \ .INIT_29(slice_init('ha9)), \ .INIT_2A(slice_init('haa)), \ .INIT_2B(slice_init('hab)), \ .INIT_2C(slice_init('hac)), \ .INIT_2D(slice_init('had)), \ .INIT_2E(slice_init('hae)), \ .INIT_2F(slice_init('haf)), \ .INIT_30(slice_init('hb0)), \ .INIT_31(slice_init('hb1)), \ .INIT_32(slice_init('hb2)), \ .INIT_33(slice_init('hb3)), \ .INIT_34(slice_init('hb4)), \ .INIT_35(slice_init('hb5)), \ .INIT_36(slice_init('hb6)), \ .INIT_37(slice_init('hb7)), \ .INIT_38(slice_init('hb8)), \ .INIT_39(slice_init('hb9)), \ .INIT_3A(slice_init('hba)), \ .INIT_3B(slice_init('hbb)), \ .INIT_3C(slice_init('hbc)), \ .INIT_3D(slice_init('hbd)), \ .INIT_3E(slice_init('hbe)), \ .INIT_3F(slice_init('hbf)), \ .INIT_40(slice_init('hc0)), \ .INIT_41(slice_init('hc1)), \ .INIT_42(slice_init('hc2)), \ .INIT_43(slice_init('hc3)), \ .INIT_44(slice_init('hc4)), \ .INIT_45(slice_init('hc5)), \ .INIT_46(slice_init('hc6)), \ .INIT_47(slice_init('hc7)), \ .INIT_48(slice_init('hc8)), \ .INIT_49(slice_init('hc9)), \ .INIT_4A(slice_init('hca)), \ .INIT_4B(slice_init('hcb)), \ .INIT_4C(slice_init('hcc)), \ .INIT_4D(slice_init('hcd)), \ .INIT_4E(slice_init('hce)), \ .INIT_4F(slice_init('hcf)), \ .INIT_50(slice_init('hd0)), \ .INIT_51(slice_init('hd1)), \ .INIT_52(slice_init('hd2)), \ .INIT_53(slice_init('hd3)), \ .INIT_54(slice_init('hd4)), \ .INIT_55(slice_init('hd5)), \ .INIT_56(slice_init('hd6)), \ .INIT_57(slice_init('hd7)), \ .INIT_58(slice_init('hd8)), \ .INIT_59(slice_init('hd9)), \ .INIT_5A(slice_init('hda)), \ .INIT_5B(slice_init('hdb)), \ .INIT_5C(slice_init('hdc)), \ .INIT_5D(slice_init('hdd)), \ .INIT_5E(slice_init('hde)), \ .INIT_5F(slice_init('hdf)), \ .INIT_60(slice_init('he0)), \ .INIT_61(slice_init('he1)), \ .INIT_62(slice_init('he2)), \ .INIT_63(slice_init('he3)), \ .INIT_64(slice_init('he4)), \ .INIT_65(slice_init('he5)), \ .INIT_66(slice_init('he6)), \ .INIT_67(slice_init('he7)), \ .INIT_68(slice_init('he8)), \ .INIT_69(slice_init('he9)), \ .INIT_6A(slice_init('hea)), \ .INIT_6B(slice_init('heb)), \ .INIT_6C(slice_init('hec)), \ .INIT_6D(slice_init('hed)), \ .INIT_6E(slice_init('hee)), \ .INIT_6F(slice_init('hef)), \ .INIT_70(slice_init('hf0)), \ .INIT_71(slice_init('hf1)), \ .INIT_72(slice_init('hf2)), \ .INIT_73(slice_init('hf3)), \ .INIT_74(slice_init('hf4)), \ .INIT_75(slice_init('hf5)), \ .INIT_76(slice_init('hf6)), \ .INIT_77(slice_init('hf7)), \ .INIT_78(slice_init('hf8)), \ .INIT_79(slice_init('hf9)), \ .INIT_7A(slice_init('hfa)), \ .INIT_7B(slice_init('hfb)), \ .INIT_7C(slice_init('hfc)), \ .INIT_7D(slice_init('hfd)), \ .INIT_7E(slice_init('hfe)), \ .INIT_7F(slice_init('hff)), `define PARAMS_INITP_36 \ .INITP_00(slice_initp('h00)), \ .INITP_01(slice_initp('h01)), \ .INITP_02(slice_initp('h02)), \ .INITP_03(slice_initp('h03)), \ .INITP_04(slice_initp('h04)), \ .INITP_05(slice_initp('h05)), \ .INITP_06(slice_initp('h06)), \ .INITP_07(slice_initp('h07)), \ .INITP_08(slice_initp('h08)), \ .INITP_09(slice_initp('h09)), \ .INITP_0A(slice_initp('h0a)), \ .INITP_0B(slice_initp('h0b)), \ .INITP_0C(slice_initp('h0c)), \ .INITP_0D(slice_initp('h0d)), \ .INITP_0E(slice_initp('h0e)), \ .INITP_0F(slice_initp('h0f)), `define MAKE_DO(do, dop, rdata) \ wire [63:0] do; \ wire [7:0] dop; \ assign rdata = { \ dop[7], \ do[63:56], \ dop[6], \ do[55:48], \ dop[5], \ do[47:40], \ dop[4], \ do[39:32], \ dop[3], \ do[31:24], \ dop[2], \ do[23:16], \ dop[1], \ do[15:8], \ dop[0], \ do[7:0] \ }; `define MAKE_DI(di, dip, wdata) \ wire [63:0] di; \ wire [7:0] dip; \ assign { \ dip[7], \ di[63:56], \ dip[6], \ di[55:48], \ dip[5], \ di[47:40], \ dip[4], \ di[39:32], \ dip[3], \ di[31:24], \ dip[2], \ di[23:16], \ dip[1], \ di[15:8], \ dip[0], \ di[7:0] \ } = wdata; function [71:0] ival; input integer width; input [71:0] val; if (width == 72) ival = { val[71], val[62], val[53], val[44], val[35], val[26], val[17], val[8], val[70:63], val[61:54], val[52:45], val[43:36], val[34:27], val[25:18], val[16:9], val[7:0] }; else if (width == 36) ival = { val[35], val[26], val[17], val[8], val[34:27], val[25:18], val[16:9], val[7:0] }; else if (width == 18) ival = { val[17], val[8], val[16:9], val[7:0] }; else ival = val; endfunction function [255:0] slice_init; input integer idx; integer i; for (i = 0; i < 32; i = i + 1) slice_init[i*8+:8] = INIT[(idx * 32 + i)*9+:8]; endfunction function [255:0] slice_initp; input integer idx; integer i; for (i = 0; i < 256; i = i + 1) slice_initp[i] = INIT[(idx * 256 + i)*9+8]; endfunction