Simulation von Fehlern in digitalen Schaltungen mit SystemC

Simulation of faults in digital hardware with SystemC

  • Elektronische Systeme sind in vielen Bereichen des täglichen Lebens zur Selbstverständlichkeit geworden. Dabei werden diese zunehmend komplexer und leistungsfähiger. Für den Entwurf entstehen dadurch Herausforderungen, die z. B. zunehmend mit Hilfe von SystemC gelöst werden. SystemC, eine C++- Klassenbibliothek, erlaubt die Modellierung von Hardwarekomponenten in einer Programmiersprache, wie sie zuvor nur mittels spezieller Hardwarebeschreibungssprachen möglich war. Die Simulation des Systems im Zusammenhang mit Fehlererscheinungen ist ein wichtiger Schritt für den Zuverlässigkeitsnachweis. Für die Simulation von Fehlern ergeben sich dabei im wesentlichen zwei Einsatzbereiche. Zum einen ist es die Fehlersimulation, welche Testmuster hinsichtlich ihrer Effektivität für den Produktionstest beurteilt. Zum anderen dient sie, häufig als simulierte Fehlerinjektion bezeichnet, dem Nachweis der Fehlertoleranz oder des Systemverhaltens im Betrieb. In dieser Arbeit werden erstmals verschiedene Aspekte und Strategien zur Simulation von FehlernElektronische Systeme sind in vielen Bereichen des täglichen Lebens zur Selbstverständlichkeit geworden. Dabei werden diese zunehmend komplexer und leistungsfähiger. Für den Entwurf entstehen dadurch Herausforderungen, die z. B. zunehmend mit Hilfe von SystemC gelöst werden. SystemC, eine C++- Klassenbibliothek, erlaubt die Modellierung von Hardwarekomponenten in einer Programmiersprache, wie sie zuvor nur mittels spezieller Hardwarebeschreibungssprachen möglich war. Die Simulation des Systems im Zusammenhang mit Fehlererscheinungen ist ein wichtiger Schritt für den Zuverlässigkeitsnachweis. Für die Simulation von Fehlern ergeben sich dabei im wesentlichen zwei Einsatzbereiche. Zum einen ist es die Fehlersimulation, welche Testmuster hinsichtlich ihrer Effektivität für den Produktionstest beurteilt. Zum anderen dient sie, häufig als simulierte Fehlerinjektion bezeichnet, dem Nachweis der Fehlertoleranz oder des Systemverhaltens im Betrieb. In dieser Arbeit werden erstmals verschiedene Aspekte und Strategien zur Simulation von Fehlern in digitalen Schaltungen als SystemC-Beschreibungen methodisch untersucht. Vorteile mit der Verwendung von SystemC bestehen z. B. in der Verwendung eines einheitlichen Beschreibungsmittels in einem durchgängigen Ablauf und in der Möglichkeit einer schnellen Ausführung. Voraussetzung für die Simulation von Hardware ist eine entsprechende Modellierungsmöglichkeit. Neben der Betrachtung der Register-Transfer- und Gatterebene wird eine neue Modellierung auf der Schalterebene präsentiert. Der Vorteil liegt hierbei in einer höheren Auflösung bei einer akzeptablen Geschwindigkeitseinbuße, wie sie insbesondere bei der Simulation von Fehlern sinnvoll ist. Bei der Modellierung der Fehler wurden neben dem klassischen Haftfehlermodell weitere Modelle kreiert, die Defekte und Störungen realitätsnäher abbilden. Die Injektion der Fehler in die Hardware-Beschreibung erfolgt mit Hilfe verschiedener Strategien. Neben der Umsetzung von Methoden, wie sie aus anderen Hardwarebeschreibungssprachen bekannt sind, werden weitere Wege in SystemC gezeigt. Hierbei nutzt man spezielle Eigenschaften der Sprache C++ und des SystemC-Kernels. Ergebnis dieser Techniken ist eine Modifikation der SystemC-Bibliothek, die zu einer sehr effizienten Fehlerinjektion führt. Bei der Einführung neuer Entwurfswerkzeuge entsteht oft das Problem der Portierung des bestehenden Know-hows. Eine Alternative kann die Kopplung von bestehenden und neuen Simulationsprogrammen sein. Probleme solcher gekoppelten Simulationen liegen z. B. im zusätzlichen Kommunikationsaufwand und der Synchronisation, welche die Ausführungszeit oft deutlich erhöhen. Die hier präsentierte Mixed-Language-Co-Simulation in Form einer Thread-Implementierung und einer weiteren Modifikation der SystemC-Bibliothek erweist sich aber als sehr effizient im Vergleich zu anderen Co-Simulationen. Eine wesentliche Herausforderung für Simulationsaufgaben besteht in ihren Ausführungen in einer akzeptablen Zeit. Es werden verschiedene Implementierungen der beschleunigten Simulation präsentiert. Dabei kommen unterschiedliche Ebenen der Parallelisierung zur Verwendung und zur Untersuchung in Bezug auf ihre Performance. Eine Kombination verschiedener Methoden führt zu einer zusätzlichen Verbesserung. Mit dieser Arbeit wird gezeigt, dass die Simulation von Fehlern in Hardware mit SystemC praktikabel und sinnvoll ist. Anhand von Simulationen und Bewertungen an Beispielschaltungen wird dies unterstrichen.show moreshow less
  • Electronic systems can be found in many areas of the everyday life. These systems increase in their complexity and performance. Thereby, the design process gets new challenges. For example, these challenges are solved by the usage of SystemC. SystemC is a C++ language class library which allows the modeling of hardware behaviour in a programming language for software. A hardware description language was necessary to model such cases in the past. The simulation of faults has two operation areas. At first, there is the fault simulation for the validation of test patterns for fabrication faults. At second, there is the simulated fault injection that investigates the occurrences of faults in operation. Different aspects and strategies of the simulation of faults in digital circuits are shown in a methodical way in this thesis. Advantages with the usage of SystemC are an integrative design description in a continuous design flow and the possibility of a faster execution, for example. An unavoidable condition is a suitable modeling for theElectronic systems can be found in many areas of the everyday life. These systems increase in their complexity and performance. Thereby, the design process gets new challenges. For example, these challenges are solved by the usage of SystemC. SystemC is a C++ language class library which allows the modeling of hardware behaviour in a programming language for software. A hardware description language was necessary to model such cases in the past. The simulation of faults has two operation areas. At first, there is the fault simulation for the validation of test patterns for fabrication faults. At second, there is the simulated fault injection that investigates the occurrences of faults in operation. Different aspects and strategies of the simulation of faults in digital circuits are shown in a methodical way in this thesis. Advantages with the usage of SystemC are an integrative design description in a continuous design flow and the possibility of a faster execution, for example. An unavoidable condition is a suitable modeling for the simulation of the hardware. Beyond the view at the register-transfer level and the gate level, there is introduced a new modeling in SystemC at the switch level. The advantage of this is a better accuracy for the simulation of faults with an acceptable loss in speed. Beside the classical stuck-at fault model there were additional fault models implemented. These models get to a more realistic behaviour of defects and disturbances. The fault injections take place in different manners within the hardware descriptions. Beside the strategies which are known from other hardware description languages there are furthers techniques depicted for the SystemC methodology. Special properties of the C++ language and the SystemC kernel are used for theses new methods. The result of these techniques is a modified SystemC library which leads to an efficient fault injection. It arises often the problem of transferring existing know-how with the implementation of new design tools. An alternative is the coupling of the existing and the new simulation programs. But such approaches have often the problem that the additional effort for the communication and the synchronization is very high. This leads to much longer simulation times. The presented approach here is a thread implementation with a modified SystemC library. This approach is more efficient in comparison to other co-simulations. Another important challenge of simulation tasks are the executing in an acceptable time. Different ways of accelerated simulations are shown. In general, they use several layers of parallelism and are investigated regarding to their efficiency. A miscellaneous combination of the methods brings further improvements. In this thesis is shown that the simulation of faults which occur in hardware is feasible and it is efficient. It is underlined by the simulations of several examples.show moreshow less

Download full text files

Export metadata

Additional Services

Share in Twitter Search Google Scholar
Metadaten
Author: Misera, Silvio André
URN:urn:nbn:de:kobv:co1-opus-4063
Referee / Advisor:Prof. Dr.-Ing. Vierhaus, Heinrich Theodor
Document Type:Doctoral Thesis
Language:German
Year of Completion:2007
Date of final exam:2007/12/05
Release Date:2008/01/18
Tag:Fehlerinjektion; Fehlersimulation; SystemC
Fault injection; Simulation; SystemC
GND Keyword:Digitalschaltung; Fehlerbehandlung; Fehlererkennung; Fehlersimulation; SystemC
Institutes:Fakultät 1 MINT - Mathematik, Informatik, Physik, Elektro- und Informationstechnik / FG Technische Informatik
Institution name at the time of publication:Fakultät für Mathematik, Naturwissenschaften und Informatik (eBTU) / LS Technische Informatik