SEU Mitigation User Guide: Agilex™ 5 FPGAs and SoCs

ID 813649
Date 4/07/2025
Public
Document Table of Contents

4.6.4.4. Injecting Error to Predefined Safe Locations: Mailbox Command

To inject safe SEU errors, send the mailbox command with the following syntax:
INSERT_SAFE_SEU_ERROR [0x41]

This command takes two 32-bit words as arguments, and you need to specify sector address, N_INJ, T, and CRAM_SEL0 or CRAM_SEL1 in the arguments. One of the options allows you to inject error immediately, before, or after detection cycle. For more details, refer to the Mailbox Client IP User Guide .

Table 14.  Mailbox Command Options
Command Option Definition
Sector Address
To list the valid sector index listed, you can use this command:
quartus_fid -c 1 -i "@1=<sof_file>" --seu_list

For more details, refer to the Listing the Predefined Safe Locations: Command-Line Interface section.

T

Safe SEU error injection timing control.

  • 00 = Inject immediately
  • 01= Inject right before the next detection cycle
  • 10 = Inject after the detection cycle
  • 11 = Invalid
N_INJ

Number of CRAM location to inject -1.

  • 0 = one error
  • 1 = two errors
CRAM_SEL0 or CRAM_SEL1 Injection can only target to a predefined list of location for unused CRAMs are provided (identified by CRAM_SEL 0 to 7).
The following table provides examples of safe SEU injection scenarios.
Table 15.  Safe SEU Injection Scenarios
SEU Type Injection Method Description
Single-bit (correctable) Set N_INJ to 0 and set CRAM_SEL0. When N_INJ set to 0, CRAM_SEL1 is ignored.

To inject safe SEU error via the Configuration Debugger tool, send 0x41 as the Command Code and 0x30000 0x7 in the Parameter List field.

0x30000 refers to inject two single bit SEU errors immediately at sector 0x3, 0x7 refers to CRAM_SEL0 = 0x7 and CRAM_SEL1 is ignored.

Horizontal Double-bit adjacent (HDAE) (correctable) Set N_INJ to 1 and set CRAM_SEL0 and CRAM_SEL1 that is adjacent.

To inject safe SEU error via the Configuration Debugger tool, send 0x41 as the Command Code and 0x300010 0x54 in the Parameter List field.

0x30010 refers to inject two single bit SEU errors before next detection cycle at sector 0x3, 0x54 refers to CRAM_SEL0 = 0x4 and CRAM_SEL1 = 0x5.

Multibit (uncorrectable) Set N_INJ to 1 and set both CRAM_SEL that is non-adjacent.

To inject safe SEU error via the Configuration Debugger tool, send 0x41 as the Command Code and 0x30001 0x47 in the Parameter List field.

0x30001 refers to inject multibit uncorrectable error immediately at sector 0x3, 0x47 refers to CRAM_SEL0 = 0x7 and CRAM_SEL1 = 0x4.

Figure 19. INSERT_SAFE_SEU_ERROR (0x41) Mailbox Command in the Configuration Debugger Tool