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

📄 pio_tests.v

📁 基于xilinx vierex5得pci express dma设计实现。
💻 V
📖 第 1 页 / 共 3 页
字号:
                          DATA_STORE[2] = data[23:16];                          DATA_STORE[3] = data[31:24];                          $display("[%t] : MEMWRITE64, Address = %x, Write Data %x",                                     $realtime, BAR_INIT_P_BAR[ii][31:0], data);                          TSK_TX_MEMORY_WRITE_64(DEFAULT_TAG, DEFAULT_TC, 10'd1, {BAR_INIT_P_BAR[ii+1][31:0],			                         BAR_INIT_P_BAR[ii][31:0]}, 4'h0, 4'h8, 1'b0);                          TSK_TX_CLK_EAT(10);                          DEFAULT_TAG = DEFAULT_TAG + 1;                          data = 32'hFF23FFFF;                          DATA_STORE[0] = data[7:0];                          DATA_STORE[1] = data[15:8];                          DATA_STORE[2] = data[23:16];                          DATA_STORE[3] = data[31:24];                           $display("[%t] : MEMWRITE64, Address = %x, Write Data %x",                                     $realtime, BAR_INIT_P_BAR[ii][31:0], data);                          TSK_TX_MEMORY_WRITE_64(DEFAULT_TAG, DEFAULT_TC, 10'd1, {BAR_INIT_P_BAR[ii+1][31:0],			                         BAR_INIT_P_BAR[ii][31:0]}, 4'h0, 4'h4, 1'b0);                          TSK_TX_CLK_EAT(10);                          DEFAULT_TAG = DEFAULT_TAG + 1;                                                                              data = 32'hFFFF45FF;                          DATA_STORE[0] = data[7:0];                          DATA_STORE[1] = data[15:8];                          DATA_STORE[2] = data[23:16];                          DATA_STORE[3] = data[31:24];                          $display("[%t] : MEMWRITE64, Address = %x, Write Data %x",                                     $realtime, BAR_INIT_P_BAR[ii][31:0], data);                                 TSK_TX_MEMORY_WRITE_64(DEFAULT_TAG, DEFAULT_TC, 10'd1, {BAR_INIT_P_BAR[ii+1][31:0],			                         BAR_INIT_P_BAR[ii][31:0]}, 4'h0, 4'h2, 1'b0);                          TSK_TX_CLK_EAT(10);                          DEFAULT_TAG = DEFAULT_TAG + 1;                                                     data = 32'hFFFFFF67;                          DATA_STORE[0] = data[7:0];                          DATA_STORE[1] = data[15:8];                          DATA_STORE[2] = data[23:16];                          DATA_STORE[3] = data[31:24];                           $display("[%t] : MEMWRITE64, Address = %x, Write Data %x",                                     $realtime, BAR_INIT_P_BAR[ii][31:0], data);                          TSK_TX_MEMORY_WRITE_64(DEFAULT_TAG, DEFAULT_TC, 10'd1, {BAR_INIT_P_BAR[ii+1][31:0],			                         BAR_INIT_P_BAR[ii][31:0]}, 4'h0, 4'h1, 1'b0);                          TSK_TX_CLK_EAT(10);                          DEFAULT_TAG = DEFAULT_TAG + 1;                           P_READ_DATA = 32'hFFFF_FFFF;                          TSK_TX_MEMORY_READ_64(DEFAULT_TAG, DEFAULT_TC, 10'd1, {BAR_INIT_P_BAR[ii+1][31:0],			                        BAR_INIT_P_BAR[ii][31:0]}, 4'h0, 4'hF);                          TSK_WAIT_FOR_READ_DATA;                          $display("[%t] : MEMREAD64, Address = %x, Read Data %x", $realtime, BAR_INIT_P_BAR[ii][31:0], P_READ_DATA);                          DEFAULT_TAG = DEFAULT_TAG + 1;                                                  if  (P_READ_DATA != 32'h01234567)                          begin                            $display("[%t] : Test FAILED --- Error: Pattern Mismatch, Address = %x, Write Data 01234567 != Read Data %x",                                    $realtime, BAR_INIT_P_BAR[ii][31:0]+2, P_READ_DATA);                          end                          $display("[%t] : TEST PASSED --- Mem 64 for pio_memTestByteEnables_test1", $realtime);		                  	        end		default : $display("Error case in usrapp_tx\n");	    endcase         	 end        $display("[%t] : Finished transmission of PCI-Express TLPs", $realtime);    $finish;endelse if(testname == "pio_memTestDataBus")begin    // This test will verify the data bus connections for the PIO designs block RAMS.    // This memory test should be run prior to any other memory tests.       TSK_SIMULATION_TIMEOUT(10050);    TSK_SYSTEM_INITIALIZATION;    TSK_BAR_INIT;   verbose = 1;	for (ii = 0; ii <= 6; ii = ii + 1) begin	   	    if (BAR_INIT_P_BAR_ENABLED[ii] > 2'b00) begin // bar is enabled                      $display("[%t] : Performing Memory data test to BAR %x of PIO design", $realtime, ii);      TSK_MEM_TEST_DATA_BUS(ii);              $display("[%t] : Test PASSED --- Finished Data Bus test to BAR %x", $realtime, ii);	       $finish; // comment this line in order to run the Mem test to each of the 4 Block RAMS	    end	 end        $finish;endelse if(testname == "pio_memTestAddrBus")begin    // This test will verify the address bus connections for the PIO designs block RAMS.    // This memory test should be run after the data bus test.    TSK_SIMULATION_TIMEOUT(10050);    TSK_SYSTEM_INITIALIZATION;        TSK_BAR_INIT;   PIO_MAX_MEMORY = 16; // Comment out this line in order to test the entire 8Kbyte memory space                        // which will make this a long test to run.	for (ii = 0; ii <= 6; ii = ii + 1) begin	    if (BAR_INIT_P_BAR_ENABLED[ii] > 2'b00) begin // bar is enabled                    $display("[%t] : Performing Memory address test to BAR %x of PIO design", $realtime, ii);               TSK_MEM_TEST_ADDR_BUS(ii, PIO_MAX_MEMORY);               $display("[%t] : Address Test PASSED to BAR %x", $realtime, ii);                end	          	 end    $display("[%t] : Test PASSED --- Finished pio_memTestAddrBus", $realtime);    $finish;endelse if(testname == "pio_memTestDevice")begin    // This test will verify memory bit for the block RAMs of the PIO designs block RAMS.    // This memory test should be run only after the address memory test.       TSK_SIMULATION_TIMEOUT(80000);    TSK_SYSTEM_INITIALIZATION;        TSK_BAR_INIT;    PIO_MAX_MEMORY = 8;  // Comment out this line in order to test the entire 8Kbyte memory space                         // which will make this a VERY long test to run.	for (ii = 0; ii <= 6; ii = ii + 1) begin	    if (BAR_INIT_P_BAR_ENABLED[ii] > 2'b00) begin // bar is enabled                                          $display("[%t] : Performing Memory device test to BAR %x of PIO design", $realtime, ii);                    TSK_MEM_TEST_DEVICE(ii, PIO_MAX_MEMORY);                    $display("[%t] : Device Test PASSED for BAR %x", $realtime,ii);	                  					    end  	 end    $display("[%t] : Test PASSED --- Finished pio_memTestDevice", $realtime);    $finish;endelse if(testname == "pio_readConfigReg_test0")begin    // This test will verify memory bit for the block RAMs of the PIO designs block RAMS.    // This memory test should be run only after the address memory test.    TSK_SIMULATION_TIMEOUT(80000);    TSK_SYSTEM_INITIALIZATION;    TSK_BAR_INIT;    TSK_TX_READBACK_CONFIG; // read config registers via trn tx interfaceendelse if(testname == "pio_tlp_test0")begin    TSK_SIMULATION_TIMEOUT(10050);    TSK_SYSTEM_INITIALIZATION;        TSK_BAR_INIT;//--------------------------------------------------------------------------//        Testing each BAR specific to its type (Mem32/IO/Mem64). Note//         that the burst Mem32 and Completion TLPs will be received//         by the PIO design passing through the core but will be discared. Only//         1DW Mem32, IO, and mem64 TLPs will be successfully processed. This//         test is for illustrative purposes and shows how the user can perform//         various TLP transactions.//--------------------------------------------------------------------------	for (ii = 0; ii <= 6; ii = ii + 1) begin	    if (BAR_INIT_P_BAR_ENABLED[ii] > 2'b00) // bar is enabled               case(BAR_INIT_P_BAR_ENABLED[ii])		   2'b01 : // IO SPACE			begin			   			  $display("[%t] : Transmitting TLPs to IO 32 Space BAR %x", $realtime, ii);                         //--------------------------------------------------------------------------			  // Event : IO Write TLP			  //--------------------------------------------------------------------------			  TSK_TX_IO_WRITE(DEFAULT_TAG, BAR_INIT_P_BAR[ii][31:0], 4'hF, 32'hdead_beef);			  TSK_TX_CLK_EAT(1000);			  DEFAULT_TAG = DEFAULT_TAG + 1;			  //--------------------------------------------------------------------------			  // Event : IO Read TLP			  //--------------------------------------------------------------------------			  TSK_TX_IO_READ(DEFAULT_TAG, BAR_INIT_P_BAR[ii][31:0], 4'hF);			  TSK_TX_CLK_EAT(100);			  DEFAULT_TAG = DEFAULT_TAG + 1;			 		        end		   2'b10 : // MEM 32 SPACE			begin			   		          $display("[%t] : Transmitting TLPs to Memory 32 Space BAR %x", $realtime, ii);			  //--------------------------------------------------------------------------			  // Event : Memory Write 32 bit TLPs			  //--------------------------------------------------------------------------			  TSK_TX_MEMORY_WRITE_32(DEFAULT_TAG, DEFAULT_TC, 10'd1, BAR_INIT_P_BAR[ii][31:0], 4'h0, 4'hF, 1'b0);			  TSK_TX_CLK_EAT(10);			  DEFAULT_TAG = DEFAULT_TAG + 1;			  TSK_TX_MEMORY_WRITE_32(DEFAULT_TAG, DEFAULT_TC, 10'd16, BAR_INIT_P_BAR[ii][31:0], 4'hF, 4'hF, 1'b0);			  TSK_TX_CLK_EAT(10);			  DEFAULT_TAG = DEFAULT_TAG + 1;			  TSK_TX_MEMORY_WRITE_32(DEFAULT_TAG, DEFAULT_TC, 10'd32, BAR_INIT_P_BAR[ii][31:0], 4'hF, 4'hF, 1'b0);			  TSK_TX_CLK_EAT(10);			  DEFAULT_TAG = DEFAULT_TAG + 1;			  TSK_TX_MEMORY_WRITE_32(DEFAULT_TAG, DEFAULT_TC, 10'd64, BAR_INIT_P_BAR[ii][31:0], 4'hF, 4'hF, 1'b0);			  TSK_TX_CLK_EAT(10);			  DEFAULT_TAG = DEFAULT_TAG + 1;			  TSK_TX_MEMORY_WRITE_32(DEFAULT_TAG, DEFAULT_TC, 10'd128, BAR_INIT_P_BAR[ii][31:0], 4'hF, 4'hF, 1'b0);			  TSK_TX_CLK_EAT(1000);			  DEFAULT_TAG = DEFAULT_TAG + 1;			  			  //--------------------------------------------------------------------------			  // Event : Memory Read 32 bit TLPs			  //--------------------------------------------------------------------------			  TSK_TX_MEMORY_READ_32(DEFAULT_TAG, DEFAULT_TC, 10'd1, BAR_INIT_P_BAR[ii][31:0], 4'h0, 4'hF);        		  TSK_TX_CLK_EAT(10);        		  DEFAULT_TAG = DEFAULT_TAG + 1;			  TSK_TX_MEMORY_READ_32(DEFAULT_TAG, DEFAULT_TC, 10'd16, BAR_INIT_P_BAR[ii][31:0], 4'hF, 4'hF);        		  TSK_TX_CLK_EAT(10);        		  DEFAULT_TAG = DEFAULT_TAG + 1;        		  TSK_TX_MEMORY_READ_32(DEFAULT_TAG, DEFAULT_TC, 10'd32, BAR_INIT_P_BAR[ii][31:0], 4'hF, 4'hF);        		  TSK_TX_CLK_EAT(10);        		  DEFAULT_TAG = DEFAULT_TAG + 1;        		  TSK_TX_MEMORY_READ_32(DEFAULT_TAG, DEFAULT_TC, 10'd64, BAR_INIT_P_BAR[ii][31:0], 4'hF, 4'hF);        		  TSK_TX_CLK_EAT(10);        		  DEFAULT_TAG = DEFAULT_TAG + 1;        		  TSK_TX_MEMORY_READ_32(DEFAULT_TAG, DEFAULT_TC, 10'd128, BAR_INIT_P_BAR[ii][31:0], 4'hF, 4'hF);        		  TSK_TX_CLK_EAT(1000);       			  DEFAULT_TAG = DEFAULT_TAG + 1;       				

⌨️ 快捷键说明

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