Any signal of your SoC
Probe any Migen signal, or any instrumented signal of a Verilog IP, with a few lines added to a LiteX SoC.
Evaluating countermeasures against fault injection attacks usually means long RTL simulation campaigns, or physical attack benches. LiteInjector instruments your design instead: the faults are emulated in the FPGA, on the real SoC running real software, and every attack parameter can be changed at runtime from the host.
Any signal of your SoC
Probe any Migen signal, or any instrumented signal of a Verilog IP, with a few lines added to a LiteX SoC.
Precise triggers
Trigger on values bits, rising and falling edges, then delay the fault by a number of clock cycles.
Five fault models, combinable
Bit set, bit reset, bit flip, random bit flip and value replacement, on one or several signals in the same cycle, for one or more cycles.
Multi-fault attacks
Chain triggers to fault the same execution several times, without rebuilding the bitstream.
Campaigns built in
Sweep bits, offsets or addresses, observe the target over UART, and get a CSV report of every run.
Light and open
Small FPGA footprint, BSD-2-Clause license, written in Python with Migen like LiteX itself.
Add LiteInjector to your SoC and choose the signals to probe: the instruction bus, a security flag, a protection signal…
self.submodules.injector = LiteInjector([ibus.adr, ibus.dat_r], depth=16, csr_csv="injector.csv")self.add_uartbone("liteinjector")Describe the attack from the host: when to inject, and which fault to apply.
$ liteinjector_cli run --when ibus_adr=0x0000037A --offset 1 \ --fault bit-value:ibus_dat_r=0x00050C63 --wait 5Observe the result, or let a campaign sweep the parameters and classify every run.
$ liteinjector_cli campaign campaign.tomlCampaign 'bios-unlock-bitflip': 32 run(s).[1/32] {'bit': 0} -> <outcome>...Results written to bios_unlock_results.csvA single instruction is replaced on the instruction bus of a VexRiscv CPU, and the BIOS accepts a wrong password.

A branch of a PIN verification program running on Linux is inverted from the peripheral bus.

LiteInjector is developed by the ARCAD team of the Lab-STICC laboratory in Lorient, France, and was presented at the 28th Euromicro Conference on Digital System Design (DSD 2025). If you use it in your work, please cite it.