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

📄 main_tb_post.vhd

📁 以太网16B/20B源代码包括编码器和解码器功能
💻 VHD
字号:
-- **************************************************************
-- Owner:		Xilinx Inc.
-- File:  		main_tb_post.vhd
--
-- Purpose: 		Test for encoder and decoder functionality 
--			of 16 bit-wide transmission.
--
-- Author:		Jennifer Jenkins
-- Date:		3-31-2000
--	
-- ****************************************************************


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

entity MAIN_TB_POST is
end MAIN_TB_POST;


architecture BEHAVIOUR of MAIN_TB_POST is

-- ******************** CONSTANT DECLARATIONS ***********************
constant RESET_ACTIVE 			: STD_LOGIC := '0';

-- ********************* SIGNAL DECLARATIONS ************************
signal clk, rst				: STD_LOGIC;
signal data_trs, data_rcv 		: STD_LOGIC_VECTOR(15 downto 0);
signal k_char, dis_in, dis_out		: STD_LOGIC;
signal encoded_data, serial_data	: STD_LOGIC_VECTOR(19 downto 0);
signal frame_in_enc, frame_out_enc 	: STD_LOGIC;
signal frame_in_dec, frame_out_dec 	: STD_LOGIC;
signal char_err				: STD_LOGIC;


-- ******************** COMPONENT DECLARATION ***********************

-- 16B/20B Encoder Function
-- Encoder output VHDL timing model (time_sim_enc.vho)
component ENCODER_TIME_POST
	port(
		clk, data_trs_0, data_trs_1, data_trs_10, data_trs_11,
         	data_trs_12, data_trs_13, data_trs_14, data_trs_15, data_trs_2,
         	data_trs_3, data_trs_4, data_trs_5, data_trs_6, data_trs_7,
         	data_trs_8, data_trs_9, dis_in, frame_in_enc, 
		k_char, rst: in std_logic;
       	 	frame_out_enc: out std_logic;
        	dis_out, serial_data_0, serial_data_1, serial_data_10,
        	serial_data_11, serial_data_12, serial_data_13, serial_data_14,
        	serial_data_15, serial_data_16, serial_data_17, serial_data_18,
        	serial_data_19, serial_data_2, serial_data_3, serial_data_4,
        	serial_data_5, serial_data_6, serial_data_7, serial_data_8,
        	serial_data_9: inout std_logic);

end component;


-- 16B/20B Decoder Function
-- Decoder output VHDL timing model (time_sim_dec.vho)
component DECODER_TIME_POST
    port(
		clk, frame_in_dec, rst, serial_data_0, serial_data_1,
         	serial_data_10, serial_data_11, serial_data_12, serial_data_13,
         	serial_data_14, serial_data_15, serial_data_16, serial_data_17,
         	serial_data_18, serial_data_19, serial_data_2, serial_data_3,
         	serial_data_4, serial_data_5, serial_data_6, serial_data_7,
         	serial_data_8, serial_data_9: in std_logic;
         	decoded_data_0, decoded_data_1, decoded_data_10, decoded_data_11,
         	decoded_data_12, decoded_data_13, decoded_data_14,
         	decoded_data_15, decoded_data_2, decoded_data_3, decoded_data_4,
         	decoded_data_5, decoded_data_6, decoded_data_7, decoded_data_8,
         	decoded_data_9, frame_out_dec, ill_char_det: out std_logic);

end component;


-- 16B/20B Test Function Generator
component TST_16B20B_POST
	port(

		clk20		: inout	STD_LOGIC;			-- Local clock to encoder & decoder @ 20MHz	
		sync_reset	: out	STD_LOGIC;			-- Control signals to encoder
		data_trs	: out	STD_LOGIC_VECTOR (15 downto 0);	-- Date byte to encode
		k_char		: out 	STD_LOGIC;			-- Asserted denotes special 
									-- character transmission									
		disparity	: out	STD_LOGIC;			-- Denotes incoming parity
		run_dis		: in	STD_LOGIC;			-- Running disparity
		frame_to_enc	: inout	STD_LOGIC;			-- Control to start data encoding
		frame_out_enc	: in	STD_LOGIC;			-- Asserted - done with encoding
		data_rcv	: in	STD_LOGIC_VECTOR (15 downto 0);	-- Incoming data from decoder
		frame_in_dec	: out 	STD_LOGIC;			-- Control to start decoding
		frame_out_dec	: in	STD_LOGIC;			-- Asserted => done decoding
		data_from_enc	: in	STD_LOGIC_VECTOR (19 downto 0);	-- Data transfer from encoder
		data_to_dec	: out	STD_LOGIC_VECTOR (19 downto 0); -- Serial data to decoder
		ill_char_det	: in 	STD_LOGIC);			-- Asserted when illegal char detected	
		
end component;


begin

	-- ***************** COMPONENT ASSIGNMENTS *********************
	ENC: ENCODER_TIME_POST
		port map(
          		clk		=> clk,			
        		rst		=> rst,
			k_char		=> k_char,
	  		frame_in_enc 	=> frame_in_enc,	  
	  		dis_in		=> dis_in,			   	
	  		dis_out		=> dis_out,		  		
	  		frame_out_enc	=> frame_out_enc,
			data_trs_0	=> data_trs(0), 
			data_trs_1	=> data_trs(1), 
			data_trs_10	=> data_trs(10), 
			data_trs_11	=> data_trs(11),
         		data_trs_12	=> data_trs(12), 
			data_trs_13	=> data_trs(13), 
			data_trs_14	=> data_trs(14), 
			data_trs_15	=> data_trs(15), 
			data_trs_2	=> data_trs(2),
		        data_trs_3	=> data_trs(3), 
			data_trs_4	=> data_trs(4), 
			data_trs_5	=> data_trs(5), 
			data_trs_6	=> data_trs(6), 
			data_trs_7	=> data_trs(7),
 		        data_trs_8	=> data_trs(8), 
			data_trs_9	=> data_trs(9),  
        	        serial_data_0	=> encoded_data(0), 
			serial_data_1	=> encoded_data(1), 
			serial_data_10	=> encoded_data(10),
 		        serial_data_11	=> encoded_data(11), 
			serial_data_12	=> encoded_data(12), 
			serial_data_13	=> encoded_data(13), 
			serial_data_14	=> encoded_data(14),
		        serial_data_15	=> encoded_data(15), 
			serial_data_16	=> encoded_data(16), 
			serial_data_17	=> encoded_data(17), 
			serial_data_18	=> encoded_data(18),
		        serial_data_19	=> encoded_data(19), 
			serial_data_2	=> encoded_data(2), 
			serial_data_3	=> encoded_data(3), 
			serial_data_4	=> encoded_data(4),
		        serial_data_5	=> encoded_data(5), 
			serial_data_6	=> encoded_data(6), 
			serial_data_7	=> encoded_data(7), 
			serial_data_8	=> encoded_data(8),
		        serial_data_9	=> encoded_data(9));


	DEC: DECODER_TIME_POST	
		port map(	
			clk		=> clk,			
        		rst		=> rst,
 			frame_in_dec 	=> frame_in_dec,		  	 
	  		frame_out_dec	=> frame_out_dec,			  
	  		ill_char_det	=> char_err,
			serial_data_0	=> serial_data(0),
			serial_data_1	=> serial_data(1),
    		      	serial_data_10	=> serial_data(10),
			serial_data_11	=> serial_data(11), 
			serial_data_12	=> serial_data(12),
			serial_data_13	=> serial_data(13),
         		serial_data_14	=> serial_data(14), 
			serial_data_15	=> serial_data(15), 
			serial_data_16	=> serial_data(16), 
			serial_data_17	=> serial_data(17),
         		serial_data_18	=> serial_data(18), 
			serial_data_19	=> serial_data(19), 
			serial_data_2	=> serial_data(2), 
			serial_data_3	=> serial_data(3),
         		serial_data_4	=> serial_data(4), 
			serial_data_5	=> serial_data(5), 
			serial_data_6	=> serial_data(6),
			serial_data_7	=> serial_data(7),
      			serial_data_8	=> serial_data(8), 
			serial_data_9	=> serial_data(9),
         		decoded_data_0	=> data_rcv(0),
			decoded_data_1	=> data_rcv(1), 
			decoded_data_10	=> data_rcv(10), 
			decoded_data_11	=> data_rcv(11),
         		decoded_data_12	=> data_rcv(12), 
			decoded_data_13	=> data_rcv(13), 
			decoded_data_14	=> data_rcv(14),
         		decoded_data_15	=> data_rcv(15), 
			decoded_data_2	=> data_rcv(2), 
			decoded_data_3	=> data_rcv(3), 
			decoded_data_4	=> data_rcv(4),
         		decoded_data_5	=> data_rcv(5), 
			decoded_data_6	=> data_rcv(6), 
			decoded_data_7	=> data_rcv(7), 
			decoded_data_8	=> data_rcv(8),
         		decoded_data_9	=> data_rcv(9));
	

							
	TB: TST_16B20B_POST
		port map(
			clk20		=> clk,
			sync_reset	=> rst,		
			data_trs	=> data_trs,
			k_char		=> k_char,										
			disparity	=> dis_in,
			run_dis		=> dis_out,
			frame_to_enc	=> frame_in_enc,
			frame_out_enc	=> frame_out_enc,
			data_rcv	=> data_rcv,
			frame_in_dec	=> frame_in_dec,
			frame_out_dec	=> frame_out_dec,
			data_from_enc	=> encoded_data,
			data_to_dec	=> serial_data,
			ill_char_det	=> char_err);
  
   
end BEHAVIOUR;












⌨️ 快捷键说明

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