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

📄 recv_tb.vhd

📁 用于数字下变频器的 FPGA 实现
💻 VHD
字号:
---------------------------------------------------------------------------------- Company: -- Engineer:---- Create Date:   13:33:57 10/31/2008-- Design Name:   recv-- Module Name:   D:/ise_fpga/project_115/recv_tb.vhd-- Project Name:  project_115-- Target Device:  -- Tool versions:  -- Description:   -- -- VHDL Test Bench Created by ISE for module: recv---- Dependencies:-- -- Revision:-- Revision 0.01 - File Created-- Additional Comments:---- Notes: -- This testbench has been automatically generated using types std_logic and-- std_logic_vector for the ports of the unit under test.  Xilinx recommends -- that these types always be used for the top-level I/O of a design in order -- to guarantee that the testbench will bind correctly to the post-implementation -- simulation model.--------------------------------------------------------------------------------LIBRARY ieee;USE ieee.std_logic_1164.ALL;USE ieee.std_logic_unsigned.all;USE ieee.numeric_std.ALL;USE STD.TEXTIO.ALL;ENTITY recv_tb_vhd ISEND recv_tb_vhd;ARCHITECTURE behavior OF recv_tb_vhd IS 	-- Component Declaration for the Unit Under Test (UUT)	COMPONENT recv	PORT(		clk : IN std_logic;		AD_clk : IN std_logic;		aclr : IN std_logic;		coef : IN std_logic_vector(511 downto 0);		AD_in : IN std_logic_vector(13 downto 0);          		corr_dout_I : OUT std_logic_vector(43 downto 0);		corr_dout_Q : OUT std_logic_vector(43 downto 0);		corr_dout_rd : OUT std_logic;		t_DDC_dout_I : OUT std_logic_vector(15 downto 0);		t_DDC_dout_Q : OUT std_logic_vector(15 downto 0);		t_DDC_dout_I_rd : OUT std_logic;		t_DDC_dout_Q_rd : OUT std_logic;		t_re_lpf_din : OUT std_logic_vector(15 downto 0);		t_corr_din_I		: out std_logic_vector(34 downto 0);		t_corr_din_nd		: out std_logic;		shaped_fir_dout_I : OUT std_logic_vector(34 downto 0);		shaped_fir_dout_Q : OUT std_logic_vector(34 downto 0);		shaped_fir_dout_rd : OUT std_logic		);	END COMPONENT;	--Inputs	SIGNAL aclr :  std_logic := '1';	SIGNAL clk :  std_logic := '0';	SIGNAL AD_clk :  std_logic := '0';	SIGNAL AD_in :  std_logic_vector(13 downto 0) := "00011111010000";	signal coef	: std_logic_vector(511 downto 0):= "11111111011101110011011100010101001001110001110110101011100100110000011000011101001000110101101111101100110001011100000100001111100000000011110000100011110100110010010000101111000110011110110111010100010100001101101000110001111110001000101100001010110101111110101010100000101001011111001000100100101001111101000100000111000011001011001010001110010111010000000101101001110101100111001111111001100110101001101100000010010110110110010000001101001010111101011101100010011010000100111100101010110001101111001110111101";	--Outputs	SIGNAL corr_dout_I :  std_logic_vector(43 downto 0);	SIGNAL corr_dout_Q :  std_logic_vector(43 downto 0);	SIGNAL corr_dout_rd :  std_logic;	SIGNAL t_DDC_dout_I :  std_logic_vector(15 downto 0);	SIGNAL t_DDC_dout_Q :  std_logic_vector(15 downto 0);	SIGNAL t_DDC_dout_I_rd :  std_logic;	SIGNAL t_DDC_dout_Q_rd :  std_logic;	SIGNAL t_re_lpf_din :  std_logic_vector(15 downto 0);	signal t_corr_din_I		: std_logic_vector(34 downto 0);	signal t_corr_din_nd		: std_logic;	SIGNAL shaped_fir_dout_I :  std_logic_vector(34 downto 0);	SIGNAL shaped_fir_dout_Q :  std_logic_vector(34 downto 0);	SIGNAL shaped_fir_dout_rd :  std_logic;	signal corr_dout_clk	: std_logic;
		FILE lpf_din  : TEXT IS out "lpf_din_file.txt";      	FILE ddc_dout : TEXT IS out "ddc_dout_file.txt";	FILE shaped_fir_dout : TEXT IS out "shaped_dout_file.txt"; 
	FILE corr_dout : TEXT IS out "corr_file.txt"; 	BEGIN

	corr_dout_rd <= corr_dout_clk;	-- Instantiate the Unit Under Test (UUT)	uut: recv PORT MAP(		clk => clk,		AD_clk => AD_clk,		aclr => aclr,		coef => coef,		AD_in => AD_in,		corr_dout_I => corr_dout_I,		corr_dout_Q => corr_dout_Q,		corr_dout_rd => corr_dout_clk,		t_DDC_dout_I => t_DDC_dout_I,		t_DDC_dout_Q => t_DDC_dout_Q,		t_DDC_dout_I_rd => t_DDC_dout_I_rd,		t_DDC_dout_Q_rd => t_DDC_dout_Q_rd,		t_re_lpf_din => t_re_lpf_din,		t_corr_din_I	=>	t_corr_din_I,		t_corr_din_nd	=> t_corr_din_nd,			shaped_fir_dout_I => shaped_fir_dout_I,		shaped_fir_dout_Q => shaped_fir_dout_Q,		shaped_fir_dout_rd => shaped_fir_dout_rd	);	tb : PROCESS	BEGIN		-- Wait 100 ns for global reset to finish		wait for 2000 ns;		aclr <= '0'; 		-- Place stimulus here		wait; -- will wait forever	END PROCESS;   clk <= not clk after 10 ns;		AD_clk <= not AD_clk after 100 ns;		process	begin		wait for 100 ns;		AD_in <= AD_in + 1;		wait for 100 ns;	end process;		process(AD_clk)		variable lpf_din_line			: LINE;		variable ddc_dout_line			: LINE;		variable shaped_fir_dout_line			: LINE;		begin			if (AD_clk'event and AD_clk = '1') then				write(lpf_din_line,conv_integer(t_re_lpf_din));				writeline(lpf_din,lpf_din_line);								write(ddc_dout_line,conv_integer(t_DDC_dout_I));				writeline(ddc_dout,ddc_dout_line);								write(shaped_fir_dout_line,conv_integer(shaped_fir_dout_I(34 downto 3)));				writeline(shaped_fir_dout,shaped_fir_dout_line);							end if;		end process;	
		
	process(corr_dout_clk)
		variable corr_dout_line			: LINE;		
		begin
				if (corr_dout_clk'event and corr_dout_clk = '1') then
					write(corr_dout_line,conv_integer(corr_dout_I(43 downto 12)));					writeline(corr_dout,corr_dout_line);		
				end if;
		end process;END;

⌨️ 快捷键说明

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