Es ist immer interessant, mal über den Tellerrand zu blicken – wie wird Hardware in anderen Branchen entwickelt?
Eines der erfolgreichsten Gebiete der Ingenieurstechnik ist die Flugzeugtechnik. Laut der Website planecrashinfo.com ging die Zahl der Unfälle von den 1950ern bis jetzt zurück, obwohl sich die Anzahl der Flüge von 1970 bis heute deutlich erhöht hat (Quelle: gapminder.org). Irgendetwas scheinen die Flugzeug-Ingenieure richtig zu machen.
Die Abnahme der Flugunfälle und steigende Sicherheit haben sicherlich mehrere Ursachen, unter anderem strenge Regulierung und hohe Auflagen bei der Zulassung, Fortschritte in der Ausbildung, Einsatz neuer Technologien und Einsatz von Checklisten (hier unser Blog zu Checklisten).
Ein Aspekt, der zur Qualität der Elektronik beiträgt sind auch die Entwicklungsprozesse. Diese sind in der Luftfahrt mit der RTCA DO-254 / EUROCAE ED-80, Design Assurance Guidance for Airborne Electronic Hardware streng reguliert. Diese Norm ist eine Prozessnorm (wie z. B. die ISO 14971 oder die ISO 13485). Das heißt, sie erklärt nicht, wie und was getestet wird, sondern diese Norm formuliert Anforderungen an den Entwicklungsprozess und dessen Verifizierung.
Worum geht es in der DO-254 und welche Anforderungen an die HW-Entwicklung gibt es?
Hardware wird nach der DO-254 unterteilt in einfache und komplexe Systeme. Einfache Systeme können komplett getestet werden und unterliegen nicht den Anforderungen an die Prozesse nach DO-254. Komplexe Systeme können nicht komplett getestet werden, d. h. die Funktionalität und Sicherheit können nicht komplett verifiziert werden. Darunter fallen dann vor allem Systeme, die mit programmierbarer Logik in CPLDs und FPGAs implementiert sind (deshalb auch die HDL-lastige Beschreibung in den nächsten Kapiteln). Um dennoch sicherzustellen, dass das System funktioniert und sicher ist, ist ein Entwicklungsprozess nötig.
In der DO-254 wird der HW Entwicklungsprozess in 5 Schritte unterteilt:
Erfassung von Requirements
Anforderungen an das System werden erfasst und dokumentiert. Die Architektur des Systems (und die Anforderungen auf Systemebene), einschließlich Elementen wie Teststrukturen und Schnittstellen, werden beschrieben und dokumentiert. Es werden Blockschaltbilder, Zustands- und Flussdiagramme erstellt, die mit den Anforderungen übereinstimmen.
Konzeptioneller Entwurf
In dieser Phase kann der Hardwareentwurf mit der HDL-Entwicklung beginnen. Die Ergebnisse dieser Aktivitäten werden überprüft in Reviews und wo möglich durch Automatisierte Tests (in HDL). Die Simulation ist zum einen Teil der Verifikation und Validierung, zum anderen aber auch Bestandteil des Konzept- und Feinentwurfsprozesses.
Ausführlicher Entwurf (detailed design)
In dieser Phase wird der Entwurf synthetisiert und der Place-and-Route-Prozess abgeschlossen.
In der VHDL-Programmierung werden in dieser Phase Bitströme generiert.
Implementierung
Während dieser Phase werden FPGAs programmiert und Prototypen entwickelt, um Tests und Debugging zu ermöglichen.
Übergang der Produktion
In der letzten Phase wird das FPGA bzw. das Board für die Freigabe zur Fertigung vorbereitet. Nachdem das Board und der FPGA vollständig getestet sind, werden die Produktion und Produktionstests validiert. Abnahmeprüfungen und Prüfungen für Produktionsqualität müssen festgelegt werden.
Parallel dazu laufen weitere Prozesse wie Verifizierung und Validierung, Zertifizierung, Prozessüberwachung und Konfigurationsmanagement.
Was können wir in der Medizintechnik daraus lernen?
In der Medizintechnik gibt es für die Hardware im Gegensatz zur Software eigentlich keine Anforderungen an den Entwicklungsprozess.
Das Vorgehen in der Software-Entwicklung für medizinische Produkte ist definiert in der IEC 62304.
Die HW-Entwicklung ist außen vor, da elektrische Sicherheit bei „gefährlicheren“ Geräten mit einer höheren Sicherheitsklassifizierung von einer benannten Stelle geprüft wird, um für den Markt zugelassen zu werden.
Allerdings haben wir bei der MEDtech Ingenieur GmbH und auch andere Medizintechnik-Firmen Entwicklungsprozesse auch für Hardware-Entwicklung spezifiziert. In diesem Entwicklungsprozess verlaufen Entwicklungsprojekte nach einem der DO-254 sehr ähnlichen Prozess, der ebenso klar gegliedert ist. Am Projektbeginn steht die Erfassung von Requirements, anschließend eine Konzeptphase, dann die Entwicklungsphase und schließlich nach Validierung und Verifizierung der Übergang in die Produktion. Zwischen den einzelnen Phasen gibt es Gates, an denen bestimmte Dokumente vorliegen müssen und geprüft werden. Dabei gehen wir entsprechend dem V-Modell von der Systemebene aus und gliedern diese wieder auf in Software, Hardware, Mechanik und womöglich weitere Komponenten.
Wir haben gute Erfahrungen gemacht mit dem Prozess und können dieses Vorgehen nur empfehlen.
Viele Grüße
Martin Bosch
Referenzen: https://www.xilinx.com/support/documentation/white_papers/wp401_DO254_FPGA_Designer.pdf