|Home > Introduction > Non-CADI sync watchpoints > syncLevel definitions|
Definitions for 0 - OFF, 1 - SYNC_STATE, 2 - POST_INSN_IO, and 3 - POST_INSN_ALL.
syncLevel 0: OFF
The simulator runs as fast as possible. It does not permit inspection of the processor registers while the simulation is running, and does not stop synchronously when requested to do so.
Quantum end detection guarantees that a quantum is not overshot indefinitely. Quantum end detection applies to (but is not limited to) backward branches, indirect jumps, exceptions, and atomic operation retries. In addition to temporal quantum end detection, some events may end a quantum, like executing a barrier, entering a low power state, or accessing a peripheral. Target software and simulation controllers must not rely on a specific scheduling pattern based on these quantum end check points.
Use cases: normal fast simulation and normal CADI debugging while no CADI watchpoint is set.
syncLevel 1: SYNC_STATE
The simulation runs slightly slower than syncLevel 0. SCADI can read the up-to-date values of the processor registers, including PC and instruction count. You cannot stop the simulation synchronously.
Quantum end detection is as for syncLevel 0.
Use cases: external breakpoints that block the simulation, inspect state of processor/memory from within a peripheral or memory access.
syncLevel 2: POST_INSN_IO
As for syncLevel 1, except that you can stop the simulation synchronously from within all LD/ST and similar instructions. The simulation stops immediately after the current LD/ST instruction has been completely executed (post instruction).
Quantum end detection is as for syncLevel 1, plus it includes the end of LD/ST instructions.
Use cases: CADI watchpoints, external breakpoints, stopping from within LD/ST-related MTI callbacks.
syncLevel 3: POST_INSN_ALL
As for syncLevel 2, except that you can stop the simulation synchronously from within any instruction. The simulation stops immediately after the current instruction has been completely executed (post instruction).
Quantum end detection is as for syncLevel 2. This allows switching between syncLevels 2 and 3 without changing the simulation scheduling.
Use cases: a
Stop from within
arbitrary MTI callbacks such as the
This syncLevel is a fallback for all use cases that do not fall into syncLevels