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

📄 analytic_filter_tb.vhd

📁 The Hilbert Transform is an important component in communication systems, e.g. for single sideband m
💻 VHD
📖 第 1 页 / 共 5 页
字号:
-- Testbench for Filters H_a1-4(z)
-- Uses a sine sweep as stimuli
-- 
-- This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License
-- as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version.
-- 
-- This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied
-- warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
-- 
-- You should have received a copy of the GNU General Public License along with this program; 
-- if not, see <http://www.gnu.org/licenses/>.


library ieee;
library ieee;
use ieee.std_logic_1164.all;

use ieee.numeric_std.all;
use ieee.math_real.all;

use work.analytic_filter_h_a1_pkg.all;
use work.analytic_filter_h_a2_pkg.all;
use work.analytic_filter_h_a3_pkg.all;
use work.analytic_filter_h_a4_pkg.all;

entity analytic_filter_tb is
	generic(
		clk_period : time := 10 ns;
		input_data_width : integer := 16;
		output_data_width : integer := 16;
		filter_delay_in_clks : integer  := 7; --delay of hilbert filter
    data_width : integer := 16
	);
end analytic_filter_tb; 

architecture analytic_filter_tb_arch of analytic_filter_tb is
  signal x : std_logic_vector(input_data_width-1 downto 0) := (others => '0'); --input
  signal i,q : std_logic_vector(output_data_width-1 downto 0); --output
  signal i_real,q_real : real;
  signal x_real : real;
  signal anal_data_i : std_logic_vector(input_data_width-1 downto 0);
  signal clk : std_logic := '0';
  signal rst : std_logic;

  type filter_in_table is array (0 to 1034) of std_logic_vector(15 downto 0);

  -- sine sweep
  constant filter_in_force : filter_in_table :=
    (
     to_stdlogicvector(bit_vector'(X"7FFF"))(15 DOWNTO 0),
     to_stdlogicvector(bit_vector'(X"7FFF"))(15 DOWNTO 0),
     to_stdlogicvector(bit_vector'(X"7FFF"))(15 DOWNTO 0),
     to_stdlogicvector(bit_vector'(X"7FFD"))(15 DOWNTO 0),
     to_stdlogicvector(bit_vector'(X"7FF7"))(15 DOWNTO 0),
     to_stdlogicvector(bit_vector'(X"7FE9"))(15 DOWNTO 0),
     to_stdlogicvector(bit_vector'(X"7FD0"))(15 DOWNTO 0),
     to_stdlogicvector(bit_vector'(X"7FA7"))(15 DOWNTO 0),
     to_stdlogicvector(bit_vector'(X"7F68"))(15 DOWNTO 0),
     to_stdlogicvector(bit_vector'(X"7F0D"))(15 DOWNTO 0),
     to_stdlogicvector(bit_vector'(X"7E8E"))(15 DOWNTO 0),
     to_stdlogicvector(bit_vector'(X"7DE2"))(15 DOWNTO 0),
     to_stdlogicvector(bit_vector'(X"7D02"))(15 DOWNTO 0),
     to_stdlogicvector(bit_vector'(X"7BE2"))(15 DOWNTO 0),
     to_stdlogicvector(bit_vector'(X"7A79"))(15 DOWNTO 0),
     to_stdlogicvector(bit_vector'(X"78BC"))(15 DOWNTO 0),
     to_stdlogicvector(bit_vector'(X"769F"))(15 DOWNTO 0),
     to_stdlogicvector(bit_vector'(X"7416"))(15 DOWNTO 0),
     to_stdlogicvector(bit_vector'(X"7116"))(15 DOWNTO 0),
     to_stdlogicvector(bit_vector'(X"6D93"))(15 DOWNTO 0),
     to_stdlogicvector(bit_vector'(X"6981"))(15 DOWNTO 0),
     to_stdlogicvector(bit_vector'(X"64D6"))(15 DOWNTO 0),
     to_stdlogicvector(bit_vector'(X"5F87"))(15 DOWNTO 0),
     to_stdlogicvector(bit_vector'(X"598B"))(15 DOWNTO 0),
     to_stdlogicvector(bit_vector'(X"52DB"))(15 DOWNTO 0),
     to_stdlogicvector(bit_vector'(X"4B71"))(15 DOWNTO 0),
     to_stdlogicvector(bit_vector'(X"434B"))(15 DOWNTO 0),
     to_stdlogicvector(bit_vector'(X"3A68"))(15 DOWNTO 0),
     to_stdlogicvector(bit_vector'(X"30CA"))(15 DOWNTO 0),
     to_stdlogicvector(bit_vector'(X"2679"))(15 DOWNTO 0),
     to_stdlogicvector(bit_vector'(X"1B7F"))(15 DOWNTO 0),
     to_stdlogicvector(bit_vector'(X"0FEC"))(15 DOWNTO 0),
     to_stdlogicvector(bit_vector'(X"03D4"))(15 DOWNTO 0),
     to_stdlogicvector(bit_vector'(X"F751"))(15 DOWNTO 0),
     to_stdlogicvector(bit_vector'(X"EA82"))(15 DOWNTO 0),
     to_stdlogicvector(bit_vector'(X"DD8B"))(15 DOWNTO 0),
     to_stdlogicvector(bit_vector'(X"D098"))(15 DOWNTO 0),
     to_stdlogicvector(bit_vector'(X"C3D9"))(15 DOWNTO 0),
     to_stdlogicvector(bit_vector'(X"B781"))(15 DOWNTO 0),
     to_stdlogicvector(bit_vector'(X"ABCC"))(15 DOWNTO 0),
     to_stdlogicvector(bit_vector'(X"A0F5"))(15 DOWNTO 0),
     to_stdlogicvector(bit_vector'(X"973D"))(15 DOWNTO 0),
     to_stdlogicvector(bit_vector'(X"8EE4"))(15 DOWNTO 0),
     to_stdlogicvector(bit_vector'(X"882C"))(15 DOWNTO 0),
     to_stdlogicvector(bit_vector'(X"8353"))(15 DOWNTO 0),
     to_stdlogicvector(bit_vector'(X"8092"))(15 DOWNTO 0),
     to_stdlogicvector(bit_vector'(X"801E"))(15 DOWNTO 0),
     to_stdlogicvector(bit_vector'(X"8220"))(15 DOWNTO 0),
     to_stdlogicvector(bit_vector'(X"86B8"))(15 DOWNTO 0),
     to_stdlogicvector(bit_vector'(X"8DF5"))(15 DOWNTO 0),
     to_stdlogicvector(bit_vector'(X"97D9"))(15 DOWNTO 0),
     to_stdlogicvector(bit_vector'(X"A450"))(15 DOWNTO 0),
     to_stdlogicvector(bit_vector'(X"B334"))(15 DOWNTO 0),
     to_stdlogicvector(bit_vector'(X"C445"))(15 DOWNTO 0),
     to_stdlogicvector(bit_vector'(X"D731"))(15 DOWNTO 0),
     to_stdlogicvector(bit_vector'(X"EB8D"))(15 DOWNTO 0),
     to_stdlogicvector(bit_vector'(X"00D7"))(15 DOWNTO 0),
     to_stdlogicvector(bit_vector'(X"167D"))(15 DOWNTO 0),
     to_stdlogicvector(bit_vector'(X"2BDA"))(15 DOWNTO 0),
     to_stdlogicvector(bit_vector'(X"403C"))(15 DOWNTO 0),
     to_stdlogicvector(bit_vector'(X"52ED"))(15 DOWNTO 0),
     to_stdlogicvector(bit_vector'(X"6336"))(15 DOWNTO 0),
     to_stdlogicvector(bit_vector'(X"7067"))(15 DOWNTO 0),
     to_stdlogicvector(bit_vector'(X"79DF"))(15 DOWNTO 0),
     to_stdlogicvector(bit_vector'(X"7F16"))(15 DOWNTO 0),
     to_stdlogicvector(bit_vector'(X"7FA5"))(15 DOWNTO 0),
     to_stdlogicvector(bit_vector'(X"7B4F"))(15 DOWNTO 0),
     to_stdlogicvector(bit_vector'(X"7205"))(15 DOWNTO 0),
     to_stdlogicvector(bit_vector'(X"63F1"))(15 DOWNTO 0),
     to_stdlogicvector(bit_vector'(X"5174"))(15 DOWNTO 0),
     to_stdlogicvector(bit_vector'(X"3B2D"))(15 DOWNTO 0),
     to_stdlogicvector(bit_vector'(X"21F3"))(15 DOWNTO 0),
     to_stdlogicvector(bit_vector'(X"06D0"))(15 DOWNTO 0),
     to_stdlogicvector(bit_vector'(X"EAFC"))(15 DOWNTO 0),
     to_stdlogicvector(bit_vector'(X"CFCB"))(15 DOWNTO 0),
     to_stdlogicvector(bit_vector'(X"B6A3"))(15 DOWNTO 0),
     to_stdlogicvector(bit_vector'(X"A0E5"))(15 DOWNTO 0),
     to_stdlogicvector(bit_vector'(X"8FDB"))(15 DOWNTO 0),
     to_stdlogicvector(bit_vector'(X"84A1"))(15 DOWNTO 0),
     to_stdlogicvector(bit_vector'(X"8012"))(15 DOWNTO 0),
     to_stdlogicvector(bit_vector'(X"82B3"))(15 DOWNTO 0),
     to_stdlogicvector(bit_vector'(X"8CA2"))(15 DOWNTO 0),
     to_stdlogicvector(bit_vector'(X"9D8D"))(15 DOWNTO 0),
     to_stdlogicvector(bit_vector'(X"B4AC"))(15 DOWNTO 0),
     to_stdlogicvector(bit_vector'(X"D0C5"))(15 DOWNTO 0),
     to_stdlogicvector(bit_vector'(X"F038"))(15 DOWNTO 0),
     to_stdlogicvector(bit_vector'(X"1110"))(15 DOWNTO 0),
     to_stdlogicvector(bit_vector'(X"3124"))(15 DOWNTO 0),
     to_stdlogicvector(bit_vector'(X"4E36"))(15 DOWNTO 0),
     to_stdlogicvector(bit_vector'(X"6620"))(15 DOWNTO 0),
     to_stdlogicvector(bit_vector'(X"76FA"))(15 DOWNTO 0),
     to_stdlogicvector(bit_vector'(X"7F4A"))(15 DOWNTO 0),
     to_stdlogicvector(bit_vector'(X"7E28"))(15 DOWNTO 0),
     to_stdlogicvector(bit_vector'(X"7359"))(15 DOWNTO 0),
     to_stdlogicvector(bit_vector'(X"5F67"))(15 DOWNTO 0),
     to_stdlogicvector(bit_vector'(X"43A0"))(15 DOWNTO 0),
     to_stdlogicvector(bit_vector'(X"220B"))(15 DOWNTO 0),
     to_stdlogicvector(bit_vector'(X"FD49"))(15 DOWNTO 0),
     to_stdlogicvector(bit_vector'(X"D863"))(15 DOWNTO 0),
     to_stdlogicvector(bit_vector'(X"B68F"))(15 DOWNTO 0),
     to_stdlogicvector(bit_vector'(X"9AE7"))(15 DOWNTO 0),
     to_stdlogicvector(bit_vector'(X"881B"))(15 DOWNTO 0),
     to_stdlogicvector(bit_vector'(X"802D"))(15 DOWNTO 0),
     to_stdlogicvector(bit_vector'(X"842D"))(15 DOWNTO 0),
     to_stdlogicvector(bit_vector'(X"9413"))(15 DOWNTO 0),
     to_stdlogicvector(bit_vector'(X"AEA8"))(15 DOWNTO 0),
     to_stdlogicvector(bit_vector'(X"D193"))(15 DOWNTO 0),
     to_stdlogicvector(bit_vector'(X"F985"))(15 DOWNTO 0),
     to_stdlogicvector(bit_vector'(X"227F"))(15 DOWNTO 0),
     to_stdlogicvector(bit_vector'(X"4837"))(15 DOWNTO 0),
     to_stdlogicvector(bit_vector'(X"6687"))(15 DOWNTO 0),
     to_stdlogicvector(bit_vector'(X"79ED"))(15 DOWNTO 0),
     to_stdlogicvector(bit_vector'(X"7FF5"))(15 DOWNTO 0),
     to_stdlogicvector(bit_vector'(X"7793"))(15 DOWNTO 0),
     to_stdlogicvector(bit_vector'(X"615E"))(15 DOWNTO 0),
     to_stdlogicvector(bit_vector'(X"3F93"))(15 DOWNTO 0),
     to_stdlogicvector(bit_vector'(X"15ED"))(15 DOWNTO 0),
     to_stdlogicvector(bit_vector'(X"E947"))(15 DOWNTO 0),
     to_stdlogicvector(bit_vector'(X"BF10"))(15 DOWNTO 0),
     to_stdlogicvector(bit_vector'(X"9CA4"))(15 DOWNTO 0),
     to_stdlogicvector(bit_vector'(X"8699"))(15 DOWNTO 0),
     to_stdlogicvector(bit_vector'(X"801A"))(15 DOWNTO 0),
     to_stdlogicvector(bit_vector'(X"8A66"))(15 DOWNTO 0),
     to_stdlogicvector(bit_vector'(X"A483"))(15 DOWNTO 0),
     to_stdlogicvector(bit_vector'(X"CB45"))(15 DOWNTO 0),
     to_stdlogicvector(bit_vector'(X"F99D"))(15 DOWNTO 0),
     to_stdlogicvector(bit_vector'(X"2936"))(15 DOWNTO 0),
     to_stdlogicvector(bit_vector'(X"534A"))(15 DOWNTO 0),
     to_stdlogicvector(bit_vector'(X"719F"))(15 DOWNTO 0),
     to_stdlogicvector(bit_vector'(X"7F76"))(15 DOWNTO 0),
     to_stdlogicvector(bit_vector'(X"7A5D"))(15 DOWNTO 0),
     to_stdlogicvector(bit_vector'(X"62AB"))(15 DOWNTO 0),
     to_stdlogicvector(bit_vector'(X"3B9C"))(15 DOWNTO 0),
     to_stdlogicvector(bit_vector'(X"0AF3"))(15 DOWNTO 0),
     to_stdlogicvector(bit_vector'(X"D835"))(15 DOWNTO 0),
     to_stdlogicvector(bit_vector'(X"AB83"))(15 DOWNTO 0),
     to_stdlogicvector(bit_vector'(X"8C4E"))(15 DOWNTO 0),
     to_stdlogicvector(bit_vector'(X"8010"))(15 DOWNTO 0),
     to_stdlogicvector(bit_vector'(X"8940"))(15 DOWNTO 0),
     to_stdlogicvector(bit_vector'(X"A6C3"))(15 DOWNTO 0),
     to_stdlogicvector(bit_vector'(X"D3EA"))(15 DOWNTO 0),
     to_stdlogicvector(bit_vector'(X"091C"))(15 DOWNTO 0),
     to_stdlogicvector(bit_vector'(X"3D09"))(15 DOWNTO 0),
     to_stdlogicvector(bit_vector'(X"664B"))(15 DOWNTO 0),
     to_stdlogicvector(bit_vector'(X"7D1B"))(15 DOWNTO 0),
     to_stdlogicvector(bit_vector'(X"7CDD"))(15 DOWNTO 0),
     to_stdlogicvector(bit_vector'(X"6523"))(15 DOWNTO 0),
     to_stdlogicvector(bit_vector'(X"39FC"))(15 DOWNTO 0),
     to_stdlogicvector(bit_vector'(X"035B"))(15 DOWNTO 0),
     to_stdlogicvector(bit_vector'(X"CBBA"))(15 DOWNTO 0),
     to_stdlogicvector(bit_vector'(X"9E1D"))(15 DOWNTO 0),
     to_stdlogicvector(bit_vector'(X"83E4"))(15 DOWNTO 0),
     to_stdlogicvector(bit_vector'(X"82C7"))(15 DOWNTO 0),
     to_stdlogicvector(bit_vector'(X"9B7C"))(15 DOWNTO 0),
     to_stdlogicvector(bit_vector'(X"C958"))(15 DOWNTO 0),
     to_stdlogicvector(bit_vector'(X"030C"))(15 DOWNTO 0),
     to_stdlogicvector(bit_vector'(X"3C71"))(15 DOWNTO 0),
     to_stdlogicvector(bit_vector'(X"690F"))(15 DOWNTO 0),
     to_stdlogicvector(bit_vector'(X"7EDA"))(15 DOWNTO 0),
     to_stdlogicvector(bit_vector'(X"788B"))(15 DOWNTO 0),
     to_stdlogicvector(bit_vector'(X"570B"))(15 DOWNTO 0),
     to_stdlogicvector(bit_vector'(X"217E"))(15 DOWNTO 0),
     to_stdlogicvector(bit_vector'(X"E3E8"))(15 DOWNTO 0),
     to_stdlogicvector(bit_vector'(X"AC88"))(15 DOWNTO 0),
     to_stdlogicvector(bit_vector'(X"8896"))(15 DOWNTO 0),
     to_stdlogicvector(bit_vector'(X"8107"))(15 DOWNTO 0),
     to_stdlogicvector(bit_vector'(X"982E"))(15 DOWNTO 0),
     to_stdlogicvector(bit_vector'(X"C8E8"))(15 DOWNTO 0),
     to_stdlogicvector(bit_vector'(X"0791"))(15 DOWNTO 0),
     to_stdlogicvector(bit_vector'(X"44AB"))(15 DOWNTO 0),
     to_stdlogicvector(bit_vector'(X"70AC"))(15 DOWNTO 0),
     to_stdlogicvector(bit_vector'(X"7FFA"))(15 DOWNTO 0),
     to_stdlogicvector(bit_vector'(X"6E20"))(15 DOWNTO 0),
     to_stdlogicvector(bit_vector'(X"3F3F"))(15 DOWNTO 0),
     to_stdlogicvector(bit_vector'(X"FF51"))(15 DOWNTO 0),
     to_stdlogicvector(bit_vector'(X"BF3C"))(15 DOWNTO 0),
     to_stdlogicvector(bit_vector'(X"906C"))(15 DOWNTO 0),

⌨️ 快捷键说明

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