Agilex™ 7 SEU Mitigation User Guide

ID 683128
Date 9/20/2024
Public
Document Table of Contents

5.2.2. Fault Injection Debugger Command-Line Interface

You can run the Fault Injection Debugger at the command line with the quartus_fid executable, which is useful if you want to perform fault injection from a script.
Table 14.   Fault Injection Debugger Command-Line Interface Arguments for Agilex™ 7 Devices
Long Argument Short Argument Description
list l Display all installed hardware.
cable c To select the cable number.
auto a For auto detect operation. You must select only one cable for this operation.
index i Option to specify the active device or devices to inject soft error.

Full syntax:

@<device_position>=<file_path>#<operation>

where:

  • device_position is the position of active device counting from nearest to TDI
  • file_path is the active device's programming file
  • operation is the operation you want to perform6
    • P—Program/Configure
    • I—Inject fault

Command example:

quartus_fid --cable=1 --index=@2=abc.sof#P
number n

Option to specify the number of soft errors to inject. If you do not specify the number of errors, the Fault Injection Debugger executes the interactive mode. In the interactive mode, you can select to inject fault, read EMR, scrub errors, or quit.

Note: You can inject up to four soft errors.

Command examples:

  • To inject two errors:
    quartus_fid --cable=1 --index=@2=abd.sof --number=2
  • To execute interactive mode:
    quartus_fid --cable=1 --index=@2=abc.sof
  • To inject double adjacent errors in interactive mode:
    quartus_fid --cable=1 --index=@2=abc.sof
    F <sector_location> <frame_location> <bit_location> + <frame_location> <bit_location>
smh s Option to specify the sensitivity map header file.

Full syntax:

@<device_position>=<file_path>#<region_info>

where:

  • device_position is the position of active device counting from nearest to TDI
  • file_path is the active device's .smh file
  • region_info is the intended .smh region information with the following format: <targeted_regions><allow non critical><allow overlapping>
    • targeted_regions = binary representation of the regions
      • Region 1 = 1
      • Region 2 = 2
      • Region 3 = 4
      • Region 4 = 8
      • Region 1 and 2 = 3 (from 1 + 2)
      • Region 1 and 3 = 5 (from 1 + 4)
    • allow non criticalN = allow injecting to non-critical bit
    • allow overlappingO = allow injecting to bits with overlapping regions

    Examples:

    • To inject region 1 or 3 only: region_info = 5
    • To inject region 2 or non-critical bit, region_info = 4N
    • To inject any bit that has region 4 or non-critical bit, the region_info = 8NO

Command examples:

  • To inject one error in region 2:
    quartus_fid --cable=1 --index=@2=abc.sof --number=1 --smh=@2=abc.smh#2
  • To execute interactive mode in a specific region:
    quartus_fid --cable=1 --index=@2=abc.sof --smh=@2=abc.smh#2
user u Option to specify the user specific fault.

Full syntax:

@<device_position>=<sector-frame-bit-pair ?>#1 <sector-frame-bit-pair ?>#2 ... <sector-frame-bit?>#n

where:

  • device_position is the position of active device counting from nearest to TDI
  • sector-frame-bit-pair is the frame bit and sector location where the error is injected.7

Command example:

quartus_fid --cable=1 --index=@2=abc.sof --number=1 --user="@2=0x003c 0x000d 0x0269"
lutram Option for LUTRAM checking during error injection activities.

Command example:

quartus_fid --cable=1 --index=@2=abc.sof --number=8 --lutram
time t Option to specify the interval time between injections.
6 If you do not specify any operation, the default operation is "inject fault".
7 The maximum pair of frame-bit depends on argument n.