openfi4asic

FPGA Accelerated Post-Synthesis Fault Injection

https://github.com/tubs-eis/openfi4asic

Science Score: 52.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
    Found CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
  • DOI references
    Found 1 DOI reference(s) in README
  • Academic publication links
  • Academic email domains
  • Institutional organization owner
    Organization tubs-eis has institutional domain (www.tu-braunschweig.de)
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (12.8%) to scientific vocabulary
Last synced: 6 months ago · JSON representation ·

Repository

FPGA Accelerated Post-Synthesis Fault Injection

Basic Info
  • Host: GitHub
  • Owner: tubs-eis
  • License: mit
  • Language: VHDL
  • Default Branch: main
  • Size: 1.08 MB
Statistics
  • Stars: 0
  • Watchers: 4
  • Forks: 0
  • Open Issues: 0
  • Releases: 0
Created 11 months ago · Last pushed 11 months ago
Metadata Files
Readme License Citation

Readme.md

OpenFI4ASIC

A fault instrumentation tool and a corresponding FPGA runtime for performing fast fault injection campaigns on post-synthesis netlists.

The standard cells implementing flip-flops are transformed and inserted into a scan-chain, which can be used together with a clock-gating mechanism to inject bit-flips into the design.

This work is based on the methodology and code of OpenFlint[1]. The fault instrumentation is simplified to only cover bit-flips in flip-flops, but can easily be extended to also cover e. g. stuck-at faults.

To speed up fault injection campaigns an FPGA based fault-emulation system specifically designed for emulating fault-injection on processor cores is provided. Using this framework full coverage of the single bit fault space can be obtained.

Getting Started

This section provides an example of how to perform instrumentation and fault injection on simple design synthesized for the NangateOpenCellLibrary.

Three main ingredients are required to perform a fault emulation campaign: - A post-synthesis netlist - A model of the cell library for emulating non instrumented cells - An instrumented model of the cells, which faults are to be injected into, and meta-information describing these to the instrumentation tool.

An example netlist (example/saa.v) and instrumented flip flop models for the NangateOpenCellLibrary (lib/NANGATE/DFF_X1_flt.vhd) are provided. The next section explains how to obtain an Vivado compatible emulation model.

Obtaining a Vivado Compatible Model of the NangateOpenCellLibrary

The NangateOpenCellLibrary can obtained from NangateOpenCellLibrary. A VHDL model is located at Front_End/Vital/. To remove VITAL contructs incompatible with Vivado from NangateOpenCellLibrary.vhd the script located at scripts/strip_nangate.py can be used like this: python3 scripts/strip_nangate.py -i <Path-to-NangateOpenCellLibrary.vhd> -o <Path-to-Output>

Instrumentation

In the examples directory a simple processor design as well as a modified model of the NangateOpenCellLibrary is provided.

To modify the sample design run the following commands: bash mkdir output python3 openfi4asic.py \ -i examples/saa.v \ -c DFF_X1,DFF_X2 \ --top saa \ -l examples/library_information.json \ -o output \ --selected examples/saa_inject_modules.csv \ --excluded examples/saa_exclude_modules.csv

This will generate the two files output/saa_flt.v containing the modified netlist with instrumented flip-flops connected by a scan-chain and output/scan_chain_architecture.json describing where on the scan-chain each instrumented flip-flop is located.

Emulation on FPGA

The fault-emulation environment was developed and tested on a Digilent Zedboard, containing a Xilinx Zynq-7000 SoC-FPGA. Communication, initialization and sequecing are handled by a C program running the on the SoC.

A variety of AXI peripherals were developed to perform the necessary operations like clock-gating and reading or writing from the processor memories.

An example Vivado project implemeting the complete system is provided under runtime/vivado/OpenFI4ASICSystem.

An example C program, which injects a fault into each flip-flop of the design in each cycle of program execution is provided under runtime/sw.

Contributors

License

This open-source project is distributed under the MIT license.

Citation

[1] R. Nowosielski, L. Gerlach, S. Bieband, G. Paya-Vaya, and H. Blume, “FLINT: Layout-oriented FPGA-based methodology for fault tolerant ASIC design,” Proceedings - Design, Automation and Test in Europe, DATE, vol. 2015-April, pp. 297–300, Apr. 2015, doi: 10.7873/DATE.2015.0278.

A paper featuring with the new features is in progress. In the meantime please cite this repository and the above paper.

Owner

  • Name: Chair for Chip Design for Embedded Computing
  • Login: tubs-eis
  • Kind: organization
  • Location: Braunschweig, Germany

Technische Universität Braunschweig, Germany

Citation (CITATION.cff)

# This CITATION.cff file was generated with cffinit.
# Visit https://bit.ly/cffinit to generate yours today!

cff-version: 1.2.0
title: OpenFI4ASIC
message: >-
  If you use this software, please cite it using the
  metadata from this file.
type: software
authors:
  - given-names: Jasper
    family-names: Homann
    email: jasper.homann@tu-braunschweig.de
    affiliation: >-
      Technische Universität Braunschweig, Abteilung
      Technische Informatik
    orcid: 'https://orcid.org/0009-0003-5294-3115'
  - given-names: Eike
    family-names: Trumann
    orcid: 'https://orcid.org/0009-0005-9959-8771'
    affiliation: >-
      Technische Universität Braunschweig, Abteilung
      Technische Informatik
  - given-names: Lucian
    family-names: Lohse
    affiliation: >-
      Technische Universität Braunschweig, Abteilung
      Technische Informatik
  - given-names: Moritz
    family-names: Weißbrich
    orcid: 'https://orcid.org/0000-0002-6647-5215'
    affiliation: >-
      Technische Universität Braunschweig, Abteilung
      Technische Informatik
  - given-names: Christian
    family-names: Ewert
    orcid: 'https://orcid.org/0009-0002-4820-4726'
    affiliation: >-
      Leibniz Universität Hannover, Institut für
      Mikroelektronische Systeme
  - given-names: Guillermo
    family-names: Payá Vayá
    affiliation: >-
      Technische Universität Braunschweig, Abteilung
      Technische Informatik
    orcid: 'https://orcid.org/0000-0003-3503-8386'
  - name: >-
      Technische Universität Braunschweig, Abteilung
      Technische Informatik
    address: 'Mühlenpfordtstraße 23, 2. OG'
    city: Braunschweig
    country: DE
    post-code: '38106'
    website: 'https://www.tu-braunschweig.de/eis'
repository-code: 'https://github.com/tubs-eis/OpenFI4ASIC'
abstract: >-
  Fault emulation tool and FPGA runtime for fault efficient
  fault emulation of post-synthesis ASIC designs.
license: MIT

GitHub Events

Total
  • Watch event: 1
  • Member event: 1
  • Push event: 2
  • Create event: 2
Last Year
  • Watch event: 1
  • Member event: 1
  • Push event: 2
  • Create event: 2