diff --git a/libraries/dsp/filter/src/vhdl/fil_ppf_filter.vhd b/libraries/dsp/filter/src/vhdl/fil_ppf_filter.vhd index db3de4152c20e73091b04717d0f0371ff8c68ad4..8a7bc6e47c6bde3295d1aee6f3f300e752df18cd 100644 --- a/libraries/dsp/filter/src/vhdl/fil_ppf_filter.vhd +++ b/libraries/dsp/filter/src/vhdl/fil_ppf_filter.vhd @@ -27,9 +27,10 @@ -- Remarks: . -- -library IEEE, common_lib; +library IEEE, common_lib, common_mult_lib, technology_lib; use IEEE.std_logic_1164.ALL; use IEEE.numeric_std.ALL; +USE technology_lib.technology_select_pkg.ALL; use common_lib.common_pkg.ALL; use work.fil_pkg.ALL; @@ -49,6 +50,8 @@ end fil_ppf_filter; architecture rtl of fil_ppf_filter is + CONSTANT c_technology : NATURAL := c_tech_select_default; + constant c_prod_w : natural := g_fil_ppf.in_dat_w + g_fil_ppf.coef_dat_w - c_sign_w; -- skip double sign bit constant c_gain_w : natural := 0; -- no need for adder bit growth so fixed 0, because filter coefficients should have DC gain <= 1. -- The adder tree bit growth depends on DC gain of FIR coefficients, not on ceil_log2(g_fil_ppf.nof_taps). @@ -70,8 +73,10 @@ begin -- For every tap a unique multiplier is instantiated that -- multiplies the data tap with the corresponding filter coefficient gen_multipliers : for I in 0 to g_fil_ppf.nof_taps-1 generate - u_multiplier : entity common_lib.common_mult(stratix4) + u_multiplier : entity common_mult_lib.common_mult generic map ( + g_technology => c_technology, + g_variant => "IP", g_in_a_w => g_fil_ppf.in_dat_w, g_in_b_w => g_fil_ppf.coef_dat_w, g_out_p_w => c_prod_w,