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

📄 analytic_filter_tb.vhd

📁 The Hilbert Transform is an important component in communication systems, e.g. for single sideband m
💻 VHD
📖 第 1 页 / 共 5 页
字号:
     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 + -