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

📄 top_level_tb.vhd

📁 Serial ADC Interface write in VHDL based on xilinx cpld
💻 VHD
字号:
-- **************************************************************
--
-- Owner:	Xilinx Inc.
-- File:  	top_level_tb.vhd
--
-- Purpose: 	Test bench for TOP_LEVEL entity.  Checks that
--		data is sent to ADC from configure registers.  Checks
--		SRAM address for writing data from ADC to SRAM.
--
-- **************************************************************


LIBRARY ieee;
USE ieee.std_logic_1164.ALL;
USE ieee.numeric_std.ALL;

ENTITY TOP_LEVEL_TB IS
END TOP_LEVEL_TB;

ARCHITECTURE BEHAVE OF TOP_LEVEL_TB IS 

-- ******************** CONSTANT DECLARATIONS ***********************

constant HALFCLKPERIOD	: 	time	:= 200 nS;

-- Component Declaration
	Component TOP_LEVEL
		port(

	SP_CS0n	 		: in 		STD_LOGIC;
	SP_CS1n   		: in 		STD_LOGIC;
	SP_WEn  		: in 		STD_LOGIC;
	SP_OEn			: in 		STD_LOGIC;
	SP_D			: inout 	STD_LOGIC_VECTOR(15 DOWNTO 0);
	SP_A			: in 	  	STD_LOGIC_VECTOR(23 DOWNTO 1);
	SP_A_0 			: out   	STD_LOGIC;
	--SPRING_RESETn		: in 		STD_LOGIC;
	CHIP3_EN		: out 		STD_LOGIC;
	A			: out 		STD_LOGIC_VECTOR(22 DOWNTO 0);
	D			: inout 	STD_LOGIC_VECTOR(15 DOWNTO 0);
	FLASH_CS0n		: out 		STD_LOGIC;
	FLASH_WR_PROTECT	: out 		STD_LOGIC;
	SRAM_CS1n		: inout 	STD_LOGIC;
	OEn			: out 		STD_LOGIC;
	RWn			: inout 	STD_LOGIC;

	IO13			: out 		STD_LOGIC;

	SRAM_UPPER_BYTEn	: out 		STD_LOGIC;
	SRAM_LOW_BYTEn		: out 		STD_LOGIC;

			
	--ADS7870 Signals
	Cclk			: in		STD_LOGIC;
	Sclk			: inout		STD_LOGIC;
	Din			: out 		STD_LOGIC;
	Dout			: in 		STD_LOGIC;
	AD_CHIP2_ENn		: out 		STD_LOGIC;
	RISE_FALL 		: out 		STD_LOGIC;
	CONVERT 	 	: out 		STD_LOGIC;
	OSC_CNTRL 		: out 		STD_LOGIC;
	ADS_RESET		: out 		STD_LOGIC;	
	BUSY			: in 		STD_LOGIC;
	
	BUSY_TEST		: out 		STD_LOGIC;

	LED1_SEL		: out 		STD_LOGIC;
	LED2_SEL		: out 		STD_LOGIC;
	LED3_SEL		: out 		STD_LOGIC;
	LED4_SEL		: out 		STD_LOGIC

	  );


	END COMPONENT;

-- ********************* SIGNAL DECLARATIONS ************************
--*******************************************************************
signal SP_CS0n	 		: STD_LOGIC;
signal SP_CS1n   		: STD_LOGIC;
signal SP_WEn  			: STD_LOGIC;
signal SP_OEn			: STD_LOGIC;
signal SP_D			: STD_LOGIC_VECTOR(15 DOWNTO 0);
signal SP_A			: STD_LOGIC_VECTOR(23 DOWNTO 1);
signal SP_A_0 			: STD_LOGIC;
signal CHIP3_EN			: std_logic;
signal A			: STD_LOGIC_VECTOR(22 DOWNTO 0);
signal D			: STD_LOGIC_VECTOR(15 DOWNTO 0);
signal FLASH_CS0n		: STD_LOGIC;
signal FLASH_WR_PROTECT		: STD_LOGIC;
signal SRAM_CHIP1_ENn		: STD_LOGIC;
signal OEn				: STD_LOGIC;
signal RWn			: STD_LOGIC;
signal SRAM_UPPER_BYTEn		: STD_LOGIC;
signal SRAM_LOW_BYTEn		: STD_LOGIC;

signal IO13			: std_logic;

signal Cclk			: std_logic;
signal Sclk			: std_logic;
signal Din			: std_logic;
signal Dout			: std_logic;
signal AD_CHIP2_ENn		: std_logic;

signal RISE_FALL 		: STD_LOGIC;
signal CONVERT	 		: STD_LOGIC;
signal OSC_CNTRL 		: STD_LOGIC;


signal ADS_RESET		: STD_LOGIC;	
signal BUSY			: STD_LOGIC := '0';
signal BUSY_TEST		: STD_LOGIC;


signal led1_sel			: STD_LOGIC;
signal led2_sel			: STD_LOGIC;
signal led3_sel			: STD_LOGIC;
signal led4_sel			: STD_LOGIC;


BEGIN

-- Component Instantiation
TOP_TEST : TOP_LEVEL
PORT MAP(

	 SP_CS0n	 	=>		 SP_CS0n,
	 SP_CS1n   		=>		 SP_CS1n,
	 SP_WEn  		=>		 SP_WEn,
	 SP_OEn			=>		 SP_OEn,
	 SP_D			=>		 SP_D,
	 SP_A			=>		 SP_A,
	 SP_A_0 		=>		 SP_A_0,
	 CHIP3_EN		=>		 CHIP3_EN,
	 A			=>		 A,
	 D			=>		 D,
	 FLASH_CS0n		=>		 FLASH_CS0n,
	 FLASH_WR_PROTECT	=>		 FLASH_WR_PROTECT,
	 SRAM_CS1n		=>		 SRAM_CHIP1_ENn,
	 OEn			=>		 OEn,
	 RWn			=>		 RWn,
	 SRAM_UPPER_BYTEn	=>		 SRAM_UPPER_BYTEn,
	 SRAM_LOW_BYTEn		=>		 SRAM_LOW_BYTEn,
	 Cclk			=>		 Cclk,
	 Sclk			=>		 Sclk,
	 Din			=>		 Din,
	 Dout			=>		 Dout,
	 AD_CHIP2_ENn		=>		 AD_CHIP2_ENn,
	 RISE_FALL 		=>		 RISE_FALL,
	 CONVERT	 	=>		 CONVERT,
	 OSC_CNTRL 		=>		 OSC_CNTRL,
	 ADS_RESET		=>		 ADS_RESET,
	 BUSY			=>     BUSY,
	 BUSY_TEST		=>		 BUSY_TEST,

	 IO13			=> 	IO13,

	 led1_sel		=>  	 led1_sel,
	 led2_sel		=>	 led2_sel,
	 led3_sel		=>	 led3_sel,
	 led4_sel		=>	 led4_sel
	);



GEN_CLKS:process
begin
cclk <= '0';
wait for 15 uS;
loop
	cclk <= '1';
	wait for HALFCLKPERIOD;

	cclk <= '0';
	wait for HALFCLKPERIOD;

end loop;
end process GEN_CLKS;


FLOW: process
begin

	dout <= '1';
	SP_A <= "00000000000000000011111";
	SP_CS0n <= '1';
	SP_CS1n <= '1';
	SP_WEn <= '1';
	SP_OEn <= '1';
	wait for 100 us;

	SP_CS1n <= '0';
	SP_WEn <= '0';
	sp_d <= "1111111111111111";
	wait for 100 us;
	
	SP_WEn <= '1';		
	wait for 100 us;
	
	SP_WEn <= '0';
	sp_d<="0000000000000000";
	wait for 100 us;
	
	SP_WEn <= '1';
	wait;
	
		
end process FLOW;



END BEHAVE;

⌨️ 快捷键说明

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