Test Engine FPGA IP User Guide: Agilex™ 3, Agilex™ 5, and Agilex™ 7 FPGAs

ID 817758
Date 3/31/2025
Public
Document Table of Contents

5.3.1.6.1. mem_traversal

Usage

def traffic_patterns.MemAxi4DriverPrograms.mem_traversal (self, str rw, str addr='seq', Tuple[int, int] addr_range=(0x0, 0x3FFF_FFFF), Union[None, int] bl=None, str data="prbs7", bool inspect=True)

Description

Builder function that constructs a traffic program that accesses all addresses of a specified address range.

Ensure the Address ALU Argument Width for the driver supports the address range before using this builder function. This function will error if the Address ALU is not large enough.

The following checks are done within the function. Set inspect=False to change these checks to warning messages.
  • AXI4 Specification - 4kB page boundary crossing violation

  • Random Accessing - Non-power-of-two address range - Will not cover all addresses

  • Random Accessing - Non-power-of-two burst length - Will not cover all addresses

Due to limited instruction memory space of the Test Engine IP, full memory address traversal for all address ranges, burst length, and data widths cannot be supported within a single traffic program run. The following changes to parameters will increase the number of instructions needed to fully traverse a memory's address space:
  • Decreasing AXI Data Width

  • Increasing size of Address Range

  • Decreasing Burst Length

  • Specifying Read-Write (Doubles the number of instructions versus Read-Only or Write-Only)

If certain combination of address ranges, burst lengths, and data widths lead to an Instruction Memory Overflow, it is recommended to split the address range across multiple traffic programs and multiple runs.

Parameters

rw
Required. Specifies if the constructed program contains reads, writes, or both to the specified address range. Supported values are the following:
  • Read-and-write: 'rw'

  • Write-only: 'wo', 'wr', 'w'

  • Read-only: 'ro', 'rd', 'r'

addr

The address access pattern. Supported values are: 'seq' and 'rand'. (Default: 'seq')

addr_range

The address range to access. Default: (0x0, 0x3FFF_FFFF).

bl

The burst length of the AXI commands. By default, the maximum BL without crossing the 4kB page boundary will be used.

data

The data pattern of the traffic. Refer to the data argument of gencmd for supported values. (Default: 'prbs7')

inspect

Scan the traffic pattern for potential issues and throw errors. Set inspect=False to print warnings instead. (Default: True)