<html> <head> <meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1"> <title> Xilinx Driver axipmon v6_1: axipmon v6_1 </title> <link href="doxygen_kalyanidocs/doc/css/driver_api_doxygen.css" rel="stylesheet" type="text/css"> </head> <h3 class="PageHeader">Xilinx Processor IP Library</h3> <hl>Software Drivers</hl> <hr class="whs1"> <!-- Generated by Doxygen 1.6.1 --> <div class="navigation" id="top"> <div class="tabs"> <ul> <li class="current"><a href="index.html"><span>Main Page</span></a></li> <li><a href="annotated.html"><span>Classes</span></a></li> <li><a href="files.html"><span>Files</span></a></li> </ul> </div> </div> <div class="contents"> <h1>axipmon v6_1</h1><p>The <a class="el" href="struct_x_axi_pmon.html">XAxiPmon</a> driver supports the Xilinx AXI Performance Monitor device.</p> <p>The AXI Performance Monitor device provides following features:</p> <p>Configurable number of Metric Counters and Incrementers Computes performance metrics for Agents connected to monitor slots (Up to 8 slots)</p> <p>The following Metrics can be computed:</p> <p>Metrics computed for an AXI4 MM agent: Write Request Count: Total number of write requests by/to the agent. Read Request Count: Total number of read requests given by/to the agent. Read Latency: It is defined as the time from the start of read address transaction to the beginning of the read data service. Write Latency: It is defined as the period needed a master completes write data transaction, i.e. from write address transaction to write response from slave. Write Byte Count: Total number of bytes written by/to the agent. This metric is helpful when calculating the throughput of the system. Read Byte Count: Total number of bytes read from/by the agent. Average Write Latency: Average write latency seen by the agent. It can be derived from total write latency and the write request count. Average Read Latency: Average read latency seen by the agent. It can be derived from total read latency and the read request count. Master Write Idle Cycle Count: Number of idle cycles caused by the masters during write transactions to the slave. Slave Write Idle Cycle Count: Number of idle cycles caused by this slave during write transactions to the slave. Master Read Idle Cycle Count: Number of idle cycles caused by the master during read transactions to the slave. Slave Read Idle Cycle Count: Number of idle cycles caused by this slave during read transactions to the slave.</p> <p>Metrics computed for an AXI4-Stream agent:</p> <p>Transfer Cycle Count: Total number of writes by/to the agent. Data Byte Count: Total number of data bytes written by/to the agent. This metric helps in calculating the throughput of the system. Position Byte Count: Total number of position bytes transferred. Null Byte Count: Total number of null bytes transferred. Packet Count: Total number of packets transferred.</p> <p>There are three modes : Advanced, Profile and Trace.</p> <ul> <li>Advanced mode has 10 Mertic Counters, Sampled Metric Counters, Incrementors and Sampled Incrementors.</li> <li>Profile mode has only 47 Metric Counters and Sampled Metric Counters.</li> <li>Trace mode has no Counters. User should refer to the hardware device specification for detailed information about the device.</li> </ul> <p>This header file contains the prototypes of driver functions that can be used to access the AXI Performance Monitor device.</p> <p><b> Initialization and Configuration </b></p> <p>The device driver enables higher layer software (e.g., an application) to communicate to the AXI Performance Monitor device.</p> <p><a class="el" href="xaxipmon_8c.html#abf0216ba0f677f910916e2d796fe40e9">XAxiPmon_CfgInitialize()</a> API is used to initialize the AXI Performance Monitor device. The user needs to first call the <a class="el" href="xaxipmon_8h.html#ae10f5ff0f5441c99d7c54a1a3e5f6c0e">XAxiPmon_LookupConfig()</a> API which returns the Configuration structure pointer which is passed as a parameter to the <a class="el" href="xaxipmon_8c.html#abf0216ba0f677f910916e2d796fe40e9">XAxiPmon_CfgInitialize()</a> API.</p> <p><b>Interrupts</b></p> <p>The AXI Performance Monitor does not support Interrupts</p> <p><b> Virtual Memory </b></p> <p>This driver supports Virtual Memory. The RTOS is responsible for calculating the correct device base address in Virtual Memory space.</p> <p><b> Threads </b></p> <p>This driver is not thread safe. Any needs for threads or thread mutual exclusion must be satisfied by the layer above this driver.</p> <p><b> Asserts </b></p> <p>Asserts are used within all Xilinx drivers to enforce constraints on argument values. Asserts can be turned off on a system-wide basis by defining, at compile time, the NDEBUG identifier. By default, asserts are turned on and it is recommended that users leave asserts on during development.</p> <p><b> Building the driver </b></p> <p>The <a class="el" href="struct_x_axi_pmon.html">XAxiPmon</a> driver is composed of several source files. This allows the user to build and link only those parts of the driver that are necessary.</p> <p><b> Limitations of the driver </b></p> <p><br/> <br/> </p> <pre></pre><pre> MODIFICATION HISTORY:</pre><pre> Ver Who Date Changes ----- ----- -------- ----------------------------------------------------- 1.00a bss 02/27/12 First release 2.00a bss 06/23/12 Updated to support v2_00a version of IP. 3.00a bss 09/03/12 To support v2_01_a version of IP: Deleted XAxiPmon_SetAgent, XAxiPmon_GetAgent APIs and added XAPM_FLAG_EVENT, XAPM_FLAG_EVNTSTAR, XAPM_FLAG_EVNTSTOP. Deleted XAxiPmon_SetAgent, XAxiPmon_GetAgent APIs and modified XAxiPmon_SetMetrics, XAxiPmon_GetMetrics APIs in <a class="el" href="xaxipmon_8c.html">xaxipmon.c</a> Deleted XAPM_AGENT_OFFSET Macro in <a class="el" href="xaxipmon__hw_8h.html">xaxipmon_hw.h</a> 3.01a bss 10/25/12 To support new version of IP: Added XAPM_MCXLOGEN_OFFSET macros in <a class="el" href="xaxipmon__hw_8h.html">xaxipmon_hw.h</a>. Added XAxiPmon_SetMetricCounterCutOff, XAxiPmon_GetMetricCounterCutOff, XAxiPmon_EnableExternalTrigger and XAxiPmon_DisableExternalTrigger APIs in <a class="el" href="xaxipmon_8c.html">xaxipmon.c</a> Modified XAxiPmon_SetMetrics and XAxiPmon_GetMetrics (CR #683746) in <a class="el" href="xaxipmon_8c.html">xaxipmon.c</a> Added XAxiPmon_EnableEventLog, XAxiPmon_DisableMetricsCounter, XAxiPmon_EnableMetricsCounter APIs in <a class="el" href="xaxipmon_8c.html">xaxipmon.c</a> to replace macros in this file. Added XAPM_FLAG_XXX macros. Added XAxiPmon_StartCounters and XAxiPmon_StopCounters APIs (CR #683799). Added XAxiPmon_StartEventLog and XAxiPmon_StopEventLog APIs (CR #683801). Added XAxiPmon_GetMetricName API (CR #683803). Deleted XAxiPmon_SetAgent, XAxiPmon_GetAgent declarations (CR #677337) 4.00a bss 01/17/13 To support new version of IP: Added XAPM_METRIC_SET_12 to XAPM_METRIC_SET_15 macros. Added XAxiPmon_SetLogEnableRanges, XAxiPmon_GetLogEnableRanges, XAxiPmon_EnableMetricCounterTrigger, XAxiPmon_DisableMetricCounterTrigger, XAxiPmon_EnableEventLogTrigger, XAxiPmon_DisableEventLogTrigger, XAxiPmon_SetWriteLatencyId, XAxiPmon_SetReadLatencyId, XAxiPmon_GetWriteLatencyId, XAxiPmon_GetReadLatencyId APIs and removed XAxiPmon_SetMetricCounterCutOff, XAxiPmon_GetMetricCounterCutOff, XAxiPmon_EnableExternalTrigger and XAxiPmon_DisableExternalTrigger APIs in <a class="el" href="xaxipmon_8c.html">xaxipmon.c</a> Added XAPM_LATENCYID_OFFSET, XAPM_CR_EVTLOG_EXTTRIGGER_MASK, XAPM_LATENCYID_RID_MASK and XAPM_LATENCYID_WID_MASK in <a class="el" href="xaxipmon__hw_8h.html">xaxipmon_hw.h</a> 5.00a bss 08/26/13 To support new version of IP: XAxiPmon_SampleMetrics Macro. Modified XAxiPmon_CfgInitialize, Assert functions Added XAxiPmon_GetMetricCounter, XAxiPmon_SetSampleInterval, XAxiPmon_GetSampleInterval, XAxiPmon_SetWrLatencyStart, XAxiPmon_SetWrLatencyEnd, XAxiPmon_SetRdLatencyStart, XAxiPmon_SetRdLatencyEnd, XAxiPmon_GetWrLatencyStart, XAxiPmon_GetWrLatencyEnd, XAxiPmon_GetRdLatencyStart, XAxiPmon_GetRdLatencyEnd, XAxiPmon_SetWriteIdMask, XAxiPmon_SetReadIdMask, XAxiPmon_GetWriteIdMask and XAxiPmon_GetReadIdMask APIs Renamed : XAxiPmon_SetWriteLatencyId to XAxiPmon_SetWriteId, XAxiPmon_SetReadLatencyId to XAxiPmon_SetReadId, XAxiPmon_GetWriteLatencyId to XAxiPmon_GetWriteId and XAxiPmon_SetReadLatencyId to XAxiPmon_GetReadId. in <a class="el" href="xaxipmon_8c.html">xaxipmon.c</a> Added Macros XAPM_MC10_OFFSET to XAPM_MC47_OFFSET, XAPM_SMC10_OFFSET to XAPM_SMC47_OFFSET, XAPM_IDMASK_OFFSET, XAPM_CR_IDFILTER_ENABLE_MASK, XAPM_CR_WRLATENCY_START_MASK, XAPM_CR_WRLATENCY_END_MASK, XAPM_CR_RDLATENCY_START_MASK, XAPM_CR_RDLATENCY_END_MASK and XAPM_MAX_COUNTERS_PROFILE. Renamed: XAPM_LATENCYID_OFFSET to XAPM_ID_OFFSET, XAPM_LATENCYID_RID_MASK to XAPM_ID_RID_MASK, XAPM_LATENCYID_WID_MASK to XAPM_ID_WID_MASK. in <a class="el" href="xaxipmon__hw_8h.html">xaxipmon_hw.h</a>. Modified driver tcl to generate new parameters ScaleFactor, ModeProfile, ModeTrace and ModeAdvanced in Config structure. 6.0 adk 19/12/13 Updated as per the New Tcl API's 6.1 adk 16/04/14 Updated the driver tcl for the newly added parameters in The Axi pmon IP. 6.2 bss 04/21/14 Updated XAxiPmon_CfgInitialize in <a class="el" href="xaxipmon_8c.html">xaxipmon.c</a> to Reset counters and FIFOs based on Modes(CR#782671). And if both profile and trace modes are present set mode as Advanced. </pre> </div> <p class="Copyright"> Copyright © 1995-2014 Xilinx, Inc. All rights reserved. </p> </body> </html>