-- Top_IIR.vhd library IEEE; use IEEE.std_logic_1164.all; use IEEE.numeric_std.all; use work.FILTERcfg.all; use lpp.iir_filter.all; entity Top_IIR is generic( Sample_SZ : integer := 18; ChanelsCount : integer := 1; Coef_SZ : integer := 9; CoefCntPerCel: integer := 6; Cels_count : integer := 5); port( reset : in std_logic; clk : in std_logic; sample_clk : in std_logic; -- BP : in std_logic; -- BPinput : in std_logic_vector(3 downto 0); LVLinput : in std_logic_vector(15 downto 0); INsample : out samplT(ChanelsCount-1 downto 0,Sample_SZ-1 downto 0); OUTsample : out samplT(ChanelsCount-1 downto 0,Sample_SZ-1 downto 0) ); end entity; architecture ar_Top_IIR of Top_IIR is signal regs_in : in_IIR_CEL_reg; signal regs_out : out_IIR_CEL_reg; signal sample_in : samplT(ChanelsCount-1 downto 0,Sample_SZ-1 downto 0); signal sample_out : samplT(ChanelsCount-1 downto 0,Sample_SZ-1 downto 0); signal coefs : std_logic_vector((Coef_SZ*CoefCntPerCel*Cels_count)-1 downto 0); signal sample_int : std_logic_vector(Sample_SZ-1 downto 0):=(others => '0'); --signal sample_temp : std_logic_vector(Sample_SZ-1 downto 0):=(others => '0'); begin ChanelLoop: for i in 0 to ChanelsCount-1 generate SampleLoop: for j in 0 to Sample_SZ-1 generate sample_in(i,j) <= sample_int(i*20+j); end generate; end generate; --CH2loop: for k in 0 to Sample_SZ-1 generate -- sample_temp(k) <= BP; --end generate; sample_int <= LVLinput(15) & LVLinput(15) & LVLinput; INsample <= sample_in; OUTsample <= sample_out; filter : IIR_CEL_FILTER generic map (0,Sample_SZ,ChanelsCount,Coef_SZ,CoefCntPerCel,Cels_count,1) port map( reset => reset, clk => clk, sample_clk => sample_clk, regs_in => regs_in, regs_out => regs_out, sample_in => sample_in, sample_out => sample_out, coefs => coefs ); coefs <= CoefsInitValCst; regs_in.virgPos <= std_logic_vector(to_unsigned(virgPos,5)); regs_in.config <= (others => '1'); end architecture;