Nios® V Processor: Lockstep Implementation

ID 833274
Date 10/07/2024
Public
Document Table of Contents

3.3.4. Debugging the CPU Software using SILENT Mode

You can debug the application running on the Host CPU using standard debugging tools and methodologies. You cannot debug the Agent CPU (it is not an “active” CPU, as its outputs only go to the fRSmartComp), but this does not introduce any limitations to the debugging.

To activate the SILENT mode, refer to the following table.

Table 25.  Activating the SILENT Mode
Interface Actions
Configuration Interface
  • Writing ERRCTRL_FNMODEIN register with value 0x3B000000 (Unlock the register)
  • Writing ERRCTRL_FNMODEIN register with value 0x000FAA56 (ERRCTRL_FNMODEIN[1:0] = 2’b10, and lock the register)
System Interface Driving SILENTMODE[3:0] to 0xA.
fRNET Interface
  • Writing FRNET_MODEIN input with value 0x3B000000 (Unlock the register)
  • Writing FRNET_MODEIN input with value 0x000FAA56 (FRNET_MODEIN[1:0] = 2’b10, and lock the register)

When the fRSmartComp is in SILENT mode, it signifies the following:

  • The Comparator no longer compares the CPU outputs, but the root fault injections on the comparator itself are still available.
  • The Timeout does not generate the alarm, but the root fault injection on the Timeout itself is still available.
  • The other fRSmartComp functions work as usual. Alarm fault injections are possible.

SILENT mode is used for software debugging on the Host CPU. This mode is on top and independent of the fRSmartComp system states. In this mode, you can perform the following actions:

  • Perform ALARM injection, useful for basic software debugging, e.g., debugging the software handlers running on the System Supervisor that manages the fRSmartComp alarms.
  • Perform ROOT injection with CONTEXT and STATISTICS information updates. This is useful for advanced software debugging, e.g., CONTEXT information software handlers, Use Case debugging, etc.
  • Change the alarm routing to change the alarm’s severity.

Using the fault injection features, you can enable the detection of the injected fault by the DCLS comparator for debug reasons.