Sicherheitskritische Systeme müssen jederzeit zuverlässig funktionieren. Mit FPGA-Logik kann entscheidende funktionale Sicherheit realisiert werden.
Die Spezifikationen für sicherheitskritische Embedded-Systeme werden oft branchenspezifisch vorgegeben und unterliegen strengen Normen. Spielraum für Fehler bei Hardware oder Software gibt es da nicht. Typische Anwendungen findet man in Bahn, Bus, Schiff und Flugzeug sowie in komplexeren Anwendungen der industriellen Automation, Medizintechnik oder Energiewirtschaft. Dem Faktor funktionale Sicherheit ist in diesem Zusammenhang eine besondere Bedeutung beizumessen.
Kann man ein System aber so konzipieren, dass es alle bekannten Risiken durch sein Design abfängt? Das schließt sowohl zufällige Ausfälle ein, die durch Bauteilversagen, EMV-Einflüsse oder kosmische Strahlung entstehen, als auch mögliche Designfehler, die man bereits während der Entwicklung durch entsprechende Prozesse vermeiden kann. Und kann man Systeme entsprechend den Sicherheitsnormen der verschiedenen Märkte zertifizieren, wenn die meisten verfügbaren Standardkomponenten diese Normen überhaupt nicht von Haus aus abdecken?
Ein selbst herbeigeführter Nachweis ist in der Regel sehr aufwendig – insbesondere, wenn es sich um komplexe Komponenten handelt. Mitunter ist er zudem nur in Kooperation mit dem Komponentenhersteller möglich, da dies unter anderem auch Einblicke in die Produktionsprozesse erfordert. Ziehen diese aber mit? Oft nicht, denn funktionale Sicherheit ist für die meisten Lieferanten von Standardbauelementen, die in Embedded-Computern verwendet werden, ein Nischenmarkt. Wie kann man dieses Dilemma aber umschiffen und dennoch funktional sichere Systeme entwickeln?
Eine sehr gute Alternative zur nachträglichen Prüfung von Standardbauelementen, wie sie das Certification-Memorandum der EASA „EASA CM - SWCEH – 001“ vorschreibt, besteht im Einsatz von FPGAs, in denen die Funktion neu und konform zu den jeweiligen Sicherheitsnormen abgebildet werden. Dieser Lösungsweg eignet sich hervorragend für eine exakte Erfüllung der sicherheitskritischen Anforderungen der jeweiligen Branchen. Er eröffnet sogar die Möglichkeit, selbst höchst kundenspezifische Designs bei kleinen Losgrößen effizient umzusetzen und zu attraktiven Preisen anzubieten. Sie sind damit die ideale Grundlage für die passgenaue Sicherstellung der applikationsspezifischen funktionalen Sicherheit. Der Vorteil von FPGAs liegt darin, dass nicht alles stets neu entwickelt werden muss. Es können vielmehr funktionale IP-Building-Blocks bedarfsgerecht kombiniert werden, was sowohl Kosten als auch Entwicklungszeit spart. Das ist nicht nur beim Design eines spezifischen FPGA möglich, sondern auch beim Design eines Boards oder Systems mit mehreren FPGAs, das über die jeweiligen FPGA-Anpassungen seine höchst individuelle Funktionalität erhält.
Bevor ein sicherheitskritisches Design qualifiziert und zertifiziert werden kann, muss allerdings ein Nachweis über das Verhalten im Fehlerfall geliefert werden. Dies geht mit Entwicklungs-Tools für FPGAs vergleichsweise einfach: In der virtuellen Entwicklungsumgebung für FPGAs können nämlich selbst schwerwiegende oder auch kompliziert auszulösende Fehler provoziert werden, um dann das Fehlerverhalten des Systems zu testen beziehungsweise um zu überprüfen, ob das System ein definiertes Fehlerverhalten aufweist. Dieser Form der Simulation ist bei Software nicht üblich, gehört beim FPGA-Design aber zum Grundwerkzeug – es kommt also auch für ‚normale‘ Entwicklungen zum Einsatz, an die keine Anforderungen an die funktionale Sicherheit gestellt werden. Insofern ist bei FPGAs in Sachen Toolchain kein Zusatzaufwand erforderlich. Die Simulation kann zudem nicht nur für den Nachweis des ‚richtigen’ Fehlerverhaltens, sondern auch für den Nachweis der korrekten Umsetzung einer Funktion eingesetzt werden. Man kann also lückenlose Simulationsberichte erstellen, die dann beispielsweise beim TÜV oder anderen Zertifizierungsdienstleistern eingereicht werden können.