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

ID 817394
Date 11/18/2024
Public
Document Table of Contents

2.9. Generating the EMIF Design Example with the Performance Monitor

You can use the Performance Monitor (PMON) to check the performance metrics of the EMIF interface.

The Performance Monitor is a synthesizable block consisting of control and status registers that let you configure and modify the performance metrics of the EMIF Interface. The Performance Monitor allows you to measure the following performance metrics:

  • Read latency
  • Write latency
  • Read efficiency
  • Write efficiency
  • Overall efficiency
  • Subchannel efficiency
  • Subchannel back pressure
  • Expected transactions in subchannel
Figure 18. Enabling the Performance Monitor in the EMIF IP
Note: Do not run any traffic on the interface that PMON is monitoring, while you are configuring PMON. Failure to observe this restriction can result in inaccurate measurements.

To generate a design example with the Performance Monitor, follow these steps:

  1. When generating your design example, set the Enable Performance Monitor parameter to True. This includes the Performance Monitor FPGA IP, which allows you to measure performance on an AIX4 mainband interface.
  2. Open the generated design example and navigate to the Quartus® Prime Pro Edition software folder containing the design example directory:
    <project_directory>/<example_design_directory>/qii/ed_synth.qpf
  3. Make the necessary pin assignments in the .qsf file or by using the Pin Planner and compile the design by clicking Processing > Start Compilation. This generates a .sof file, which you can configure into hardware.
  4. Open the System Console from the Quartus® Prime Pro Edition software by clicking Load Design.
    Figure 19. Load Design
  5. Load the pmon_library.tcl file in the system console by typing the following command:
    source pmon_library.tcl
  6. Load the testengine_library.tcl file in the system console by typing the following command:
    source testengine_library.tcl
  7. Set the metric configuration on desired AXI4 performance monitors:
    • To monitor the read latency only:
      pmon_set_all basic_ro
    • To monitor the write latency only:
      pmon_set_all basic_wo
    • To monitor read and write latency only:
      pmon_set_all basic_rw
    • To monitor read latency, write latency, average number of transactions per cycle:
      pmon_set_all basic_eff
    • For more information on the configurations that you can monitor, use the following command to access to all the metric configurations:
      pmon_help config
  8. Clear the counters and internal state of all performance monitors by typing the following command:
    pmon_reset_counter_data_all
  9. Reset the state of the drivers by typing the following command:
    testengine_reset
  10. Run traffic over the interface by typing the following command:
    testengine_run
  11. Read the efficiency metrics on the AXI4 performance monitor by typing:
    pmon_read_all
    Successful reading of performance metrics produces results similar to that shown below:
    Figure 20. Performance Monitor (PMON) Results