External Memory Interfaces (EMIF) IP User Guide: Agilex™ 5 FPGAs and SoCs

ID 817467
Date 4/01/2024
Public

A newer version of this document is available. Customers should click here to go to the newest version.

Document Table of Contents

11.5. Generating Traffic with the Test Engine IP

Every Agilex™ 5 FPGA EMIF design example includes an instance of the software-driven programmable AXI traffic generator, known as the Test Engine IP.

You can view the Test Engine IP software within the following Python scripts:

  • A main.py file that parses the .qsys file and selects the traffic program to run during execution.
  • A traffic_patterns.py file that contains many different tutorial programs and functional tests that you can refer to when writing your own traffic patterns.

For the EMIF design example, the hard-coded traffic program selected when you generate a design is the emif_tg_emulation traffic program, which provides these features:

  • Single write and read (with AxLEN=axlen_a 1 )
  • Single write and read (with AxLEN=axlen_b 2 )
  • Sequential address 3 block of 512 writes and 512 reads (with AxLEN=axlen_a 1 )
  • Sequential address 3 block of 512 writes and 512 reads (with AxLEN=axlen_b 2 )
  • Random address 4 block of 512 writes and 512 reads (with AxLEN= axlen_a 1 )
1 The axlen_a value is dependent on the memory technology:
  • For DDR4: 0
  • For DDR5: 1
  • For LPDDR4: 3
  • For LPDDR5: 1
2 The axlen_b value is dependent on the memory technology:
  • For DDR4: 0
  • For DDR5: 0 (results in Read-Modify-Write or Data-Masking on the memory side)
  • For LPDDR4: 3
  • For LPDDR5: 1
3 Sequential Address pattern starts at address=0, and increments by (AXI_DATA_WIDTH/8)*(AxLEN+1) on each transaction.
4 Random Address pattern starts at address=0, and uses pseudo-random addresses.