Das Einbeziehen von FPGAs in die Entwicklung von Medizinprodukten ist für den Großteil der Branche technisch ein eher unbeschriebenes Blatt - besonders im Vergleich mit der vertrauteren Hard- oder Softwareentwicklung. Im Beitrag beantworten wir die wichtigsten Fragen rund um die FPGA-Entwicklung.
Welche Vorteile bietet der Einsatz von FPGAs?
Ein wesentlicher Vorteil beim Einsatz von FPGAs (Field Programmable Gate Arrays) liegt darin, dass sich Performancevorteile von dedizierten Hardwarelösungen mit den Vorteilen von Softwarelösungen im Hinblick auf deren Flexibilität kombinieren lassen. Wichtig ist auch, dass bei der Programmierung eines FPGA nicht wie bei herkömmlicher Software die zeitlichen und logischen Abläufe programmiert, sondern die Funktionsstruktur des Bausteins in einer Beschreibungssprache, wie z.B. VHDL definiert werden.
Wann kommen FPGAs zu Einsatz?
Der Einsatz von FPGAs bietet sich insbesondere bei Systemen mit harten Echtzeitanforderungen oder sicherheitsrelevanten Aspekten an. In einem FPGA lässt sich ein kritischer Signalpfad direkt in der Hardware abbilden und kann parallel zur eigentlichen Funktionalität des Designs ausgeführt werden. Weil eine Prozessierung von Daten im FPGA hochgradig parallel erfolgen kann, sind diese auch prädestiniert für die Verarbeitung von großen Datenmengen wie beispielsweise in Bildverarbeitungsanwendungen.
Welche normativen Anforderungen bestehen bei der FPGA-Entwicklung?
Gerade wegen des Mittelweges zwischen Hardware und Software ergeben sich häufig unterschiedliche Ansichten zur Einordnung der FPGA-Entwicklung in Bezug auf normative Anforderungen. Die Antwort zur Einordnung ist unserem Verständnis nach jedoch eindeutig: Regulatorisch unterliegt die FPGA-Entwicklung ausdrücklich den gleichen Voraussetzungen wie die Softwareentwicklung und somit kann die EN 62304 herangezogen und sinngemäß angewandt werden.
Die Art und Weise wie die Funktionsstruktur oder auch Konfiguration eines FPGA erstellt wird, ist wesentlicher Grund für die Anwendbarkeit der EN 62304. Die Erstellung erfolgt in einer Beschreibungssprache wie VHDL unter Verwendung passender Tools. Das Resultat daraus wird als ein Produktionsschritt auf ein Medizingerät eingebracht. Vergleicht man dieses Vorgehen mit dem Vorgehen in der Softwareentwicklung, so sind die Analogien beider Welten unverkennbar.
Wie kann die Qualität sichergestellt werden?
Da in solch einem Vorgehen Fehler grundsätzlich von systematischer Natur sind, ist es naheliegend dafür einen Prozess zur Sicherstellung der Qualität zu etablieren. Hier ist die EN 62304 als vorhandene Prozessnorm am ehesten geeignet. Auch wenn an dieser Stelle der Eindruck entstehen könnte, dass sich bestehende Vorgehensweisen aus einem vorhandenen Softwareentwicklungsprozess für die FPGA-Entwicklung übernehmen lassen, ist diesem leider nicht so und es sind spezifische Vorgehensweise zu definieren.
FPGA-Entwicklung: Unser Vorgehen bei der solectrix GmbH
Bezogen auf die Anforderungen und Phasen aus Kapitel 5 der EN 62304 hat sich innerhalb der solectrix GmbH für die FPGA-Entwicklung ein Vorgehen wie folgt etabliert:
- Erstellen eines Entwicklungsplanes
- Definition von Kodierungsrichtlinien. Die Richtlinien werden im Entwicklungsprojekt durch statische Codeanalysen geprüft
- Vorgabe von erweiterten Regeln, die bei der Kodierung in VHDL einzuhalten sind, zur Erhöhung der Qualität des zu erstellenden Designs
- Erstellen einer Designspezifikation
- Spezifikation der funktionalen Anforderungen an den FPGA
- Identifikation und Beschreibung der benötigen Funktionsblöcke und Schnittstellen
- Beschreibung aller externen Schnittstellen des Bausteines
- Festlegung von Treiberstärken, Pegelstandards und zeitlichem Verhalten
- Implementierung auf Basis der zuvor festgelegten Prinzipien
- Die Implementierung erfolgt auf Basis der Designspezifikation
- Explizite Dokumente zur Architektur oder einem detaillierten Design, wie aus der Softwareentwicklung bekannt, werden durch die Erstellung der Funktionsbeschreibung in VHDL und der Beschreibung der Funktionsblöcke abgedeckt
- Die geplante Verifikationsumgebung wird an dieser Stelle einhergehend mit der Entwicklung aufgesetzt
- Verifikationsplanung
- Beschreibung der Verifikationsumgebung für das FPGA-Projekt
- Festlegung aller Tools und Frameworks, die zur Verifikation genutzt werden sollen, wie
- Simulationen oder Timinganalysen
- Berücksichtigung von Functional, Code und Branch Coverage
- Eine Validierung der Toolkette ist in der Regel im Gegensatz zur Software nicht notwendig, da die gewünschte FPGA Funktonalität im (Sub-)System verifiziert wird
- Freigabeprozess
- Das Vorgehen zur Freigabe eines Releases unterscheidet sich nicht wesentlich vom Vorgehen innerhalb der Softwareentwicklung
- Die nach dem Verifikationsplan geprüfte Ausgabe wird als Netzliste oder Bitstrom als Eingabe für die HW/SW Integration geliefert. Die Verifikation auf Integrationsebene kann nur auf dem Zielsystem erfolgen
Haben Sie Fragen?
Sollten wir Ihr Interesse an diesem Thema geweckt haben, kommen Sie bei Fragen dazu oder auch weiteren Anliegen aus dem Bereich der Entwicklung eingebetteter Systeme gerne auf uns zu. Wir freuen uns auf Ihre Kontaktaufnahme.