UPGRADE YOUR BROWSER

We have detected your current browser version is not the latest one. Xilinx.com uses the latest web technologies to bring you the best online experience possible. Please upgrade to a Xilinx.com supported browser:Chrome, Firefox, Internet Explorer 11, Safari. Thank you!

的页面

AR# 23013

11.1 EDK - How can I measure the processor execution cycles in MicroBlaze?

Description

Keywords: number, XPS, timer

How can I measure the number of clock cycles needed to execute a piece of my code?

解决方案

You can use the PLB Timer Peripheral to measure the processor execution cycles. The PLB Timer is a free-running counter that can be controlled through software. In the software code running on MicroBlaze, you can use functions to initialize, set, reset, start, and stop the timer as follows:

1. Initialize the timer functions:
XTmrCtr_Initialize(&XPS_Timer, XPAR_XPS_TIMER_1_DEVICE_ID);

2. Set the timer reset value:
XTmrCtr_SetResetValue(&XPS_Timer, 0, 0x00000000);

3. Start the XPS Timer to measure the cycles needed to copy the buffer:

a. Reset the timer using the function:
XTmrCtr_Reset(&XPS_Timer, 0);

b. Start the timer to count the processor clock cycles:
XTmrCtr_Start(&XPS_Timer, 0);

4. Run the desired routines.

5. Stop the timer:
XTmrCtr_Stop(&XPS_Timer, 0);

6. Measure the consumed clock cycles:
cycles = XTmrCtr_GetValue(&XPS_Timer, 0);


AR# 23013
日期 04/25/2009
状态 Active
Type ??????