1.1 KiB
Paraver trace
Paraver traces are handled by the top level module pvt
(Paraver trace), which
in turn uses the prv
, pcf
and prf
to control the trace events, type
definitions and row names (in that order).
Traces must be initialized with the number of rows and a name by calling
pvt_open()
.
The emulation time must be updated with pvt_advance()
prior to emitting any
event, so they get the update clock in the trace.
Connecting channels
A channel can be connected to each row in a trace with prv_register()
, so the
new values of the channel get written in the trace. Only null and int64 data
values are supported for now.
The emission phase is controlled by the patch bay and runs all the emit callbacks at once for all dirty channels.
Duplicate values
When a channel feeds a duplicated value, it causes an error by default. The
behavior of each row when a duplicate value is found can be controlled by the
flags
in prv_register()
:
-
PRV_EMITDUP
will emit the duplicate values from the channel to the trace. -
PRV_SKIPDUP
ignore any duplicate values and don't emit them.