Zum Hauptinhalt springen

Fuzzy Testing: Optimierung von Strategien, um Bugs in Hardware zu finden

Forschungsfeld:Integrierte SensorsystemeTätigkeit:Software-Entwicklung
Beschreibung

Verifikation ist ein wichtiger Teil des Entwicklungsprozesses elektronischer Bauteile. Ein Hauptaugenmerk liegt oft darauf, sicherzustellen, dass Eingangssignale korrekt verarbeitet werden und das richtige Verhalten des Bauteils hervorrufen. Allerdings ist eine weitere wichtige Aufgabe der Verifikation zu überprüfen, ob sich das Bauteil durch unerwartete oder ungewöhnliche Eingangssignale in einen unerwünschten Systemzustand bringen lässt. Oder anders ausgedrückt: können ungünstige Eingangssignale das System zum Abstürzen bringen?

Hier am IMMs haben wir uns von einer etablierten Methode der Softwareentwicklung inspirieren lassen, dem Fuzzy Testing bzw. Fuzzing. Wir haben eine Python-Umgebung entwickelt, die es uns erlaubt, mit dieser Methode Hardwaresimulationen von ASICs zu testen. Dabei wird automatisiert ein (teil-)zufälliges Eingangssignal erzeugt und simuliert, wie das ASIC auf diesem Stimulus reagiert. Da es in der Regel zu viele mögliche Eingangssignalkombinationen gibt, ist es weder effizient noch innovativ, alle Signale komplett randomisiert durchzutesten. Wir benutzen daher Informationen aus der Hardwaresimulation des jeweiligen Stimulus als Feedback und können nun Optimierungsstrategien verwenden, um die richtigen Stimuli schneller zu finden. Dies ermöglicht es uns das Problem auf folgende Frage herunterzubrechen: „Welches Eingangssignal lässt mein ASIC abstürzen und welche Optimierungsstrategie lässt mich dieses Signal am effektivsten finden?“.

Wir fordern dich heraus! Schaffst du es eine passende Strategie in unserer Python-Umgebung zu implementieren, die unsere bisherige, einfache Strategie schlägt? Mögliche Ansätze wären die Verwendung von klassischen Exploration-Exploitation Strategien, Simulated Annealing oder genetische Algorithmen. Es gibt eine Vielzahl von publizierten und dokumentierten Methoden, die hier helfen könnten, du kannst aber natürlich auch einen eigenen, neuen Ansatz entwickeln.

Auszuführende Aufgaben
  • Literaturrecherche und Entwicklung einer Optimierungsstrategie, passend zum Thema
  • Eigenständige Implementierung der entwickelten Strategie in Python
  • Testen und verifizieren des implementierten Algorithmus
  • Saubere Kommentierung des Codes und Dokumentation der Ergebnisse
Vorausgesetzte Kenntnisse
  • Programmiersprache: Python
  • Grundlagenwissen: objektorientierte Programmierung
  • Grundlagenwissen: Optimierungsalgorithmen und -strategien
Dauer:Nach Vereinbarung

Kontakt

Kontakt

Eric Schäfer, M. Sc.

Leiter Mikroelektronik und Institutsteil Erfurt

eric.schaefer(at)imms.de+49 (0) 361 663 25 35

Eric Schäfer und sein Team erforschen Integrierte Sensorsysteme und hier insbesondere CMOS-basierte Biosensoren, ULP-Sensorsysteme und KI-basierte Entwurfs- und Testautomatisierung. Die Ergebnisse fließen in die Forschung an den Leitthemen Sensorsysteme für die In-vitro-Diagnostik und RFID-Sensoren ein. Er unterstützt Sie mit Dienstleistungen rund um die Entwicklung integrierter Schaltungen und mit KI-basierten Methoden für komplexe IC-Entwürfe.

Zurück