Nios® V Processor: Lockstep Implementation

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

3.3.2.1. Root Fault Injection

The Root Fault injection is available for the following alarms:

  • Comparator mismatch (including selecting the Comparator Context bit to be activated). ALARM0 and ALARM1 are activated.
  • Comparator self-detection. ALARM2, ALARM3, and ALARM4 are activated.
  • Timeout. ALARM16 is activated.

You can activate the Root Fault Injection using the interfaces listed in the following table:

Table 20.  Activating Root Fault Injection
Interface Actions
Configuration Interface Writing the ERRCTRL_ROOT_INJ register.
fRNET Interface Writing the FRNET_PGO_ROOT_FAULT_INJ input.

In addition to the above activation steps, in the case of an ALARM0 or ALARM1 injection, using ERRCTRL_PGO0[6:0] register or FRNET_PERIPH_PGO_0[6:0] input is necessary to select which comparator slice to inject. Injecting a disabled comparator slice results in no injection being performed. Slice0 is selected automatically as default comparator slice after asynchronous reset.

After root fault injection, the Nios® V processor Lockstep feature does not register the injected slice ID into ERRCTRL_FNGICMPCTXT0 register. This register is updated only during a true mismatch event (unaffected during an injection).

Table 21.  Root Fault Injection
Injection Type Activation (through Configuration Interface) Fault Emulation Stimulated Alarm
Comparator Mismatch Ensure that all the following conditions are present:
  • ERRCTRL_ROOT_INJ[0]=1’b1
  • ERRCTRL_ROOT_INJ[1]=1’b1

Injection Target: RESETACK (selected automatically due to Slice0).

  • Main comparator mismatch
  • Second comparator mismatch
If under DISABLED state, it stimulates ALARM0. Otherwise, it stimulates ALARM1.
Comparator Self-detection Ensure that all the following conditions are present:
  • ERRCTRL_ROOT_INJ[0]=1’b1
  • ERRCTRL_ROOT_INJ[1]=1’b0
  • ERRCTRL_ROOT_INJ[2]=1’b0

Injection Target: RESETACK (selected automatically due to Slice0).

  • Main comparator mismatch
  • Both comparators disagree

If under DISABLED state, it activates ALARM0. Otherwise, it activates ALARM1.

ALARM2 and ALARM3 is activated.

Comparator Self-detection Ensure that all the following conditions are present:
  • ERRCTRL_ROOT_INJ[0]=1’b0,
  • ERRCTRL_ROOT_INJ[1]=1’b1, and
  • ERRCTRL_ROOT_INJ[2]=1’b1

Injection Target: RESETACK (selected automatically due to Slice0).

  • Second comparator mismatch
  • Both comparators disagree
  • Self-diagnostic comparator mismatch

If under DISABLED state, it activates ALARM0. Otherwise, it activates ALARM1.

ALARM2 and ALARM4 is activated.

Timeout ERRCTRL_ROOT_INJ[16]=1’b1 Timeout alarm ALARM16 is activated.

The time taken to execute the Root Fault injection and to activate the required alarms is 70 CLK clock cycles at maximum (as the third self-diagnostic comparison is a time-multiplexed one).