📄 bmd_wr_tests.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 + -