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
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
Metadata Files
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
- Jasper Homann (Technische Universität Braunschweig, Chair for Chip Design for Embedded Computing)
- Eike Trumann (Technische Universität Braunschweig, Chair for Chip Design for Embedded Computing)
- Lucian Lohse (Technische Universität Braunschweig, Chair for Chip Design for Embedded Computing)
- Moritz Weißbrich (Technische Universität Braunschweig, Chair for Chip Design for Embedded Computing)
- Christian Ewert (During his master thesis at Leibniz Universität Hannover, Institut für Mikroelektronische Systeme)
- Guillermo Payá Vayá ((Technische Universität Braunschweig, Head of Chair for Chip Design for Embedded Computing))
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
- Website: www.tu-braunschweig.de/eis
- Repositories: 3
- Profile: https://github.com/tubs-eis
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