title: HW Accelerator for Fault-Injection Experiments in QDI Circuits
Creators: name: Spitzer, Julian
Publisher: name: TU Wien
Year: 2024
Subjects: subject: Digitales Design
subject: Asynchrone Schaltung
subject: Fehlerinjektion
subject: Fehlertoleranz
subject: FPGA
subject: PYPR
subject: QDI
subject: VHDL
subject: Digital design
subject: asynchronous circuit
subject: fault injection
subject: fault robustness
subject: fault tolerance
subject: FPGA
subject: PYPR
subject: QDI
subject: Delay insensitivity

description: Mit immer kleiner werdenden elektronischen Komponenten, die mit niedrigeren Spannungen arbeiten, führt Strahlung mehr und mehr zu Bit-Fehlern in Komponenten und auf Leitungen. Die Robustheit gegenüber dieser unvermeidbaren Fehler ist ein wichtiger Aspekt, der mit speziellen Strategien verbessert werden kann. Während es für synchrone Schaltungen viel Literatur zu diesem Thema gibt, sieht dies in der asynchronen Welt anders aus. Eine wirkungsvolle Methode zur Quantifizierung der Robustheit ist das gezielte Einbringen von Fehlern in die Schaltung und die darauffolgende Beobachtung der Auswirkung. Dieser Vorgang wird als Fehlerinjektion bezeichnet. Diese Diplomarbeit beschäftigt sich mit existierenden Systemen für Fehlerinjektion in synchronen und asynchronen Schaltungen und geht auch der Frage nach, wann eine asynchrone Schaltung überhaupt anfällig für Fehler ist. In weiterer Folge wird die Implementierung eines Fehlerinjektions-Systems für asynchrone Schaltungen beschrieben, welches es dem Benutzer erlaubt, Experimente an asynchronen Schaltungen durchzuführen und unterschiedliche Implementierungen zu vergleichen. Dazu wird ein Injektionsgerüst um die getestete Schaltung in Hardware implementiert, welches über eine Python-Bibliothek angesteuert wird um einen möglichst hohen Automationsgrad zu erreichen. Die besonderen Herausforderungen dabei sind das automatische Vorbereiten von Schaltungen für die Integration in das Injektions-System und die Optimierung des Systems um die Experimente mit möglichst hohem Durchsatz ausführen zu können. Das System wird mit diversen Schaltungen (wie Addierer, Multiplizierer und einem rückgekoppelten Schieberegister) und unterschiedlichen Implementationstechniken getestet um die Brauchbarkeit zu zeigen. Zuletzt gibt die Diplomarbeit einen Ausblick auf mögliche Verbesserungen, an denen in Zukunft gearbeitet werden könnte.
description: With electrical components getting smaller and using lower voltages, radiation becomes an increasing factor causing unpredictable changes on wires or in components, so-called faults. The fault robustness of circuits is an important factor nowadays, and can be improved with fault mitigation techniques. While such techniques are well researched and analyzed in the synchronous domain, the same cannot be said for asynchronous circuits. An effective method for quantifying the robustness of a circuit is the targeted injection of faults and observing the effects of these injections. This process is called fault injection. The thesis explores existing frameworks for fault injection both in the synchronous and the asynchronous design as well as taking a look at what even constitutes a fault-sensitive asynchronous circuit. It further describes the implementation of a framework that enables the user to perform fault-injection experiments on asynchronous circuits, allowing them to draw conclusions about the robustness of different implementation techniques. This is achieved with an injection harness implemented on hardware and a Python library that works alongside to automate as many tasks as possible. The most notable challenges of this task were the integration and augmentation of given asynchronous circuits into the framework as well as optimizing the entire flow to achieve good performance when executing large experiments. The framework is tested on various circuits (like adders, multipliers and an LFSR) with different buffer types and it is shown that it produces sensible and reproducible results. Finally, an outlook is presented, looking at potential improvements to be implemented.