Skip to content

Emulate radiation-induced faults on real FPGAs.

SK-RAFT injects targeted bit flips into AMD-Xilinx devices over JTAG, so you can see how your design behaves under radiation, right from your own desk. In hours, not months.

A laptop connected by a single USB cable to an FPGA development board, with bits travelling along the cable
Every memory in the chip

The circuit, and the data it runs on.

An FPGA has two kinds of memory. Many tools only flip bits in the configuration memory. SK-RAFT flips bits in both, while your design runs.

Configuration memory
Inject intoConfiguration RAM

Holds the design. A flip here changes the circuit itself.

Application memories
Inject intoFlip-flops

The state your design holds from one clock to the next.

Inject intoBlock RAM

The data your design stores while it runs.

Inject intoLUTRAM

Distributed memory built from the device's look-up tables.

Only where it matters

Spend your test time on the bits that can break you.

In a typical design, only a fraction of the configuration bits are essential. SK-RAFT can limit a campaign to what does matter, which saves a lot of test time:

Essential bits only: the bits that can break your design.

One area of the chip: a single Pblock.

One component of your design.

A grid of configuration bitsMost bits are unused. A cluster of essential bits holds the design. A particle strikes one essential bit and flips it from 0 to 1.1111100001111100101011001111100111BIT FLIP 0 → 1a single particle strikeESSENTIAL BITS
Illustration · essential bits are the ones your design uses
How it works

Access. Map. Configure and run.

Everything goes through JTAG. No hardware modification.

  1. 01 · Access

    SK-RAFT connects to the device over JTAG.

    It connects to the device's JTAG controller, the standard debug interface on every FPGA board. No modification and no extra hardware. That connection is the entry point to everything inside the device.

  2. 02 · Map

    It maps the device from your design files.

    SK-RAFT parses your design files and builds a complete model of the device. From then on it knows exactly where to reach, whether it is an essential configuration bit or an application memory bit in flip-flops, BRAM or LUTRAM, down to every region, frame and bit location.

  3. 03 · Configure & run

    You define the fault campaign.

    Choose what to inject, where, and how many times, or replay a campaign recorded at a radiation facility. SK-RAFT handles execution, observation and logging, automatically, repeatedly and deterministically.

Fits your test setup

A campaign in a few lines of Python.

Control SK-RAFT from Python API scripts. Other languages can be supported through its gRPC interface. Over the same USB cable (JTAG), SK-RAFT also sends inputs to your design and reads its outputs, so you see the effect of each bit flip at once.

The illustrative script on the right connects to the board, programs it with your design files and starts a random fault-injection session limited to essential bits.

campaign.py · illustrative example
if __name__ == "__main__":
    dut = skClient.SkRaftFpga("127.0.0.1", 50052)

    fiSession = FpgaFiSession(
        fi_type=RANDOM,          # Random or Exhaustive
        duration=200,            # Duration (ms)
        correction_time=50,
        time_between_faults=10,
        sbu_percent=0.30,
        mbu_percent=0.40,
        mcu_percent=0.30,
        essential=True,
        correct=True
    )
    dut.establish_connection()
    dut.fpga_autoconnect()

    dut.fpga_set_bit_file_path("/path/to/design.bit")
    dut.fpga_set_ebd_file_path("/path/to/design.ebd")
    dut.fpga_set_ll_file_path("/path/to/design.ll")

    dut.fpga_program()

    dut.fpga_fault_injection(fiSession)
What you measure

How often a bit flip becomes a failure.

A campaign measures your design's architectural vulnerability factor (AVF): the share of bit flips that reach an observable failure. AVF belongs to the design, not the silicon, so it can be combined with a device's per-bit sensitivity to estimate failure rate and availability on the device and orbit you are targeting.

A typical reliability engagement with our team delivers:

01

Test plan

What will be injected, where, and how often.

02

Fault-injection report

What was injected and how your design responded.

03

Dependability report

An estimate of failure rate and availability for your target device and orbit.

Supported devices

AMD-Xilinx today. Versal next.

  • 7-SeriesSupported
  • Zynq-7000Supported
  • UltraScale+Supported
  • Zynq UltraScale+Supported
  • VersalComing next

Working with another device? Tell us about it.

Find the bits that matter before the beam does.

Apply for the pilot