Intel® Simics® Simulator for Intel® FPGAs: User Guide

ID 784383
Date 4/01/2024
Public
Document Table of Contents

6.3.5. CPU Register Breakpoints

Intel® Simics® simulator allows to create a breakpoint over the CPU registers (all registers and not only control registers). The command used for this operates directly over the CPU indicated in the command. The syntax of this command is the following:

<CPU object>.break-register "register" [value] [mask]

This type of breakpoint acts on write operations only. If the value argument is provided, the breakpoint triggers only when the resulting value in the register matches the value provided. The mask argument can be used to restrict the bits in the register that causes the trigger.

The following capture shows an example on how a register breakpoint can be setup:

#Intel Simics simulator CLI 

simics> system.board.fpga.soc_inst.hps_subsys.agilex_hps.core[0].break-register x0
Breakpoint 1 set on write to register x0.

simics> r
Register breakpoint 1 on write to 'x0' with value 0x33ff.

simics> r
Register breakpoint 1 on write to 'x0' with value 0x2c59000.

simics> r
Register breakpoint 1 on write to 'x0' with value 0x3c5.

In the above capture, a breakpoint is being set over the x0 register. When the simulation is run and target software is executed, you can see that the breakpoint triggers several times.

Note:
  • When using this type of breakpoints, these are not listed when calling bp.list command.
  • This breakpoint cannot be deleted using the bp.delete command.
  • Using register breakpoints has a large performance impact.