--XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX-- -- Testname: user_test0 --XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX-- elsif (test_selector = String'("user_test0")) then writeNowToScreen(String'("#MSG: Running user_test0")); PROC_SYSTEM_INITIALIZATION(trn_reset_n, trn_lnk_up_n); PROC_BAR_INIT (tx_rx_read_data_valid, rx_tx_read_data_valid, rx_tx_read_data, trn_td_c, trn_tsof_n, trn_teof_n, trn_trem_n_c, trn_tsrc_rdy_n, trn_lnk_up_n, trn_tdst_rdy_n, trn_clk); PROC_TX_CLK_EAT(300, trn_clk); writeNowToScreen(String'("#MSG: Checking BAR0..")); if (BAR_ENABLED(0) = 2) then writeNowToScreen(String'("#MSG: Found Mem32 BAR0.")); writeNowToScreen(String'("#MSG: Part I: Write - Read Back Test (32DW).")); for i in 0 to 31 loop write (Lglobal, String'("#MSG: Address Offset = 0x")); hwrite(Lglobal, std_logic_vector(unsigned(BAR(0)(31 downto 0)) + i*4)); write (Lglobal, String'(""".")); writeline (output, Lglobal); DATA_STORE(0) := std_logic_vector(to_unsigned(i*4 + 1, 8)); DATA_STORE(1) := std_logic_vector(to_unsigned(i*4 + 2, 8)); DATA_STORE(2) := std_logic_vector(to_unsigned(i*4 + 3, 8)); DATA_STORE(3) := std_logic_vector(to_unsigned(i*4 + 4, 8)); PROC_TX_MEMORY_WRITE_32 ( std_logic_vector(to_unsigned(i*2 + 1, 8)), --tag = 0x01,0x03..0x41 "000", --tc(transaction class) = 0 "0000000001", --len = 1 std_logic_vector(unsigned(BAR(0)(31 downto 0)) + i*4), --addr = BAR0 Base Address X"0", --last_dw_be = 0x0 X"F", --first_dw_be = 0xF '0', --ep = b0 trn_td_c, trn_tsof_n, trn_teof_n , trn_trem_n_c, trn_tsrc_rdy_n, trn_terrfwd_n, trn_lnk_up_n, trn_tdst_rdy_n, trn_clk); P_READ_DATA := X"FFFFFFFF"; PROC_TX_MEMORY_READ_32 ( std_logic_vector(to_unsigned(i*2 + 2, 8)), --tag = 0x02,0x04..0x42 "000", --tc(transaction class) = 0 "0000000001", --len = 1 std_logic_vector(unsigned(BAR(0)(31 downto 0)) + i*4), --addr = BAR0 Base Address X"0", --last_dw_be = 0x0 X"F", --first_dw_be = 0xF trn_td_c, trn_tsof_n, trn_teof_n , trn_trem_n_c, trn_tsrc_rdy_n, trn_lnk_up_n, trn_tdst_rdy_n, trn_clk); PROC_WAIT_FOR_READ_DATA (tx_rx_read_data_valid, rx_tx_read_data_valid, rx_tx_read_data, trn_clk); if (P_READ_DATA = (DATA_STORE(3) & DATA_STORE(2) & DATA_STORE(1) & DATA_STORE(0))) then write (LGlobal, String'("#MSG: Passed. Completion Data = 0x")); hwrite(LGlobal, P_READ_DATA); writeline (output, LGlobal); else success := false; write (LGlobal, String'("#MSG: Test Failed. Expected Data = 0x")); hwrite(LGlobal, DATA_STORE(3)); hwrite(LGlobal, DATA_STORE(2)); hwrite(LGlobal, DATA_STORE(1)); hwrite(LGlobal, DATA_STORE(0)); write (LGlobal, String'(" Received Data = 0x")); hwrite(LGlobal, P_READ_DATA); writeline (output, LGlobal); end if; end loop; else write (Lglobal, String'("#MSG: Could't found BAR0 of Mem32 type. BAR0 Status = ")); write (Lglobal, BAR_ENABLED(0)); writeline (output, Lglobal); end if; writeNowToScreen(String'("#MSG: user_test0 is complete!")); PROC_TX_CLK_EAT(50, trn_clk); ----------------------------------------------------------------------------------------