Skip to content

Performance counter to measure latency between two AXI Stream interfaces with pattern matching as trigger.

Notifications You must be signed in to change notification settings

mnemocron/axi-perf-counter-pattern

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

11 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Pattern Detecting AXI Latency Counter

Performance counter to measure latency between two AXI Stream interfaces with pattern matching as trigger.

This repository contains 3 IP packaged cores written in VHDL. The main IP core (axi_event_counter) is a simnple clock cycle counter that can be triggered by puling the start (trg_a) and stop (trg_b) inputs. Two additional IP cores provide pattern detection on the AXI4 wdata channel or AXIS tdata channel. A specific data pattern can be sent through some custom IP design and the pattern triggers set up to trigger an output pulse, when the special pattern passes the monitored interface.

Example Design

The following example design measures the latency of the axi_dma_0 IP by monitoring the input AXIS_S2MM bus and the output AXI4_S2MM bus. doc/example_design.png

IP Documentation

User Guides:

Pattern Detection

Features of the pattern detection implementation. See user guides for more details.

  • bytes alligned comparison
  • compare pattern currently hardcoded to 4 bytes (C_S_AXI_DATA_WIDTH)
  • customizable monitor interface data width (C_S_AXIS_TDATA_WIDTH)

Note that Ethernet packets on AXIS interfaces are BIG_ENDIAN and MicroBlaze typically uses LITTLE_ENDIAN.

doc/pattern_trigger_mechanism.png

Tools

Simulated using GHDL 3.7 / implemented and tested with Xilinx Vivado 2021.2

About

Performance counter to measure latency between two AXI Stream interfaces with pattern matching as trigger.

Topics

Resources

Stars

Watchers

Forks