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

📄 bmd_wr_tests.v

📁 基于xilinx vierex5得pci express dma设计实现。
💻 V
字号:

else if(testname == "BMD_Wr_DMA_LEGACY")
begin

  P_ADDRESS_2L = 32'h10000000;    
//    P_ADDRESS_2L = 32'h00000000;
  
//Lab 4, #1
  
    TSK_SIMULATION_TIMEOUT(10050);
    TSK_USR_DATA_SETUP_SEQ;

    //System Initialization
    TSK_SYSTEM_INITIALIZATION;

    TSK_BAR_INIT;

  $display("[%t] : Set up for a Write DMA operation.", $realtime); 
  // Write DMA Address

  DATA_STORE[0] = 8'h00;
  DATA_STORE[1] = 8'h00;
  DATA_STORE[2] = 8'h00;
  DATA_STORE[3] = 8'hba;

  $display("[%t] : Write the Write DMA starting address.", $realtime);  
  TSK_TX_MEMORY_WRITE_32(DEFAULT_TAG, DEFAULT_TC, 10'd1, P_ADDRESS_2L + 8'h08, 4'h0, 4'hF, 1'b0);  
  DEFAULT_TAG = DEFAULT_TAG + 1;

  // Write Length

  //DATA_STORE[0] = 8'h40; // 256 Byte
  DATA_STORE[0] = 8'h20; // 128 Byte
  DATA_STORE[1] = 8'h00;
  DATA_STORE[2] = 8'h00;
  DATA_STORE[3] = 8'h00;
  
  $display("[%t] : Write the Write DMA length.", $realtime);  
  TSK_TX_MEMORY_WRITE_32(DEFAULT_TAG, DEFAULT_TC, 10'd1, P_ADDRESS_2L + 8'h0C, 4'h0, 4'hF, 1'b0);
  DEFAULT_TAG = DEFAULT_TAG + 1;

  // Write Count

  DATA_STORE[0] = 8'h14;
  DATA_STORE[1] = 8'h00;
  DATA_STORE[2] = 8'h00;
  DATA_STORE[3] = 8'h00;

  $display("[%t] : Write the Write DMA TLP count.", $realtime);  
  TSK_TX_MEMORY_WRITE_32(DEFAULT_TAG, DEFAULT_TC, 10'd1, P_ADDRESS_2L + 8'h10, 4'h0, 4'hF, 1'b0);
  DEFAULT_TAG = DEFAULT_TAG + 1;

  // Write Data

  DATA_STORE[0] = 8'hAA;
  DATA_STORE[1] = 8'h55;
  DATA_STORE[2] = 8'hAA;
  DATA_STORE[3] = 8'h55;


  $display("[%t] : Write the Write DMA Data Pattern.", $realtime);  
  TSK_TX_MEMORY_WRITE_32(DEFAULT_TAG, DEFAULT_TC, 10'd1, P_ADDRESS_2L + 8'h14, 4'h0, 4'hF, 1'b0);
  DEFAULT_TAG = DEFAULT_TAG + 1;
  
  // Start Mem Write DMA

  DATA_STORE[0] = 8'hFF;
  DATA_STORE[1] = 8'h00;
  DATA_STORE[2] = 8'h00;
  DATA_STORE[3] = 8'h00;
  
  $display("[%t] : Start the memory write DMA operation.", $realtime);  
  TSK_TX_MEMORY_WRITE_32(DEFAULT_TAG, DEFAULT_TC, 10'd1, P_ADDRESS_2L + 8'h04, 4'h0, 4'hF, 1'b0);
  DEFAULT_TAG = DEFAULT_TAG + 1;
  
  `BOARD.`XILINX_PCI_EXP_DOWNSTREAM_PORT_INST.com_usrapp.TSK_EXPECT_INTR( 
  DEFAULT_TC,   	//Traffic Class
  1'b0,						//TD
  1'b0,						//EP
  2'h0,						//Attributes
  10'h0,					//Length
  16'h01a0,				//Requester Id
  8'h0,						//Tag
  3'h4,						//Message Type
  8'h20,					//Message Code
  expect_status);
     
  DATA_STORE[0] = 8'hFF;
  DATA_STORE[1] = 8'hAA;
  DATA_STORE[2] = 8'hBB;
  DATA_STORE[3] = 8'hCC;  
  $display("[%t] : Write Interrupt ACK Register.", $realtime);  
  TSK_TX_MEMORY_WRITE_32(DEFAULT_TAG, DEFAULT_TC, 10'd1, P_ADDRESS_2L + 8'h3c, 4'h0, 4'hF, 1'b0);
  DEFAULT_TAG = DEFAULT_TAG + 1;
  
  `BOARD.`XILINX_PCI_EXP_DOWNSTREAM_PORT_INST.com_usrapp.TSK_EXPECT_INTR( 
  DEFAULT_TC,   	//Traffic Class
  1'b0,						//TD
  1'b0,						//EP
  2'h0,						//Attributes
  10'h0,					//Length
  16'h01a0,				//Requester Id
  8'h0,						//Tag
  3'h4,						//Message Type
  8'h24,					//Message Code
  expect_status);
  
  TSK_TX_CLK_EAT(50);


 //********************************************************************************************
  //Reset the DMA for the next step 
  DATA_STORE[0] = 8'h01;
  DATA_STORE[1] = 8'h00;
  DATA_STORE[2] = 8'h00;
  DATA_STORE[3] = 8'h00;
   
  TSK_TX_MEMORY_WRITE_32(DEFAULT_TAG, DEFAULT_TC, 10'd1, P_ADDRESS_2L + 8'h00, 4'h0, 4'hF, 1'b0);  
  DEFAULT_TAG = DEFAULT_TAG + 1; 
  
  DATA_STORE[0] = 8'h00;
  DATA_STORE[1] = 8'h00;
  DATA_STORE[2] = 8'h00;
  DATA_STORE[3] = 8'h00;
 
  TSK_TX_MEMORY_WRITE_32(DEFAULT_TAG, DEFAULT_TC, 10'd1, P_ADDRESS_2L + 8'h00, 4'h0, 4'hF, 1'b0);  
  DEFAULT_TAG = DEFAULT_TAG + 1; 
    
  TSK_TX_CLK_EAT(50);  
 //******************************************************************************************* 

  $finish;
end

// else if(testname == "BMD_Wr_DMA_MSI")

⌨️ 快捷键说明

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