📄 filter.vhd
字号:
library ieee;
use ieee.std_logic_1164.all;
use work.equ_pak.all;
entity filter is
port(
clk:in std_logic;
resetn:in std_logic:='1';
ad_end:in std_logic:='0';
xin:in std_logic_vector(11 downto 0);
a:in std_logic_vector(1 downto 0);
z:out std_logic_vector(9 downto 0);
x_ff:out data1_array(2 downto 0);
x_main: out std_logic_vector(11 downto 0);
x_bf: out data2_array(2 downto 0);
filterend: out std_logic;
w_addr1:in std_logic_vector(2 downto 0):=(others=>'0');
w_addr2: in std_logic:='0';
w_addr3:in std_logic_vector(2 downto 0):="000";
data1,data2:in std_logic_vector(15 downto 0):=(others=>'0');
data3:in std_logic_vector(15 downto 0):=(others=>'0');--8????
ram_ch1,ram_ch2,ram_ch3:in std_logic:='0'
);
end filter;
architecture rtl of filter is
signal shift_en_m,load_m,shift_s12_m,shift_s3_m:std_logic;
signal y_ff_m:data1_array(2 downto 0);
signal y_main_m:std_logic_vector(11 downto 0);
signal y_bf_m:data2_array(2 downto 0);
signal addr_st_m1,addr_st_m2,addr_st_m3:std_logic;
signal ram_addr_m1,ram_addr_m3:std_logic_vector(2 downto 0);
signal ram_addr_m2:std_logic;
signal coefout_m1,coefout_m2,coefout_m3:std_logic;
signal ram_out_m1,ram_out_m2,ram_out_m3:std_logic_vector(15 downto 0);
signal add_end_m1,add_end_m2,add_end_m3:std_logic;
signal dataout_m1:std_logic_vector(17 downto 0);
signal dataout_m2,dataout_m3:std_logic_vector(17 downto 0);
begin
u1:filter_con port map(clk,resetn,ad_end,shift_en_m,load_m,shift_s12_m,shift_s3_m);
u2:filter_shift port map(clk,resetn,xin,a,shift_en_m,y_ff_m,y_main_m,y_bf_m);
x_ff<=y_ff_m;
x_main<=y_main_m;
x_bf<=y_bf_m;
u31:s_term1 port map(clk,resetn,load_m,shift_s12_m,y_ff_m,addr_st_m1,ram_addr_m1);
u32:s_term2 port map(clk,resetn,load_m,shift_s12_m,y_main_m,addr_st_m2,ram_addr_m2);
u33:s_term3 port map(clk,resetn,load_m,shift_s3_m,y_bf_m,addr_st_m3,ram_addr_m3);
u41:filter_coef port map(clk,resetn,addr_st_m1,ram_ch1,ram_addr_m1,w_addr1,data1,ram_out_m1,coefout_m1);
u42:filter_coef1 port map(clk,resetn,addr_st_m2,ram_ch2, ram_addr_m2,w_addr2,data2,ram_out_m2,coefout_m2);
u43:filter3_coef port map(clk,resetn,addr_st_m3,ram_ch3, ram_addr_m3,w_addr3,data3,ram_out_m3,coefout_m3);
u51:accumulator port map(clk,resetn,ram_out_m1,coefout_m1,add_end_m1,dataout_m1);
u52:accumulator port map(clk,resetn,ram_out_m2,coefout_m2,add_end_m2,dataout_m2);
u53:accumulator port map(clk,resetn,ram_out_m3,coefout_m3,add_end_m3,dataout_m3);
u6:filter_add port map(clk,resetn,add_end_m1,add_end_m2,add_end_m3,dataout_m1,dataout_m2,dataout_m3,z,filterend);
end rtl;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -