⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 myfir.vhd

📁 PAL decoder, spartan 3 FPGA
💻 VHD
字号:
---------------------------------------------------------------------------------	MiniGA--  Author: Thomas Pototschnig (thomas.pototschnig@gmx.de)----  License: Creative Commons Attribution-NonCommercial-ShareAlike 2.0 License--           http://creativecommons.org/licenses/by-nc-sa/2.0/de/----  If you want to use MiniGA for commercial purposes please contact the author--------------------------------------------------------------------------------- fir filter-- uses even and symmetric number of coefficients-- input format: s0,xxxxxxxxxx-- input must be <1024!library IEEE;use IEEE.STD_LOGIC_1164.ALL;use IEEE.STD_LOGIC_ARITH.ALL;use IEEE.STD_LOGIC_UNSIGNED.ALL;entity myfir is	generic (		TAPS : integer := 16	);			port (		clk : in std_logic;		reset : in std_logic;		input : in std_logic_vector(11 downto 0);		output : out std_logic_vector(11 downto 0)	);end myfir;architecture behaviour of myfir isbegin	process (clk, reset)	type tsr is array(0 to TAPS-1) of signed(11 downto 0);	type tcoff is array(0 to (TAPS/2)-1) of signed(11 downto 0);-- format: s0,xxxxxxxxxx; -- koeffizienten f黵 16tap 1,3MHz hamming-tiefpass bei 15MHz sampling frequenz	variable coff : tcoff := (		x"FFA", x"FFB", x"004", x"027", x"06E", x"0D0", x"132", x"170"       	);	variable sr : tsr;	variable y : signed (63 downto 0);	begin		if reset='0' then			for I in 0 to TAPS-1 loop				sr(I) := (others => '0');			end loop;			output <= (others => '0');		elsif clk'event and clk='1' then-- Schieberegister			for I in (TAPS-1) downto 1 loop				sr(I):=sr(I-1);			end loop;			sr(0) := signed(input);-- jetzt berechnen			y:=  (others => '0');			for I in 0 to (TAPS/2)-1 loop				y:=y+ (sr(I) + sr((TAPS-1)-I)) * coff(I);			end loop;			output <= conv_std_logic_vector(y(22 downto 11),12);		end if;	end process;end architecture;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -