2'b11 : // MEM 64 SPACE begin $display("[%t] : Start transmitting TLPs to Memory 64 Space BAR %x", $realtime, ii); //-------------------------------------------------------------------------- // Event 1 : 1st Memory64 Write TLP //-------------------------------------------------------------------------- //1st dword DATA_STORE[0] = 8'h64; DATA_STORE[1] = 8'h63; DATA_STORE[2] = 8'h62; DATA_STORE[3] = 8'h61; //2nd dword DATA_STORE[4] = 8'h60; DATA_STORE[5] = 8'h5F; DATA_STORE[6] = 8'h5E; DATA_STORE[7] = 8'h5D; //3rd dword DATA_STORE[8] = 8'h4A; DATA_STORE[9] = 8'h3B; DATA_STORE[10] = 8'h2C; DATA_STORE[11] = 8'h1D; //4th dword DATA_STORE[12] = 8'h01; DATA_STORE[13] = 8'hF2; DATA_STORE[14] = 8'hE3; DATA_STORE[15] = 8'hD4; //5th dword DATA_STORE[16] = 8'h48; DATA_STORE[17] = 8'h39; DATA_STORE[18] = 8'h20; DATA_STORE[19] = 8'h1A; //6th dword DATA_STORE[20] = 8'hAA; DATA_STORE[21] = 8'hBB; DATA_STORE[22] = 8'hEC; DATA_STORE[23] = 8'hDE; //7th dword DATA_STORE[24] = 8'hF4; DATA_STORE[25] = 8'hEB; DATA_STORE[26] = 8'hCC; DATA_STORE[27] = 8'hDD; //8th dword DATA_STORE[28] = 8'hAB; DATA_STORE[29] = 8'hCD; DATA_STORE[30] = 8'hEF; DATA_STORE[31] = 8'h10; //9th dword DATA_STORE[32] = 8'h55; DATA_STORE[33] = 8'h66; DATA_STORE[34] = 8'h77; DATA_STORE[35] = 8'h88; //10th dword DATA_STORE[36] = 8'h10; DATA_STORE[37] = 8'h11; DATA_STORE[38] = 8'h12; DATA_STORE[39] = 8'h13; TSK_TX_MEMORY_WRITE_64(DEFAULT_TAG, DEFAULT_TC, 10'd10, {BAR_INIT_P_BAR[ii+1][31:0], BAR_INIT_P_BAR[ii][31:0]+8'h20}, 4'hF, 4'hF, 1'b0); TSK_TX_CLK_EAT(10); DEFAULT_TAG = DEFAULT_TAG + 1; $display("[%t] : 1ST Write TLP to Memory 64 Space BAR %x transmited", $realtime, ii); $display("[%t] : Timeout Start", $realtime); TSK_TX_CLK_EAT(10); $display("[%t] : Timeout End", $realtime); //-------------------------------------------------------------------------- // Event 2 : 2nd Memory64 Write TLP //-------------------------------------------------------------------------- //1st dword DATA_STORE[0] = 8'h41; DATA_STORE[1] = 8'h32; DATA_STORE[2] = 8'h23; DATA_STORE[3] = 8'h14; //2nd dword DATA_STORE[4] = 8'h51; DATA_STORE[5] = 8'h52; DATA_STORE[6] = 8'h53; DATA_STORE[7] = 8'h54; //3rd dword DATA_STORE[8] = 8'h67; DATA_STORE[9] = 8'h68; DATA_STORE[10] = 8'h69; DATA_STORE[11] = 8'h7A; //4th dword DATA_STORE[12] = 8'h34; DATA_STORE[13] = 8'h44; DATA_STORE[14] = 8'h54; DATA_STORE[15] = 8'h64; //5th dword DATA_STORE[16] = 8'h7C; DATA_STORE[17] = 8'hC8; DATA_STORE[18] = 8'hFF; DATA_STORE[19] = 8'h1A; //6th dword DATA_STORE[20] = 8'hAA; DATA_STORE[21] = 8'hBB; DATA_STORE[22] = 8'hEC; DATA_STORE[23] = 8'hDE; TSK_TX_MEMORY_WRITE_64(DEFAULT_TAG, DEFAULT_TC, 10'd6, {BAR_INIT_P_BAR[ii+1][31:0], BAR_INIT_P_BAR[ii][31:0]+8'h48}, 4'hF, 4'hF, 1'b0); TSK_TX_CLK_EAT(10); DEFAULT_TAG = DEFAULT_TAG + 1; $display("[%t] : 2ND Write TLP to Memory 64 Space BAR %x transmited", $realtime, ii); $display("[%t] : Timeout Start", $realtime); TSK_TX_CLK_EAT(200); $display("[%t] : Timeout End", $realtime); //-------------------------------------------------------------------------- // Event 3 : 1st Memory64 Read TLP //-------------------------------------------------------------------------- P_READ_DATA = 32'hffff_ffff; // make sure P_READ_DATA has known initial value TSK_TX_MEMORY_READ_64(DEFAULT_TAG, DEFAULT_TC, 10'd4, {BAR_INIT_P_BAR[ii+1][31:0], BAR_INIT_P_BAR[ii][31:0]+8'h30}, 4'hF, 4'hF); $display("[%t] : 1ST Read TLP to Memory 64 Space BAR %x sended", $realtime, ii); TSK_WAIT_FOR_READ_DATA; if (P_READ_DATA != {DATA_STORE[3], DATA_STORE[2], DATA_STORE[1], DATA_STORE[0] }) begin end //-------------------------------------------------------------------------- // Event 4 : 2nd Memory64 Read TLP //-------------------------------------------------------------------------- P_READ_DATA = 32'hffff_ffff; // make sure P_READ_DATA has known initial value //2nd read TLP TSK_TX_MEMORY_READ_64(DEFAULT_TAG, DEFAULT_TC, 10'd8, {BAR_INIT_P_BAR[ii+1][31:0], BAR_INIT_P_BAR[ii][31:0]+8'h20}, 4'hF, 4'hF); $display("[%t] : 2ND Read TLP to Memory 64 Space BAR %x sended", $realtime, ii); TSK_WAIT_FOR_READ_DATA; if (P_READ_DATA != {DATA_STORE[3], DATA_STORE[2], DATA_STORE[1], DATA_STORE[0] }) begin end //-------------------------------------------------------------------------- // If we get here - all procedures succsesfully finished - all OK //-------------------------------------------------------------------------- $display("[%t] : !!! Memory64 Tx/Rx prcedure finished succsesfully!!!", $realtime); $stop; //--------------------------------------------------------------------------