RapidIO Intel FPGA IP User Guide

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

7.6. NREAD Transactions

The next set of transactions tested are NREADs. The DUT sends a group of NREAD transactions to the sister_rio module by cycling the read burst size from 8 to MAX_READ_BYTES in increments of 8 bytes. For each iteration, the rw_addr_data task is called. This task is defined in the bfm_io_read_master instance of the Avalon® -MM master BFM. The task performs the read request packets across the I/O Avalon® -MM Slave Read interface. The read transaction across the Avalon® -MM interface is translated into a RapidIO NREAD request packets. The values of the rd_address, rd_byteenable, and rd_burstcount parameters determine the values for the rdsize, wdptr and xamsbs fields in the header of the RapidIO packet.

The NREAD request packets are received by the DUT and are translated into Avalon® -MM read transactions that are presented across the sister_rio module‘s I/O master Avalon® -MM interface. An instance of avalon_bfm_slave, the BFM for an Avalon® -MM slave, is driven by this interface. The read operations are checked and data is returned by calling the task, write_readdata. This task drives the data and read datavalid control signals on the Avalon® -MM master read port of the DUT.

The returned data is expected at the DUT’s I/O Avalon® -MM slave interface. The rw_data task is called and it captures the read data. This task is defined inside the instance of bfm_io_read_master. The read data and the expected value are then compared to ensure that they are equal.