The Trace Buffer Window
To view the trace buffer, select Trace from the View menu. The following
window then appears on the screen (contents of Trace buffer will of course
vary with the actual project):
The Trace function of the ICEPRO can trace every single cycle in the
execution.
The Trace view contains the following columns:
-
Synchronization column (S): When debugging is being done on source
level of a high level language, for instance C, it is difficult to relate
the disassembled listing in the Trace view to the source code in the Source
view. The purpose of the Synchronization column is to tell which source
code statement has been executed. When the synchronization column contains
an 'S', this 'S' can be double-clicked, and the cursor in the Source view
will be positioned at the statement in the Source view that has produced
the code in the Trace view. When the Source view is in Source code mode
(default), only the line in the Trace view corresponding to the first instrcution
in a source code statement will contain an 'S'.
Note: when the Source view is in disassembly state, the first cycle
of every instruction will contain an 'S'.
-
Time column: This column contains the value of the Cycle Counter
at the time when the information was logged. Note that the Cycle Counter
has 31 bits so it will wrap at a value of 2,147,483,648. If executing with
a clock frequency of 10MHz, this means that the Cycle Counter will wrap
every 3 minutes, 34 seconds.
-
Program Memory Address column (PMem Addr): This column contains
the current value of the Program Counter, i.e. it is the address in the
Program Memory of the instruction currently being executed. For multicycle
instructions, the contents of this column may contain other values. See
the description of the various instruction.
-
Instruction column: This column contains the disassembled mnemonic
representation of all instructions being executed. For multicycle instructions,
this column will only contain information in the first cycle of the instruction.
For the remaining cycles of the instructions, the column is left blank.
-
Register Value column (Reg.Val): For some of the instructions, the
result being fed back to the register file is also sent to the trace buffer.
For other of the instructions, this field does not contain any information.
See the description of the instructions to see what this means in the various
cases.
-
Data Address column (Dat.Addr): This column contains the active
address in the data memory space, and only contains information during
some cycles in instructions reading from or writing to the data memory.
See the description of the instructions to see what this means in the various
cases.
-
Data Value column (Dat.Val): This column contains the data read
to or written from locations in the data memory space, and only contains
information during some cycles in instructions reading from or writing
to the data memory. See the description of the instructions to see what
this means in the various cases.
-
Input column: These columns contain the level of various input signals
that can be applied on the Auxillary connector of the Emulator. The Emulator
has the possibility of logging external signals into the trace buffer.
These input signals can also be used to break the Emulator. In order to
log external signals, this feature must be enabled.
See Also