RapidIO Intel FPGA IP User Guide

ID 683884
Date 9/15/2021
Public
Document Table of Contents

7.2. Maintenance Write and Read Transactions

If the Maintenance module is present, the testbench sends a few MAINTENANCE read and write request packets from the DUT to the sister_rio module. Transactions are initiated by Avalon® -MM transactions on the DUT's Maintenance Avalon® -MM slave interface, and are checked on the sister_rio’s Maintenance Avalon® -MM master interface.

The first set of tests performed are MAINTENANCE write and read requests. The DUT sends two MAINTENANCE write requests to the sister_rio module. The writes are performed by running the rw_addr_data task defined inside the BFM instance, bfm_mnt_master. The bfm_mnt_master is an instance of the module avalon_bfm_master, defined in the file <design_name>_avalon_bfm_master.v. The following parameters are passed to the task:

  • ‘WRITE —transaction type to be executed
  • wr_address—address to be driven on the Avalon® -MM address bus
  • wr_data—write data to be driven on the Avalon® -MM write data bus

The task performs the write transaction across the Maintenance Write Avalon® -MM slave interface.

The DUT then sends two MAINTENANCE read requests to the sister_rio module. To perform the reads, run the rw_data task defined inside the BFM instance, bfm_mnt_master. The following parameters are passed to the task:

  • ‘READ— transaction type to be executed
  • rd_address—address to be driven on the Avalon® -MM address bus
  • rd_data—parameter that stores the data read across the Avalon® -MM read data bus

The rw_data task performs the read transaction across the Maintenance Read Avalon® -MM slave interface.

The write transaction across the Avalon® -MM interface is translated to a RapidIO MAINTENANCE write request packet. Similarly, the read transaction across the Avalon® -MM interface is translated into a RapidIO MAINTENANCE read request packet.

The MAINTENANCE write and read request packets are received by the sister_rio module and translated to Avalon® -MM transactions that are presented across the sister_rio module’s Maintenance master Avalon® -MM interface. An instance of avalon_bfm_slave, the BFM for an Avalon® -MM slave, is driven by this interface. In the testbench, the write and read transactions are checked and data is returned for the read operation. The write operation is checked by invoking the read_writedata task of the BFM. The task returns the write address and the written data. This information is then checked for data integrity. The read operation is completed on the sister side by invoking the write_readdata task. This task returns the read address and drives the return data and read control signals on the Avalon® -MM master read port of the sister_rio module. The read data is checked after it is received by the DUT.