module z_dsp ( input rstn ,input clk ,input en //,input tc_bypass //NC ,input [ 3:0] vldi_coef ,input vldi_data //,input [1:0] intp_mode //NC //,input [1:0] dac_mode_sel //NC ,input signed [15:0] din0 ,input signed [15:0] din1 ,input signed [15:0] din2 ,input signed [15:0] din3 ,input signed [15:0] din4 ,input signed [15:0] din5 ,input signed [15:0] din6 ,input signed [15:0] din7 ,input signed [15:0] din8 ,input signed [15:0] din9 ,input signed [15:0] dina ,input signed [15:0] dinb ,input signed [15:0] dinc ,input signed [15:0] dind ,input signed [15:0] dine ,input signed [15:0] dinf ,input signed [31:0] a0_re ,input signed [31:0] a0_im ,input signed [31:0] b0_re ,input signed [31:0] b0_im ,input signed [31:0] a1_re ,input signed [31:0] a1_im ,input signed [31:0] b1_re ,input signed [31:0] b1_im ,input signed [31:0] a2_re ,input signed [31:0] a2_im ,input signed [31:0] b2_re ,input signed [31:0] b2_im ,input signed [31:0] a3_re ,input signed [31:0] a3_im ,input signed [31:0] b3_re ,input signed [31:0] b3_im ,output signed [15:0] dout0 ,output signed [15:0] dout1 ,output signed [15:0] dout2 ,output signed [15:0] dout3 ,output signed [15:0] dout4 ,output signed [15:0] dout5 ,output signed [15:0] dout6 ,output signed [15:0] dout7 ,output signed [15:0] dout8 ,output signed [15:0] dout9 ,output signed [15:0] douta ,output signed [15:0] doutb ,output signed [15:0] doutc ,output signed [15:0] doutd ,output signed [15:0] doute ,output signed [15:0] doutf ,output vldo ); wire signed [15:0] IIR_out; wire signed [31:0] ao_re [3:0]; wire signed [31:0] ab_re [3:0]; wire signed [31:0] abb_re [3:0]; wire signed [31:0] ab_pow3_re [3:0]; wire signed [31:0] ab_pow4_re [3:0]; wire signed [31:0] ab_pow5_re [3:0]; wire signed [31:0] ab_pow6_re [3:0]; wire signed [31:0] ab_pow7_re [3:0]; wire signed [31:0] ab_pow8_re [3:0]; wire signed [31:0] ab_pow9_re [3:0]; wire signed [31:0] ab_powa_re [3:0]; wire signed [31:0] ab_powb_re [3:0]; wire signed [31:0] ab_powc_re [3:0]; wire signed [31:0] ab_powd_re [3:0]; wire signed [31:0] ab_powe_re [3:0]; wire signed [31:0] ab_powf_re [3:0]; wire signed [31:0] bo_re [3:0]; wire signed [31:0] b_pow16_re [3:0]; wire signed [31:0] ao_im [3:0]; wire signed [31:0] ab_im [3:0]; wire signed [31:0] abb_im [3:0]; wire signed [31:0] ab_pow3_im [3:0]; wire signed [31:0] ab_pow4_im [3:0]; wire signed [31:0] ab_pow5_im [3:0]; wire signed [31:0] ab_pow6_im [3:0]; wire signed [31:0] ab_pow7_im [3:0]; wire signed [31:0] ab_pow8_im [3:0]; wire signed [31:0] ab_pow9_im [3:0]; wire signed [31:0] ab_powa_im [3:0]; wire signed [31:0] ab_powb_im [3:0]; wire signed [31:0] ab_powc_im [3:0]; wire signed [31:0] ab_powd_im [3:0]; wire signed [31:0] ab_powe_im [3:0]; wire signed [31:0] ab_powf_im [3:0]; wire signed [31:0] bo_im [3:0]; wire signed [31:0] b_pow16_im [3:0]; CoefGen#( .data_in_width ( 32 ), .coef_width ( 32 ), .frac_data_out_width ( 20 ), .frac_coef_width ( 31 ) ) u_CoefGen( .rstn ( rstn ), .clk ( clk ), .vldi ( vldi_coef ), .a0_re ( a0_re ), .b0_re ( b0_re ), .a1_re ( a1_re ), .b1_re ( b1_re ), .a2_re ( a2_re ), .b2_re ( b2_re ), .a3_re ( a3_re ), .b3_re ( b3_re ), .a0_im ( a0_im ), .b0_im ( b0_im ), .a1_im ( a1_im ), .b1_im ( b1_im ), .a2_im ( a2_im ), .b2_im ( b2_im ), .a3_im ( a3_im ), .b3_im ( b3_im ), .a_re0 ( ao_re[0] ), .b_re0 ( bo_re[0] ), .ab_re0 ( ab_re[0] ), .abb_re0 ( abb_re[0] ), .ab_pow3_re0 ( ab_pow3_re[0] ), .ab_pow4_re0 ( ab_pow4_re[0] ), .ab_pow5_re0 ( ab_pow5_re[0] ), .ab_pow6_re0 ( ab_pow6_re[0] ), .ab_pow7_re0 ( ab_pow7_re[0] ), .ab_pow8_re0 ( ab_pow8_re[0] ), .ab_pow9_re0 ( ab_pow9_re[0] ), .ab_powa_re0 ( ab_powa_re[0] ), .ab_powb_re0 ( ab_powb_re[0] ), .ab_powc_re0 ( ab_powc_re[0] ), .ab_powd_re0 ( ab_powd_re[0] ), .ab_powe_re0 ( ab_powe_re[0] ), .ab_powf_re0 ( ab_powf_re[0] ), .b_pow16_re0 ( b_pow16_re[0] ), .a_re1 ( ao_re[1] ), .b_re1 ( bo_re[1] ), .ab_re1 ( ab_re[1] ), .abb_re1 ( abb_re[1] ), .ab_pow3_re1 ( ab_pow3_re[1] ), .ab_pow4_re1 ( ab_pow4_re[1] ), .ab_pow5_re1 ( ab_pow5_re[1] ), .ab_pow6_re1 ( ab_pow6_re[1] ), .ab_pow7_re1 ( ab_pow7_re[1] ), .ab_pow8_re1 ( ab_pow8_re[1] ), .ab_pow9_re1 ( ab_pow9_re[1] ), .ab_powa_re1 ( ab_powa_re[1] ), .ab_powb_re1 ( ab_powb_re[1] ), .ab_powc_re1 ( ab_powc_re[1] ), .ab_powd_re1 ( ab_powd_re[1] ), .ab_powe_re1 ( ab_powe_re[1] ), .ab_powf_re1 ( ab_powf_re[1] ), .b_pow16_re1 ( b_pow16_re[1] ), .a_re2 ( ao_re[2] ), .b_re2 ( bo_re[2] ), .ab_re2 ( ab_re[2] ), .abb_re2 ( abb_re[2] ), .ab_pow3_re2 ( ab_pow3_re[2] ), .ab_pow4_re2 ( ab_pow4_re[2] ), .ab_pow5_re2 ( ab_pow5_re[2] ), .ab_pow6_re2 ( ab_pow6_re[2] ), .ab_pow7_re2 ( ab_pow7_re[2] ), .ab_pow8_re2 ( ab_pow8_re[2] ), .ab_pow9_re2 ( ab_pow9_re[2] ), .ab_powa_re2 ( ab_powa_re[2] ), .ab_powb_re2 ( ab_powb_re[2] ), .ab_powc_re2 ( ab_powc_re[2] ), .ab_powd_re2 ( ab_powd_re[2] ), .ab_powe_re2 ( ab_powe_re[2] ), .ab_powf_re2 ( ab_powf_re[2] ), .b_pow16_re2 ( b_pow16_re[2] ), .a_re3 ( ao_re[3] ), .b_re3 ( bo_re[3] ), .ab_re3 ( ab_re[3] ), .abb_re3 ( abb_re[3] ), .ab_pow3_re3 ( ab_pow3_re[3] ), .ab_pow4_re3 ( ab_pow4_re[3] ), .ab_pow5_re3 ( ab_pow5_re[3] ), .ab_pow6_re3 ( ab_pow6_re[3] ), .ab_pow7_re3 ( ab_pow7_re[3] ), .ab_pow8_re3 ( ab_pow8_re[3] ), .ab_pow9_re3 ( ab_pow9_re[3] ), .ab_powa_re3 ( ab_powa_re[3] ), .ab_powb_re3 ( ab_powb_re[3] ), .ab_powc_re3 ( ab_powc_re[3] ), .ab_powd_re3 ( ab_powd_re[3] ), .ab_powe_re3 ( ab_powe_re[3] ), .ab_powf_re3 ( ab_powf_re[3] ), .b_pow16_re3 ( b_pow16_re[3] ), .a_im0 ( ao_im[0] ), .b_im0 ( bo_im[0] ), .ab_im0 ( ab_im[0] ), .abb_im0 ( abb_im[0] ), .ab_pow3_im0 ( ab_pow3_im[0] ), .ab_pow4_im0 ( ab_pow4_im[0] ), .ab_pow5_im0 ( ab_pow5_im[0] ), .ab_pow6_im0 ( ab_pow6_im[0] ), .ab_pow7_im0 ( ab_pow7_im[0] ), .ab_pow8_im0 ( ab_pow8_im[0] ), .ab_pow9_im0 ( ab_pow9_im[0] ), .ab_powa_im0 ( ab_powa_im[0] ), .ab_powb_im0 ( ab_powb_im[0] ), .ab_powc_im0 ( ab_powc_im[0] ), .ab_powd_im0 ( ab_powd_im[0] ), .ab_powe_im0 ( ab_powe_im[0] ), .ab_powf_im0 ( ab_powf_im[0] ), .b_pow16_im0 ( b_pow16_im[0] ), .a_im1 ( ao_im[1] ), .b_im1 ( bo_im[1] ), .ab_im1 ( ab_im[1] ), .abb_im1 ( abb_im[1] ), .ab_pow3_im1 ( ab_pow3_im[1] ), .ab_pow4_im1 ( ab_pow4_im[1] ), .ab_pow5_im1 ( ab_pow5_im[1] ), .ab_pow6_im1 ( ab_pow6_im[1] ), .ab_pow7_im1 ( ab_pow7_im[1] ), .ab_pow8_im1 ( ab_pow8_im[1] ), .ab_pow9_im1 ( ab_pow9_im[1] ), .ab_powa_im1 ( ab_powa_im[1] ), .ab_powb_im1 ( ab_powb_im[1] ), .ab_powc_im1 ( ab_powc_im[1] ), .ab_powd_im1 ( ab_powd_im[1] ), .ab_powe_im1 ( ab_powe_im[1] ), .ab_powf_im1 ( ab_powf_im[1] ), .b_pow16_im1 ( b_pow16_im[1] ), .a_im2 ( ao_im[2] ), .b_im2 ( bo_im[2] ), .ab_im2 ( ab_im[2] ), .abb_im2 ( abb_im[2] ), .ab_pow3_im2 ( ab_pow3_im[2] ), .ab_pow4_im2 ( ab_pow4_im[2] ), .ab_pow5_im2 ( ab_pow5_im[2] ), .ab_pow6_im2 ( ab_pow6_im[2] ), .ab_pow7_im2 ( ab_pow7_im[2] ), .ab_pow8_im2 ( ab_pow8_im[2] ), .ab_pow9_im2 ( ab_pow9_im[2] ), .ab_powa_im2 ( ab_powa_im[2] ), .ab_powb_im2 ( ab_powb_im[2] ), .ab_powc_im2 ( ab_powc_im[2] ), .ab_powd_im2 ( ab_powd_im[2] ), .ab_powe_im2 ( ab_powe_im[2] ), .ab_powf_im2 ( ab_powf_im[2] ), .b_pow16_im2 ( b_pow16_im[2] ), .a_im3 ( ao_im[3] ), .b_im3 ( bo_im[3] ), .ab_im3 ( ab_im[3] ), .abb_im3 ( abb_im[3] ), .ab_pow3_im3 ( ab_pow3_im[3] ), .ab_pow4_im3 ( ab_pow4_im[3] ), .ab_pow5_im3 ( ab_pow5_im[3] ), .ab_pow6_im3 ( ab_pow6_im[3] ), .ab_pow7_im3 ( ab_pow7_im[3] ), .ab_pow8_im3 ( ab_pow8_im[3] ), .ab_pow9_im3 ( ab_pow9_im[3] ), .ab_powa_im3 ( ab_powa_im[3] ), .ab_powb_im3 ( ab_powb_im[3] ), .ab_powc_im3 ( ab_powc_im[3] ), .ab_powd_im3 ( ab_powd_im[3] ), .ab_powe_im3 ( ab_powe_im[3] ), .ab_powf_im3 ( ab_powf_im[3] ), .b_pow16_im3 ( b_pow16_im[3] ) ); wire signed [15:0] dout_0; wire signed [15:0] dout_1; wire signed [15:0] dout_2; wire signed [15:0] dout_3; wire signed [15:0] dout_4; wire signed [15:0] dout_5; wire signed [15:0] dout_6; wire signed [15:0] dout_7; wire vldo_TC; TailCorr_top u_TailCorr_top( .rstn ( rstn ), .clk ( clk ), .en ( en ), .vldi ( vldi_data ), .din0 ( din0 ), .din1 ( din1 ), .din2 ( din2 ), .din3 ( din3 ), .din4 ( din4 ), .din5 ( din5 ), .din6 ( din6 ), .din7 ( din7 ), .din8 ( din8 ), .din9 ( din9 ), .dina ( dina ), .dinb ( dinb ), .dinc ( dinc ), .dind ( dind ), .dine ( dine ), .dinf ( dinf ), .a_re0 ( ao_re[0] ), .b_re0 ( bo_re[0] ), .ab_re0 ( ab_re[0] ), .abb_re0 ( abb_re[0] ), .ab_pow3_re0 ( ab_pow3_re[0] ), .ab_pow4_re0 ( ab_pow4_re[0] ), .ab_pow5_re0 ( ab_pow5_re[0] ), .ab_pow6_re0 ( ab_pow6_re[0] ), .ab_pow7_re0 ( ab_pow7_re[0] ), .ab_pow8_re0 ( ab_pow8_re[0] ), .ab_pow9_re0 ( ab_pow9_re[0] ), .ab_powa_re0 ( ab_powa_re[0] ), .ab_powb_re0 ( ab_powb_re[0] ), .ab_powc_re0 ( ab_powc_re[0] ), .ab_powd_re0 ( ab_powd_re[0] ), .ab_powe_re0 ( ab_powe_re[0] ), .ab_powf_re0 ( ab_powf_re[0] ), .b_pow16_re0 ( b_pow16_re[0] ), .a_re1 ( ao_re[1] ), .b_re1 ( bo_re[1] ), .ab_re1 ( ab_re[1] ), .abb_re1 ( abb_re[1] ), .ab_pow3_re1 ( ab_pow3_re[1] ), .ab_pow4_re1 ( ab_pow4_re[1] ), .ab_pow5_re1 ( ab_pow5_re[1] ), .ab_pow6_re1 ( ab_pow6_re[1] ), .ab_pow7_re1 ( ab_pow7_re[1] ), .ab_pow8_re1 ( ab_pow8_re[1] ), .ab_pow9_re1 ( ab_pow9_re[1] ), .ab_powa_re1 ( ab_powa_re[1] ), .ab_powb_re1 ( ab_powb_re[1] ), .ab_powc_re1 ( ab_powc_re[1] ), .ab_powd_re1 ( ab_powd_re[1] ), .ab_powe_re1 ( ab_powe_re[1] ), .ab_powf_re1 ( ab_powf_re[1] ), .b_pow16_re1 ( b_pow16_re[1] ), .a_re2 ( ao_re[2] ), .b_re2 ( bo_re[2] ), .ab_re2 ( ab_re[2] ), .abb_re2 ( abb_re[2] ), .ab_pow3_re2 ( ab_pow3_re[2] ), .ab_pow4_re2 ( ab_pow4_re[2] ), .ab_pow5_re2 ( ab_pow5_re[2] ), .ab_pow6_re2 ( ab_pow6_re[2] ), .ab_pow7_re2 ( ab_pow7_re[2] ), .ab_pow8_re2 ( ab_pow8_re[2] ), .ab_pow9_re2 ( ab_pow9_re[2] ), .ab_powa_re2 ( ab_powa_re[2] ), .ab_powb_re2 ( ab_powb_re[2] ), .ab_powc_re2 ( ab_powc_re[2] ), .ab_powd_re2 ( ab_powd_re[2] ), .ab_powe_re2 ( ab_powe_re[2] ), .ab_powf_re2 ( ab_powf_re[2] ), .b_pow16_re2 ( b_pow16_re[2] ), .a_re3 ( ao_re[3] ), .b_re3 ( bo_re[3] ), .ab_re3 ( ab_re[3] ), .abb_re3 ( abb_re[3] ), .ab_pow3_re3 ( ab_pow3_re[3] ), .ab_pow4_re3 ( ab_pow4_re[3] ), .ab_pow5_re3 ( ab_pow5_re[3] ), .ab_pow6_re3 ( ab_pow6_re[3] ), .ab_pow7_re3 ( ab_pow7_re[3] ), .ab_pow8_re3 ( ab_pow8_re[3] ), .ab_pow9_re3 ( ab_pow9_re[3] ), .ab_powa_re3 ( ab_powa_re[3] ), .ab_powb_re3 ( ab_powb_re[3] ), .ab_powc_re3 ( ab_powc_re[3] ), .ab_powd_re3 ( ab_powd_re[3] ), .ab_powe_re3 ( ab_powe_re[3] ), .ab_powf_re3 ( ab_powf_re[3] ), .b_pow16_re3 ( b_pow16_re[3] ), .a_im0 ( ao_im[0] ), .b_im0 ( bo_im[0] ), .ab_im0 ( ab_im[0] ), .abb_im0 ( abb_im[0] ), .ab_pow3_im0 ( ab_pow3_im[0] ), .ab_pow4_im0 ( ab_pow4_im[0] ), .ab_pow5_im0 ( ab_pow5_im[0] ), .ab_pow6_im0 ( ab_pow6_im[0] ), .ab_pow7_im0 ( ab_pow7_im[0] ), .ab_pow8_im0 ( ab_pow8_im[0] ), .ab_pow9_im0 ( ab_pow9_im[0] ), .ab_powa_im0 ( ab_powa_im[0] ), .ab_powb_im0 ( ab_powb_im[0] ), .ab_powc_im0 ( ab_powc_im[0] ), .ab_powd_im0 ( ab_powd_im[0] ), .ab_powe_im0 ( ab_powe_im[0] ), .ab_powf_im0 ( ab_powf_im[0] ), .b_pow16_im0 ( b_pow16_im[0] ), .a_im1 ( ao_im[1] ), .b_im1 ( bo_im[1] ), .ab_im1 ( ab_im[1] ), .abb_im1 ( abb_im[1] ), .ab_pow3_im1 ( ab_pow3_im[1] ), .ab_pow4_im1 ( ab_pow4_im[1] ), .ab_pow5_im1 ( ab_pow5_im[1] ), .ab_pow6_im1 ( ab_pow6_im[1] ), .ab_pow7_im1 ( ab_pow7_im[1] ), .ab_pow8_im1 ( ab_pow8_im[1] ), .ab_pow9_im1 ( ab_pow9_im[1] ), .ab_powa_im1 ( ab_powa_im[1] ), .ab_powb_im1 ( ab_powb_im[1] ), .ab_powc_im1 ( ab_powc_im[1] ), .ab_powd_im1 ( ab_powd_im[1] ), .ab_powe_im1 ( ab_powe_im[1] ), .ab_powf_im1 ( ab_powf_im[1] ), .b_pow16_im1 ( b_pow16_im[1] ), .a_im2 ( ao_im[2] ), .b_im2 ( bo_im[2] ), .ab_im2 ( ab_im[2] ), .abb_im2 ( abb_im[2] ), .ab_pow3_im2 ( ab_pow3_im[2] ), .ab_pow4_im2 ( ab_pow4_im[2] ), .ab_pow5_im2 ( ab_pow5_im[2] ), .ab_pow6_im2 ( ab_pow6_im[2] ), .ab_pow7_im2 ( ab_pow7_im[2] ), .ab_pow8_im2 ( ab_pow8_im[2] ), .ab_pow9_im2 ( ab_pow9_im[2] ), .ab_powa_im2 ( ab_powa_im[2] ), .ab_powb_im2 ( ab_powb_im[2] ), .ab_powc_im2 ( ab_powc_im[2] ), .ab_powd_im2 ( ab_powd_im[2] ), .ab_powe_im2 ( ab_powe_im[2] ), .ab_powf_im2 ( ab_powf_im[2] ), .b_pow16_im2 ( b_pow16_im[2] ), .a_im3 ( ao_im[3] ), .b_im3 ( bo_im[3] ), .ab_im3 ( ab_im[3] ), .abb_im3 ( abb_im[3] ), .ab_pow3_im3 ( ab_pow3_im[3] ), .ab_pow4_im3 ( ab_pow4_im[3] ), .ab_pow5_im3 ( ab_pow5_im[3] ), .ab_pow6_im3 ( ab_pow6_im[3] ), .ab_pow7_im3 ( ab_pow7_im[3] ), .ab_pow8_im3 ( ab_pow8_im[3] ), .ab_pow9_im3 ( ab_pow9_im[3] ), .ab_powa_im3 ( ab_powa_im[3] ), .ab_powb_im3 ( ab_powb_im[3] ), .ab_powc_im3 ( ab_powc_im[3] ), .ab_powd_im3 ( ab_powd_im[3] ), .ab_powe_im3 ( ab_powe_im[3] ), .ab_powf_im3 ( ab_powf_im[3] ), .b_pow16_im3 ( b_pow16_im[3] ), .dout_p0 ( dout0 ), .dout_p1 ( dout1 ), .dout_p2 ( dout2 ), .dout_p3 ( dout3 ), .dout_p4 ( dout4 ), .dout_p5 ( dout5 ), .dout_p6 ( dout6 ), .dout_p7 ( dout7 ), .dout_p8 ( dout8 ), .dout_p9 ( dout9 ), .dout_pa ( douta ), .dout_pb ( doutb ), .dout_pc ( doutc ), .dout_pd ( doutd ), .dout_pe ( doute ), .dout_pf ( doutf ), .vldo ( vldo_TC ) ); assign vldo = vldo_TC; endmodule