📄 pio_tests.v
字号:
else if(testname == "pio_writeReadBack_test0")begin // This test performs a 32 bit write to a 32 bit Memory space and performs a read back TSK_SIMULATION_TIMEOUT(10050); TSK_SYSTEM_INITIALIZATION; TSK_BAR_INIT;//--------------------------------------------------------------------------// Event : Testing BARs//-------------------------------------------------------------------------- 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 Space BAR %x", $realtime, ii); //-------------------------------------------------------------------------- // Event : IO Write bit TLP //-------------------------------------------------------------------------- TSK_TX_IO_WRITE(DEFAULT_TAG, BAR_INIT_P_BAR[ii][31:0], 4'hF, 32'hdead_beef); TSK_TX_CLK_EAT(10); DEFAULT_TAG = DEFAULT_TAG + 1; //-------------------------------------------------------------------------- // Event : IO Read bit TLP //--------------------------------------------------------------------------P_READ_DATA = 32'hffff_ffff; // make sure P_READ_DATA has known initial value TSK_TX_IO_READ(DEFAULT_TAG, BAR_INIT_P_BAR[ii][31:0], 4'hF); TSK_WAIT_FOR_READ_DATA; if (P_READ_DATA != 32'hdead_beef) begin $display("[%t] : Test FAILED --- Data Error Mismatch, Write Data %x != Read Data %x", $realtime, 32'hdead_beef, P_READ_DATA); end else begin $display("[%t] : Test PASSED --- Write Data: %x successfully received", $realtime, P_READ_DATA); end TSK_TX_CLK_EAT(10); 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 TLP //-------------------------------------------------------------------------- DATA_STORE[0] = 8'h04; DATA_STORE[1] = 8'h03; DATA_STORE[2] = 8'h02; DATA_STORE[3] = 8'h01; TSK_TX_MEMORY_WRITE_32(DEFAULT_TAG, DEFAULT_TC, 10'd1, BAR_INIT_P_BAR[ii][31:0]+8'h10, 4'h0, 4'hF, 1'b0); TSK_TX_CLK_EAT(10); DEFAULT_TAG = DEFAULT_TAG + 1; //-------------------------------------------------------------------------- // Event : Memory Read 32 bit TLP //-------------------------------------------------------------------------- P_READ_DATA = 32'hffff_ffff; // make sure P_READ_DATA has known initial value TSK_TX_MEMORY_READ_32(DEFAULT_TAG, DEFAULT_TC, 10'd1, BAR_INIT_P_BAR[ii][31:0]+8'h10, 4'h0, 4'hF); TSK_WAIT_FOR_READ_DATA; if (P_READ_DATA != {DATA_STORE[3], DATA_STORE[2], DATA_STORE[1], DATA_STORE[0] }) begin $display("[%t] : Test FAILED --- Data Error Mismatch, Write Data %x != Read Data %x", $realtime, {DATA_STORE[3],DATA_STORE[2],DATA_STORE[1],DATA_STORE[0]}, P_READ_DATA); end else begin $display("[%t] : Test PASSED --- Write Data: %x successfully received", $realtime, P_READ_DATA); end TSK_TX_CLK_EAT(10); DEFAULT_TAG = DEFAULT_TAG + 1; end 2'b11 : // MEM 64 SPACE begin $display("[%t] : Transmitting TLPs to Memory 64 Space BAR %x", $realtime, ii); //-------------------------------------------------------------------------- // Event : Memory Write 64 bit TLP //-------------------------------------------------------------------------- DATA_STORE[0] = 8'h64; DATA_STORE[1] = 8'h63; DATA_STORE[2] = 8'h62; DATA_STORE[3] = 8'h61; 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]+8'h20}, 4'h0, 4'hF, 1'b0); TSK_TX_CLK_EAT(10); DEFAULT_TAG = DEFAULT_TAG + 1; //-------------------------------------------------------------------------- // Event : Memory Read 64 bit 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'd1, {BAR_INIT_P_BAR[ii+1][31:0], BAR_INIT_P_BAR[ii][31:0]+8'h20}, 4'h0, 4'hF); TSK_WAIT_FOR_READ_DATA; if (P_READ_DATA != {DATA_STORE[3], DATA_STORE[2], DATA_STORE[1], DATA_STORE[0] }) begin $display("[%t] : Test FAILED --- Data Error Mismatch, Write Data %x != Read Data %x", $realtime, {DATA_STORE[3],DATA_STORE[2],DATA_STORE[1],DATA_STORE[0]}, P_READ_DATA); end else begin $display("[%t] : Test PASSED --- Write Data: %x successfully received", $realtime, P_READ_DATA); end TSK_TX_CLK_EAT(10); DEFAULT_TAG = DEFAULT_TAG + 1; 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_testByteEnables_test0")begin TSK_SIMULATION_TIMEOUT(10050); TSK_SYSTEM_INITIALIZATION; TSK_BAR_INIT; 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] : Transmission to IO Space BAR %x", $realtime, ii); data = 32'h01FFFFFF; $display("[%t] : IOWRITE, Address = %x, Write Data %x", $realtime, BAR_INIT_P_BAR[ii][31:0], data); TSK_TX_IO_WRITE(DEFAULT_TAG, BAR_INIT_P_BAR[ii][31:0], 4'h8, data); TSK_TX_CLK_EAT(10); DEFAULT_TAG = DEFAULT_TAG + 1; data = 32'hFF23FFFF; $display("[%t] : IOWRITE, Address = %x, Write Data %x", $realtime, BAR_INIT_P_BAR[ii][31:0], data); TSK_TX_IO_WRITE(DEFAULT_TAG, BAR_INIT_P_BAR[ii][31:0], 4'h4, data); TSK_TX_CLK_EAT(10); DEFAULT_TAG = DEFAULT_TAG + 1; data = 32'hFFFF45FF; $display("[%t] : IOWRITE, Address = %x, Write Data %x", $realtime, BAR_INIT_P_BAR[ii][31:0], data); TSK_TX_IO_WRITE(DEFAULT_TAG, BAR_INIT_P_BAR[ii][31:0], 4'h2, data); TSK_TX_CLK_EAT(10); DEFAULT_TAG = DEFAULT_TAG + 1; data = 32'hFFFFFF67; $display("[%t] : IOWRITE, Address = %x, Write Data %x", $realtime, BAR_INIT_P_BAR[ii][31:0], data); TSK_TX_IO_WRITE(DEFAULT_TAG, BAR_INIT_P_BAR[ii][31:0], 4'h1, data); TSK_TX_CLK_EAT(10); DEFAULT_TAG = DEFAULT_TAG + 1; P_READ_DATA = 32'hFFFF_FFFF; TSK_TX_IO_READ(DEFAULT_TAG, BAR_INIT_P_BAR[ii][31:0], 4'hF); TSK_WAIT_FOR_READ_DATA; $display("[%t] : IOREAD, 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 --- IO test for pio_testByteEnables_test1", $realtime); end 2'b10 : // MEM 32 SPACE begin $display("[%t] : Transmission to Mem 32 Space BAR %x", $realtime, ii); data = 32'h01FFFFFF; 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] : MEMWRITE32, Address = %x, Write Data %x", $realtime, BAR_INIT_P_BAR[ii][31:0], data); TSK_TX_MEMORY_WRITE_32(DEFAULT_TAG, DEFAULT_TC, 10'd1, 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] : MEMWRITE32, Address = %x, Write Data %x", $realtime, BAR_INIT_P_BAR[ii][31:0], data); TSK_TX_MEMORY_WRITE_32(DEFAULT_TAG, DEFAULT_TC, 10'd1, 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] : MEMWRITE32, Address = %x, Write Data %x", $realtime, BAR_INIT_P_BAR[ii][31:0], data); TSK_TX_MEMORY_WRITE_32(DEFAULT_TAG, DEFAULT_TC, 10'd1, 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] : MEMWRITE32, Address = %x, Write Data %x", $realtime, BAR_INIT_P_BAR[ii][31:0], data); TSK_TX_MEMORY_WRITE_32(DEFAULT_TAG, DEFAULT_TC, 10'd1, 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_32(DEFAULT_TAG, DEFAULT_TC, 10'd1, BAR_INIT_P_BAR[ii][31:0], 4'h0, 4'hF); TSK_WAIT_FOR_READ_DATA; $display("[%t] : MEMREAD32, 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 32 for pio_memTestByteEnables_test1", $realtime); end 2'b11 : // MEM 64 SPACE begin $display("[%t] : Transmission to Mem 64 Space BAR %x", $realtime, ii); data = 32'h01FFFFFF; DATA_STORE[0] = data[7:0]; DATA_STORE[1] = data[15:8];
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -