ACME (Automatic Configuration Memory Error-injection) is a tool designed to translate the configuration memory essential bits of an SRAM-based FPGA region into injection addresses for the Xilinx SEM IP Controller.
ACME is developed in C and currently supports the KCU105 UltraScale device. However, it can be modified to add new devices prior a characterization step explained in the user manual. ACME requires the essential bit file (EBD file) generated by Vivado to perform the translation from configuration bits to injection addresses for the Xilinx SEM IP Controller. To constraint the amount of bits translated to those inside a pBlock region, the coordinates of the rectangle containing the design can be used to extract only these addresses from the EBD file.
Apart from the user manual and the code, this project also contains the papers describing the first and the second version of ACME. Both are in the project, but I recommend using ACMEv2 since it is more accurate (as explained in the paper).
Please, cite one (or both) of the following papers if you use ACME for your research:
[1] Aranda, L. A., Sánchez-Macián, A., & Maestro, J. A. (2019). ACME: A tool to improve configuration memory fault injection in SRAM-based FPGAs. IEEE Access, 7, 128153-128161.
[2] Aranda, L. A., Ruano, O., Garcia-Herrero, F., & Maestro, J. A. (2021). ACME-2: Improving the Extraction of Essential Bits in Xilinx SRAM-based FPGAs. IEEE Transactions on Circuits and Systems II: Express Briefs.