The profiler helps to figure out the components or the code streams that take the maximum time or memory during simulation. Over the years, profiling was more inclined toward RTL and GLS than verification. Today, with the increase in number of performance bottlenecks found in SystemVerilog, UVM, and general verification environments, profiling requirements have changed for the design and verification environment. The list of critical information that is not provided by most traditional profilers today includes:
The Incisive advance profiler (IPROF) addresses most of these and can be used for detailed analysis of performance for all kinds of design and verification environments, including mixed language verification environments. The key features are:
Below are some videos detailing key IPROF features.
1. Introduction to IPROF
This video introduces IPROF, providing a demo that shows the basic features of the profiler and the approach to figure out the performance bottlenecks in any design and verification environment. A simple Verilog design and verification environment is used to demonstrate the profiler features. One of the key feature covered in this demonstration is the instance-based profiling. This is a key differentiator to the traditional profiling where profiling was only module- or type-based. The demonstration also highlights the categories view, which shows category-wise breakup of the time in different domains like:
View the video here: http://support.cadence.com/wps/mypoc/cos?uri=deeplinkmin:VideoViewer;src=wp;q=Video/Functional_Verification/vdn/iProf/iProf_Intro.htm
2. IPROF Callgraph Feature
This video demonstrates one of the key features of IPROF, the callgraph. A callgraph is a category which shows the time consumed in SystemVerilog class-based verification environment. The callgraph also shows the time taken in individual class methods along with the contribution of its callers and callees in the simulation. The demonstration describes how to traverse through the call chains in a complex class-based verification environment to figure out performance bottlenecks.
Watch the video here:
3. IPROF with PLI, VPI, and DPI
This video demonstrates how to profile the simulator interfaces to third-party applications like PLI/VPI/DPI. One of the in-house third-party applications is used to demonstrate how to figure out the time spent in User C code, standard interface routines like vpi_get_value,vpi_put_value, and the third-party system tasks. The demonstration also explains how to figure out the instance under which the third-party application is called and the callers of the DPI calls in callgraph.
4. Incisive Memory Profiler
This video is an introduction to the Incisive memory profiler. This demonstration explains how to use the memory profiler dashboard feature to perform first-level memory analysis. The first-level analysis is helpful to understand the memory consumption in four key areas: