RapidIO II Intel® FPGA IP User Guide

ID 683444
Date 9/28/2020
Document Table of Contents

7.2.8. Port-Write Transactions

To test port-writes, the test performs some basic configuration of the port-write registers in the DUT and the sister_rio module. It then programs the DUT to transmit port-write request packets to the sister_rio module. The port-writes are received by the sister_rio module and retrieved by the test program.

The configuration enables the RX_PACKET_STORED interrupt in the sister_rio module. If this interrupt is enabled, the sister_rio module asserts its mnt_mnt_s_irq signal when the sister_rio module receives a Port-Write transaction and the payload can be retrieved. To enable the interrupt, the testbench calls the sister_sys_mnt_master_bfm read_write_cmd task.

A write operation is performed by the task with the address 0x10084 and data 0x10 passed as parameters. In addition, the sister_rio module must be enabled to receive Port-Write transactions from the DUT. The task is called with the address 0x10250 and data 0x1. After the configuration is complete, the test performs the following operations:
Table 186.  Port-Write Test
Operation Action
Places data into the TX_PORT_WRITE_BUFFER. Write incrementing payload to registers at addresses 0x10210 to 0x1024C.
Indicates to the DUT that Port-Write data is ready. Write DESTINATION_ID = 0xCD or 0xCDCD, depending on the device ID width setting, and PACKET_READY = 0x1 to 0x10200.
Waits for the sister_rio module to receive the port-write. Monitor the sister_rio module mnt_mnt_s_irq signal.
Verifies that the sister_rio module has the interrupt bit PACKET_STORED set. Read register at address 0x10080.
Retrieves the Port-Write payload from the sister_rio module and checks for data integrity. Read registers at addresses 0x10260–0x1029C.
Checks the sister_rio module Rx Port Write Status register for correct payload size Read register at address 0x10254.
Clears the PACKET_STORED interrupt in the sister_rio module Write 1'b1 to bit 4 of register at address 0x10080.
Waits for the next interrupt at the sister _rio module. Monitor the sister_rio module mnt_mnt_s_irq signal.
The testbench performs this test five times. All testbench port-write operations have a payload of 32 bytes. Each operation is performed one of the sis_sys_mnt_master_bfm or sys_mnt_master_bfm read_write_cmd or read_data tasks.