📄 analytic_filter_tb.vhd
字号:
to_stdlogicvector(bit_vector'(X"7243"))(15 DOWNTO 0),
to_stdlogicvector(bit_vector'(X"80A2"))(15 DOWNTO 0),
to_stdlogicvector(bit_vector'(X"64DC"))(15 DOWNTO 0),
to_stdlogicvector(bit_vector'(X"D485"))(15 DOWNTO 0),
to_stdlogicvector(bit_vector'(X"E527"))(15 DOWNTO 0),
to_stdlogicvector(bit_vector'(X"58C2"))(15 DOWNTO 0),
to_stdlogicvector(bit_vector'(X"8411"))(15 DOWNTO 0),
to_stdlogicvector(bit_vector'(X"7A6D"))(15 DOWNTO 0),
to_stdlogicvector(bit_vector'(X"AAC2"))(15 DOWNTO 0),
to_stdlogicvector(bit_vector'(X"17A9"))(15 DOWNTO 0),
to_stdlogicvector(bit_vector'(X"2C5D"))(15 DOWNTO 0),
to_stdlogicvector(bit_vector'(X"9C79"))(15 DOWNTO 0),
to_stdlogicvector(bit_vector'(X"7EA2"))(15 DOWNTO 0),
to_stdlogicvector(bit_vector'(X"895A"))(15 DOWNTO 0),
to_stdlogicvector(bit_vector'(X"4E51"))(15 DOWNTO 0),
to_stdlogicvector(bit_vector'(X"EEF4"))(15 DOWNTO 0),
to_stdlogicvector(bit_vector'(X"CF8D"))(15 DOWNTO 0),
to_stdlogicvector(bit_vector'(X"64D2"))(15 DOWNTO 0),
to_stdlogicvector(bit_vector'(X"8166"))(15 DOWNTO 0),
to_stdlogicvector(bit_vector'(X"7795"))(15 DOWNTO 0),
to_stdlogicvector(bit_vector'(X"ADE6"))(15 DOWNTO 0),
to_stdlogicvector(bit_vector'(X"1820"))(15 DOWNTO 0),
to_stdlogicvector(bit_vector'(X"278D"))(15 DOWNTO 0),
to_stdlogicvector(bit_vector'(X"A2DD"))(15 DOWNTO 0),
to_stdlogicvector(bit_vector'(X"7BC1"))(15 DOWNTO 0),
to_stdlogicvector(bit_vector'(X"8390"))(15 DOWNTO 0),
to_stdlogicvector(bit_vector'(X"5F8A"))(15 DOWNTO 0),
to_stdlogicvector(bit_vector'(X"D3A2"))(15 DOWNTO 0),
to_stdlogicvector(bit_vector'(X"EF30"))(15 DOWNTO 0),
to_stdlogicvector(bit_vector'(X"49C9"))(15 DOWNTO 0),
to_stdlogicvector(bit_vector'(X"8E46"))(15 DOWNTO 0),
to_stdlogicvector(bit_vector'(X"7FFF"))(15 DOWNTO 0),
to_stdlogicvector(bit_vector'(X"8E15"))(15 DOWNTO 0),
to_stdlogicvector(bit_vector'(X"4B11"))(15 DOWNTO 0),
to_stdlogicvector(bit_vector'(X"EBBA"))(15 DOWNTO 0),
to_stdlogicvector(bit_vector'(X"D97E"))(15 DOWNTO 0),
to_stdlogicvector(bit_vector'(X"58D8"))(15 DOWNTO 0),
to_stdlogicvector(bit_vector'(X"878B"))(15 DOWNTO 0),
to_stdlogicvector(bit_vector'(X"7F38"))(15 DOWNTO 0),
to_stdlogicvector(bit_vector'(X"93C3"))(15 DOWNTO 0),
to_stdlogicvector(bit_vector'(X"43CA"))(15 DOWNTO 0),
to_stdlogicvector(bit_vector'(X"F1BF"))(15 DOWNTO 0),
to_stdlogicvector(bit_vector'(X"D64A"))(15 DOWNTO 0),
to_stdlogicvector(bit_vector'(X"5955"))(15 DOWNTO 0),
to_stdlogicvector(bit_vector'(X"883E"))(15 DOWNTO 0),
to_stdlogicvector(bit_vector'(X"7FA7"))(15 DOWNTO 0),
to_stdlogicvector(bit_vector'(X"8FFE"))(15 DOWNTO 0),
to_stdlogicvector(bit_vector'(X"4C25"))(15 DOWNTO 0),
to_stdlogicvector(bit_vector'(X"E51D"))(15 DOWNTO 0),
to_stdlogicvector(bit_vector'(X"E536"))(15 DOWNTO 0),
to_stdlogicvector(bit_vector'(X"4B71"))(15 DOWNTO 0),
to_stdlogicvector(bit_vector'(X"912D"))(15 DOWNTO 0),
to_stdlogicvector(bit_vector'(X"7F38"))(15 DOWNTO 0),
to_stdlogicvector(bit_vector'(X"85B6"))(15 DOWNTO 0),
to_stdlogicvector(bit_vector'(X"614C"))(15 DOWNTO 0),
to_stdlogicvector(bit_vector'(X"C747"))(15 DOWNTO 0),
to_stdlogicvector(bit_vector'(X"0762"))(15 DOWNTO 0),
to_stdlogicvector(bit_vector'(X"2AC5"))(15 DOWNTO 0),
to_stdlogicvector(bit_vector'(X"AA10"))(15 DOWNTO 0),
to_stdlogicvector(bit_vector'(X"73AE"))(15 DOWNTO 0),
to_stdlogicvector(bit_vector'(X"802E"))(15 DOWNTO 0),
to_stdlogicvector(bit_vector'(X"78F4"))(15 DOWNTO 0),
to_stdlogicvector(bit_vector'(X"9F7E"))(15 DOWNTO 0),
to_stdlogicvector(bit_vector'(X"3A65"))(15 DOWNTO 0),
to_stdlogicvector(bit_vector'(X"F3AE"))(15 DOWNTO 0),
to_stdlogicvector(bit_vector'(X"DCE2"))(15 DOWNTO 0),
to_stdlogicvector(bit_vector'(X"4D63"))(15 DOWNTO 0),
to_stdlogicvector(bit_vector'(X"9319"))(15 DOWNTO 0),
to_stdlogicvector(bit_vector'(X"7DBF"))(15 DOWNTO 0),
to_stdlogicvector(bit_vector'(X"81F1"))(15 DOWNTO 0),
to_stdlogicvector(bit_vector'(X"6E35"))(15 DOWNTO 0),
to_stdlogicvector(bit_vector'(X"AF6B"))(15 DOWNTO 0),
to_stdlogicvector(bit_vector'(X"2933"))(15 DOWNTO 0),
to_stdlogicvector(bit_vector'(X"02E3"))(15 DOWNTO 0),
to_stdlogicvector(bit_vector'(X"D1BD"))(15 DOWNTO 0),
to_stdlogicvector(bit_vector'(X"53D2"))(15 DOWNTO 0),
to_stdlogicvector(bit_vector'(X"90A4"))(15 DOWNTO 0),
to_stdlogicvector(bit_vector'(X"7DFE"))(15 DOWNTO 0),
to_stdlogicvector(bit_vector'(X"8197"))(15 DOWNTO 0),
to_stdlogicvector(bit_vector'(X"70F0"))(15 DOWNTO 0),
to_stdlogicvector(bit_vector'(X"A899"))(15 DOWNTO 0),
to_stdlogicvector(bit_vector'(X"34D4"))(15 DOWNTO 0),
to_stdlogicvector(bit_vector'(X"F2EE"))(15 DOWNTO 0),
to_stdlogicvector(bit_vector'(X"E456"))(15 DOWNTO 0),
to_stdlogicvector(bit_vector'(X"4142"))(15 DOWNTO 0),
to_stdlogicvector(bit_vector'(X"9FE9"))(15 DOWNTO 0),
to_stdlogicvector(bit_vector'(X"755D"))(15 DOWNTO 0),
to_stdlogicvector(bit_vector'(X"80AC"))(15 DOWNTO 0),
to_stdlogicvector(bit_vector'(X"7D61"))(15 DOWNTO 0),
to_stdlogicvector(bit_vector'(X"8FF6"))(15 DOWNTO 0),
to_stdlogicvector(bit_vector'(X"58D4"))(15 DOWNTO 0),
to_stdlogicvector(bit_vector'(X"C5EE"))(15 DOWNTO 0),
to_stdlogicvector(bit_vector'(X"16A5"))(15 DOWNTO 0),
to_stdlogicvector(bit_vector'(X"0E55"))(15 DOWNTO 0),
to_stdlogicvector(bit_vector'(X"CE3E"))(15 DOWNTO 0),
to_stdlogicvector(bit_vector'(X"50D0"))(15 DOWNTO 0),
to_stdlogicvector(bit_vector'(X"96D4"))(15 DOWNTO 0),
to_stdlogicvector(bit_vector'(X"7928"))(15 DOWNTO 0),
to_stdlogicvector(bit_vector'(X"802F"))(15 DOWNTO 0),
to_stdlogicvector(bit_vector'(X"7CF5"))(15 DOWNTO 0),
to_stdlogicvector(bit_vector'(X"8EE9"))(15 DOWNTO 0),
to_stdlogicvector(bit_vector'(X"5D5A"))(15 DOWNTO 0),
to_stdlogicvector(bit_vector'(X"BCA0"))(15 DOWNTO 0),
to_stdlogicvector(bit_vector'(X"2524"))(15 DOWNTO 0),
to_stdlogicvector(bit_vector'(X"FB36"))(15 DOWNTO 0),
to_stdlogicvector(bit_vector'(X"E481"))(15 DOWNTO 0),
to_stdlogicvector(bit_vector'(X"39AD"))(15 DOWNTO 0),
to_stdlogicvector(bit_vector'(X"AC0C"))(15 DOWNTO 0),
to_stdlogicvector(bit_vector'(X"68E0"))(15 DOWNTO 0),
to_stdlogicvector(bit_vector'(X"8899"))(15 DOWNTO 0),
to_stdlogicvector(bit_vector'(X"7EED"))(15 DOWNTO 0),
to_stdlogicvector(bit_vector'(X"80B8"))(15 DOWNTO 0),
to_stdlogicvector(bit_vector'(X"78B7"))(15 DOWNTO 0),
to_stdlogicvector(bit_vector'(X"9429"))(15 DOWNTO 0),
to_stdlogicvector(bit_vector'(X"5992"))(15 DOWNTO 0),
to_stdlogicvector(bit_vector'(X"BCF6"))(15 DOWNTO 0),
to_stdlogicvector(bit_vector'(X"2987"))(15 DOWNTO 0),
to_stdlogicvector(bit_vector'(X"F19F"))(15 DOWNTO 0),
to_stdlogicvector(bit_vector'(X"F2F0"))(15 DOWNTO 0),
to_stdlogicvector(bit_vector'(X"278A"))(15 DOWNTO 0),
to_stdlogicvector(bit_vector'(X"C016"))(15 DOWNTO 0),
to_stdlogicvector(bit_vector'(X"553A"))(15 DOWNTO 0),
to_stdlogicvector(bit_vector'(X"9949"))(15 DOWNTO 0),
to_stdlogicvector(bit_vector'(X"73D4"))(15 DOWNTO 0),
to_stdlogicvector(bit_vector'(X"83C2"))(15 DOWNTO 0),
to_stdlogicvector(bit_vector'(X"7FD8"))(15 DOWNTO 0),
to_stdlogicvector(bit_vector'(X"8148"))(15 DOWNTO 0),
to_stdlogicvector(bit_vector'(X"791F"))(15 DOWNTO 0),
to_stdlogicvector(bit_vector'(X"908B"))(15 DOWNTO 0),
to_stdlogicvector(bit_vector'(X"6240"))(15 DOWNTO 0),
to_stdlogicvector(bit_vector'(X"ADE6"))(15 DOWNTO 0),
to_stdlogicvector(bit_vector'(X"3FAC"))(15 DOWNTO 0),
to_stdlogicvector(bit_vector'(X"D45A"))(15 DOWNTO 0),
to_stdlogicvector(bit_vector'(X"16B4"))(15 DOWNTO 0),
to_stdlogicvector(bit_vector'(X"FE83"))(15 DOWNTO 0),
to_stdlogicvector(bit_vector'(X"EC9E"))(15 DOWNTO 0),
to_stdlogicvector(bit_vector'(X"275F"))(15 DOWNTO 0),
to_stdlogicvector(bit_vector'(X"C5FF"))(15 DOWNTO 0),
to_stdlogicvector(bit_vector'(X"4AE2"))(15 DOWNTO 0),
to_stdlogicvector(bit_vector'(X"A64C"))(15 DOWNTO 0),
to_stdlogicvector(bit_vector'(X"663C"))(15 DOWNTO 0),
to_stdlogicvector(bit_vector'(X"8FAD"))(15 DOWNTO 0),
to_stdlogicvector(bit_vector'(X"77E8"))(15 DOWNTO 0),
to_stdlogicvector(bit_vector'(X"8307"))(15 DOWNTO 0),
to_stdlogicvector(bit_vector'(X"7F94"))(15 DOWNTO 0),
to_stdlogicvector(bit_vector'(X"802D"))(15 DOWNTO 0),
to_stdlogicvector(bit_vector'(X"7DDE"))(15 DOWNTO 0),
to_stdlogicvector(bit_vector'(X"861D"))(15 DOWNTO 0),
to_stdlogicvector(bit_vector'(X"7417"))(15 DOWNTO 0),
to_stdlogicvector(bit_vector'(X"934E"))(15 DOWNTO 0),
to_stdlogicvector(bit_vector'(X"63F1"))(15 DOWNTO 0),
to_stdlogicvector(bit_vector'(X"A5F0"))(15 DOWNTO 0),
to_stdlogicvector(bit_vector'(X"4F48"))(15 DOWNTO 0),
to_stdlogicvector(bit_vector'(X"BC2C"))(15 DOWNTO 0),
to_stdlogicvector(bit_vector'(X"37E8"))(15 DOWNTO 0),
to_stdlogicvector(bit_vector'(X"D448"))(15 DOWNTO 0),
to_stdlogicvector(bit_vector'(X"1F6F"))(15 DOWNTO 0),
to_stdlogicvector(bit_vector'(X"ECCA"))(15 DOWNTO 0),
to_stdlogicvector(bit_vector'(X"0732"))(15 DOWNTO 0),
to_stdlogicvector(bit_vector'(X"0481"))(15 DOWNTO 0),
to_stdlogicvector(bit_vector'(X"F038"))(15 DOWNTO 0),
to_stdlogicvector(bit_vector'(X"1A8F"))(15 DOWNTO 0),
to_stdlogicvector(bit_vector'(X"DB3A"))(15 DOWNTO 0),
to_stdlogicvector(bit_vector'(X"2E61"))(15 DOWNTO 0),
to_stdlogicvector(bit_vector'(X"C8A7"))(15 DOWNTO 0),
to_stdlogicvector(bit_vector'(X"3FA9"))(15 DOWNTO 0),
to_stdlogicvector(bit_vector'(X"B8B1"))(15 DOWNTO 0),
to_stdlogicvector(bit_vector'(X"4E4D"))(15 DOWNTO 0),
to_stdlogicvector(bit_vector'(X"AB5A"))(15 DOWNTO 0),
to_stdlogicvector(bit_vector'(X"0000"))(15 DOWNTO 0),
to_stdlogicvector(bit_vector'(X"0000"))(15 DOWNTO 0),
to_stdlogicvector(bit_vector'(X"0000"))(15 DOWNTO 0),
to_stdlogicvector(bit_vector'(X"0000"))(15 DOWNTO 0),
to_stdlogicvector(bit_vector'(X"0000"))(15 DOWNTO 0),
to_stdlogicvector(bit_vector'(X"0000"))(15 DOWNTO 0),
to_stdlogicvector(bit_vector'(X"0000"))(15 DOWNTO 0),
to_stdlogicvector(bit_vector'(X"0000"))(15 DOWNTO 0),
to_stdlogicvector(bit_vector'(X"0000"))(15 DOWNTO 0),
to_stdlogicvector(bit_vector'(X"0000"))(15 DOWNTO 0),
to_stdlogicvector(bit_vector'(X"0000"))(15 DOWNTO 0));
begin
analytic_filter_inst : analytic_filter_h_a4 --change this to analytic_filter_h_ax to test other filters
generic map(
-- input_data_width => input_data_width, --uncomment this for analytic_filter_h_a1
-- output_data_width => output_data_width, --uncomment this for analytic_filter_h_a1
-- filter_delay_in_clks => filter_delay_in_clks --uncomment this for analytic_filter_h_a1
data_width => data_width --uncomment this for analytic_filter_h_a3-4
)
port map(
rst_i => rst,
clk_i => clk,
data_str_i => '1',
data_i => anal_data_i,
data_i_o => i,
data_q_o => q,
data_str_o => open
);
clk <= not clk after clk_period/2;
rst <= '1', '0' after 20 ns;
--choose scaling, not all filters have the full dynamic range
anal_data_i <= x;
-- anal_data_i <= std_logic_vector(shift_right(signed(x),1));
-- anal_data_i <= std_logic_vector(shift_right(signed(x),2));
x_real <= real(to_integer(signed(x)))/ 2.0**(input_data_width-1);
i_real <= real(to_integer(signed(i)))/ 2.0**(output_data_width-1);
q_real <= real(to_integer(signed(q)))/ 2.0**(output_data_width-1);
--choose imput stimuli:
-- x <= x"7FFF", x"0000" after 40 ns; --impulse response
-- x <= x"7FFF"; --step response
filter_in_gen: process
begin
x <= filter_in_force(0);
wait for clk_period*3;
x <= filter_in_force(1);
wait for clk_period;
for n in 0 to 1034 loop
if n + 2 <= 1034 then
x <= filt
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -