{"id":8006,"date":"2025-11-29T08:33:21","date_gmt":"2025-11-29T07:33:21","guid":{"rendered":"https:\/\/web-dev-weissblau.de\/microconsult\/?p=8006"},"modified":"2026-02-12T08:56:08","modified_gmt":"2026-02-12T07:56:08","slug":"cross-platform-software-for-multicore-fpgas","status":"publish","type":"post","link":"https:\/\/www.microconsult.de\/en\/plattformuebergreifende-software-fuer-multicore-fpgas\/","title":{"rendered":"Cross-platform software for multicore &amp; FPGAs"},"content":{"rendered":"<h2>Portable MATLAB\u00ae, Simulink und Scilab-Softwareentwicklung<\/h2>\n<p style=\"text-align: left;\" align=\"center\">Autoren: Timo Stripf, Michael R\u00fcckauer und Oliver Oey, emmtrix Technologies GmbH<\/p>\n<h3>Beitrag &#8211; Embedded Software Engineering Kongress 2016<\/h3>\n<p><strong>Neuste eingebettete Systeme werden zunehmend mit leistungsf\u00e4higen Multicore-Prozessoren sowie FPGA-Beschleunigern ausgestattet. Das ist notwendig, um die immer h\u00f6heren Performanzanforderungen von Anwendungen bei m\u00f6glichst niedrigem Energieverbrauch zu erf\u00fcllen. Die Programmierung solcher heterogenen Multicore-Systeme in Unternehmen wird derzeit \u00fcberwiegend manuell realisiert. Dies ist sehr komplex, teuer und zeitaufw\u00e4ndig und stellt Software-Entwickler vor eine gro\u00dfe Herausforderung. Viele Unternehmen scheuen aus diesem Grund den Einsatz von Multicore sogar g\u00e4nzlich.<\/strong><\/p>\n<p><strong>Im Markt f\u00fcr eingebettete Systeme wird h\u00e4nderingend nach Programmierl\u00f6sungen f\u00fcr Multicore-Systeme gesucht. In diesem Vortrag werden Werkzeuge f\u00fcr die automatisierte C-Code Generierung und Parallelisierung aus MATLAB\u00ae, Simulink und Scilab f\u00fcr heterogene eingebettete Multicore-Systeme vorgestellt.<\/strong><\/p>\n<h2>Motivation<\/h2>\n<p>Laut Studien [1] ist die Programmierung von eingebetteten Mehrkernsystemen 4,5-mal so teuer und ben\u00f6tigt 3-mal so viele Software-Ingenieure wie die Programmierung von Einkernsystemen und dauert 25% l\u00e4nger. Das Problem hierbei ist insbesondere der Mehraufwand durch die Verteilung der Aufgaben auf die einzelnen Kerne, der zus\u00e4tzliche Testaufwand, sowie Probleme durch zus\u00e4tzliche Fehlerquellen wie Race Conditions oder Deadlocks. Insbesondere letzteres sind Fehler, die besonders schwierig zu Debuggen sind und daher von Entwicklern gef\u00fcrchtet werden. Bei heterogenen Systemen (im Vergleich zu homogenen Systemen) kommt zus\u00e4tzlich noch der Mehraufwand hinzu, entscheiden zu m\u00fcssen, welcher Anwendungsteil auf welchem Prozessortyp oder Beschleuniger ausgef\u00fchrt werden soll, um ein effizientes Ergebnis bez\u00fcglich Performanz &amp; Energieverbrauch zu erzielen.<\/p>\n<p>Die emmtrix Technologies GmbH hat ein Entwicklungswerkzeug entwickelt, welches die Probleme bei der parallelen Softwareentwicklung f\u00fcr eingebettete heterogene Mehrkernprozessoren adressiert. Mittels automatischer Parallelisierung und Codegenerierung werden die aufw\u00e4ndigen Aufgaben automatisiert, sowie die Parallelisierung innerhalb einer graphischen Benutzeroberfl\u00e4che erheblich vereinfacht. Als Eingabe werden MATLAB\u00ae-Skripte, Simulink-Modelle sowie die Open-Source-Alternative Scilab unterst\u00fctzt. Der Programmierer kann sich auf die Entwicklung des Algorithmus konzentrieren, w\u00e4hrend die Anpassungen an die Zielhardware automatisch durch die Werkzeugkette erledigt werden. Schlie\u00dflich kann die L\u00f6sung direkt auf der Zielhardware ausgef\u00fchrt und getestet werden. Diese Automatisierung der Parallelisierung erm\u00f6glicht Rapid Prototyping, was den Aufwand des Entwicklungszyklus zur Evaluation einer parallelen L\u00f6sung erheblich reduziert.<\/p>\n<h2>Beispielanwendung &amp; Testumgebung<\/h2>\n<p>Als Beispielanwendung dient ein \u00fcberschaubares Teilproblem aus der industriellen Bildverarbeitung, das als MATLAB\u00ae-Programm implementiert ist. Es wird ein Bild von einer Kamera eingelesen, eine Kantendetektion mittels eines Sobel-Filters durchgef\u00fchrt, sowie das Ergebnis auf einem Bildschirm ausgegeben.<\/p>\n<p>Als Zielsystem kommt ein ZedBoard [2] mit einem Zynq-7000 FPGA (XC7Z020) zum Einsatz, der einen Dual-Core Cortex A9 Prozessor mit FPGA-Logik kombiniert. Die programmierbare FPGA-Logik dient sowohl zur Bildakquise von der angeschlossenen Kamera, zur Ausgabe des Bildes auf dem Monitor, als auch als Hardwarebeschleuniger f\u00fcr Teile der Beispielanwendung. Auf dem System l\u00e4uft ein Linux-Betriebssystem.<\/p>\n<p>Im Folgenden ist der Grundaufbau der MATLAB\u00ae-Anwendung gezeigt (siehe\u00a0<a title=\"Plattform\u00fcbergreifende Software f\u00fcr Multicore &amp; FPGAs (PDF)\" href=\"https:\/\/www.microconsult.de\/wp-content\/uploads\/2025\/12\/multicore_plattformuebergreifende_software_emmtrix_stripfrueckaueroey.pdf\" target=\"_blank\" rel=\"noopener\">PDF<\/a>):<\/p>\n<p>Der Grundaufbau des Filters ist, dass zun\u00e4chst zwei 2D-Faltungsfilter (conv2) f\u00fcr die Erkennung der horizontalen und vertikalen Kanten angewandt werden. Als Faltungsmatrix wird k bzw. die Transponierte k\u2018 verwendet. Richtungsunabh\u00e4ngige Kanteninformationen werden durch die Kombination beider Ergebnisse erzielt. Als Ausgabebild werden Kanten angezeigt, sobald ein Schwellwert \u00fcberschritten ist. In unserem Beispiel wird 0,7 angenommen.<\/p>\n<h2>Generierung sequentiellen C-Codes<\/h2>\n<p>Als erster Arbeitsschritt wird das MATLAB\u00ae-Programm zun\u00e4chst in sequentiellen C-Quellcode f\u00fcr die Zielarchitektur \u00fcbersetzt. Hierbei kommt der emmtrix Code Generator zum Einsatz. Dieser unterst\u00fctzt sowohl MATLAB\u00ae- und Scilab-Skripte als auch Simulink-Modelle. Der generierte C-Code ist bereits f\u00fcr die Parallelisierung vorbereitet.<\/p>\n<p>Ein wichtiger Aspekt ist hierbei die Modellierung des Interface-Codes (siehe\u00a0<a title=\"Plattform\u00fcbergreifende Software f\u00fcr Multicore &amp; FPGAs (PDF)\" href=\"https:\/\/www.microconsult.de\/wp-content\/uploads\/2025\/12\/multicore_plattformuebergreifende_software_emmtrix_stripfrueckaueroey.pdf\" target=\"_blank\" rel=\"noopener\">PDF<\/a>).<\/p>\n<p>Der Interface-Code nimmt die Eingangsdaten entgegen und gibt die Ausgangsdaten aus. Dieser ist unterschiedlich, je nachdem wo und in welcher Umgebung der Code ausgef\u00fchrt wird. Zur Evaluation des Programmes auf dem PC kann z.B.\u00a0<span class=\"quellcode\">interface_indata<\/span>\u00a0innerhalb der MATLAB\u00ae-Anwendung auf eine Bilddatei zugreifen und\u00a0<span class=\"quellcode\">interface_outdata<\/span>\u00a0schreibt das Ergebnis auf die Festplatte. Auf diese Art wurde z.B. auch das Bild in Abbildung 1 (siehe Abb. 1,\u00a0<a title=\"Plattform\u00fcbergreifende Software f\u00fcr Multicore &amp; FPGAs (PDF)Software_emmtrix Technologies_Stripf+R\u00fcckauer+Oey\" href=\"https:\/\/www.microconsult.de\/wp-content\/uploads\/2025\/12\/multicore_plattformuebergreifende_software_emmtrix_stripfrueckaueroey.pdf\" target=\"_blank\" rel=\"noopener\">PDF<\/a>) erzeugt. F\u00fcr eine sp\u00e4tere Ausf\u00fchrung auf der Hardware wird der Interface-Code dann durch eine Ansteuerung der Kamera bzw. \u00a0des Bildschirms ersetzt.<\/p>\n<h2>Analyse des Programms<\/h2>\n<p>Nach der Generierung des sequentiellen Programms wird dieses auf dem PC mit Testeingangsdaten ausgef\u00fchrt. Hierbei wird ein Profiling durchgef\u00fchrt, mit dem die Ausf\u00fchrungszeiten f\u00fcr die eingestellte Zielarchitektur ermittelt werden. Als Ergebnis wird dann im emmtrix Parallel Studio [3] eine hierarchische Programmdarstellung angezeigt, die die Ausf\u00fchrungszeiten der verschiedenen Porammteile zeigt. Auf der horizontalen Achse ist die Zeit gegeben. Auf der untersten Ebene ist die main-Funktion, die das gesamte Programm repr\u00e4sentiert und sich \u00fcber die ganze Zeit erstreckt. Auf der zweiten Ebene befindet sich am Anfang und Ende die Funktionsaufrufe f\u00fcr die Interface-Funktionen. In der Mitte ist der gr\u00f6\u00dfte Block der Aufruf der sobel-Funktion. Innerhalb der Funktion kann man gut die beiden 2D-Falterungsfilger (conv2_1 und conv2_2), sowie die For-Schleife zur Kombination der beiden Faltungsergebnisse erkennen. Tiefere Ebenen werden in diesem Beispiel aus \u00dcbersichtszwecken nicht mehr dargestellt.<\/p>\n<h2 align=\"left\">Parallelisierung des Programms<\/h2>\n<p>Zun\u00e4chst wird das Programm f\u00fcr den Dual-Core-Prozessor des Zynq-Systems parallelisiert. Hier hat der automatische Scheduler bereits eine sinnvolle Verteilung gefunden. Ansonsten kann der Benutzer in der hierarchischen Darstellung immer in den Prozess eingreifen und z.B. den Prozessorkern pro Programmteil\/-block festlegen. Damit beh\u00e4lt der Benutzer stets die volle Kontrolle \u00fcber die Parallelisierung.<\/p>\n<p>Ein Ergebnis der Parallelisierung besteht darin, welche Programmteile gemeinsam auf einem Prozessor abgearbeitet werden bzw. wie tief ein Programm aufgebrochen werden soll. Dies ist in der oberen Darstellung (siehe Abb. 2,\u00a0<a title=\"Plattform\u00fcbergreifende Software f\u00fcr Multicore &amp; FPGAs (PDF)\" href=\"https:\/\/www.microconsult.de\/wp-content\/uploads\/2025\/12\/multicore_plattformuebergreifende_software_emmtrix_stripfrueckaueroey.pdf\" target=\"_blank\" rel=\"noopener\">PDF<\/a>) anhand der roten Linie erkennbar. Anhand der K\u00e4stchen rechts unten ist die Zuweisung auf den jeweiligen Prozessorkern erkennbar.<\/p>\n<p>Diese Programmteile findet man ebenfalls in der Scheduling-Ansicht (siehe Abb. 3,\u00a0<a title=\"Plattform\u00fcbergreifende Software f\u00fcr Multicore &amp; FPGAs\" href=\"https:\/\/www.microconsult.de\/wp-content\/uploads\/2025\/12\/multicore_plattformuebergreifende_software_emmtrix_stripfrueckaueroey.pdf\" target=\"_blank\" rel=\"noopener\">PDF<\/a>) wieder, die den Ablauf des parallelen Programms repr\u00e4sentiert. Hier kann man erkennen, dass die beiden 2D-Faltungsoperationen auf zwei unterschiedliche Prozessoren verteilt wurden und dadurch die Anwendung um ca. 50% beschleunigt wird.<\/p>\n<h2>Rapid Prototyping<\/h2>\n<p>Das emmtrix Parallel Studio erlaubt das direkte Ausf\u00fchren der parallelisierten Anwendung auf der Zielarchitektur. Dazu wird zun\u00e4chst eine automatische Codegenerierung basierend auf dem berechneten Schedule durchgef\u00fchrt und paralleler Code erzeugt. F\u00fcr den parallelen Code kann unter verschiedenen APIs wie z.B. MPI, Prozesse oder pthreads ausgew\u00e4hlt werden. F\u00fcr die Zynq-Zielarchitektur bieten sich pthreads (POSIX Threads) an, da die Architektur \u00fcber einen gemeinsamen Speicher verf\u00fcgt.<\/p>\n<p>F\u00fcr das Rapid Prototyping wird der generierte Code mit einem Template f\u00fcr das Zielsystem kombiniert. Im Template ist die Initialisierung, Hauptschleife, die Ansteuerung der Kamera und des Bildschirms sowie die Hardware-Implementierung der Interface-Funktionen realisiert.<\/p>\n<p>Die finalen C-Dateien werden auf das Zielsystem \u00fcbertragen und dort direkt lokal in Linux kompiliert. Dadurch erspart man sich auf dem Host-System die Einrichtung eines Cross-Compilers. Nach der Kompilierung kann es direkt auf dem Zielsystem ausgef\u00fchrt werden und man kann seine Anwendung live testen. Der gesamte Vorgang von der sequentiellen Codegenerierung bis zur Ausf\u00fchrung der Anwendung ist voll automatisiert und l\u00e4uft in kurzer Zeit durch die gesamte Toolchain.<\/p>\n<h2 align=\"left\">Hardware-Profiling<\/h2>\n<p>Neben dem funktionalen Test der Anwendung, wird beim Rapid Prototyping noch die Performanz auf der Zielarchitektur evaluiert. Dazu werden im Anwendungscode Profiling-Befehle integriert. Diese messen auf der Hardware das Schedule der parallelen Anwendung und erlauben somit einen Vergleich mit dem vorher berechneten Schedule.<\/p>\n<p>Im emmtrix Parallel Studio k\u00f6nnen die Unterschiede visualisiert werden. In Abbildung 4 (siehe\u00a0<a title=\"Plattform\u00fcbergreifende Software f\u00fcr Multicore &amp; FPGAs\" href=\"https:\/\/www.microconsult.de\/wp-content\/uploads\/2025\/12\/multicore_plattformuebergreifende_software_emmtrix_stripfrueckaueroey.pdf\" target=\"_blank\" rel=\"noopener\">PDF<\/a>) ist der Unterschied auf dem ersten Prozessorkern vom berechneten zum gemessenen Schedule zu sehen. Hierbei ergibt sich insbesondere eine Abweichung f\u00fcr den Interface-Code (BB3). Bei einem weiteren Durchlauf k\u00f6nnen die Abweichungen dann ber\u00fccksichtigt werden.<\/p>\n<h2>Unterst\u00fctzung von heterogenen Systemen<\/h2>\n<p>Der vorgestellte Workflow f\u00fcr die Parallelisierung l\u00e4sst sich auch einfach auf FPGA-Beschleunigern anwenden. In unserem Beispiel m\u00f6chten wir jetzt einen der beiden Faltungsfilter auf dem FPGA ausf\u00fchren (siehe dazu Abb. 5,\u00a0<a title=\"Plattform\u00fcbergreifende Software f\u00fcr Multicore &amp; FPGAs (PDF)\" href=\"https:\/\/www.microconsult.de\/wp-content\/uploads\/2025\/12\/multicore_plattformuebergreifende_software_emmtrix_stripfrueckaueroey.pdf\" target=\"_blank\" rel=\"noopener\">PDF<\/a>). Per Rechtsklick auf den Block30 bzw. die conv2_2 Funktion, kann dieser manuell auf den FPGA gesetzt werden. Im Hintergrund wird dann per High-Level Synthese von Xilinx [4] das C-Teilprogramm als Hardwarebeschleuniger synthetisiert. Nach einer Synthese von ca. 1 Minute stehen dann erste Performanzinformationen zur Verf\u00fcgung, die dann f\u00fcr das Schedule verwendet werden k\u00f6nnen.<\/p>\n<p align=\"left\">Die frei gewordenen Kapazit\u00e4ten auf dem zweiten Prozessorkern kann man dann z.B. durch Aufteilung des ersten Faltungsfilters auf zwei Prozessorkernen nutzen, wodurch insgesamt die Performanz der Anwendung weiter verbessert wird.<\/p>\n<h2 align=\"left\">Zusammenfassung<\/h2>\n<p>In diesem Artikel wurden die emmtrix Werkzeuge vorgestellt, welche die Programmierung von eingebetteten heterogenen Multicore-Systemen erleichtern, indem die sonst zeitaufw\u00e4ndige Parallelisierung automatisiert durchgef\u00fchrt wird. Bei Evaluationen konnte gezeigt werden, dass dadurch der Entwicklungsaufwand zwischen 50-80% [5] reduziert werden kann.<\/p>\n<p>An einem Beispiel aus der industriellen Bildverarbeitung wurde eine MATLAB\u00ae-Anwendung f\u00fcr ein Zynq-System optimiert. Zun\u00e4chst wurde der MATLAB\u00ae-Code in sequentiellen C-Code \u00fcbersetzt und die Performanz der Programmteile in einer hierarchischen Darstellung angezeigt. Die hierarchische Darstellung erlaubt hierbei die Analyse des Programms und die Steuerung der Parallelisierung. Der Benutzer kann hier z.B. festlegen, auf welchem Prozessorkern ein Anwendungsteil ausgef\u00fchrt werden soll. Zus\u00e4tzlich k\u00f6nnen auch einzelne Programmteile auf den FPGA ausgelagert werden. In einer Scheduling-Ansicht wird dann der genaue Ablauf der parallelisierten Anwendung angezeigt. Mittels Codegenerierung wird automatisch paralleler C-Code erzeugt. Dieser kann direkt f\u00fcr die Zielarchitektur kompiliert und auf dieser ausgef\u00fchrt werden, wodurch Rapid Prototyping erm\u00f6glicht wird.<\/p>\n<h2>Literatur- und Quellenverzeichnis<\/h2>\n<p>[1] &#8222;Next Generation Embedded Hardware Architectures: Driving Onset of Project Delays, Cost Overruns, and Software Development Challenges,&#8220; VDC Research, September 2010.<\/p>\n<p>[2]\u00a0<a title=\"ZedBoard\" href=\"https:\/\/zedboard.org\/product\/zedboard\" target=\"_blank\" rel=\"noopener\">&#8222;ZedBoard\u2122 &#8211; Xilinx Zynq\u00ae-7000 All Programmable SoC&#8220; [Online)<\/a><\/p>\n<p>[3]\u00a0<a title=\"emmtrix Parallel Studio\" href=\"https:\/\/www.emmtrix.com\/tools\/emmtrix-parallel-studio\" target=\"_blank\" rel=\"noopener\">&#8222;emmtrix Parallel Studio&#8220;, emmtrix Technologies GmbH, 2016 [Online]<\/a><\/p>\n<p>[4]\u00a0<a title=\"Vivado High-Level Synthesis\" href=\"https:\/\/www.xilinx.com\/products\/design-tools\/vivado\/integration\/esl-design.html\" target=\"_blank\" rel=\"noopener\">&#8222;Vivado High-Level Synthesis&#8220;, Xilinx Inc. [Online]<\/a><\/p>\n<p>[5]\u00a0<a title=\"ALMA Project\" href=\"https:\/\/www.alma-project.eu\/downloads\/FP7-ICT-2011-7-287733-WP5-D5.6.pdf\" target=\"_blank\" rel=\"noopener\">&#8222;ALMA Project, Test cases evaluation report&#8220;, 2015 [Online]<\/a><\/p>\n<p><strong>\u00a0<\/strong><a title=\"Plattform\u00fcbergreifende Software f\u00fcr Multicore &amp; FPGAs (PDF)\" href=\"https:\/\/www.microconsult.de\/wp-content\/uploads\/2025\/12\/multicore_plattformuebergreifende_software_emmtrix_stripfrueckaueroey.pdf\" target=\"_blank\" rel=\"noopener\"><strong>Beitrag als PDF downloaden<\/strong><\/a><\/p>\n<hr \/>\n<h2>Multicore &#8211; unsere Trainings &amp; Coachings<\/h2>\n<p><strong>Wollen Sie sich auf den aktuellen Stand der Technik bringen?<\/strong><\/p>\n<p>Dann informieren Sie sich\u00a0<a title=\"Trainings und Termine - Mikrocontroller\" href=\"https:\/\/www.microconsult.de\/alle-trainings-termine-komplettuebersicht\/\" target=\"_blank\" rel=\"noopener\"><strong>hier<\/strong>\u00a0<\/a>zu Schulungen\/ Seminaren\/ Trainings\/ Workshops und individuellen Coachings von MircoConsult zum Thema Multicore \/Mikrocontroller.<\/p>\n<p><strong>Training &amp; Coaching zu den weiteren Themen unseren Portfolios finden Sie\u00a0<a title=\"Training &amp; Beratung - alle Themen\" href=\"https:\/\/www.microconsult.de\/training-beratung\/\" target=\"_blank\" rel=\"noopener\">hier<\/a>.<\/strong><\/p>\n<hr \/>\n<h2>Multicore &#8211; Fachwissen<\/h2>\n<p>Wertvolles Fachwissen zum Thema Multicore \/Mikrocontroller steht\u00a0<a title=\"Multicore Fachwissen\" href=\"https:\/\/www.microconsult.de\/embedded-multicore\/\" target=\"_blank\" rel=\"noopener\">hier\u00a0<\/a>f\u00fcr Sie zum kostenfreien Download bereit.<\/p>\n<p><a title=\"Multicore Fachwissen\" href=\"https:\/\/www.microconsult.de\/embedded-multicore\/\" target=\"_blank\" rel=\"noopener\"><strong>Zu den Fachinformationen<\/strong><\/a><\/p>\n<p><strong>Fachwissen zu weiteren Themen unseren Portfolios finden Sie <a title=\"Fachinformationen\" href=\"https:\/\/www.microconsult.de\/fachwissen\/\" target=\"_blank\" rel=\"noopener\">hier<\/a>.<\/strong><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Portable MATLAB\u00ae, Simulink und Scilab-Softwareentwicklung Autoren: Timo Stripf, Michael R\u00fcckauer und Oliver Oey, emmtrix Technologies GmbH Beitrag &#8211; Embedded Software Engineering Kongress 2016 Neuste eingebettete Systeme werden zunehmend mit leistungsf\u00e4higen Multicore-Prozessoren sowie FPGA-Beschleunigern ausgestattet. Das ist notwendig, um die immer h\u00f6heren Performanzanforderungen von Anwendungen bei m\u00f6glichst niedrigem Energieverbrauch zu erf\u00fcllen. Die Programmierung solcher heterogenen Multicore-Systeme [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"_et_pb_use_builder":"","_et_pb_old_content":"","_et_gb_content_width":"","inline_featured_image":false,"footnotes":""},"categories":[],"tags":[],"class_list":["post-8006","post","type-post","status-publish","format-standard","hentry"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.9 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Plattform\u00fcbergreifende Software f\u00fcr Multicore &amp; FPGAs - MicroConsult Academy GmbH<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.microconsult.de\/en\/cross-platform-software-for-multicore-fpgas\/\" \/>\n<meta property=\"og:locale\" content=\"en_GB\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Plattform\u00fcbergreifende Software f\u00fcr Multicore &amp; FPGAs - MicroConsult Academy GmbH\" \/>\n<meta property=\"og:description\" content=\"Portable MATLAB\u00ae, Simulink und Scilab-Softwareentwicklung Autoren: Timo Stripf, Michael R\u00fcckauer und Oliver Oey, emmtrix Technologies GmbH Beitrag &#8211; Embedded Software Engineering Kongress 2016 Neuste eingebettete Systeme werden zunehmend mit leistungsf\u00e4higen Multicore-Prozessoren sowie FPGA-Beschleunigern ausgestattet. Das ist notwendig, um die immer h\u00f6heren Performanzanforderungen von Anwendungen bei m\u00f6glichst niedrigem Energieverbrauch zu erf\u00fcllen. Die Programmierung solcher heterogenen Multicore-Systeme [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.microconsult.de\/en\/cross-platform-software-for-multicore-fpgas\/\" \/>\n<meta property=\"og:site_name\" content=\"MicroConsult Academy GmbH\" \/>\n<meta property=\"article:published_time\" content=\"2025-11-29T07:33:21+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2026-02-12T07:56:08+00:00\" \/>\n<meta name=\"author\" content=\"weissblau media\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"weissblau media\" \/>\n\t<meta name=\"twitter:label2\" content=\"Estimated reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"9 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.microconsult.de\\\/plattformuebergreifende-software-fuer-multicore-fpgas\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.microconsult.de\\\/plattformuebergreifende-software-fuer-multicore-fpgas\\\/\"},\"author\":{\"name\":\"weissblau media\",\"@id\":\"https:\\\/\\\/www.microconsult.de\\\/#\\\/schema\\\/person\\\/b6d4c4ae959b068fbe8d9416ed019a0a\"},\"headline\":\"Plattform\u00fcbergreifende Software f\u00fcr Multicore &#038; FPGAs\",\"datePublished\":\"2025-11-29T07:33:21+00:00\",\"dateModified\":\"2026-02-12T07:56:08+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.microconsult.de\\\/plattformuebergreifende-software-fuer-multicore-fpgas\\\/\"},\"wordCount\":1675,\"commentCount\":0,\"inLanguage\":\"en-GB\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/www.microconsult.de\\\/plattformuebergreifende-software-fuer-multicore-fpgas\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.microconsult.de\\\/plattformuebergreifende-software-fuer-multicore-fpgas\\\/\",\"url\":\"https:\\\/\\\/www.microconsult.de\\\/plattformuebergreifende-software-fuer-multicore-fpgas\\\/\",\"name\":\"Plattform\u00fcbergreifende Software f\u00fcr Multicore & FPGAs - MicroConsult Academy GmbH\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.microconsult.de\\\/#website\"},\"datePublished\":\"2025-11-29T07:33:21+00:00\",\"dateModified\":\"2026-02-12T07:56:08+00:00\",\"author\":{\"@id\":\"https:\\\/\\\/www.microconsult.de\\\/#\\\/schema\\\/person\\\/b6d4c4ae959b068fbe8d9416ed019a0a\"},\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.microconsult.de\\\/plattformuebergreifende-software-fuer-multicore-fpgas\\\/#breadcrumb\"},\"inLanguage\":\"en-GB\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.microconsult.de\\\/plattformuebergreifende-software-fuer-multicore-fpgas\\\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.microconsult.de\\\/plattformuebergreifende-software-fuer-multicore-fpgas\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.microconsult.de\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Plattform\u00fcbergreifende Software f\u00fcr Multicore &#038; FPGAs\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.microconsult.de\\\/#website\",\"url\":\"https:\\\/\\\/www.microconsult.de\\\/\",\"name\":\"MicroConsult Academy GmbH\",\"description\":\"Professionelle Schulungen, Beratung und Projektunterst\u00fctzung\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.microconsult.de\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-GB\"},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/www.microconsult.de\\\/#\\\/schema\\\/person\\\/b6d4c4ae959b068fbe8d9416ed019a0a\",\"name\":\"weissblau media\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-GB\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/bbb409da4970da9446f6c49465d453cb8a0dae301e4d4f465b5c4e62408daa2e?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/bbb409da4970da9446f6c49465d453cb8a0dae301e4d4f465b5c4e62408daa2e?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/bbb409da4970da9446f6c49465d453cb8a0dae301e4d4f465b5c4e62408daa2e?s=96&d=mm&r=g\",\"caption\":\"weissblau media\"},\"sameAs\":[\"https:\\\/\\\/www.microconsult.de\"]}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Cross-platform software for multicore &amp; FPGAs - MicroConsult Academy GmbH","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.microconsult.de\/en\/cross-platform-software-for-multicore-fpgas\/","og_locale":"en_GB","og_type":"article","og_title":"Plattform\u00fcbergreifende Software f\u00fcr Multicore & FPGAs - MicroConsult Academy GmbH","og_description":"Portable MATLAB\u00ae, Simulink und Scilab-Softwareentwicklung Autoren: Timo Stripf, Michael R\u00fcckauer und Oliver Oey, emmtrix Technologies GmbH Beitrag &#8211; Embedded Software Engineering Kongress 2016 Neuste eingebettete Systeme werden zunehmend mit leistungsf\u00e4higen Multicore-Prozessoren sowie FPGA-Beschleunigern ausgestattet. Das ist notwendig, um die immer h\u00f6heren Performanzanforderungen von Anwendungen bei m\u00f6glichst niedrigem Energieverbrauch zu erf\u00fcllen. Die Programmierung solcher heterogenen Multicore-Systeme [&hellip;]","og_url":"https:\/\/www.microconsult.de\/en\/cross-platform-software-for-multicore-fpgas\/","og_site_name":"MicroConsult Academy GmbH","article_published_time":"2025-11-29T07:33:21+00:00","article_modified_time":"2026-02-12T07:56:08+00:00","author":"weissblau media","twitter_card":"summary_large_image","twitter_misc":{"Written by":"weissblau media","Estimated reading time":"9 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.microconsult.de\/plattformuebergreifende-software-fuer-multicore-fpgas\/#article","isPartOf":{"@id":"https:\/\/www.microconsult.de\/plattformuebergreifende-software-fuer-multicore-fpgas\/"},"author":{"name":"weissblau media","@id":"https:\/\/www.microconsult.de\/#\/schema\/person\/b6d4c4ae959b068fbe8d9416ed019a0a"},"headline":"Plattform\u00fcbergreifende Software f\u00fcr Multicore &#038; FPGAs","datePublished":"2025-11-29T07:33:21+00:00","dateModified":"2026-02-12T07:56:08+00:00","mainEntityOfPage":{"@id":"https:\/\/www.microconsult.de\/plattformuebergreifende-software-fuer-multicore-fpgas\/"},"wordCount":1675,"commentCount":0,"inLanguage":"en-GB","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.microconsult.de\/plattformuebergreifende-software-fuer-multicore-fpgas\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.microconsult.de\/plattformuebergreifende-software-fuer-multicore-fpgas\/","url":"https:\/\/www.microconsult.de\/plattformuebergreifende-software-fuer-multicore-fpgas\/","name":"Cross-platform software for multicore &amp; FPGAs - MicroConsult Academy GmbH","isPartOf":{"@id":"https:\/\/www.microconsult.de\/#website"},"datePublished":"2025-11-29T07:33:21+00:00","dateModified":"2026-02-12T07:56:08+00:00","author":{"@id":"https:\/\/www.microconsult.de\/#\/schema\/person\/b6d4c4ae959b068fbe8d9416ed019a0a"},"breadcrumb":{"@id":"https:\/\/www.microconsult.de\/plattformuebergreifende-software-fuer-multicore-fpgas\/#breadcrumb"},"inLanguage":"en-GB","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.microconsult.de\/plattformuebergreifende-software-fuer-multicore-fpgas\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.microconsult.de\/plattformuebergreifende-software-fuer-multicore-fpgas\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.microconsult.de\/"},{"@type":"ListItem","position":2,"name":"Plattform\u00fcbergreifende Software f\u00fcr Multicore &#038; FPGAs"}]},{"@type":"WebSite","@id":"https:\/\/www.microconsult.de\/#website","url":"https:\/\/www.microconsult.de\/","name":"MicroConsult Academy GmbH","description":"Professional training, consulting and project support","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.microconsult.de\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-GB"},{"@type":"Person","@id":"https:\/\/www.microconsult.de\/#\/schema\/person\/b6d4c4ae959b068fbe8d9416ed019a0a","name":"weissblau media","image":{"@type":"ImageObject","inLanguage":"en-GB","@id":"https:\/\/secure.gravatar.com\/avatar\/bbb409da4970da9446f6c49465d453cb8a0dae301e4d4f465b5c4e62408daa2e?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/bbb409da4970da9446f6c49465d453cb8a0dae301e4d4f465b5c4e62408daa2e?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/bbb409da4970da9446f6c49465d453cb8a0dae301e4d4f465b5c4e62408daa2e?s=96&d=mm&r=g","caption":"weissblau media"},"sameAs":["https:\/\/www.microconsult.de"]}]}},"post_mailing_queue_ids":[],"_links":{"self":[{"href":"https:\/\/www.microconsult.de\/en\/wp-json\/wp\/v2\/posts\/8006","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.microconsult.de\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.microconsult.de\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.microconsult.de\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.microconsult.de\/en\/wp-json\/wp\/v2\/comments?post=8006"}],"version-history":[{"count":6,"href":"https:\/\/www.microconsult.de\/en\/wp-json\/wp\/v2\/posts\/8006\/revisions"}],"predecessor-version":[{"id":11648,"href":"https:\/\/www.microconsult.de\/en\/wp-json\/wp\/v2\/posts\/8006\/revisions\/11648"}],"wp:attachment":[{"href":"https:\/\/www.microconsult.de\/en\/wp-json\/wp\/v2\/media?parent=8006"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.microconsult.de\/en\/wp-json\/wp\/v2\/categories?post=8006"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.microconsult.de\/en\/wp-json\/wp\/v2\/tags?post=8006"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}