pragma SDS trace
Description
The SDSoC environment tracing feature provides you a detailed view of what is happening in the system during execution of an application, through the use of hardware/software event tracing. See the for more information.
This pragma specifies the trace insertion for the accelerator with granularity at the function level or the argument level, to let you monitor the activity on the accelerator for debug purposes. When tracing is enabled, tracing instrumentation is automatically inserted into the software code, and hardware monitors are inserted into the hardware system during implementation of the hardware logic. You can monitor either the complete accelerator function, or an individual parameter of the function.
The type of trace can be SW
, HW
, or both. HW
trace means the
"start" and "stop" of the corresponding hardware component, such as the start and stop of
the hardware accelerator, or the start and stop of data transfer of the specified argument.
This lets you monitor activity moving onto and off of the hardware. The SW
trace lets you observe the software stub for the hardware
accelerated function, to monitor the function and arguments on the software side of the
transaction. You can also monitor both the hardware and software transactions.
Syntax
#pragma SDS
bound to the
function
declaration.#pragma SDS trace(<var1>[:SW|:HW][,<var2>[:SW|:HW]])
Where:
- <var>: Specifies either the function name, or one of the parameters of the function.
[:SW|:HW]
: Specifies either HW tracing or SW tracing. The absence of this option indicates that both HW and SW traces are inserted.
Example 1
foo
:#pragma SDS monitor trace(foo)
void foo(int a, int b);
:HW
or :SW
indicates
that both traces are inserted for the accelerator.Example 2
#pragma SDS monitor trace(a, b:SW, c:HW)
void foo(int a, int b, int *c);
In the above example, both HW
and SW
traces are inserted for argument a
. Only the SW
trace is inserted for argument
b
. For argument c
, only
the HW
trace is inserted.