Visible to Intel only — GUID: dcx1490746709527
Ixiasoft
Visible to Intel only — GUID: dcx1490746709527
Ixiasoft
7.3. SWRITE Transactions
The next set of operations performed are Streaming Writes (SWRITE). To perform SWRITE operations, one register in the IP core must be reconfigured as shown.
Module | Register Address |
Name | Value | Description |
---|---|---|---|---|
rio | 0x1040C | Input/Output Slave Mapping Window 0 Control | 32'h0055_0002 or 32'h5555_0002 | Sets the DESTINATION_ID for outgoing transactions to the value 0x55 or 0x5555, depending on the device ID width of the sister_rio. This value matches the base device ID of the sister_rio module. Enables SWRITE operations. |
With these setting, any write operation presented across the Input/Output Avalon® -MM slave interface on the rio module is translated to a RapidIO Streaming Write transaction.
The testbench generates a predetermined series of burst writes across the Avalon® -MM slave I/O interface on the DUT. These write bursts are each converted to an SWRITE request packet sent on the RapidIO serial interface. Because Streaming Writes only support bursts that are multiples of a double word (multiple of 8 bytes), the testbench cycles from 8 to MAX_WRITTEN_BYTES in steps of 8 bytes. Two tasks carry out the burst writes, rw_addr_data and rw_data. The rw_addr_data task initiates the burst by providing the address, burstcount, and the content of the first data word, and the rw_data task completes the remainder of the burst.
At the sister_rio module, the SWRITE request packets are received and translated into Avalon® -MM transactions that are presented across the Input/Output master Avalon® -MM interface. The testbench calls the task read_writedata of the sister_bfm_io_write_slave. The task captures the written data.
The written data is then checked against the expected value by running an expect task. After completing the SWRITE tests, the testbench performs NWRITE_R operations.