Merge pull request #282 from antmicro/k6n10f_dsp_ff_init

Set initial state of all k6n10f DSP registers to zero
diff --git a/ql-qlf-plugin/qlf_k6n10f/cells_sim.v b/ql-qlf-plugin/qlf_k6n10f/cells_sim.v
index 736a1bb..f382797 100644
--- a/ql-qlf-plugin/qlf_k6n10f/cells_sim.v
+++ b/ql-qlf-plugin/qlf_k6n10f/cells_sim.v
@@ -488,755 +488,755 @@
 endmodule
 
 module TDP_BRAM36 (
-	WEN_A1_i,
-	WEN_B1_i,
-	REN_A1_i,
-	REN_B1_i,
-	CLK_A1_i,
-	CLK_B1_i,
-	BE_A1_i,
-	BE_B1_i,
-	ADDR_A1_i,
-	ADDR_B1_i,
-	WDATA_A1_i,
-	WDATA_B1_i,
-	RDATA_A1_o,
-	RDATA_B1_o,
-	FLUSH1_i,
-	WEN_A2_i,
-	WEN_B2_i,
-	REN_A2_i,
-	REN_B2_i,
-	CLK_A2_i,
-	CLK_B2_i,
-	BE_A2_i,
-	BE_B2_i,
-	ADDR_A2_i,
-	ADDR_B2_i,
-	WDATA_A2_i,
-	WDATA_B2_i,
-	RDATA_A2_o,
-	RDATA_B2_o,
-	FLUSH2_i,
-	RAM_ID_i,
-	PL_INIT_i,
-	PL_ENA_i,
-	PL_REN_i,
-	PL_CLK_i,
-	PL_WEN_i,
-	PL_ADDR_i,
-	PL_DATA_i,
-	PL_INIT_o,
-	PL_ENA_o,
-	PL_REN_o,
-	PL_CLK_o,
-	PL_WEN_o,
-	PL_ADDR_o,
-	PL_DATA_o
+    WEN_A1_i,
+    WEN_B1_i,
+    REN_A1_i,
+    REN_B1_i,
+    CLK_A1_i,
+    CLK_B1_i,
+    BE_A1_i,
+    BE_B1_i,
+    ADDR_A1_i,
+    ADDR_B1_i,
+    WDATA_A1_i,
+    WDATA_B1_i,
+    RDATA_A1_o,
+    RDATA_B1_o,
+    FLUSH1_i,
+    WEN_A2_i,
+    WEN_B2_i,
+    REN_A2_i,
+    REN_B2_i,
+    CLK_A2_i,
+    CLK_B2_i,
+    BE_A2_i,
+    BE_B2_i,
+    ADDR_A2_i,
+    ADDR_B2_i,
+    WDATA_A2_i,
+    WDATA_B2_i,
+    RDATA_A2_o,
+    RDATA_B2_o,
+    FLUSH2_i,
+    RAM_ID_i,
+    PL_INIT_i,
+    PL_ENA_i,
+    PL_REN_i,
+    PL_CLK_i,
+    PL_WEN_i,
+    PL_ADDR_i,
+    PL_DATA_i,
+    PL_INIT_o,
+    PL_ENA_o,
+    PL_REN_o,
+    PL_CLK_o,
+    PL_WEN_o,
+    PL_ADDR_o,
+    PL_DATA_o
 );
-	parameter SYNC_FIFO1_i = 1'b0;
-	parameter RMODE_A1_i = 3'b0;
-	parameter RMODE_B1_i = 3'b0;
-	parameter WMODE_A1_i = 3'b0;
-	parameter WMODE_B1_i = 3'b0;
-	parameter FMODE1_i = 1'b0;
-	parameter POWERDN1_i = 1'b0;
-	parameter SLEEP1_i = 1'b0;
-	parameter PROTECT1_i = 1'b0;
-	parameter UPAE1_i = 12'b0;
-	parameter UPAF1_i = 12'b0;
+    parameter SYNC_FIFO1_i = 1'b0;
+    parameter RMODE_A1_i = 3'b0;
+    parameter RMODE_B1_i = 3'b0;
+    parameter WMODE_A1_i = 3'b0;
+    parameter WMODE_B1_i = 3'b0;
+    parameter FMODE1_i = 1'b0;
+    parameter POWERDN1_i = 1'b0;
+    parameter SLEEP1_i = 1'b0;
+    parameter PROTECT1_i = 1'b0;
+    parameter UPAE1_i = 12'b0;
+    parameter UPAF1_i = 12'b0;
 
-	parameter SYNC_FIFO2_i = 1'b0;
-	parameter RMODE_A2_i = 3'b0;
-	parameter RMODE_B2_i = 3'b0;
-	parameter WMODE_A2_i = 3'b0;
-	parameter WMODE_B2_i = 3'b0;
-	parameter FMODE2_i = 1'b0;
-	parameter POWERDN2_i = 1'b0;
-	parameter SLEEP2_i = 1'b0;
-	parameter PROTECT2_i = 1'b0;
-	parameter UPAE2_i = 12'b0;
-	parameter UPAF2_i = 12'b0;
+    parameter SYNC_FIFO2_i = 1'b0;
+    parameter RMODE_A2_i = 3'b0;
+    parameter RMODE_B2_i = 3'b0;
+    parameter WMODE_A2_i = 3'b0;
+    parameter WMODE_B2_i = 3'b0;
+    parameter FMODE2_i = 1'b0;
+    parameter POWERDN2_i = 1'b0;
+    parameter SLEEP2_i = 1'b0;
+    parameter PROTECT2_i = 1'b0;
+    parameter UPAE2_i = 12'b0;
+    parameter UPAF2_i = 12'b0;
 
-	parameter SPLIT_i = 1'b0;
+    parameter SPLIT_i = 1'b0;
 
-	parameter INITP_00 = 256'h0000000000000000000000000000000000000000000000000000000000000000;
-	parameter INITP_01 = 256'h0000000000000000000000000000000000000000000000000000000000000000;
-	parameter INITP_02 = 256'h0000000000000000000000000000000000000000000000000000000000000000;
-	parameter INITP_03 = 256'h0000000000000000000000000000000000000000000000000000000000000000;
-	parameter INITP_04 = 256'h0000000000000000000000000000000000000000000000000000000000000000;
-	parameter INITP_05 = 256'h0000000000000000000000000000000000000000000000000000000000000000;
-	parameter INITP_06 = 256'h0000000000000000000000000000000000000000000000000000000000000000;
-	parameter INITP_07 = 256'h0000000000000000000000000000000000000000000000000000000000000000;
-	parameter INITP_08 = 256'h0000000000000000000000000000000000000000000000000000000000000000;
-	parameter INITP_09 = 256'h0000000000000000000000000000000000000000000000000000000000000000;
-	parameter INITP_0A = 256'h0000000000000000000000000000000000000000000000000000000000000000;
-	parameter INITP_0B = 256'h0000000000000000000000000000000000000000000000000000000000000000;
-	parameter INITP_0C = 256'h0000000000000000000000000000000000000000000000000000000000000000;
-	parameter INITP_0D = 256'h0000000000000000000000000000000000000000000000000000000000000000;
-	parameter INITP_0E = 256'h0000000000000000000000000000000000000000000000000000000000000000;
-	parameter INITP_0F = 256'h0000000000000000000000000000000000000000000000000000000000000000;
-	parameter INIT_00 = 256'h0000000000000000000000000000000000000000000000000000000000000000;
-	parameter INIT_01 = 256'h0000000000000000000000000000000000000000000000000000000000000000;
-	parameter INIT_02 = 256'h0000000000000000000000000000000000000000000000000000000000000000;
-	parameter INIT_03 = 256'h0000000000000000000000000000000000000000000000000000000000000000;
-	parameter INIT_04 = 256'h0000000000000000000000000000000000000000000000000000000000000000;
-	parameter INIT_05 = 256'h0000000000000000000000000000000000000000000000000000000000000000;
-	parameter INIT_06 = 256'h0000000000000000000000000000000000000000000000000000000000000000;
-	parameter INIT_07 = 256'h0000000000000000000000000000000000000000000000000000000000000000;
-	parameter INIT_08 = 256'h0000000000000000000000000000000000000000000000000000000000000000;
-	parameter INIT_09 = 256'h0000000000000000000000000000000000000000000000000000000000000000;
-	parameter INIT_0A = 256'h0000000000000000000000000000000000000000000000000000000000000000;
-	parameter INIT_0B = 256'h0000000000000000000000000000000000000000000000000000000000000000;
-	parameter INIT_0C = 256'h0000000000000000000000000000000000000000000000000000000000000000;
-	parameter INIT_0D = 256'h0000000000000000000000000000000000000000000000000000000000000000;
-	parameter INIT_0E = 256'h0000000000000000000000000000000000000000000000000000000000000000;
-	parameter INIT_0F = 256'h0000000000000000000000000000000000000000000000000000000000000000;
-	parameter INIT_10 = 256'h0000000000000000000000000000000000000000000000000000000000000000;
-	parameter INIT_11 = 256'h0000000000000000000000000000000000000000000000000000000000000000;
-	parameter INIT_12 = 256'h0000000000000000000000000000000000000000000000000000000000000000;
-	parameter INIT_13 = 256'h0000000000000000000000000000000000000000000000000000000000000000;
-	parameter INIT_14 = 256'h0000000000000000000000000000000000000000000000000000000000000000;
-	parameter INIT_15 = 256'h0000000000000000000000000000000000000000000000000000000000000000;
-	parameter INIT_16 = 256'h0000000000000000000000000000000000000000000000000000000000000000;
-	parameter INIT_17 = 256'h0000000000000000000000000000000000000000000000000000000000000000;
-	parameter INIT_18 = 256'h0000000000000000000000000000000000000000000000000000000000000000;
-	parameter INIT_19 = 256'h0000000000000000000000000000000000000000000000000000000000000000;
-	parameter INIT_1A = 256'h0000000000000000000000000000000000000000000000000000000000000000;
-	parameter INIT_1B = 256'h0000000000000000000000000000000000000000000000000000000000000000;
-	parameter INIT_1C = 256'h0000000000000000000000000000000000000000000000000000000000000000;
-	parameter INIT_1D = 256'h0000000000000000000000000000000000000000000000000000000000000000;
-	parameter INIT_1E = 256'h0000000000000000000000000000000000000000000000000000000000000000;
-	parameter INIT_1F = 256'h0000000000000000000000000000000000000000000000000000000000000000;
-	parameter INIT_20 = 256'h0000000000000000000000000000000000000000000000000000000000000000;
-	parameter INIT_21 = 256'h0000000000000000000000000000000000000000000000000000000000000000;
-	parameter INIT_22 = 256'h0000000000000000000000000000000000000000000000000000000000000000;
-	parameter INIT_23 = 256'h0000000000000000000000000000000000000000000000000000000000000000;
-	parameter INIT_24 = 256'h0000000000000000000000000000000000000000000000000000000000000000;
-	parameter INIT_25 = 256'h0000000000000000000000000000000000000000000000000000000000000000;
-	parameter INIT_26 = 256'h0000000000000000000000000000000000000000000000000000000000000000;
-	parameter INIT_27 = 256'h0000000000000000000000000000000000000000000000000000000000000000;
-	parameter INIT_28 = 256'h0000000000000000000000000000000000000000000000000000000000000000;
-	parameter INIT_29 = 256'h0000000000000000000000000000000000000000000000000000000000000000;
-	parameter INIT_2A = 256'h0000000000000000000000000000000000000000000000000000000000000000;
-	parameter INIT_2B = 256'h0000000000000000000000000000000000000000000000000000000000000000;
-	parameter INIT_2C = 256'h0000000000000000000000000000000000000000000000000000000000000000;
-	parameter INIT_2D = 256'h0000000000000000000000000000000000000000000000000000000000000000;
-	parameter INIT_2E = 256'h0000000000000000000000000000000000000000000000000000000000000000;
-	parameter INIT_2F = 256'h0000000000000000000000000000000000000000000000000000000000000000;
-	parameter INIT_30 = 256'h0000000000000000000000000000000000000000000000000000000000000000;
-	parameter INIT_31 = 256'h0000000000000000000000000000000000000000000000000000000000000000;
-	parameter INIT_32 = 256'h0000000000000000000000000000000000000000000000000000000000000000;
-	parameter INIT_33 = 256'h0000000000000000000000000000000000000000000000000000000000000000;
-	parameter INIT_34 = 256'h0000000000000000000000000000000000000000000000000000000000000000;
-	parameter INIT_35 = 256'h0000000000000000000000000000000000000000000000000000000000000000;
-	parameter INIT_36 = 256'h0000000000000000000000000000000000000000000000000000000000000000;
-	parameter INIT_37 = 256'h0000000000000000000000000000000000000000000000000000000000000000;
-	parameter INIT_38 = 256'h0000000000000000000000000000000000000000000000000000000000000000;
-	parameter INIT_39 = 256'h0000000000000000000000000000000000000000000000000000000000000000;
-	parameter INIT_3A = 256'h0000000000000000000000000000000000000000000000000000000000000000;
-	parameter INIT_3B = 256'h0000000000000000000000000000000000000000000000000000000000000000;
-	parameter INIT_3C = 256'h0000000000000000000000000000000000000000000000000000000000000000;
-	parameter INIT_3D = 256'h0000000000000000000000000000000000000000000000000000000000000000;
-	parameter INIT_3E = 256'h0000000000000000000000000000000000000000000000000000000000000000;
-	parameter INIT_3F = 256'h0000000000000000000000000000000000000000000000000000000000000000;
-	parameter INIT_40 = 256'h0000000000000000000000000000000000000000000000000000000000000000;
-	parameter INIT_41 = 256'h0000000000000000000000000000000000000000000000000000000000000000;
-	parameter INIT_42 = 256'h0000000000000000000000000000000000000000000000000000000000000000;
-	parameter INIT_43 = 256'h0000000000000000000000000000000000000000000000000000000000000000;
-	parameter INIT_44 = 256'h0000000000000000000000000000000000000000000000000000000000000000;
-	parameter INIT_45 = 256'h0000000000000000000000000000000000000000000000000000000000000000;
-	parameter INIT_46 = 256'h0000000000000000000000000000000000000000000000000000000000000000;
-	parameter INIT_47 = 256'h0000000000000000000000000000000000000000000000000000000000000000;
-	parameter INIT_48 = 256'h0000000000000000000000000000000000000000000000000000000000000000;
-	parameter INIT_49 = 256'h0000000000000000000000000000000000000000000000000000000000000000;
-	parameter INIT_4A = 256'h0000000000000000000000000000000000000000000000000000000000000000;
-	parameter INIT_4B = 256'h0000000000000000000000000000000000000000000000000000000000000000;
-	parameter INIT_4C = 256'h0000000000000000000000000000000000000000000000000000000000000000;
-	parameter INIT_4D = 256'h0000000000000000000000000000000000000000000000000000000000000000;
-	parameter INIT_4E = 256'h0000000000000000000000000000000000000000000000000000000000000000;
-	parameter INIT_4F = 256'h0000000000000000000000000000000000000000000000000000000000000000;
-	parameter INIT_50 = 256'h0000000000000000000000000000000000000000000000000000000000000000;
-	parameter INIT_51 = 256'h0000000000000000000000000000000000000000000000000000000000000000;
-	parameter INIT_52 = 256'h0000000000000000000000000000000000000000000000000000000000000000;
-	parameter INIT_53 = 256'h0000000000000000000000000000000000000000000000000000000000000000;
-	parameter INIT_54 = 256'h0000000000000000000000000000000000000000000000000000000000000000;
-	parameter INIT_55 = 256'h0000000000000000000000000000000000000000000000000000000000000000;
-	parameter INIT_56 = 256'h0000000000000000000000000000000000000000000000000000000000000000;
-	parameter INIT_57 = 256'h0000000000000000000000000000000000000000000000000000000000000000;
-	parameter INIT_58 = 256'h0000000000000000000000000000000000000000000000000000000000000000;
-	parameter INIT_59 = 256'h0000000000000000000000000000000000000000000000000000000000000000;
-	parameter INIT_5A = 256'h0000000000000000000000000000000000000000000000000000000000000000;
-	parameter INIT_5B = 256'h0000000000000000000000000000000000000000000000000000000000000000;
-	parameter INIT_5C = 256'h0000000000000000000000000000000000000000000000000000000000000000;
-	parameter INIT_5D = 256'h0000000000000000000000000000000000000000000000000000000000000000;
-	parameter INIT_5E = 256'h0000000000000000000000000000000000000000000000000000000000000000;
-	parameter INIT_5F = 256'h0000000000000000000000000000000000000000000000000000000000000000;
-	parameter INIT_60 = 256'h0000000000000000000000000000000000000000000000000000000000000000;
-	parameter INIT_61 = 256'h0000000000000000000000000000000000000000000000000000000000000000;
-	parameter INIT_62 = 256'h0000000000000000000000000000000000000000000000000000000000000000;
-	parameter INIT_63 = 256'h0000000000000000000000000000000000000000000000000000000000000000;
-	parameter INIT_64 = 256'h0000000000000000000000000000000000000000000000000000000000000000;
-	parameter INIT_65 = 256'h0000000000000000000000000000000000000000000000000000000000000000;
-	parameter INIT_66 = 256'h0000000000000000000000000000000000000000000000000000000000000000;
-	parameter INIT_67 = 256'h0000000000000000000000000000000000000000000000000000000000000000;
-	parameter INIT_68 = 256'h0000000000000000000000000000000000000000000000000000000000000000;
-	parameter INIT_69 = 256'h0000000000000000000000000000000000000000000000000000000000000000;
-	parameter INIT_6A = 256'h0000000000000000000000000000000000000000000000000000000000000000;
-	parameter INIT_6B = 256'h0000000000000000000000000000000000000000000000000000000000000000;
-	parameter INIT_6C = 256'h0000000000000000000000000000000000000000000000000000000000000000;
-	parameter INIT_6D = 256'h0000000000000000000000000000000000000000000000000000000000000000;
-	parameter INIT_6E = 256'h0000000000000000000000000000000000000000000000000000000000000000;
-	parameter INIT_6F = 256'h0000000000000000000000000000000000000000000000000000000000000000;
-	parameter INIT_70 = 256'h0000000000000000000000000000000000000000000000000000000000000000;
-	parameter INIT_71 = 256'h0000000000000000000000000000000000000000000000000000000000000000;
-	parameter INIT_72 = 256'h0000000000000000000000000000000000000000000000000000000000000000;
-	parameter INIT_73 = 256'h0000000000000000000000000000000000000000000000000000000000000000;
-	parameter INIT_74 = 256'h0000000000000000000000000000000000000000000000000000000000000000;
-	parameter INIT_75 = 256'h0000000000000000000000000000000000000000000000000000000000000000;
-	parameter INIT_76 = 256'h0000000000000000000000000000000000000000000000000000000000000000;
-	parameter INIT_77 = 256'h0000000000000000000000000000000000000000000000000000000000000000;
-	parameter INIT_78 = 256'h0000000000000000000000000000000000000000000000000000000000000000;
-	parameter INIT_79 = 256'h0000000000000000000000000000000000000000000000000000000000000000;
-	parameter INIT_7A = 256'h0000000000000000000000000000000000000000000000000000000000000000;
-	parameter INIT_7B = 256'h0000000000000000000000000000000000000000000000000000000000000000;
-	parameter INIT_7C = 256'h0000000000000000000000000000000000000000000000000000000000000000;
-	parameter INIT_7D = 256'h0000000000000000000000000000000000000000000000000000000000000000;
-	parameter INIT_7E = 256'h0000000000000000000000000000000000000000000000000000000000000000;
-	parameter INIT_7F = 256'h0000000000000000000000000000000000000000000000000000000000000000;
+    parameter INITP_00 = 256'h0000000000000000000000000000000000000000000000000000000000000000;
+    parameter INITP_01 = 256'h0000000000000000000000000000000000000000000000000000000000000000;
+    parameter INITP_02 = 256'h0000000000000000000000000000000000000000000000000000000000000000;
+    parameter INITP_03 = 256'h0000000000000000000000000000000000000000000000000000000000000000;
+    parameter INITP_04 = 256'h0000000000000000000000000000000000000000000000000000000000000000;
+    parameter INITP_05 = 256'h0000000000000000000000000000000000000000000000000000000000000000;
+    parameter INITP_06 = 256'h0000000000000000000000000000000000000000000000000000000000000000;
+    parameter INITP_07 = 256'h0000000000000000000000000000000000000000000000000000000000000000;
+    parameter INITP_08 = 256'h0000000000000000000000000000000000000000000000000000000000000000;
+    parameter INITP_09 = 256'h0000000000000000000000000000000000000000000000000000000000000000;
+    parameter INITP_0A = 256'h0000000000000000000000000000000000000000000000000000000000000000;
+    parameter INITP_0B = 256'h0000000000000000000000000000000000000000000000000000000000000000;
+    parameter INITP_0C = 256'h0000000000000000000000000000000000000000000000000000000000000000;
+    parameter INITP_0D = 256'h0000000000000000000000000000000000000000000000000000000000000000;
+    parameter INITP_0E = 256'h0000000000000000000000000000000000000000000000000000000000000000;
+    parameter INITP_0F = 256'h0000000000000000000000000000000000000000000000000000000000000000;
+    parameter INIT_00 = 256'h0000000000000000000000000000000000000000000000000000000000000000;
+    parameter INIT_01 = 256'h0000000000000000000000000000000000000000000000000000000000000000;
+    parameter INIT_02 = 256'h0000000000000000000000000000000000000000000000000000000000000000;
+    parameter INIT_03 = 256'h0000000000000000000000000000000000000000000000000000000000000000;
+    parameter INIT_04 = 256'h0000000000000000000000000000000000000000000000000000000000000000;
+    parameter INIT_05 = 256'h0000000000000000000000000000000000000000000000000000000000000000;
+    parameter INIT_06 = 256'h0000000000000000000000000000000000000000000000000000000000000000;
+    parameter INIT_07 = 256'h0000000000000000000000000000000000000000000000000000000000000000;
+    parameter INIT_08 = 256'h0000000000000000000000000000000000000000000000000000000000000000;
+    parameter INIT_09 = 256'h0000000000000000000000000000000000000000000000000000000000000000;
+    parameter INIT_0A = 256'h0000000000000000000000000000000000000000000000000000000000000000;
+    parameter INIT_0B = 256'h0000000000000000000000000000000000000000000000000000000000000000;
+    parameter INIT_0C = 256'h0000000000000000000000000000000000000000000000000000000000000000;
+    parameter INIT_0D = 256'h0000000000000000000000000000000000000000000000000000000000000000;
+    parameter INIT_0E = 256'h0000000000000000000000000000000000000000000000000000000000000000;
+    parameter INIT_0F = 256'h0000000000000000000000000000000000000000000000000000000000000000;
+    parameter INIT_10 = 256'h0000000000000000000000000000000000000000000000000000000000000000;
+    parameter INIT_11 = 256'h0000000000000000000000000000000000000000000000000000000000000000;
+    parameter INIT_12 = 256'h0000000000000000000000000000000000000000000000000000000000000000;
+    parameter INIT_13 = 256'h0000000000000000000000000000000000000000000000000000000000000000;
+    parameter INIT_14 = 256'h0000000000000000000000000000000000000000000000000000000000000000;
+    parameter INIT_15 = 256'h0000000000000000000000000000000000000000000000000000000000000000;
+    parameter INIT_16 = 256'h0000000000000000000000000000000000000000000000000000000000000000;
+    parameter INIT_17 = 256'h0000000000000000000000000000000000000000000000000000000000000000;
+    parameter INIT_18 = 256'h0000000000000000000000000000000000000000000000000000000000000000;
+    parameter INIT_19 = 256'h0000000000000000000000000000000000000000000000000000000000000000;
+    parameter INIT_1A = 256'h0000000000000000000000000000000000000000000000000000000000000000;
+    parameter INIT_1B = 256'h0000000000000000000000000000000000000000000000000000000000000000;
+    parameter INIT_1C = 256'h0000000000000000000000000000000000000000000000000000000000000000;
+    parameter INIT_1D = 256'h0000000000000000000000000000000000000000000000000000000000000000;
+    parameter INIT_1E = 256'h0000000000000000000000000000000000000000000000000000000000000000;
+    parameter INIT_1F = 256'h0000000000000000000000000000000000000000000000000000000000000000;
+    parameter INIT_20 = 256'h0000000000000000000000000000000000000000000000000000000000000000;
+    parameter INIT_21 = 256'h0000000000000000000000000000000000000000000000000000000000000000;
+    parameter INIT_22 = 256'h0000000000000000000000000000000000000000000000000000000000000000;
+    parameter INIT_23 = 256'h0000000000000000000000000000000000000000000000000000000000000000;
+    parameter INIT_24 = 256'h0000000000000000000000000000000000000000000000000000000000000000;
+    parameter INIT_25 = 256'h0000000000000000000000000000000000000000000000000000000000000000;
+    parameter INIT_26 = 256'h0000000000000000000000000000000000000000000000000000000000000000;
+    parameter INIT_27 = 256'h0000000000000000000000000000000000000000000000000000000000000000;
+    parameter INIT_28 = 256'h0000000000000000000000000000000000000000000000000000000000000000;
+    parameter INIT_29 = 256'h0000000000000000000000000000000000000000000000000000000000000000;
+    parameter INIT_2A = 256'h0000000000000000000000000000000000000000000000000000000000000000;
+    parameter INIT_2B = 256'h0000000000000000000000000000000000000000000000000000000000000000;
+    parameter INIT_2C = 256'h0000000000000000000000000000000000000000000000000000000000000000;
+    parameter INIT_2D = 256'h0000000000000000000000000000000000000000000000000000000000000000;
+    parameter INIT_2E = 256'h0000000000000000000000000000000000000000000000000000000000000000;
+    parameter INIT_2F = 256'h0000000000000000000000000000000000000000000000000000000000000000;
+    parameter INIT_30 = 256'h0000000000000000000000000000000000000000000000000000000000000000;
+    parameter INIT_31 = 256'h0000000000000000000000000000000000000000000000000000000000000000;
+    parameter INIT_32 = 256'h0000000000000000000000000000000000000000000000000000000000000000;
+    parameter INIT_33 = 256'h0000000000000000000000000000000000000000000000000000000000000000;
+    parameter INIT_34 = 256'h0000000000000000000000000000000000000000000000000000000000000000;
+    parameter INIT_35 = 256'h0000000000000000000000000000000000000000000000000000000000000000;
+    parameter INIT_36 = 256'h0000000000000000000000000000000000000000000000000000000000000000;
+    parameter INIT_37 = 256'h0000000000000000000000000000000000000000000000000000000000000000;
+    parameter INIT_38 = 256'h0000000000000000000000000000000000000000000000000000000000000000;
+    parameter INIT_39 = 256'h0000000000000000000000000000000000000000000000000000000000000000;
+    parameter INIT_3A = 256'h0000000000000000000000000000000000000000000000000000000000000000;
+    parameter INIT_3B = 256'h0000000000000000000000000000000000000000000000000000000000000000;
+    parameter INIT_3C = 256'h0000000000000000000000000000000000000000000000000000000000000000;
+    parameter INIT_3D = 256'h0000000000000000000000000000000000000000000000000000000000000000;
+    parameter INIT_3E = 256'h0000000000000000000000000000000000000000000000000000000000000000;
+    parameter INIT_3F = 256'h0000000000000000000000000000000000000000000000000000000000000000;
+    parameter INIT_40 = 256'h0000000000000000000000000000000000000000000000000000000000000000;
+    parameter INIT_41 = 256'h0000000000000000000000000000000000000000000000000000000000000000;
+    parameter INIT_42 = 256'h0000000000000000000000000000000000000000000000000000000000000000;
+    parameter INIT_43 = 256'h0000000000000000000000000000000000000000000000000000000000000000;
+    parameter INIT_44 = 256'h0000000000000000000000000000000000000000000000000000000000000000;
+    parameter INIT_45 = 256'h0000000000000000000000000000000000000000000000000000000000000000;
+    parameter INIT_46 = 256'h0000000000000000000000000000000000000000000000000000000000000000;
+    parameter INIT_47 = 256'h0000000000000000000000000000000000000000000000000000000000000000;
+    parameter INIT_48 = 256'h0000000000000000000000000000000000000000000000000000000000000000;
+    parameter INIT_49 = 256'h0000000000000000000000000000000000000000000000000000000000000000;
+    parameter INIT_4A = 256'h0000000000000000000000000000000000000000000000000000000000000000;
+    parameter INIT_4B = 256'h0000000000000000000000000000000000000000000000000000000000000000;
+    parameter INIT_4C = 256'h0000000000000000000000000000000000000000000000000000000000000000;
+    parameter INIT_4D = 256'h0000000000000000000000000000000000000000000000000000000000000000;
+    parameter INIT_4E = 256'h0000000000000000000000000000000000000000000000000000000000000000;
+    parameter INIT_4F = 256'h0000000000000000000000000000000000000000000000000000000000000000;
+    parameter INIT_50 = 256'h0000000000000000000000000000000000000000000000000000000000000000;
+    parameter INIT_51 = 256'h0000000000000000000000000000000000000000000000000000000000000000;
+    parameter INIT_52 = 256'h0000000000000000000000000000000000000000000000000000000000000000;
+    parameter INIT_53 = 256'h0000000000000000000000000000000000000000000000000000000000000000;
+    parameter INIT_54 = 256'h0000000000000000000000000000000000000000000000000000000000000000;
+    parameter INIT_55 = 256'h0000000000000000000000000000000000000000000000000000000000000000;
+    parameter INIT_56 = 256'h0000000000000000000000000000000000000000000000000000000000000000;
+    parameter INIT_57 = 256'h0000000000000000000000000000000000000000000000000000000000000000;
+    parameter INIT_58 = 256'h0000000000000000000000000000000000000000000000000000000000000000;
+    parameter INIT_59 = 256'h0000000000000000000000000000000000000000000000000000000000000000;
+    parameter INIT_5A = 256'h0000000000000000000000000000000000000000000000000000000000000000;
+    parameter INIT_5B = 256'h0000000000000000000000000000000000000000000000000000000000000000;
+    parameter INIT_5C = 256'h0000000000000000000000000000000000000000000000000000000000000000;
+    parameter INIT_5D = 256'h0000000000000000000000000000000000000000000000000000000000000000;
+    parameter INIT_5E = 256'h0000000000000000000000000000000000000000000000000000000000000000;
+    parameter INIT_5F = 256'h0000000000000000000000000000000000000000000000000000000000000000;
+    parameter INIT_60 = 256'h0000000000000000000000000000000000000000000000000000000000000000;
+    parameter INIT_61 = 256'h0000000000000000000000000000000000000000000000000000000000000000;
+    parameter INIT_62 = 256'h0000000000000000000000000000000000000000000000000000000000000000;
+    parameter INIT_63 = 256'h0000000000000000000000000000000000000000000000000000000000000000;
+    parameter INIT_64 = 256'h0000000000000000000000000000000000000000000000000000000000000000;
+    parameter INIT_65 = 256'h0000000000000000000000000000000000000000000000000000000000000000;
+    parameter INIT_66 = 256'h0000000000000000000000000000000000000000000000000000000000000000;
+    parameter INIT_67 = 256'h0000000000000000000000000000000000000000000000000000000000000000;
+    parameter INIT_68 = 256'h0000000000000000000000000000000000000000000000000000000000000000;
+    parameter INIT_69 = 256'h0000000000000000000000000000000000000000000000000000000000000000;
+    parameter INIT_6A = 256'h0000000000000000000000000000000000000000000000000000000000000000;
+    parameter INIT_6B = 256'h0000000000000000000000000000000000000000000000000000000000000000;
+    parameter INIT_6C = 256'h0000000000000000000000000000000000000000000000000000000000000000;
+    parameter INIT_6D = 256'h0000000000000000000000000000000000000000000000000000000000000000;
+    parameter INIT_6E = 256'h0000000000000000000000000000000000000000000000000000000000000000;
+    parameter INIT_6F = 256'h0000000000000000000000000000000000000000000000000000000000000000;
+    parameter INIT_70 = 256'h0000000000000000000000000000000000000000000000000000000000000000;
+    parameter INIT_71 = 256'h0000000000000000000000000000000000000000000000000000000000000000;
+    parameter INIT_72 = 256'h0000000000000000000000000000000000000000000000000000000000000000;
+    parameter INIT_73 = 256'h0000000000000000000000000000000000000000000000000000000000000000;
+    parameter INIT_74 = 256'h0000000000000000000000000000000000000000000000000000000000000000;
+    parameter INIT_75 = 256'h0000000000000000000000000000000000000000000000000000000000000000;
+    parameter INIT_76 = 256'h0000000000000000000000000000000000000000000000000000000000000000;
+    parameter INIT_77 = 256'h0000000000000000000000000000000000000000000000000000000000000000;
+    parameter INIT_78 = 256'h0000000000000000000000000000000000000000000000000000000000000000;
+    parameter INIT_79 = 256'h0000000000000000000000000000000000000000000000000000000000000000;
+    parameter INIT_7A = 256'h0000000000000000000000000000000000000000000000000000000000000000;
+    parameter INIT_7B = 256'h0000000000000000000000000000000000000000000000000000000000000000;
+    parameter INIT_7C = 256'h0000000000000000000000000000000000000000000000000000000000000000;
+    parameter INIT_7D = 256'h0000000000000000000000000000000000000000000000000000000000000000;
+    parameter INIT_7E = 256'h0000000000000000000000000000000000000000000000000000000000000000;
+    parameter INIT_7F = 256'h0000000000000000000000000000000000000000000000000000000000000000;
 
-	input wire WEN_A1_i;
-	input wire WEN_B1_i;
-	input wire REN_A1_i;
-	input wire REN_B1_i;
-	(* clkbuf_sink *)
-	input wire CLK_A1_i;
-	(* clkbuf_sink *)
-	input wire CLK_B1_i;
-	input wire [1:0] BE_A1_i;
-	input wire [1:0] BE_B1_i;
-	input wire [14:0] ADDR_A1_i;
-	input wire [14:0] ADDR_B1_i;
-	input wire [17:0] WDATA_A1_i;
-	input wire [17:0] WDATA_B1_i;
-	output reg [17:0] RDATA_A1_o;
-	output reg [17:0] RDATA_B1_o;
-	input wire FLUSH1_i;
-	input wire WEN_A2_i;
-	input wire WEN_B2_i;
-	input wire REN_A2_i;
-	input wire REN_B2_i;
-	(* clkbuf_sink *)
-	input wire CLK_A2_i;
-	(* clkbuf_sink *)
-	input wire CLK_B2_i;
-	input wire [1:0] BE_A2_i;
-	input wire [1:0] BE_B2_i;
-	input wire [13:0] ADDR_A2_i;
-	input wire [13:0] ADDR_B2_i;
-	input wire [17:0] WDATA_A2_i;
-	input wire [17:0] WDATA_B2_i;
-	output reg [17:0] RDATA_A2_o;
-	output reg [17:0] RDATA_B2_o;
-	input wire FLUSH2_i;
-	input wire [15:0] RAM_ID_i;
-	input wire PL_INIT_i;
-	input wire PL_ENA_i;
-	input wire PL_REN_i;
-	input wire PL_CLK_i;
-	input wire [1:0] PL_WEN_i;
-	input wire [31:0] PL_ADDR_i;
-	input wire [35:0] PL_DATA_i;
-	output reg PL_INIT_o;
-	output reg PL_ENA_o;
-	output reg PL_REN_o;
-	output reg PL_CLK_o;
-	output reg [1:0] PL_WEN_o;
-	output reg [31:0] PL_ADDR_o;
-	output reg [35:0] PL_DATA_o;
-	wire EMPTY2;
-	wire EPO2;
-	wire EWM2;
-	wire FULL2;
-	wire FMO2;
-	wire FWM2;
-	wire EMPTY1;
-	wire EPO1;
-	wire EWM1;
-	wire FULL1;
-	wire FMO1;
-	wire FWM1;
-	wire UNDERRUN1;
-	wire OVERRUN1;
-	wire UNDERRUN2;
-	wire OVERRUN2;
-	wire UNDERRUN3;
-	wire OVERRUN3;
-	wire EMPTY3;
-	wire EPO3;
-	wire EWM3;
-	wire FULL3;
-	wire FMO3;
-	wire FWM3;
-	wire ram_fmode1;
-	wire ram_fmode2;
-	wire [17:0] ram_rdata_a1;
-	wire [17:0] ram_rdata_b1;
-	wire [17:0] ram_rdata_a2;
-	wire [17:0] ram_rdata_b2;
-	reg [17:0] ram_wdata_a1;
-	reg [17:0] ram_wdata_b1;
-	reg [17:0] ram_wdata_a2;
-	reg [17:0] ram_wdata_b2;
-	reg [14:0] laddr_a1;
-	reg [14:0] laddr_b1;
-	wire [13:0] ram_addr_a1;
-	wire [13:0] ram_addr_b1;
-	wire [13:0] ram_addr_a2;
-	wire [13:0] ram_addr_b2;
-	wire smux_clk_a1;
-	wire smux_clk_b1;
-	wire smux_clk_a2;
-	wire smux_clk_b2;
-	reg [1:0] ram_be_a1;
-	reg [1:0] ram_be_a2;
-	reg [1:0] ram_be_b1;
-	reg [1:0] ram_be_b2;
-	reg [2:0] ram_rmode_a1;
-	reg [2:0] ram_wmode_a1;
-	reg [2:0] ram_rmode_b1;
-	reg [2:0] ram_wmode_b1;
-	reg [2:0] ram_rmode_a2;
-	reg [2:0] ram_wmode_a2;
-	reg [2:0] ram_rmode_b2;
-	reg [2:0] ram_wmode_b2;
-	wire ram_ren_a1;
-	wire ram_ren_b1;
-	wire ram_ren_a2;
-	wire ram_ren_b2;
-	wire ram_wen_a1;
-	wire ram_wen_b1;
-	wire ram_wen_a2;
-	wire ram_wen_b2;
-	wire ren_o;
-	wire [11:0] ff_raddr;
-	wire [11:0] ff_waddr;
-	reg [35:0] fifo_rdata;
-	reg [1:0] fifo_rmode;
-	reg [1:0] fifo_wmode;
-	wire [1:0] bwl;
-	wire [17:0] pl_dout0;
-	wire [17:0] pl_dout1;
-	assign ram_fmode1 = FMODE1_i & SPLIT_i;
-	assign ram_fmode2 = FMODE2_i & SPLIT_i;
-	assign smux_clk_a1 = CLK_A1_i;
-	assign smux_clk_b1 = (FMODE1_i ? (SYNC_FIFO1_i ? CLK_A1_i : CLK_B1_i) : CLK_B1_i);
-	assign smux_clk_a2 = (SPLIT_i ? CLK_A2_i : CLK_A1_i);
-	assign smux_clk_b2 = (SPLIT_i ? CLK_B2_i : (FMODE1_i ? (SYNC_FIFO1_i ? CLK_A1_i : CLK_B1_i) : CLK_B1_i));
-	assign ram_ren_a1 = (SPLIT_i ? REN_A1_i : (FMODE1_i ? 0 : REN_A1_i));
-	assign ram_ren_a2 = (SPLIT_i ? REN_A2_i : (FMODE1_i ? 0 : REN_A1_i));
-	assign ram_ren_b1 = (SPLIT_i ? REN_B1_i : (FMODE1_i ? ren_o : REN_B1_i));
-	assign ram_ren_b2 = (SPLIT_i ? REN_B2_i : (FMODE1_i ? ren_o : REN_B1_i));
-	localparam MODE_36 = 3'b111;
-	assign ram_wen_a1 = (SPLIT_i ? WEN_A1_i : (FMODE1_i ? ~FULL3 & WEN_A1_i : (WMODE_A1_i == MODE_36 ? WEN_A1_i : WEN_A1_i & ~ADDR_A1_i[4])));
-	assign ram_wen_a2 = (SPLIT_i ? WEN_A2_i : (FMODE1_i ? ~FULL3 & WEN_A1_i : (WMODE_A1_i == MODE_36 ? WEN_A1_i : WEN_A1_i & ADDR_A1_i[4])));
-	assign ram_wen_b1 = (SPLIT_i ? WEN_B1_i : (WMODE_B1_i == MODE_36 ? WEN_B1_i : WEN_B1_i & ~ADDR_B1_i[4]));
-	assign ram_wen_b2 = (SPLIT_i ? WEN_B2_i : (WMODE_B1_i == MODE_36 ? WEN_B1_i : WEN_B1_i & ADDR_B1_i[4]));
-	assign ram_addr_a1 = (SPLIT_i ? ADDR_A1_i[13:0] : (FMODE1_i ? {ff_waddr[11:2], ff_waddr[0], 3'b000} : {ADDR_A1_i[14:5], ADDR_A1_i[3:0]}));
-	assign ram_addr_b1 = (SPLIT_i ? ADDR_B1_i[13:0] : (FMODE1_i ? {ff_raddr[11:2], ff_raddr[0], 3'b000} : {ADDR_B1_i[14:5], ADDR_B1_i[3:0]}));
-	assign ram_addr_a2 = (SPLIT_i ? ADDR_A2_i[13:0] : (FMODE1_i ? {ff_waddr[11:2], ff_waddr[0], 3'b000} : {ADDR_A1_i[14:5], ADDR_A1_i[3:0]}));
-	assign ram_addr_b2 = (SPLIT_i ? ADDR_B2_i[13:0] : (FMODE1_i ? {ff_raddr[11:2], ff_raddr[0], 3'b000} : {ADDR_B1_i[14:5], ADDR_B1_i[3:0]}));
-	assign bwl = (SPLIT_i ? ADDR_A1_i[4:3] : (FMODE1_i ? ff_waddr[1:0] : ADDR_A1_i[4:3]));
-	localparam MODE_18 = 3'b110;
-	localparam MODE_9 = 3'b101;
-	always @(*) begin : WDATA_SEL
-		case (SPLIT_i)
-			1: begin
-				ram_wdata_a1 = WDATA_A1_i;
-				ram_wdata_a2 = WDATA_A2_i;
-				ram_wdata_b1 = WDATA_B1_i;
-				ram_wdata_b2 = WDATA_B2_i;
-				ram_be_a2 = BE_A2_i;
-				ram_be_b2 = BE_B2_i;
-				ram_be_a1 = BE_A1_i;
-				ram_be_b1 = BE_B1_i;
-			end
-			0: begin
-				case (WMODE_A1_i)
-					MODE_36: begin
-						ram_wdata_a1 = {WDATA_A2_i[15:14], WDATA_A1_i[15:0]};
-						ram_wdata_a2 = {WDATA_A2_i[17:16], WDATA_A2_i[13:0], WDATA_A1_i[17:16]};
-						ram_be_a2 = (FMODE1_i ? 2'b11 : BE_A2_i);
-						ram_be_a1 = (FMODE1_i ? 2'b11 : BE_A1_i);
-					end
-					MODE_18: begin
-						ram_wdata_a1 = WDATA_A1_i;
-						ram_wdata_a2 = WDATA_A1_i;
-						ram_be_a1 = (FMODE1_i ? (ff_waddr[1] ? 2'b00 : 2'b11) : BE_A1_i);
-						ram_be_a2 = (FMODE1_i ? (ff_waddr[1] ? 2'b11 : 2'b00) : BE_A1_i);
-					end
-					MODE_9:
-						case (bwl)
-							0: begin
-								ram_wdata_a1[8:0] = (FMODE1_i ? {WDATA_A1_i[0], WDATA_A1_i[7:0]} : WDATA_A1_i[8:0]);
-								ram_wdata_a1[17:9] = (FMODE1_i ? {{2 {WDATA_A1_i[8]}}, WDATA_A1_i[7:1]} : 9'b000000000);
-								ram_wdata_a2[8:0] = (FMODE1_i ? {WDATA_A1_i[0], WDATA_A1_i[7:0]} : 9'b000000000);
-								ram_wdata_a2[17:9] = (FMODE1_i ? {{2 {WDATA_A1_i[8]}}, WDATA_A1_i[7:1]} : 9'b000000000);
-								ram_be_a1[0] = (FMODE1_i ? (ff_waddr[1:0] == 0 ? 1'b1 : 1'b0) : 1'b1);
-								ram_be_a1[1] = (FMODE1_i ? (ff_waddr[1:0] == 1 ? 1'b1 : 1'b0) : 1'b0);
-								ram_be_a2[0] = (FMODE1_i ? (ff_waddr[1:0] == 2 ? 1'b1 : 1'b0) : 1'b0);
-								ram_be_a2[1] = (FMODE1_i ? (ff_waddr[1:0] == 3 ? 1'b1 : 1'b0) : 1'b0);
-							end
-							1: begin
-								ram_wdata_a1[8:0] = (FMODE1_i ? {WDATA_A1_i[0], WDATA_A1_i[7:0]} : WDATA_A1_i[8:0]);
-								ram_wdata_a1[17:9] = (FMODE1_i ? {{2 {WDATA_A1_i[8]}}, WDATA_A1_i[7:1]} : 9'b000000000);
-								ram_wdata_a2[8:0] = (FMODE1_i ? {WDATA_A1_i[0], WDATA_A1_i[7:0]} : 9'b000000000);
-								ram_wdata_a2[17:9] = (FMODE1_i ? {{2 {WDATA_A1_i[8]}}, WDATA_A1_i[7:1]} : 9'b000000000);
-								{ram_be_a2, ram_be_a1} = 4'b0010;
-							end
-							2: begin
-								ram_wdata_a1[8:0] = (FMODE1_i ? {WDATA_A1_i[0], WDATA_A1_i[7:0]} : 9'b000000000);
-								ram_wdata_a1[17:9] = (FMODE1_i ? {{2 {WDATA_A1_i[8]}}, WDATA_A1_i[7:1]} : 9'b000000000);
-								ram_wdata_a2[8:0] = (FMODE1_i ? {WDATA_A1_i[0], WDATA_A1_i[7:0]} : WDATA_A1_i[8:0]);
-								ram_wdata_a2[17:9] = (FMODE1_i ? {{2 {WDATA_A1_i[8]}}, WDATA_A1_i[7:1]} : 9'b000000000);
-								{ram_be_a2, ram_be_a1} = 4'b0100;
-							end
-							3: begin
-								ram_wdata_a1[8:0] = (FMODE1_i ? {WDATA_A1_i[0], WDATA_A1_i[7:0]} : 9'b000000000);
-								ram_wdata_a1[17:9] = (FMODE1_i ? {{2 {WDATA_A1_i[8]}}, WDATA_A1_i[7:1]} : 9'b000000000);
-								ram_wdata_a2[8:0] = (FMODE1_i ? {WDATA_A1_i[0], WDATA_A1_i[7:0]} : WDATA_A1_i[8:0]);
-								ram_wdata_a2[17:9] = (FMODE1_i ? {{2 {WDATA_A1_i[8]}}, WDATA_A1_i[7:1]} : 9'b000000000);
-								{ram_be_a2, ram_be_a1} = 4'b1000;
-							end
-						endcase
-					default: begin
-						ram_wdata_a1 = WDATA_A1_i;
-						ram_wdata_a2 = WDATA_A1_i;
-						ram_be_a2 = (FMODE1_i ? 2'b11 : BE_A1_i);
-						ram_be_a1 = (FMODE1_i ? 2'b11 : BE_A1_i);
-					end
-				endcase
-				case (WMODE_B1_i)
-					MODE_36: begin
-						ram_wdata_b1 = (FMODE1_i ? 18'b000000000000000000 : {WDATA_B2_i[15:14], WDATA_B1_i[15:0]});
-						ram_wdata_b2 = (FMODE1_i ? 18'b000000000000000000 : {WDATA_B2_i[17:16], WDATA_B2_i[13:0], WDATA_B1_i[17:16]});
-						ram_be_b2 = BE_B2_i;
-						ram_be_b1 = BE_B1_i;
-					end
-					MODE_18: begin
-						ram_wdata_b1 = (FMODE1_i ? 18'b000000000000000000 : WDATA_B1_i);
-						ram_wdata_b2 = (FMODE1_i ? 18'b000000000000000000 : WDATA_B1_i);
-						ram_be_b1 = BE_B1_i;
-						ram_be_b2 = BE_B1_i;
-					end
-					MODE_9:
-						case (ADDR_B1_i[4:3])
-							0: begin
-								ram_wdata_b1[8:0] = WDATA_B1_i[8:0];
-								ram_wdata_b1[17:9] = 9'b000000000;
-								ram_wdata_b2[8:0] = 9'b000000000;
-								ram_wdata_b2[17:9] = 9'b000000000;
-								{ram_be_b2, ram_be_b1} = 4'b0001;
-							end
-							1: begin
-								ram_wdata_b1[8:0] = WDATA_B1_i[8:0];
-								ram_wdata_b1[17:9] = 9'b000000000;
-								ram_wdata_b2[8:0] = 9'b000000000;
-								ram_wdata_b2[17:9] = 9'b000000000;
-								{ram_be_b2, ram_be_b1} = 4'b0010;
-							end
-							2: begin
-								ram_wdata_b1[8:0] = 9'b000000000;
-								ram_wdata_b1[17:9] = 9'b000000000;
-								ram_wdata_b2[8:0] = WDATA_B1_i[8:0];
-								ram_wdata_b2[17:9] = 9'b000000000;
-								{ram_be_b2, ram_be_b1} = 4'b0100;
-							end
-							3: begin
-								ram_wdata_b1[8:0] = 9'b000000000;
-								ram_wdata_b1[17:9] = 9'b000000000;
-								ram_wdata_b2[8:0] = WDATA_B1_i[8:0];
-								ram_wdata_b2[17:9] = 9'b000000000;
-								{ram_be_b2, ram_be_b1} = 4'b1000;
-							end
-						endcase
-					default: begin
-						ram_wdata_b1 = (FMODE1_i ? 18'b000000000000000000 : WDATA_B1_i);
-						ram_wdata_b2 = (FMODE1_i ? 18'b000000000000000000 : WDATA_B1_i);
-						ram_be_b2 = BE_B1_i;
-						ram_be_b1 = BE_B1_i;
-					end
-				endcase
-			end
-		endcase
-	end
-	always @(posedge CLK_A1_i or posedge CLK_B1_i or posedge CLK_A2_i or posedge CLK_B2_i) begin
-		if (!SPLIT_i) begin
-				ram_rmode_a1 <= (RMODE_A1_i == MODE_36 ? MODE_18 : RMODE_A1_i);
-				ram_rmode_a2 <= (RMODE_A1_i == MODE_36 ? MODE_18 : RMODE_A1_i);
-				ram_wmode_a1 <= (WMODE_A1_i == MODE_36 ? MODE_18 : (FMODE1_i ? MODE_18 : WMODE_A1_i));
-				ram_wmode_a2 <= (WMODE_A1_i == MODE_36 ? MODE_18 : (FMODE1_i ? MODE_18 : WMODE_A1_i));
-				ram_rmode_b1 <= (RMODE_B1_i == MODE_36 ? MODE_18 : (FMODE1_i ? MODE_18 : RMODE_B1_i));
-				ram_rmode_b2 <= (RMODE_B1_i == MODE_36 ? MODE_18 : (FMODE1_i ? MODE_18 : RMODE_B1_i));
-				ram_wmode_b1 <= (WMODE_B1_i == MODE_36 ? MODE_18 : WMODE_B1_i);
-				ram_wmode_b2 <= (WMODE_B1_i == MODE_36 ? MODE_18 : WMODE_B1_i);
-		end else begin
-				ram_rmode_a1 <= (RMODE_A1_i == MODE_36 ? MODE_18 : RMODE_A1_i);
-				ram_rmode_a2 <= (RMODE_A2_i == MODE_36 ? MODE_18 : RMODE_A2_i);
-				ram_wmode_a1 <= (WMODE_A1_i == MODE_36 ? MODE_18 : WMODE_A1_i);
-				ram_wmode_a2 <= (WMODE_A2_i == MODE_36 ? MODE_18 : WMODE_A2_i);
-				ram_rmode_b1 <= (RMODE_B1_i == MODE_36 ? MODE_18 : RMODE_B1_i);
-				ram_rmode_b2 <= (RMODE_B2_i == MODE_36 ? MODE_18 : RMODE_B2_i);
-				ram_wmode_b1 <= (WMODE_B1_i == MODE_36 ? MODE_18 : WMODE_B1_i);
-				ram_wmode_b2 <= (WMODE_B2_i == MODE_36 ? MODE_18 : WMODE_B2_i);
-		end
-	end
-	always @(*) begin : FIFO_READ_SEL
-		case (RMODE_B1_i)
-			MODE_36: fifo_rdata = {ram_rdata_b2[17:16], ram_rdata_b1[17:16], ram_rdata_b2[15:0], ram_rdata_b1[15:0]};
-			MODE_18: fifo_rdata = (ff_raddr[1] ? {18'b000000000000000000, ram_rdata_b2} : {18'b000000000000000000, ram_rdata_b1});
-			MODE_9:
-				case (ff_raddr[1:0])
-					0: fifo_rdata = {27'b000000000000000000000000000, ram_rdata_b1[16], ram_rdata_b1[7:0]};
-					1: fifo_rdata = {27'b000000000000000000000000000, ram_rdata_b1[17], ram_rdata_b1[15:8]};
-					2: fifo_rdata = {27'b000000000000000000000000000, ram_rdata_b2[16], ram_rdata_b2[7:0]};
-					3: fifo_rdata = {27'b000000000000000000000000000, ram_rdata_b2[17], ram_rdata_b2[15:8]};
-				endcase
-			default: fifo_rdata = {ram_rdata_b2[17:16], ram_rdata_b1[17:16], ram_rdata_b2[15:0], ram_rdata_b1[15:0]};
-		endcase
-	end
-	localparam MODE_1 = 3'b001;
-	localparam MODE_2 = 3'b010;
-	localparam MODE_4 = 3'b100;
-	always @(*) begin : RDATA_SEL
-		case (SPLIT_i)
-			1: begin
-				RDATA_A1_o = (FMODE1_i ? {10'b0000000000, EMPTY1, EPO1, EWM1, UNDERRUN1, FULL1, FMO1, FWM1, OVERRUN1} : ram_rdata_a1);
-				RDATA_B1_o = ram_rdata_b1;
-				RDATA_A2_o = (FMODE2_i ? {10'b0000000000, EMPTY2, EPO2, EWM2, UNDERRUN2, FULL2, FMO2, FWM2, OVERRUN2} : ram_rdata_a2);
-				RDATA_B2_o = ram_rdata_b2;
-			end
-			0: begin
-				if (FMODE1_i) begin
-					RDATA_A1_o = {10'b0000000000, EMPTY3, EPO3, EWM3, UNDERRUN3, FULL3, FMO3, FWM3, OVERRUN3};
-					RDATA_A2_o = 18'b000000000000000000;
-				end
-				else
-					case (RMODE_A1_i)
-						MODE_36: begin
-							RDATA_A1_o = {ram_rdata_a2[1:0], ram_rdata_a1[15:0]};
-							RDATA_A2_o = {ram_rdata_a2[17:16], ram_rdata_a1[17:16], ram_rdata_a2[15:2]};
-						end
-						MODE_18: begin
-							RDATA_A1_o = (laddr_a1[4] ? ram_rdata_a2 : ram_rdata_a1);
-							RDATA_A2_o = 18'b000000000000000000;
-						end
-						MODE_9: begin
-							RDATA_A1_o = (laddr_a1[4] ? {9'b000000000, ram_rdata_a2[8:0]} : {9'b000000000, ram_rdata_a1[8:0]});
-							RDATA_A2_o = 18'b000000000000000000;
-						end
-						MODE_4: begin
-							RDATA_A2_o = 18'b000000000000000000;
-							RDATA_A1_o[17:4] = 14'b00000000000000;
-							RDATA_A1_o[3:0] = (laddr_a1[4] ? ram_rdata_a2[3:0] : ram_rdata_a1[3:0]);
-						end
-						MODE_2: begin
-							RDATA_A2_o = 18'b000000000000000000;
-							RDATA_A1_o[17:2] = 16'b0000000000000000;
-							RDATA_A1_o[1:0] = (laddr_a1[4] ? ram_rdata_a2[1:0] : ram_rdata_a1[1:0]);
-						end
-						MODE_1: begin
-							RDATA_A2_o = 18'b000000000000000000;
-							RDATA_A1_o[17:1] = 17'b00000000000000000;
-							RDATA_A1_o[0] = (laddr_a1[4] ? ram_rdata_a2[0] : ram_rdata_a1[0]);
-						end
-						default: begin
-							RDATA_A1_o = {ram_rdata_a2[1:0], ram_rdata_a1[15:0]};
-							RDATA_A2_o = {ram_rdata_a2[17:16], ram_rdata_a1[17:16], ram_rdata_a2[15:2]};
-						end
-					endcase
-				case (RMODE_B1_i)
-					MODE_36: begin
-						RDATA_B1_o = {ram_rdata_b2[1:0], ram_rdata_b1[15:0]};
-						RDATA_B2_o = {ram_rdata_b2[17:16], ram_rdata_b1[17:16], ram_rdata_b2[15:2]};
-					end
-					MODE_18: begin
-						RDATA_B1_o = (FMODE1_i ? fifo_rdata[17:0] : (laddr_b1[4] ? ram_rdata_b2 : ram_rdata_b1));
-						RDATA_B2_o = 18'b000000000000000000;
-					end
-					MODE_9: begin
-						RDATA_B1_o = (FMODE1_i ? {9'b000000000, fifo_rdata[8:0]} : (laddr_b1[4] ? {9'b000000000, ram_rdata_b2[8:0]} : {9'b000000000, ram_rdata_b1[8:0]}));
-						RDATA_B2_o = 18'b000000000000000000;
-					end
-					MODE_4: begin
-						RDATA_B2_o = 18'b000000000000000000;
-						RDATA_B1_o[17:4] = 14'b00000000000000;
-						RDATA_B1_o[3:0] = (laddr_b1[4] ? ram_rdata_b2[3:0] : ram_rdata_b1[3:0]);
-					end
-					MODE_2: begin
-						RDATA_B2_o = 18'b000000000000000000;
-						RDATA_B1_o[17:2] = 16'b0000000000000000;
-						RDATA_B1_o[1:0] = (laddr_b1[4] ? ram_rdata_b2[1:0] : ram_rdata_b1[1:0]);
-					end
-					MODE_1: begin
-						RDATA_B2_o = 18'b000000000000000000;
-						RDATA_B1_o[17:1] = 17'b00000000000000000;
-						RDATA_B1_o[0] = (laddr_b1[4] ? ram_rdata_b2[0] : ram_rdata_b1[0]);
-					end
-					default: begin
-						RDATA_B1_o = {ram_rdata_b2[1:0], ram_rdata_b1[15:0]};
-						RDATA_B2_o = {ram_rdata_b2[17:16], ram_rdata_b1[17:16], ram_rdata_b2[15:2]};
-					end
-				endcase
-			end
-		endcase
-	end
-	always @(posedge CLK_A1_i) laddr_a1 <= ADDR_A1_i;
-	always @(posedge CLK_B1_i) laddr_b1 <= ADDR_B1_i;
-	always @(posedge CLK_A1_i or posedge CLK_B1_i or posedge CLK_A2_i or posedge CLK_B2_i) begin
-		if (WMODE_A1_i == MODE_36)
-			fifo_wmode = 2'b00;
-		else if (WMODE_A1_i == MODE_18)
-			fifo_wmode = 2'b01;
-		else if (WMODE_A1_i == MODE_9)
-			fifo_wmode = 2'b10;
-		else
-			fifo_wmode = 2'b00;
+    input wire WEN_A1_i;
+    input wire WEN_B1_i;
+    input wire REN_A1_i;
+    input wire REN_B1_i;
+    (* clkbuf_sink *)
+    input wire CLK_A1_i;
+    (* clkbuf_sink *)
+    input wire CLK_B1_i;
+    input wire [1:0] BE_A1_i;
+    input wire [1:0] BE_B1_i;
+    input wire [14:0] ADDR_A1_i;
+    input wire [14:0] ADDR_B1_i;
+    input wire [17:0] WDATA_A1_i;
+    input wire [17:0] WDATA_B1_i;
+    output reg [17:0] RDATA_A1_o;
+    output reg [17:0] RDATA_B1_o;
+    input wire FLUSH1_i;
+    input wire WEN_A2_i;
+    input wire WEN_B2_i;
+    input wire REN_A2_i;
+    input wire REN_B2_i;
+    (* clkbuf_sink *)
+    input wire CLK_A2_i;
+    (* clkbuf_sink *)
+    input wire CLK_B2_i;
+    input wire [1:0] BE_A2_i;
+    input wire [1:0] BE_B2_i;
+    input wire [13:0] ADDR_A2_i;
+    input wire [13:0] ADDR_B2_i;
+    input wire [17:0] WDATA_A2_i;
+    input wire [17:0] WDATA_B2_i;
+    output reg [17:0] RDATA_A2_o;
+    output reg [17:0] RDATA_B2_o;
+    input wire FLUSH2_i;
+    input wire [15:0] RAM_ID_i;
+    input wire PL_INIT_i;
+    input wire PL_ENA_i;
+    input wire PL_REN_i;
+    input wire PL_CLK_i;
+    input wire [1:0] PL_WEN_i;
+    input wire [31:0] PL_ADDR_i;
+    input wire [35:0] PL_DATA_i;
+    output reg PL_INIT_o;
+    output reg PL_ENA_o;
+    output reg PL_REN_o;
+    output reg PL_CLK_o;
+    output reg [1:0] PL_WEN_o;
+    output reg [31:0] PL_ADDR_o;
+    output reg [35:0] PL_DATA_o;
+    wire EMPTY2;
+    wire EPO2;
+    wire EWM2;
+    wire FULL2;
+    wire FMO2;
+    wire FWM2;
+    wire EMPTY1;
+    wire EPO1;
+    wire EWM1;
+    wire FULL1;
+    wire FMO1;
+    wire FWM1;
+    wire UNDERRUN1;
+    wire OVERRUN1;
+    wire UNDERRUN2;
+    wire OVERRUN2;
+    wire UNDERRUN3;
+    wire OVERRUN3;
+    wire EMPTY3;
+    wire EPO3;
+    wire EWM3;
+    wire FULL3;
+    wire FMO3;
+    wire FWM3;
+    wire ram_fmode1;
+    wire ram_fmode2;
+    wire [17:0] ram_rdata_a1;
+    wire [17:0] ram_rdata_b1;
+    wire [17:0] ram_rdata_a2;
+    wire [17:0] ram_rdata_b2;
+    reg [17:0] ram_wdata_a1;
+    reg [17:0] ram_wdata_b1;
+    reg [17:0] ram_wdata_a2;
+    reg [17:0] ram_wdata_b2;
+    reg [14:0] laddr_a1;
+    reg [14:0] laddr_b1;
+    wire [13:0] ram_addr_a1;
+    wire [13:0] ram_addr_b1;
+    wire [13:0] ram_addr_a2;
+    wire [13:0] ram_addr_b2;
+    wire smux_clk_a1;
+    wire smux_clk_b1;
+    wire smux_clk_a2;
+    wire smux_clk_b2;
+    reg [1:0] ram_be_a1;
+    reg [1:0] ram_be_a2;
+    reg [1:0] ram_be_b1;
+    reg [1:0] ram_be_b2;
+    reg [2:0] ram_rmode_a1;
+    reg [2:0] ram_wmode_a1;
+    reg [2:0] ram_rmode_b1;
+    reg [2:0] ram_wmode_b1;
+    reg [2:0] ram_rmode_a2;
+    reg [2:0] ram_wmode_a2;
+    reg [2:0] ram_rmode_b2;
+    reg [2:0] ram_wmode_b2;
+    wire ram_ren_a1;
+    wire ram_ren_b1;
+    wire ram_ren_a2;
+    wire ram_ren_b2;
+    wire ram_wen_a1;
+    wire ram_wen_b1;
+    wire ram_wen_a2;
+    wire ram_wen_b2;
+    wire ren_o;
+    wire [11:0] ff_raddr;
+    wire [11:0] ff_waddr;
+    reg [35:0] fifo_rdata;
+    reg [1:0] fifo_rmode;
+    reg [1:0] fifo_wmode;
+    wire [1:0] bwl;
+    wire [17:0] pl_dout0;
+    wire [17:0] pl_dout1;
+    assign ram_fmode1 = FMODE1_i & SPLIT_i;
+    assign ram_fmode2 = FMODE2_i & SPLIT_i;
+    assign smux_clk_a1 = CLK_A1_i;
+    assign smux_clk_b1 = (FMODE1_i ? (SYNC_FIFO1_i ? CLK_A1_i : CLK_B1_i) : CLK_B1_i);
+    assign smux_clk_a2 = (SPLIT_i ? CLK_A2_i : CLK_A1_i);
+    assign smux_clk_b2 = (SPLIT_i ? CLK_B2_i : (FMODE1_i ? (SYNC_FIFO1_i ? CLK_A1_i : CLK_B1_i) : CLK_B1_i));
+    assign ram_ren_a1 = (SPLIT_i ? REN_A1_i : (FMODE1_i ? 0 : REN_A1_i));
+    assign ram_ren_a2 = (SPLIT_i ? REN_A2_i : (FMODE1_i ? 0 : REN_A1_i));
+    assign ram_ren_b1 = (SPLIT_i ? REN_B1_i : (FMODE1_i ? ren_o : REN_B1_i));
+    assign ram_ren_b2 = (SPLIT_i ? REN_B2_i : (FMODE1_i ? ren_o : REN_B1_i));
+    localparam MODE_36 = 3'b111;
+    assign ram_wen_a1 = (SPLIT_i ? WEN_A1_i : (FMODE1_i ? ~FULL3 & WEN_A1_i : (WMODE_A1_i == MODE_36 ? WEN_A1_i : WEN_A1_i & ~ADDR_A1_i[4])));
+    assign ram_wen_a2 = (SPLIT_i ? WEN_A2_i : (FMODE1_i ? ~FULL3 & WEN_A1_i : (WMODE_A1_i == MODE_36 ? WEN_A1_i : WEN_A1_i & ADDR_A1_i[4])));
+    assign ram_wen_b1 = (SPLIT_i ? WEN_B1_i : (WMODE_B1_i == MODE_36 ? WEN_B1_i : WEN_B1_i & ~ADDR_B1_i[4]));
+    assign ram_wen_b2 = (SPLIT_i ? WEN_B2_i : (WMODE_B1_i == MODE_36 ? WEN_B1_i : WEN_B1_i & ADDR_B1_i[4]));
+    assign ram_addr_a1 = (SPLIT_i ? ADDR_A1_i[13:0] : (FMODE1_i ? {ff_waddr[11:2], ff_waddr[0], 3'b000} : {ADDR_A1_i[14:5], ADDR_A1_i[3:0]}));
+    assign ram_addr_b1 = (SPLIT_i ? ADDR_B1_i[13:0] : (FMODE1_i ? {ff_raddr[11:2], ff_raddr[0], 3'b000} : {ADDR_B1_i[14:5], ADDR_B1_i[3:0]}));
+    assign ram_addr_a2 = (SPLIT_i ? ADDR_A2_i[13:0] : (FMODE1_i ? {ff_waddr[11:2], ff_waddr[0], 3'b000} : {ADDR_A1_i[14:5], ADDR_A1_i[3:0]}));
+    assign ram_addr_b2 = (SPLIT_i ? ADDR_B2_i[13:0] : (FMODE1_i ? {ff_raddr[11:2], ff_raddr[0], 3'b000} : {ADDR_B1_i[14:5], ADDR_B1_i[3:0]}));
+    assign bwl = (SPLIT_i ? ADDR_A1_i[4:3] : (FMODE1_i ? ff_waddr[1:0] : ADDR_A1_i[4:3]));
+    localparam MODE_18 = 3'b110;
+    localparam MODE_9 = 3'b101;
+    always @(*) begin : WDATA_SEL
+        case (SPLIT_i)
+            1: begin
+                ram_wdata_a1 = WDATA_A1_i;
+                ram_wdata_a2 = WDATA_A2_i;
+                ram_wdata_b1 = WDATA_B1_i;
+                ram_wdata_b2 = WDATA_B2_i;
+                ram_be_a2 = BE_A2_i;
+                ram_be_b2 = BE_B2_i;
+                ram_be_a1 = BE_A1_i;
+                ram_be_b1 = BE_B1_i;
+            end
+            0: begin
+                case (WMODE_A1_i)
+                    MODE_36: begin
+                        ram_wdata_a1 = {WDATA_A2_i[15:14], WDATA_A1_i[15:0]};
+                        ram_wdata_a2 = {WDATA_A2_i[17:16], WDATA_A2_i[13:0], WDATA_A1_i[17:16]};
+                        ram_be_a2 = (FMODE1_i ? 2'b11 : BE_A2_i);
+                        ram_be_a1 = (FMODE1_i ? 2'b11 : BE_A1_i);
+                    end
+                    MODE_18: begin
+                        ram_wdata_a1 = WDATA_A1_i;
+                        ram_wdata_a2 = WDATA_A1_i;
+                        ram_be_a1 = (FMODE1_i ? (ff_waddr[1] ? 2'b00 : 2'b11) : BE_A1_i);
+                        ram_be_a2 = (FMODE1_i ? (ff_waddr[1] ? 2'b11 : 2'b00) : BE_A1_i);
+                    end
+                    MODE_9:
+                        case (bwl)
+                            0: begin
+                                ram_wdata_a1[8:0] = (FMODE1_i ? {WDATA_A1_i[0], WDATA_A1_i[7:0]} : WDATA_A1_i[8:0]);
+                                ram_wdata_a1[17:9] = (FMODE1_i ? {{2 {WDATA_A1_i[8]}}, WDATA_A1_i[7:1]} : 9'b000000000);
+                                ram_wdata_a2[8:0] = (FMODE1_i ? {WDATA_A1_i[0], WDATA_A1_i[7:0]} : 9'b000000000);
+                                ram_wdata_a2[17:9] = (FMODE1_i ? {{2 {WDATA_A1_i[8]}}, WDATA_A1_i[7:1]} : 9'b000000000);
+                                ram_be_a1[0] = (FMODE1_i ? (ff_waddr[1:0] == 0 ? 1'b1 : 1'b0) : 1'b1);
+                                ram_be_a1[1] = (FMODE1_i ? (ff_waddr[1:0] == 1 ? 1'b1 : 1'b0) : 1'b0);
+                                ram_be_a2[0] = (FMODE1_i ? (ff_waddr[1:0] == 2 ? 1'b1 : 1'b0) : 1'b0);
+                                ram_be_a2[1] = (FMODE1_i ? (ff_waddr[1:0] == 3 ? 1'b1 : 1'b0) : 1'b0);
+                            end
+                            1: begin
+                                ram_wdata_a1[8:0] = (FMODE1_i ? {WDATA_A1_i[0], WDATA_A1_i[7:0]} : WDATA_A1_i[8:0]);
+                                ram_wdata_a1[17:9] = (FMODE1_i ? {{2 {WDATA_A1_i[8]}}, WDATA_A1_i[7:1]} : 9'b000000000);
+                                ram_wdata_a2[8:0] = (FMODE1_i ? {WDATA_A1_i[0], WDATA_A1_i[7:0]} : 9'b000000000);
+                                ram_wdata_a2[17:9] = (FMODE1_i ? {{2 {WDATA_A1_i[8]}}, WDATA_A1_i[7:1]} : 9'b000000000);
+                                {ram_be_a2, ram_be_a1} = 4'b0010;
+                            end
+                            2: begin
+                                ram_wdata_a1[8:0] = (FMODE1_i ? {WDATA_A1_i[0], WDATA_A1_i[7:0]} : 9'b000000000);
+                                ram_wdata_a1[17:9] = (FMODE1_i ? {{2 {WDATA_A1_i[8]}}, WDATA_A1_i[7:1]} : 9'b000000000);
+                                ram_wdata_a2[8:0] = (FMODE1_i ? {WDATA_A1_i[0], WDATA_A1_i[7:0]} : WDATA_A1_i[8:0]);
+                                ram_wdata_a2[17:9] = (FMODE1_i ? {{2 {WDATA_A1_i[8]}}, WDATA_A1_i[7:1]} : 9'b000000000);
+                                {ram_be_a2, ram_be_a1} = 4'b0100;
+                            end
+                            3: begin
+                                ram_wdata_a1[8:0] = (FMODE1_i ? {WDATA_A1_i[0], WDATA_A1_i[7:0]} : 9'b000000000);
+                                ram_wdata_a1[17:9] = (FMODE1_i ? {{2 {WDATA_A1_i[8]}}, WDATA_A1_i[7:1]} : 9'b000000000);
+                                ram_wdata_a2[8:0] = (FMODE1_i ? {WDATA_A1_i[0], WDATA_A1_i[7:0]} : WDATA_A1_i[8:0]);
+                                ram_wdata_a2[17:9] = (FMODE1_i ? {{2 {WDATA_A1_i[8]}}, WDATA_A1_i[7:1]} : 9'b000000000);
+                                {ram_be_a2, ram_be_a1} = 4'b1000;
+                            end
+                        endcase
+                    default: begin
+                        ram_wdata_a1 = WDATA_A1_i;
+                        ram_wdata_a2 = WDATA_A1_i;
+                        ram_be_a2 = (FMODE1_i ? 2'b11 : BE_A1_i);
+                        ram_be_a1 = (FMODE1_i ? 2'b11 : BE_A1_i);
+                    end
+                endcase
+                case (WMODE_B1_i)
+                    MODE_36: begin
+                        ram_wdata_b1 = (FMODE1_i ? 18'b000000000000000000 : {WDATA_B2_i[15:14], WDATA_B1_i[15:0]});
+                        ram_wdata_b2 = (FMODE1_i ? 18'b000000000000000000 : {WDATA_B2_i[17:16], WDATA_B2_i[13:0], WDATA_B1_i[17:16]});
+                        ram_be_b2 = BE_B2_i;
+                        ram_be_b1 = BE_B1_i;
+                    end
+                    MODE_18: begin
+                        ram_wdata_b1 = (FMODE1_i ? 18'b000000000000000000 : WDATA_B1_i);
+                        ram_wdata_b2 = (FMODE1_i ? 18'b000000000000000000 : WDATA_B1_i);
+                        ram_be_b1 = BE_B1_i;
+                        ram_be_b2 = BE_B1_i;
+                    end
+                    MODE_9:
+                        case (ADDR_B1_i[4:3])
+                            0: begin
+                                ram_wdata_b1[8:0] = WDATA_B1_i[8:0];
+                                ram_wdata_b1[17:9] = 9'b000000000;
+                                ram_wdata_b2[8:0] = 9'b000000000;
+                                ram_wdata_b2[17:9] = 9'b000000000;
+                                {ram_be_b2, ram_be_b1} = 4'b0001;
+                            end
+                            1: begin
+                                ram_wdata_b1[8:0] = WDATA_B1_i[8:0];
+                                ram_wdata_b1[17:9] = 9'b000000000;
+                                ram_wdata_b2[8:0] = 9'b000000000;
+                                ram_wdata_b2[17:9] = 9'b000000000;
+                                {ram_be_b2, ram_be_b1} = 4'b0010;
+                            end
+                            2: begin
+                                ram_wdata_b1[8:0] = 9'b000000000;
+                                ram_wdata_b1[17:9] = 9'b000000000;
+                                ram_wdata_b2[8:0] = WDATA_B1_i[8:0];
+                                ram_wdata_b2[17:9] = 9'b000000000;
+                                {ram_be_b2, ram_be_b1} = 4'b0100;
+                            end
+                            3: begin
+                                ram_wdata_b1[8:0] = 9'b000000000;
+                                ram_wdata_b1[17:9] = 9'b000000000;
+                                ram_wdata_b2[8:0] = WDATA_B1_i[8:0];
+                                ram_wdata_b2[17:9] = 9'b000000000;
+                                {ram_be_b2, ram_be_b1} = 4'b1000;
+                            end
+                        endcase
+                    default: begin
+                        ram_wdata_b1 = (FMODE1_i ? 18'b000000000000000000 : WDATA_B1_i);
+                        ram_wdata_b2 = (FMODE1_i ? 18'b000000000000000000 : WDATA_B1_i);
+                        ram_be_b2 = BE_B1_i;
+                        ram_be_b1 = BE_B1_i;
+                    end
+                endcase
+            end
+        endcase
+    end
+    always @(posedge CLK_A1_i or posedge CLK_B1_i or posedge CLK_A2_i or posedge CLK_B2_i) begin
+        if (!SPLIT_i) begin
+                ram_rmode_a1 <= (RMODE_A1_i == MODE_36 ? MODE_18 : RMODE_A1_i);
+                ram_rmode_a2 <= (RMODE_A1_i == MODE_36 ? MODE_18 : RMODE_A1_i);
+                ram_wmode_a1 <= (WMODE_A1_i == MODE_36 ? MODE_18 : (FMODE1_i ? MODE_18 : WMODE_A1_i));
+                ram_wmode_a2 <= (WMODE_A1_i == MODE_36 ? MODE_18 : (FMODE1_i ? MODE_18 : WMODE_A1_i));
+                ram_rmode_b1 <= (RMODE_B1_i == MODE_36 ? MODE_18 : (FMODE1_i ? MODE_18 : RMODE_B1_i));
+                ram_rmode_b2 <= (RMODE_B1_i == MODE_36 ? MODE_18 : (FMODE1_i ? MODE_18 : RMODE_B1_i));
+                ram_wmode_b1 <= (WMODE_B1_i == MODE_36 ? MODE_18 : WMODE_B1_i);
+                ram_wmode_b2 <= (WMODE_B1_i == MODE_36 ? MODE_18 : WMODE_B1_i);
+        end else begin
+                ram_rmode_a1 <= (RMODE_A1_i == MODE_36 ? MODE_18 : RMODE_A1_i);
+                ram_rmode_a2 <= (RMODE_A2_i == MODE_36 ? MODE_18 : RMODE_A2_i);
+                ram_wmode_a1 <= (WMODE_A1_i == MODE_36 ? MODE_18 : WMODE_A1_i);
+                ram_wmode_a2 <= (WMODE_A2_i == MODE_36 ? MODE_18 : WMODE_A2_i);
+                ram_rmode_b1 <= (RMODE_B1_i == MODE_36 ? MODE_18 : RMODE_B1_i);
+                ram_rmode_b2 <= (RMODE_B2_i == MODE_36 ? MODE_18 : RMODE_B2_i);
+                ram_wmode_b1 <= (WMODE_B1_i == MODE_36 ? MODE_18 : WMODE_B1_i);
+                ram_wmode_b2 <= (WMODE_B2_i == MODE_36 ? MODE_18 : WMODE_B2_i);
+        end
+    end
+    always @(*) begin : FIFO_READ_SEL
+        case (RMODE_B1_i)
+            MODE_36: fifo_rdata = {ram_rdata_b2[17:16], ram_rdata_b1[17:16], ram_rdata_b2[15:0], ram_rdata_b1[15:0]};
+            MODE_18: fifo_rdata = (ff_raddr[1] ? {18'b000000000000000000, ram_rdata_b2} : {18'b000000000000000000, ram_rdata_b1});
+            MODE_9:
+                case (ff_raddr[1:0])
+                    0: fifo_rdata = {27'b000000000000000000000000000, ram_rdata_b1[16], ram_rdata_b1[7:0]};
+                    1: fifo_rdata = {27'b000000000000000000000000000, ram_rdata_b1[17], ram_rdata_b1[15:8]};
+                    2: fifo_rdata = {27'b000000000000000000000000000, ram_rdata_b2[16], ram_rdata_b2[7:0]};
+                    3: fifo_rdata = {27'b000000000000000000000000000, ram_rdata_b2[17], ram_rdata_b2[15:8]};
+                endcase
+            default: fifo_rdata = {ram_rdata_b2[17:16], ram_rdata_b1[17:16], ram_rdata_b2[15:0], ram_rdata_b1[15:0]};
+        endcase
+    end
+    localparam MODE_1 = 3'b001;
+    localparam MODE_2 = 3'b010;
+    localparam MODE_4 = 3'b100;
+    always @(*) begin : RDATA_SEL
+        case (SPLIT_i)
+            1: begin
+                RDATA_A1_o = (FMODE1_i ? {10'b0000000000, EMPTY1, EPO1, EWM1, UNDERRUN1, FULL1, FMO1, FWM1, OVERRUN1} : ram_rdata_a1);
+                RDATA_B1_o = ram_rdata_b1;
+                RDATA_A2_o = (FMODE2_i ? {10'b0000000000, EMPTY2, EPO2, EWM2, UNDERRUN2, FULL2, FMO2, FWM2, OVERRUN2} : ram_rdata_a2);
+                RDATA_B2_o = ram_rdata_b2;
+            end
+            0: begin
+                if (FMODE1_i) begin
+                    RDATA_A1_o = {10'b0000000000, EMPTY3, EPO3, EWM3, UNDERRUN3, FULL3, FMO3, FWM3, OVERRUN3};
+                    RDATA_A2_o = 18'b000000000000000000;
+                end
+                else
+                    case (RMODE_A1_i)
+                        MODE_36: begin
+                            RDATA_A1_o = {ram_rdata_a2[1:0], ram_rdata_a1[15:0]};
+                            RDATA_A2_o = {ram_rdata_a2[17:16], ram_rdata_a1[17:16], ram_rdata_a2[15:2]};
+                        end
+                        MODE_18: begin
+                            RDATA_A1_o = (laddr_a1[4] ? ram_rdata_a2 : ram_rdata_a1);
+                            RDATA_A2_o = 18'b000000000000000000;
+                        end
+                        MODE_9: begin
+                            RDATA_A1_o = (laddr_a1[4] ? {9'b000000000, ram_rdata_a2[8:0]} : {9'b000000000, ram_rdata_a1[8:0]});
+                            RDATA_A2_o = 18'b000000000000000000;
+                        end
+                        MODE_4: begin
+                            RDATA_A2_o = 18'b000000000000000000;
+                            RDATA_A1_o[17:4] = 14'b00000000000000;
+                            RDATA_A1_o[3:0] = (laddr_a1[4] ? ram_rdata_a2[3:0] : ram_rdata_a1[3:0]);
+                        end
+                        MODE_2: begin
+                            RDATA_A2_o = 18'b000000000000000000;
+                            RDATA_A1_o[17:2] = 16'b0000000000000000;
+                            RDATA_A1_o[1:0] = (laddr_a1[4] ? ram_rdata_a2[1:0] : ram_rdata_a1[1:0]);
+                        end
+                        MODE_1: begin
+                            RDATA_A2_o = 18'b000000000000000000;
+                            RDATA_A1_o[17:1] = 17'b00000000000000000;
+                            RDATA_A1_o[0] = (laddr_a1[4] ? ram_rdata_a2[0] : ram_rdata_a1[0]);
+                        end
+                        default: begin
+                            RDATA_A1_o = {ram_rdata_a2[1:0], ram_rdata_a1[15:0]};
+                            RDATA_A2_o = {ram_rdata_a2[17:16], ram_rdata_a1[17:16], ram_rdata_a2[15:2]};
+                        end
+                    endcase
+                case (RMODE_B1_i)
+                    MODE_36: begin
+                        RDATA_B1_o = {ram_rdata_b2[1:0], ram_rdata_b1[15:0]};
+                        RDATA_B2_o = {ram_rdata_b2[17:16], ram_rdata_b1[17:16], ram_rdata_b2[15:2]};
+                    end
+                    MODE_18: begin
+                        RDATA_B1_o = (FMODE1_i ? fifo_rdata[17:0] : (laddr_b1[4] ? ram_rdata_b2 : ram_rdata_b1));
+                        RDATA_B2_o = 18'b000000000000000000;
+                    end
+                    MODE_9: begin
+                        RDATA_B1_o = (FMODE1_i ? {9'b000000000, fifo_rdata[8:0]} : (laddr_b1[4] ? {9'b000000000, ram_rdata_b2[8:0]} : {9'b000000000, ram_rdata_b1[8:0]}));
+                        RDATA_B2_o = 18'b000000000000000000;
+                    end
+                    MODE_4: begin
+                        RDATA_B2_o = 18'b000000000000000000;
+                        RDATA_B1_o[17:4] = 14'b00000000000000;
+                        RDATA_B1_o[3:0] = (laddr_b1[4] ? ram_rdata_b2[3:0] : ram_rdata_b1[3:0]);
+                    end
+                    MODE_2: begin
+                        RDATA_B2_o = 18'b000000000000000000;
+                        RDATA_B1_o[17:2] = 16'b0000000000000000;
+                        RDATA_B1_o[1:0] = (laddr_b1[4] ? ram_rdata_b2[1:0] : ram_rdata_b1[1:0]);
+                    end
+                    MODE_1: begin
+                        RDATA_B2_o = 18'b000000000000000000;
+                        RDATA_B1_o[17:1] = 17'b00000000000000000;
+                        RDATA_B1_o[0] = (laddr_b1[4] ? ram_rdata_b2[0] : ram_rdata_b1[0]);
+                    end
+                    default: begin
+                        RDATA_B1_o = {ram_rdata_b2[1:0], ram_rdata_b1[15:0]};
+                        RDATA_B2_o = {ram_rdata_b2[17:16], ram_rdata_b1[17:16], ram_rdata_b2[15:2]};
+                    end
+                endcase
+            end
+        endcase
+    end
+    always @(posedge CLK_A1_i) laddr_a1 <= ADDR_A1_i;
+    always @(posedge CLK_B1_i) laddr_b1 <= ADDR_B1_i;
+    always @(posedge CLK_A1_i or posedge CLK_B1_i or posedge CLK_A2_i or posedge CLK_B2_i) begin
+        if (WMODE_A1_i == MODE_36)
+            fifo_wmode = 2'b00;
+        else if (WMODE_A1_i == MODE_18)
+            fifo_wmode = 2'b01;
+        else if (WMODE_A1_i == MODE_9)
+            fifo_wmode = 2'b10;
+        else
+            fifo_wmode = 2'b00;
 
-		if (RMODE_B1_i == MODE_36)
-			fifo_rmode = 2'b00;
-		else if (RMODE_B1_i == MODE_18)
-			fifo_rmode = 2'b01;
-		else if (RMODE_B1_i == MODE_9)
-			fifo_rmode = 2'b10;
-		else
-			fifo_rmode = 2'b00;
-	end
-	fifo_ctl #(
-		.ADDR_WIDTH(12),
-		.FIFO_WIDTH(3'd4)
-	) fifo36_ctl(
-		.rclk(smux_clk_b1),
-		.rst_R_n(~FLUSH1_i),
-		.wclk(smux_clk_a1),
-		.rst_W_n(~FLUSH1_i),
-		.ren(REN_B1_i),
-		.wen(ram_wen_a1),
-		.sync(SYNC_FIFO1_i),
-		.depth(3'b111),
-		.rmode(fifo_rmode),
-		.wmode(fifo_wmode),
-		.ren_o(ren_o),
-		.fflags({FULL3, FMO3, FWM3, OVERRUN3, EMPTY3, EPO3, EWM3, UNDERRUN3}),
-		.raddr(ff_raddr),
-		.waddr(ff_waddr),
-		.upaf(UPAF1_i),
-		.upae(UPAE1_i)
-	);
-	TDP18K_FIFO #(
-		.UPAF(UPAF1_i[10:0]),
-		.UPAE(UPAE1_i[10:0]),
-		.SYNC_FIFO(SYNC_FIFO1_i),
-		.POWERDN(POWERDN1_i),
-		.SLEEP(SLEEP1_i),
-		.PROTECT(PROTECT1_i)
-	)u1(
-		.RMODE_A(ram_rmode_a1),
-		.RMODE_B(ram_rmode_b1),
-		.WMODE_A(ram_wmode_a1),
-		.WMODE_B(ram_wmode_b1),
-		.WEN_A(ram_wen_a1),
-		.WEN_B(ram_wen_b1),
-		.REN_A(ram_ren_a1),
-		.REN_B(ram_ren_b1),
-		.CLK_A(smux_clk_a1),
-		.CLK_B(smux_clk_b1),
-		.BE_A(ram_be_a1),
-		.BE_B(ram_be_b1),
-		.ADDR_A(ram_addr_a1),
-		.ADDR_B(ram_addr_b1),
-		.WDATA_A(ram_wdata_a1),
-		.WDATA_B(ram_wdata_b1),
-		.RDATA_A(ram_rdata_a1),
-		.RDATA_B(ram_rdata_b1),
-		.EMPTY(EMPTY1),
-		.EPO(EPO1),
-		.EWM(EWM1),
-		.UNDERRUN(UNDERRUN1),
-		.FULL(FULL1),
-		.FMO(FMO1),
-		.FWM(FWM1),
-		.OVERRUN(OVERRUN1),
-		.FLUSH(FLUSH1_i),
-		.RAM_ID({RAM_ID_i}),
-		.FMODE(ram_fmode1),
-		.PL_INIT(PL_INIT_i),
-		.PL_ENA(PL_ENA_i),
-		.PL_WEN(PL_WEN_i[0]),
-		.PL_REN(PL_REN_i),
-		.PL_CLK(PL_CLK_i),
-		.PL_ADDR(PL_ADDR_i),
-		.PL_DATA_IN({PL_DATA_i[33:32], PL_DATA_i[15:0]}),
-		.PL_DATA_OUT(pl_dout0)
-	);
-	TDP18K_FIFO #(
-		.UPAF(UPAF2_i[10:0]),
-		.UPAE(UPAE2_i[10:0]),
-		.SYNC_FIFO(SYNC_FIFO2_i),
-		.POWERDN(POWERDN2_i),
-		.SLEEP(SLEEP2_i),
-		.PROTECT(PROTECT2_i)
-	)u2(
-		.RMODE_A(ram_rmode_a2),
-		.RMODE_B(ram_rmode_b2),
-		.WMODE_A(ram_wmode_a2),
-		.WMODE_B(ram_wmode_b2),
-		.WEN_A(ram_wen_a2),
-		.WEN_B(ram_wen_b2),
-		.REN_A(ram_ren_a2),
-		.REN_B(ram_ren_b2),
-		.CLK_A(smux_clk_a2),
-		.CLK_B(smux_clk_b2),
-		.BE_A(ram_be_a2),
-		.BE_B(ram_be_b2),
-		.ADDR_A(ram_addr_a2),
-		.ADDR_B(ram_addr_b2),
-		.WDATA_A(ram_wdata_a2),
-		.WDATA_B(ram_wdata_b2),
-		.RDATA_A(ram_rdata_a2),
-		.RDATA_B(ram_rdata_b2),
-		.EMPTY(EMPTY2),
-		.EPO(EPO2),
-		.EWM(EWM2),
-		.UNDERRUN(UNDERRUN2),
-		.FULL(FULL2),
-		.FMO(FMO2),
-		.FWM(FWM2),
-		.OVERRUN(OVERRUN2),
-		.FLUSH(FLUSH2_i),
-		.RAM_ID({RAM_ID_i}),
-		.FMODE(ram_fmode2),
-		.PL_INIT(PL_INIT_i),
-		.PL_ENA(PL_ENA_i),
-		.PL_WEN(PL_WEN_i[1]),
-		.PL_REN(PL_REN_i),
-		.PL_CLK(PL_CLK_i),
-		.PL_ADDR(PL_ADDR_i),
-		.PL_DATA_IN({PL_DATA_i[35:34], PL_DATA_i[31:16]}),
-		.PL_DATA_OUT(pl_dout1)
-	);
-	always @(*) begin
-		if (RAM_ID_i == PL_ADDR_i[31:16])
-			PL_DATA_o = (PL_REN_i ? {pl_dout1[17:16], pl_dout0[17:16], pl_dout1[15:0], pl_dout0[15:0]} : PL_DATA_i);
-		else
-			PL_DATA_o = PL_DATA_i;
-		PL_ADDR_o = PL_ADDR_i;
-		PL_INIT_o = PL_INIT_i;
-		PL_ENA_o = PL_ENA_i;
-		PL_WEN_o = PL_WEN_i;
-		PL_REN_o = PL_REN_i;
-		PL_CLK_o = PL_CLK_i;
-	end
+        if (RMODE_B1_i == MODE_36)
+            fifo_rmode = 2'b00;
+        else if (RMODE_B1_i == MODE_18)
+            fifo_rmode = 2'b01;
+        else if (RMODE_B1_i == MODE_9)
+            fifo_rmode = 2'b10;
+        else
+            fifo_rmode = 2'b00;
+    end
+    fifo_ctl #(
+        .ADDR_WIDTH(12),
+        .FIFO_WIDTH(3'd4)
+    ) fifo36_ctl(
+        .rclk(smux_clk_b1),
+        .rst_R_n(~FLUSH1_i),
+        .wclk(smux_clk_a1),
+        .rst_W_n(~FLUSH1_i),
+        .ren(REN_B1_i),
+        .wen(ram_wen_a1),
+        .sync(SYNC_FIFO1_i),
+        .depth(3'b111),
+        .rmode(fifo_rmode),
+        .wmode(fifo_wmode),
+        .ren_o(ren_o),
+        .fflags({FULL3, FMO3, FWM3, OVERRUN3, EMPTY3, EPO3, EWM3, UNDERRUN3}),
+        .raddr(ff_raddr),
+        .waddr(ff_waddr),
+        .upaf(UPAF1_i),
+        .upae(UPAE1_i)
+    );
+    TDP18K_FIFO #(
+        .UPAF(UPAF1_i[10:0]),
+        .UPAE(UPAE1_i[10:0]),
+        .SYNC_FIFO(SYNC_FIFO1_i),
+        .POWERDN(POWERDN1_i),
+        .SLEEP(SLEEP1_i),
+        .PROTECT(PROTECT1_i)
+    )u1(
+        .RMODE_A(ram_rmode_a1),
+        .RMODE_B(ram_rmode_b1),
+        .WMODE_A(ram_wmode_a1),
+        .WMODE_B(ram_wmode_b1),
+        .WEN_A(ram_wen_a1),
+        .WEN_B(ram_wen_b1),
+        .REN_A(ram_ren_a1),
+        .REN_B(ram_ren_b1),
+        .CLK_A(smux_clk_a1),
+        .CLK_B(smux_clk_b1),
+        .BE_A(ram_be_a1),
+        .BE_B(ram_be_b1),
+        .ADDR_A(ram_addr_a1),
+        .ADDR_B(ram_addr_b1),
+        .WDATA_A(ram_wdata_a1),
+        .WDATA_B(ram_wdata_b1),
+        .RDATA_A(ram_rdata_a1),
+        .RDATA_B(ram_rdata_b1),
+        .EMPTY(EMPTY1),
+        .EPO(EPO1),
+        .EWM(EWM1),
+        .UNDERRUN(UNDERRUN1),
+        .FULL(FULL1),
+        .FMO(FMO1),
+        .FWM(FWM1),
+        .OVERRUN(OVERRUN1),
+        .FLUSH(FLUSH1_i),
+        .RAM_ID({RAM_ID_i}),
+        .FMODE(ram_fmode1),
+        .PL_INIT(PL_INIT_i),
+        .PL_ENA(PL_ENA_i),
+        .PL_WEN(PL_WEN_i[0]),
+        .PL_REN(PL_REN_i),
+        .PL_CLK(PL_CLK_i),
+        .PL_ADDR(PL_ADDR_i),
+        .PL_DATA_IN({PL_DATA_i[33:32], PL_DATA_i[15:0]}),
+        .PL_DATA_OUT(pl_dout0)
+    );
+    TDP18K_FIFO #(
+        .UPAF(UPAF2_i[10:0]),
+        .UPAE(UPAE2_i[10:0]),
+        .SYNC_FIFO(SYNC_FIFO2_i),
+        .POWERDN(POWERDN2_i),
+        .SLEEP(SLEEP2_i),
+        .PROTECT(PROTECT2_i)
+    )u2(
+        .RMODE_A(ram_rmode_a2),
+        .RMODE_B(ram_rmode_b2),
+        .WMODE_A(ram_wmode_a2),
+        .WMODE_B(ram_wmode_b2),
+        .WEN_A(ram_wen_a2),
+        .WEN_B(ram_wen_b2),
+        .REN_A(ram_ren_a2),
+        .REN_B(ram_ren_b2),
+        .CLK_A(smux_clk_a2),
+        .CLK_B(smux_clk_b2),
+        .BE_A(ram_be_a2),
+        .BE_B(ram_be_b2),
+        .ADDR_A(ram_addr_a2),
+        .ADDR_B(ram_addr_b2),
+        .WDATA_A(ram_wdata_a2),
+        .WDATA_B(ram_wdata_b2),
+        .RDATA_A(ram_rdata_a2),
+        .RDATA_B(ram_rdata_b2),
+        .EMPTY(EMPTY2),
+        .EPO(EPO2),
+        .EWM(EWM2),
+        .UNDERRUN(UNDERRUN2),
+        .FULL(FULL2),
+        .FMO(FMO2),
+        .FWM(FWM2),
+        .OVERRUN(OVERRUN2),
+        .FLUSH(FLUSH2_i),
+        .RAM_ID({RAM_ID_i}),
+        .FMODE(ram_fmode2),
+        .PL_INIT(PL_INIT_i),
+        .PL_ENA(PL_ENA_i),
+        .PL_WEN(PL_WEN_i[1]),
+        .PL_REN(PL_REN_i),
+        .PL_CLK(PL_CLK_i),
+        .PL_ADDR(PL_ADDR_i),
+        .PL_DATA_IN({PL_DATA_i[35:34], PL_DATA_i[31:16]}),
+        .PL_DATA_OUT(pl_dout1)
+    );
+    always @(*) begin
+        if (RAM_ID_i == PL_ADDR_i[31:16])
+            PL_DATA_o = (PL_REN_i ? {pl_dout1[17:16], pl_dout0[17:16], pl_dout1[15:0], pl_dout0[15:0]} : PL_DATA_i);
+        else
+            PL_DATA_o = PL_DATA_i;
+        PL_ADDR_o = PL_ADDR_i;
+        PL_INIT_o = PL_INIT_i;
+        PL_ENA_o = PL_ENA_i;
+        PL_WEN_o = PL_WEN_i;
+        PL_REN_o = PL_REN_i;
+        PL_CLK_o = PL_CLK_i;
+    end
 endmodule
 
 (* blackbox *)
@@ -1306,9 +1306,9 @@
       assign z = f_mode ? {dsp_frac1_z, dsp_frac0_z} : dsp_full_z;
       assign dly_b = f_mode ? {dsp_frac1_dly_b, dsp_frac0_dly_b} : dsp_full_dly_b;
 
-	// Output used when fmode == 1
+    // Output used when fmode == 1
         dsp_t1_sim #(
-	    .NBITS_A(NBITS_A/2),
+        .NBITS_A(NBITS_A/2),
             .NBITS_B(NBITS_B/2),
             .NBITS_ACC(NBITS_ACC/2),
             .NBITS_Z(NBITS_Z/2),
@@ -1342,9 +1342,9 @@
             .coef_3_i(COEFF_3[(NBITS_COEF/2)-1:0])
         );
 
-	// Output used when fmode == 1
+    // Output used when fmode == 1
         dsp_t1_sim #(
-	    .NBITS_A(NBITS_A/2),
+        .NBITS_A(NBITS_A/2),
             .NBITS_B(NBITS_B/2),
             .NBITS_ACC(NBITS_ACC/2),
             .NBITS_Z(NBITS_Z/2),
@@ -1378,7 +1378,7 @@
             .coef_3_i(COEFF_3[NBITS_COEF-1:NBITS_COEF/2])
         );
 
-	// Output used when fmode == 0
+    // Output used when fmode == 0
         dsp_t1_sim #(
              .NBITS_A(NBITS_A),
              .NBITS_B(NBITS_B),
@@ -1419,7 +1419,7 @@
     parameter NBITS_ACC  = 64,
     parameter NBITS_A    = 20,
     parameter NBITS_B    = 18,
-    parameter NBITS_Z	 = 38,
+    parameter NBITS_Z    = 38,
     parameter NBITS_COEF = 20,
     parameter NBITS_AF   = 4
 )(
@@ -1467,43 +1467,59 @@
     reg  [2:0]          r_feedback;
     reg  [5:0]          r_shift_d1;
     reg  [5:0]          r_shift_d2;
-    reg			r_subtract;
-    reg			r_sat;
-    reg			r_rnd;
+    reg         r_subtract;
+    reg         r_sat;
+    reg         r_rnd;
     reg [NBITS_ACC-1:0] acc;
 
+    initial begin
+        r_a          <= 0;
+        r_b          <= 0;
+
+        r_acc_fir    <= 0;
+        r_unsigned_a <= 0;
+        r_unsigned_b <= 0;
+        r_feedback   <= 0;
+        r_shift_d1   <= 0;
+        r_shift_d2   <= 0;
+        r_subtract   <= 0;
+        r_load_acc   <= 0;
+        r_sat        <= 0;
+        r_rnd        <= 0;
+    end
+
     always @(posedge clock_i or negedge reset_n_i) begin
         if (~reset_n_i) begin
 
             r_a <= 'h0;
             r_b <= 'h0;
 
-	    r_acc_fir	 <= 0;
+        r_acc_fir    <= 0;
             r_unsigned_a <= 0;
             r_unsigned_b <= 0;
             r_feedback   <= 0;
             r_shift_d1   <= 0;
             r_shift_d2   <= 0;
-	    r_subtract   <= 0;
+        r_subtract   <= 0;
             r_load_acc   <= 0;
-            r_sat	 <= 0;
-            r_rnd	 <= 0;
+            r_sat    <= 0;
+            r_rnd    <= 0;
 
         end else begin
 
             r_a <= a_i;
             r_b <= b_i;
 
-	    r_acc_fir	 <= acc_fir_i;
+        r_acc_fir    <= acc_fir_i;
             r_unsigned_a <= unsigned_a_i;
             r_unsigned_b <= unsigned_b_i;
             r_feedback   <= feedback_i;
             r_shift_d1   <= shift_right_i;
             r_shift_d2   <= r_shift_d1;
-	    r_subtract   <= subtract_i;
+        r_subtract   <= subtract_i;
             r_load_acc   <= load_acc_i;
-            r_sat	 <= r_sat;
-            r_rnd	 <= r_rnd;
+            r_sat    <= r_sat;
+            r_rnd    <= r_rnd;
 
         end
     end
@@ -1518,8 +1534,8 @@
     wire [2:0] feedback   = register_inputs_i ? r_feedback   : feedback_i;
     wire       load_acc   = register_inputs_i ? r_load_acc   : load_acc_i;
     wire       subtract   = register_inputs_i ? r_subtract   : subtract_i;
-    wire       sat	  = register_inputs_i ? r_sat : saturate_enable_i;
-    wire       rnd	  = register_inputs_i ? r_rnd : round_i;
+    wire       sat    = register_inputs_i ? r_sat : saturate_enable_i;
+    wire       rnd    = register_inputs_i ? r_rnd : round_i;
 
     // Shift right control
     wire [5:0] shift_d1 = register_inputs_i ? r_shift_d1 : shift_right_i;
@@ -1535,7 +1551,7 @@
                     (feedback == 3'h4) ?   coef_0_i :
                     (feedback == 3'h5) ?   coef_1_i :
                     (feedback == 3'h6) ?   coef_2_i :
-					   coef_3_i;	// if feedback == 3'h7
+                       coef_3_i;    // if feedback == 3'h7
 
     wire [NBITS_B-1:0] mult_b = (feedback == 2'h2) ? {NBITS_B{1'b0}}  : b;
 
@@ -1556,8 +1572,8 @@
         {{(NBITS_ACC-NBITS_A-NBITS_B){mult[NBITS_A+NBITS_B-1]}}, mult[NBITS_A+NBITS_B-1:0]};
 
     wire [NBITS_ACC-1:0] a_xtnd = (unsigned_a) ?
-			      { {(NBITS_ACC - NBITS_A - NBITS_AF){1'b0}}, acc_fir, {a} } :
-			      { {(NBITS_ACC - NBITS_A - NBITS_AF){acc_fir[NBITS_AF-1]}}, acc_fir, {a[NBITS_A-1:0]} };
+                  { {(NBITS_ACC - NBITS_A - NBITS_AF){1'b0}}, acc_fir, {a} } :
+                  { {(NBITS_ACC - NBITS_A - NBITS_AF){acc_fir[NBITS_AF-1]}}, acc_fir, {a[NBITS_A-1:0]} };
 
     // Adder
     wire [NBITS_ACC-1:0] add_a = (subtract_i) ? (~mult_xtnd + 1) : mult_xtnd;
@@ -1566,7 +1582,9 @@
 
     wire [NBITS_ACC-1:0] add_o = add_a + add_b;
 
-    // Accumulator    
+    // Accumulator
+    initial acc <= 0;
+
     always @(posedge clock_i or negedge reset_n_i)
         if (~reset_n_i) acc <= 'h0;
         else begin
@@ -1603,6 +1621,8 @@
     assign z0 = mult_xtnd[NBITS_Z-1:0];
     assign z2 = acc_sat[NBITS_Z-1:0];
 
+    initial z1 <= 0;
+
     always @(posedge clock_i or negedge reset_n_i)
         if (!reset_n_i)
             z1 <= 0;
@@ -1618,9 +1638,11 @@
                  (output_select_i == 3'h4) ?   z1 :
                  (output_select_i == 3'h5) ?   z1 :
                  (output_select_i == 3'h6) ?   z1 :
-					       z1;	// if output_select_i == 3'h7
+                           z1;  // if output_select_i == 3'h7
 
     // B input delayed passthrough
+    initial dly_b_o <= 0;
+
     always @(posedge clock_i or negedge reset_n_i)
         if (!reset_n_i)
             dly_b_o <= 0;
@@ -1664,29 +1686,29 @@
         .COEFF_2(COEFF_2),
         .COEFF_3(COEFF_3)
    ) dsp (
-	.a(a_i),
-	.b(b_i),
-	.z(z_o),
-	.dly_b(dly_b_o),
+    .a(a_i),
+    .b(b_i),
+    .z(z_o),
+    .dly_b(dly_b_o),
 
-	.f_mode(1'b0),	// 20x18x64 DSP
+    .f_mode(1'b0),  // 20x18x64 DSP
 
-	.acc_fir(acc_fir_i),
-	.feedback(feedback_i),
-	.load_acc(load_acc_i),
+    .acc_fir(acc_fir_i),
+    .feedback(feedback_i),
+    .load_acc(load_acc_i),
 
-	.unsigned_a(unsigned_a_i),
-	.unsigned_b(unsigned_b_i),
+    .unsigned_a(unsigned_a_i),
+    .unsigned_b(unsigned_b_i),
 
-	.clk(clock_i),
-	.reset(reset_i),
+    .clk(clock_i),
+    .reset(reset_i),
 
-	.saturate_enable(saturate_enable_i),
-	.output_select(output_select_i),
-	.round(round_i),
-	.shift_right(shift_right_i),
-	.subtract(subtract_i),
-	.register_inputs(register_inputs_i)
+    .saturate_enable(saturate_enable_i),
+    .output_select(output_select_i),
+    .round(round_i),
+    .shift_right(shift_right_i),
+    .subtract(subtract_i),
+    .register_inputs(register_inputs_i)
     );
 endmodule
 
@@ -1728,28 +1750,28 @@
         .COEFF_2({10'd0, COEFF_2}),
         .COEFF_3({10'd0, COEFF_3})
    ) dsp (
-	.a({10'd0, a_i}),
-	.b({9'd0, b_i}),
-	.z({z_rem, z_o}),
-	.dly_b({dly_b_rem, dly_b_o}),
+    .a({10'd0, a_i}),
+    .b({9'd0, b_i}),
+    .z({z_rem, z_o}),
+    .dly_b({dly_b_rem, dly_b_o}),
 
-	.f_mode(1'b1),	// 10x9x32 DSP
+    .f_mode(1'b1),  // 10x9x32 DSP
 
-	.acc_fir({2'd0, acc_fir_i}),
-	.feedback(feedback_i),
-	.load_acc(load_acc_i),
+    .acc_fir({2'd0, acc_fir_i}),
+    .feedback(feedback_i),
+    .load_acc(load_acc_i),
 
-	.unsigned_a(unsigned_a_i),
-	.unsigned_b(unsigned_b_i),
+    .unsigned_a(unsigned_a_i),
+    .unsigned_b(unsigned_b_i),
 
-	.clk(clock_i),
-	.reset(reset_i),
+    .clk(clock_i),
+    .reset(reset_i),
 
-	.saturate_enable(saturate_enable_i),
-	.output_select(output_select_i),
-	.round(round_i),
-	.shift_right(shift_right_i),
-	.subtract(subtract_i),
-	.register_inputs(register_inputs_i)
+    .saturate_enable(saturate_enable_i),
+    .output_select(output_select_i),
+    .round(round_i),
+    .shift_right(shift_right_i),
+    .subtract(subtract_i),
+    .register_inputs(register_inputs_i)
     );
 endmodule
diff --git a/ql-qlf-plugin/tests/qlf_k6n10f/sim_dsp_mult_r/sim_dsp_mult_r.v b/ql-qlf-plugin/tests/qlf_k6n10f/sim_dsp_mult_r/sim_dsp_mult_r.v
index 1de1cb6..eae3589 100644
--- a/ql-qlf-plugin/tests/qlf_k6n10f/sim_dsp_mult_r/sim_dsp_mult_r.v
+++ b/ql-qlf-plugin/tests/qlf_k6n10f/sim_dsp_mult_r/sim_dsp_mult_r.v
@@ -58,6 +58,7 @@
 
     // Error detection
     reg [37:0] r_C;
+    initial r_C <= 0;
     always @(posedge clk)
         r_C <= C;