Forum: FPGA, VHDL & Co. STM32 in FPGA


von Bernd G. (Gast)


Lesenswert?

Gibt es zufällig ein Forenmitglied, dass sich mit dem Einbringen eines 
STM32 in einen FPGA auskennt oder gar das bereits gemacht hat?

Ich hatte zuvor wie empfohlen auch die Suche verwendet, die scheint aber 
defekt. Es kommt immmer "interner Fehler".

Wäre nett, wenn sich jemand dazu äußern würde. Es geht um dauerhaften 
Ersatz zur Beschleunigung einer MCU-Einheit.

von Dergute W. (derguteweka)


Lesenswert?

Moin,

Wieso sollte jemand sowas machen wollen?
Das kommt mir vor, wie wenn ich frag', ob man eine ECH81 in ein FPGA 
"einbringen" kann, weil ich einen multiplizierenden Mischer und einen LO 
fuer ein SDR-Projekt benoetige...

scnr,
WK

von Andreas M. (amesser)


Lesenswert?

Was meinst du mit einbringen?

von Wastl (hartundweichware)


Lesenswert?

Andreas M. schrieb:
> Was meinst du mit einbringen?

Er meint wohl dass man einen STM32 schnell mal in einem FPGA
emulieren kann. Ist ja alles open source .....

von Kay-Uwe R. (dfias)


Lesenswert?

Bernd H. schrieb:
> Ersatz zur Beschleunigung einer MCU-Einheit
Die Beschleunigung soll ersetzt werden? Das erkläre mal genauer!
Ansonsten denke ich, dass Soft-Cores eher alles ausbremsen werden. Vlt. 
kommt sowas wie ein Zync-7k infrage?!

: Bearbeitet durch User
von Mampf F. (mampf) Benutzerseite


Lesenswert?

"zur Beschleunigung" 🤔

Cortex-M0 gibt es frei oder auch irgendwelche Risc-V ... Soweit ich mich 
erinnern konnte, kriegt man beide problemlos auf 100MHz. Aber der M0 ist 
halt echt die Sparversion ...

Aber der einzige sinnvolle Weg etwas zu beschleunigen, ist, einen 
schnelleren STM32 zu benutzen.

Die gehen ja bis ein paar Hundert Megaherz (genau weiß ich es nicht 
mehr, "stm32profi" müsste es aber wissen^^) und haben auch noch Sachen 
wie FPU usw eingebaut.

Softcores machen nur Sinn, wenn man ein ganzes SoC im FPGA haben möchte.

: Bearbeitet durch User
von Andreas M. (amesser)


Lesenswert?

Mampf F. schrieb:
> Cortex-M0 gibt es frei oder auch irgendwelche Risc-V ... Soweit ich mich
> erinnern konnte, kriegt man beide problemlos auf 100MHz. Aber der M0 ist
> halt echt die Sparversion ...

Oha, hat ARM da sein Lizenzmodell geändert? Normalerweise müsste man da 
blechen. Aber teure FPGA Gatter für nen Soft-Core verschwenden? Ein CM0+ 
bekomme ich aber auch als Dual-Core mit 120MHz fürn Appl und'n Ei.

Mampf F. schrieb:
> Die gehen ja bis ein paar Hundert Megaherz (genau weiß ich es nicht
> mehr, "stm32profi" müsste es aber wissen^^) und haben auch noch Sachen
> wie FPU usw eingebaut.

Ein STM32H7 hat ne 500MHz CM7 und 240MHz CM4 Das mit einem Soft-Core 
topen zu wollen halte ich für sehr ambitioniert :-) Und wem das nicht 
reicht, es gibt ja nicht nur STM32. Da hätten wir zum Beispiel den RA8D1 
der mit 480 MHz CM85 daher kommt. Oder wie wäre es mit einem NXP i.MX 
RT1170 1GHz CM7 + 400 MHz CM4. Da ist bestimmt was dabei was reicht.

Zugegeben zugespitzt aber: Und wenn das immer noch nicht reicht, dann 
stellt halt nen anständigen Softwareentwickler ein, der löst das Problem 
dann vermutlich mit nem ollen 8 Bitter, weil der eigentliche Fehler ganz 
woanders liegt.

: Bearbeitet durch User
von Motopick (motopick)


Lesenswert?

> Ein CM0+ ... als Dual-Core mit 120MHz fürn Appl und'n Ei.

Was nuetzen die (2x) 120 MHz, wenn das Zwergerl nicht mal in Hardware
32 bit mit weiteren 32 bit zu einem 64 bit Ergebnis multiplizieren kann?

> hat ne 500MHz CM7 und 240MHz CM4
> 1GHz CM7 + 400 MHz CM4

Schnelle DSPs hatte der geneigte Signalverarbeiter schon lange.
Dafuer musste man nun wirklich nicht auf ARM warten.
Dedizierte DSPs sind heute allerdings selten, weil als
Teil des Gesamtkonzeptes in den SoC gewandert.
Sie sind dort auch nicht langsamer geworden.

Und wenn man es schafft, seine Signalverarbeitung zu "parallelisieren",
kann auch ein Einstiegs-FPGA mit < 10k LEs so einen "GHz-Boliden"
leicht an die Wand verarbeiten. Natuerlich nicht mit einem oder
mehreren Soft-Core(s).
Der ist aber immerhin fuer die Initialisierung mancher Peripherie
zumnindest nicht ganz unnuetz.

Grundsaetzlich wird der TO aber sein Konzept ueberdenken muessen.

von Andreas M. (amesser)


Lesenswert?

Motopick schrieb:
> Was nuetzen die (2x) 120 MHz, wenn das Zwergerl nicht mal in Hardware
> 32 bit mit weiteren 32 bit zu einem 64 bit Ergebnis multiplizieren kann?

Stimmt, das ist natürlich eine Funktion die tagtäglich überall gebraucht 
wird.

von Motopick (motopick)


Lesenswert?

> Stimmt, das ist natürlich eine Funktion die tagtäglich überall gebraucht
> wird.

Ja, ebenT. Sogar deutlich oefter als einmal tagtaeglich.
Immerhin haben sie wohl einen Barrelshifter.

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Bernd H. schrieb:
> Gibt es zufällig ein Forenmitglied, dass sich mit dem Einbringen eines
> STM32 in einen FPGA auskennt oder gar das bereits gemacht hat?
Auch wenn die Suche grad kaputt ist: ich kann dir sicher sagen, dass du 
hier der erste bist, der danach fragt.

> mit dem Einbringen eines STM32 in einen FPGA
Das finde ich besonders bei den AD-Wandlern interessant.

> Es geht um dauerhaften Ersatz zur Beschleunigung einer MCU-Einheit.
Bei welcher Arbeit? Von wie schnell auf wie schnell?

Wastl schrieb:
> Er meint wohl dass man einen STM32 schnell mal in einem FPGA
> emulieren kann.
Worauf bezieht sich dieses "schnell"? Ich bin mir zimelich sicher, dass 
die Implementierung weder schnell klappt noch schnell läuft. Und zudem 
wird sie auf er Leiterplatte viel teurer sein und viel mehr Strom 
brauchen.

Andreas M. schrieb:
> Und wenn das immer noch nicht reicht, dann stellt halt nen anständigen
> Softwareentwickler ein
Funktioniert erstaunlich oft. Gerade wenn es um µC geht.

: Bearbeitet durch Moderator
von Wastl (hartundweichware)


Lesenswert?

Lothar M. schrieb:
> Worauf bezieht sich dieses "schnell"?

Deine Frage sagt uns dass du meinen Sarkasmus / meine Ironie
nicht verstanden hast.

Es gibt 32-Bit Cores in FPGAs (siehe Zynq) aber nicht von STM,
jedenfalls nicht so bekannt dass ich welche kennen würde.
Der TO fragte jedoch nach STM32:

Bernd H. schrieb:
> Einbringen eines STM32 in einen FPGA

von Wastl (hartundweichware)


Lesenswert?

Lothar M. schrieb:
> Ich bin mir zimelich sicher

..... dass der TO hier heisse Luft produziert da er sich schon
mal micht mehr meldet. Allein die Fragestellung ist schon
fast ein Freitags-Thema.

von Dergute W. (derguteweka)


Lesenswert?

Moin,

Wastl schrieb:
> Allein die Fragestellung ist schon
> fast ein Freitags-Thema.

Ach. Und an welchem Tag wird die Frage wohl diskutiert? Uebrigens 
koennte ich in meinem SDR-FPGA-Projekt noch AM und FM Demodulator und 
'nen kleinen Vorverstaerker brauchen, also baut mir mal gschwind einer 
eine EABC80 als IP-Core?

scnr,
WK

von Mampf F. (mampf) Benutzerseite


Lesenswert?

Andreas M. schrieb:
> Oha, hat ARM da sein Lizenzmodell geändert?

Schon seit ein paar Jahren - aber glaube nur, wenn man den für Xilinx 
Produkte in Vivado benutzt :)

edit: oh 2018 war das schon.

https://www.elektronikpraxis.de/arm-for-fpga-kostenlose-cortex-m-prozessoren-fuer-xilinx-fpgas-a-762575/

: Bearbeitet durch User
von Andreas M. (amesser)


Lesenswert?

Mampf F. schrieb:
> Schon seit ein paar Jahren - aber glaube nur, wenn man den für Xilinx
> Produkte in Vivado benutzt :)
> edit: oh 2018 war das schon.

Danke für die Info. Die werden doch nicht etwa Angst vor Risc-V bekommen 
haben?

von Klaus R. (klausro)


Lesenswert?

Motopick schrieb:
> Was nuetzen die (2x) 120 MHz, wenn das Zwergerl nicht mal in Hardware
> 32 bit mit weiteren 32 bit zu einem 64 bit Ergebnis multiplizieren kann?

Diese Aussage ist doch ohne Sinn! Wenn ich eine 32x32->64 bit 
Multiplikation in Hardware gieße, diese aber nur mit 1 MHz läuft, ist 
diese deutlich langsamer als eine "Software" Version auf dem M0+, die 
wohl so ca. 26 Taktzyklen braucht
Gugst du: 
https://codereview.stackexchange.com/questions/114393/fast-32x32-bit-multiply-on-arm-m0

von Motopick (motopick)


Lesenswert?

Klaus R. schrieb:
> Motopick schrieb:
>> Was nuetzen die (2x) 120 MHz, wenn das Zwergerl nicht mal in Hardware
>> 32 bit mit weiteren 32 bit zu einem 64 bit Ergebnis multiplizieren kann?
>
> Diese Aussage ist doch ohne Sinn! Wenn ich eine 32x32->64 bit
> Multiplikation in Hardware gieße, diese aber nur mit 1 MHz läuft, ist
> diese deutlich langsamer als eine "Software" Version auf dem M0+, die
> wohl so ca. 26 Taktzyklen braucht
> Gugst du:
> 
https://codereview.stackexchange.com/questions/114393/fast-32x32-bit-multiply-on-arm-m0

Deine Anmerkung ist in diesem Kontext ohne Sinn.

CPUs/Controller die eine signed 32 bit x 32 bit Multiplikation
mit einem 64 bit Ergebnis in einem Takt bewaeltigen, laufen ganz
typisch nicht mit 1 MHz. Die ersten Exemplare die das konnten,
hatten bereits einen 50 MHz Takt. (TMS32C10)
Beim Intel 2920 habe ich jetzt nicht nachgeschaut. Der duerfte
aber auch nicht langsamer sein.
Und ein ARM M3 kann es ja auch in einem Zyklus.

Troedelige 26 Takte sind da eben nur 3. Liga.

Das es obendrein noch "troedeligere" M0 gibt, die auch fuer die
beschraenkte unsigned Multiplikation noch laenger brauche,
findest du ja sicher selbst in dem referenzierten Artikel.

von Klaus R. (klausro)


Lesenswert?

[ ] Du hast meine Aussage verstanden.

Unabhängig davon: Viele spielen gerne in der 3. oder gar 4. Liga und 
sind da genau richtig. Und für manche macht halt nur die Champions 
League Sinn!

: Bearbeitet durch User
von Motopick (motopick)


Lesenswert?

Klaus R. schrieb:
> [ ] Du hast meine Aussage verstanden.

Das tut mir ja leid.

Kern deiner Aussage wie ich sie mir zusammenreime ist:

Ein M0(+) braucht ca. 26 Takte.
Abgeleitet daraus: Bei 120 MHz also ca. 217 ns.
Ein M3, mal als typischer Vertreter ein STM3F103
bei 72 MHz Takt: 14 ns.

Wem das nicht reicht, laesst die Single-Cycle-Multiplizierer
eines FPGA antreten. Ein Max10 10M08 hat davon bereits 24 und
ein 10M50 schon 144. Die sind schon einzeln noch schneller
als so ein STM32F103 und koennten alle parallel zu einem
Ergebnis beitragen. Wenn es das Problem hergibt.

Aber wenn es jemanden gefaellt nur in der Dorfliga zu spielen
dann soll er es tun.

Ich benutze auch M0 und M0+ in Form von z.B STM32F030, STM32L053, ...
Aber eben nicht zur Signalverarbeitung.

von Bernd G. (Gast)


Lesenswert?

Dergute W. schrieb:
> Wieso sollte jemand sowas machen wollen?
Weil es so beschlossen wurde :-)

Andreas M. schrieb:
> Was meinst du mit einbringen?
Hineintun(?)

-> das FPGA soll und wird noch mehr tun und ist ohnehin vorhanden.

Kay-Uwe R. schrieb:
> Die Beschleunigung soll ersetzt werden?
Nein, etwas falsch gelesen:

Der STM soll ZUR Beschleunigung ersetzt werden. Das FPGA kann schneller, 
haben wir gerechnet.

Noch wichtiger: Es können Prozesse, die konkurrieren, auf 2 oder gar 3 
Implementierungen verteilt werden. Dabei können jeweils die nicht 
benötigten Peripherie-Komponenten ausgelassen werden.

von Dergute W. (derguteweka)


Lesenswert?

Moin,

Bernd H. schrieb:
> Dergute W. schrieb:
>> Wieso sollte jemand sowas machen wollen?
> Weil es so beschlossen wurde :-)

Also voellige Schnapsidee. So wie meine ECH81 oder EABC80. Nur: ich 
mein' sowas nicht ernst.
Nehmt ein FPGA was schon ein paar ARM-Kerne ab Werk eingebaut hat.
Oder wollt ihr den CPU Befehlssatz irgendwie selber erweitern? Mit dem 
NIOS von Altera gingen mal so Kunststueckchen. Aber ob's sinnvoll ist?

Gruss
WK

von Mampf F. (mampf) Benutzerseite


Lesenswert?

Bernd H. schrieb:
> Dergute W. schrieb:
>> Wieso sollte jemand sowas machen wollen?
> Weil es so beschlossen wurde :-)

OMG würde ich schnell die Firma wechseln, wenn es Entscheidungsträger 
gibt, die soetwas beschließen 😱

Das muss dann jemand sein, der schonmal gehört hat, dass FPGAs schnell 
sind und sonst keinerlei Ahnung davon hat.

: Bearbeitet durch User
von Bernd G. (Gast)


Lesenswert?

Dergute W. schrieb:
> wollt ihr den CPU Befehlssatz irgendwie selber erweitern?

Nein, wieso?
Es geht um die direkt Einbringung des Cores zu dessen Ersatz! Wo ist das 
Verständnisproblem? FPGA werden doch andauernd genutzt, um digitale 
Logik zu ersetzen und zu kompaktieren.

Mampf F. schrieb:
> OMG würde ich schnell die Firma wechseln,
Wenn man das täte, sobald Entscheider "falsche" Entscheidungen fällen, 
könnte man jede Woche wechseln. Allerdings:

Die Entscheidung kommt nicht wirklich von "uns" sondern vom Kunden und 
ich finde sie auch nicht falsch:

Mampf F. schrieb:
> Das muss dann jemand sein, der schonmal gehört hat,
Es ist jemand der sicherstellen will, dass eine SW passend zu einer 
STM-Version, die einmal voll durchgetestet wurde, immer wieder verbaut 
werden kann, ohne Gefahr zu laufen, dass es den STM nicht mehr gibt, 
weil in 5 Jahren abgekündigt. Dann muss das gesamte Szenario wiederholt 
werden, weil eine neue Version andere bugs haben könnte.

Die Sw muss unverändert laufen und zwar sofort und auch in 15 Jahren. 
Solange ist die Lieferzeitgarantie - ist oliv!

von Klaus (feelfree)


Lesenswert?

Bernd H. schrieb:
> ist oliv

ah, also überall Kompetenz pur, inclusive der des TE.
Keine weiteren Fragen.

von Thorsten S. (thosch)


Lesenswert?

Bernd H. schrieb:
> ist oliv!

OMG!
Wenn unsere Landesverteidigung von Leuten mit derartig abstrusen Ideen 
abhängig ist, dann mal gute Nacht, Marie...

von Mampf F. (mampf) Benutzerseite


Lesenswert?

Bernd H. schrieb:
> Die Sw muss unverändert laufen und zwar sofort und auch in 15 Jahren.
> Solange ist die Lieferzeitgarantie - ist oliv!

Das ist ähm naja eine ganz schöne Herausforderung.

Also den Kunden kann ich schon verstehen ... Aber das ist halt 
wahrscheinlich unmöglich, weil niemand die komplette ganze STM32 
Peripherie in einem FPGA nachgebaut hat.

Damit ist "und zwar sofort" schon überhaupt nicht erfüllbar.

Und Peripherie nachbauen ... Naja ... könnte man schon machen.

Und nach wie vor ist

> es geht um dauerhaften Ersatz zur Beschleunigung einer MCU-Einheit.

totaler Blödsinn, weil schneller wird es ziemlich sicher nicht.

Ansonsten ja, ist nachvollziehbar, was der Kunde möchte. Macht auch 
irgendwie Sinn, aber ist halt so nicht umsetzbar.

Ein guter Weg wäre ein komplett neues SoC aus IP-Komponenten wie 
Cortex-M0 (wenn man auf Hardware-Divider und -Multiplier verzichten 
kann), AXI-Bux, AXI-Peripherie usw zu bauen.

Das läuft dann für immer und in jedem (Xilinx^^) FPGA.

Alternativ gäbe es sowas wie den Vexriscv, mit dem ich sehr gute 
Erfahrungen gemacht hab. Der ist gut erweiterbar und deutlich deutlich 
schneller als der M0. Ist zwar Risc-V, aber dann nimmt man halt einen 
anderen Compiler.

Glaub gabs auch AXI dafür, muss man aber nicht benutzen. Der unterstützt 
ein paar verschiedene simplere Bus-Systeme.

Ist auch ziemlich Herstellerunabhängig ... Läuft auch in einem ice40 
wenn es sein muss.

Peripherie ist halt wieder der Knackpunkt.

: Bearbeitet durch User
von Motopick (motopick)


Lesenswert?

> dann nimmt man halt einen anderen Compiler

Na du hast vielleicht Vorstellungen.
Das muss ein olivgruener ADA-Compiler sein!
Sonst wird das nuex.

von Klaus K. (Gast)


Lesenswert?

Bernd H. schrieb:
> Es ist jemand der sicherstellen will, dass eine SW passend zu einer
> STM-Version, die einmal voll durchgetestet wurde, immer wieder verbaut
> werden kann, ohne Gefahr zu laufen, dass es den STM nicht mehr gibt,
> weil in 5 Jahren abgekündigt. Dann muss das gesamte Szenario wiederholt
> werden, weil eine neue Version andere bugs haben könnte.
>
> Die Sw muss unverändert laufen und zwar sofort und auch in 15 Jahren.
> Solange ist die Lieferzeitgarantie - ist oliv!

Auch FPGA's werden abgekündigt. Oder der Flash für die Config. Und mit 
einen FPGA bekommt man weitere Testszenarien an die Backe - in der 
Luftfahrt bsp. neben DO-178 auch die DO-254.

Die Gängige Methoden sich gegen solche Fälle abzusichern sind
- den Bedarf für die Gesamte serie spätestens beim "Last time buy" 
einzukaufen und sich aufs Lager zu legen
-Strategien für Obsoloszenzenaustausch zu entwickeln, bspw. das Design 
in mehrere Teildesigns/Boards zu partitionieren und diese Teildesigns 
komplett zu qualifizieren. Dann spart man sich den Gesamtumfang des 
Tests.
-ein Upgrade aka Kampfwertsteigerung einzuplanen um dann eine ein neues 
Los/flight zu designen, fertigen und zu liefern (Re-design)

https://www.ihlemann.de/fileadmin/inhalt/presseberichte/pdf/Elektronik_H.14-2015_S.34_Bauteilabkuendigungen.pdf

https://aeroimpulse.de/insights/obsoleszenzmanagement/

von Andreas H. (ahz)


Lesenswert?

Bernd H. schrieb:
> Gibt es zufällig ein Forenmitglied, dass sich mit dem Einbringen eines
> STM32 in einen FPGA auskennt oder gar das bereits gemacht hat?

Wirst Du nicht finden, weil es das nicht gibt, bzw. nicht geben kann.

STM32 ist eine hardwarespezifische Implementierung eines Cortex-M Cores 
plus diverser (auch herstellerspezifischer) Peripherie.
Da ist allein der Technologiewechsel eine Herausforderung, wenn die typ. 
Parameter erhalten werden sollen.

Bernd H. schrieb:
> Es ist jemand der sicherstellen will, dass eine SW passend zu einer
> STM-Version, die einmal voll durchgetestet wurde, immer wieder verbaut
> werden kann, ohne Gefahr zu laufen, dass es den STM nicht mehr gibt,
> weil in 5 Jahren abgekündigt.

Das müsste man aber bei einem Wechsel zum FPGA trotzdem komplett neu 
testen. Da könnte man aber auch direkt ein eigenes IC bauen. Den Core 
und (vermutlich) die meiste Peripherie kann man ja lizensieren.

Bei entsprechenden Stückzahlen kann man aber auch direkt mit STM reden 
und eine entsprechende Verfügbarkeit sicherstellen.

Alles eine Frage der Stückzahlen, bzw. des Preises.

Das einzige was nun wirklich nicht geht ist STM32 --> FPGA. Sry.

/regards

von Andreas M. (amesser)


Lesenswert?

Bernd H. schrieb:
> Es ist jemand der sicherstellen will, dass eine SW passend zu einer
> STM-Version, die einmal voll durchgetestet wurde

Ihr wollt also gar keinen STM sondern irgend einen Softcore mit 
Peripherie. Ihr glaubt doch nicht im Ernst, das ST euch den IP für einen 
STM zur Verfügung stellt. Und selbst wenn, wird der im FPGA nicht 
ansatzweise so schnell laufen wie in Hardware. Davon das die 
Analogfunktionen so garnicht umsetzbar sind sprechen wir besser mal 
nicht.
Scheinen ja so einige Leuchten bei euch zu arbeiten.
Kleiner Tipp: in der Industrie hat man solche Probleme schon längst 
gelöst, 20 Jahre Verfügbarkeit sind da völlig normal.

von Lars R. (lrs)


Lesenswert?

Bernd H. schrieb:
> Die Entscheidung kommt nicht wirklich von "uns" sondern vom Kunden und
> ich finde sie auch nicht falsch:
Ideas are a dime a dozen.


> [Aufwand für erneute SW-Verifikation]
> Die Sw muss unverändert laufen und zwar sofort und auch in 15 Jahren.
Die Idee ist gut, aber dafür ist es spät; Jetzt ist das zu teuer. Das 
nächste Mal vorher an geeignete FPGA-Firma wenden.

> Solange ist die Lieferzeitgarantie - ist oliv!
Trotzdem zu teuer und 15 Jahre ist nicht lang.

von Klaus K. (Gast)


Lesenswert?

>> [Aufwand für erneute SW-Verifikation]
>> Die Sw muss unverändert laufen und zwar sofort und auch in 15 Jahren.
> Die Idee ist gut, aber dafür ist es spät; Jetzt ist das zu teuer. Das
> nächste Mal vorher an geeignete FPGA-Firma wenden.

Oder architekturunabhängige Software einfordern. Und erst mal festlegen, 
was "Software" hier konkret bedeudet. Ich hab da den Eiondruck, der 
Kunde meint mit Software den Quelltext in ADA, während die 
Entwicklerseite auf das STM/ARM-Cortex binäry fixiert ist. Und der 
zertifizierenden Stelle prüft aber gegen die 
Systemspezifikation/-requirements, die in keiner Computersprache 
vorliegt sondern natursprachlich in eine Datenbank gestopft, die da 
DOORS heisst.

Nicht nur Früher sind auch gerne zur Wahrung der Kompabilität Emulatoren 
verwendet worden. Da läuft dann auch die SW unverändert aber eben nicht 
nur die. Siehe bspw. Homecomputer-Soft/Hardware-Emulationen. 
https://de.wikipedia.org/wiki/Amiga-Emulator#UAE

Und wennn nicht ganzer Emulator, dann gestern doch diverse Abstraktion 
layers im System, mit denen hrampfhaft versucht wird, die Veränderungen 
der letzten Jahrzehnte einzukapseln.


>> Solange ist die Lieferzeitgarantie - ist oliv!
> Trotzdem zu teuer und 15 Jahre ist nicht lang.
Grundsatz der Projektentwicklung, es sind drei! Kriterien zu erfüllen, 
nicht nur die Lieferzeit muss stimmen, sondern auch die Qualität und die 
Kosten/Aufwand (in time, in quality, in budget).
 Und wenn die Lieferzeit garantiert ist, dann kann man eben nur 
teil-geprüfte und -entwanzte Pakte schicken. Vielleicht will der Kunde 
genau solche Zeillieferungen/einen Zwischenstand. So was nennt man heute 
"Agile Entwicklung".

von Lars R. (lrs)


Lesenswert?

Klaus K. schrieb:
>>> [Aufwand für erneute SW-Verifikation]
>>> Die Sw muss unverändert laufen und zwar sofort und auch in 15 Jahren.
>> Die Idee ist gut, aber dafür ist es spät; Jetzt ist das zu teuer. Das
>> nächste Mal vorher an geeignete FPGA-Firma wenden.
> Oder architekturunabhängige Software einfordern. Und erst mal festlegen,
> was "Software" hier konkret bedeudet.
TO schaut auf das Binary. Das soll sich nicht ändern.

Regelmäßig hat jemand eine Idee, wie man Aufwände vom eigenen Teller 
herunter schiebt, ohne zu wissen oder berücksichtigen zu wollen, welche 
Aufwände das an anderer Stelle bedeutet. Wenn man es nicht weiß, muss 
man es diskutieren. Manche Ideen funktionieren ja auch.

Bis zur Frage im Internet-Forum hat es gereicht. Vielleicht haben andere 
(MA oder andere Firmen) schon vorher verneint und man wollte das noch 
nicht so recht glauben.

Der angefragte Ansatz ist schon zielführend, wenn man das vorher 
einplant bzw. sich zusammen setzt. Aber hinterher zum FPGA "herunter" 
schieben um die (erneute) Verifikation eines MCU-Projektes komplett zu 
sparen... kopfschüttel.

von Klaus K. (Gast)


Lesenswert?

>> Oder architekturunabhängige Software einfordern. Und erst mal festlegen,
>> was "Software" hier konkret bedeudet.
> TO schaut auf das Binary. Das soll sich nicht ändern.

Dann Emulator/bit-code-Interpreter. Ob dieser bit-code-Interpreter grad 
ein STM Softcore nachbau ist oder ein emulator, der auf einen 
hochgetakteten ARM-Softcore läuft ist Zertifizierungstechnisch gleich. 
Es muss nachgewiesen werden, das die geforderte Funktion 1:1 übertragen 
wurde und das Dreck-/Seiteneffekte nicht die Funktion beeinträchtigen.

> man es diskutieren. Manche Ideen funktionieren ja auch.

Nicht sobald der Leitgedanke/Idee ist, "wir machen es so billig wo 
möglich", das funktioniert nie. Sieht man schön an der 
Entstehungsgeschichte der Avionik-Norm DO-254 - weil den Managern die 
Kosten für die Prüfung der Software-entwicklung nach DO-178 zu teuer 
war, wollten sie das mit "programmierbare Logic" aka Hardware 
realisieren lassen, für die vor Einführung der DO-254 keine strikten 
Nachweiskriterien galten.

> Der angefragte Ansatz ist schon zielführend,
Geographisch gesehen ist auch "ein Abgrund" ein Ziel. Insofern ist die 
"Formulierung "zielführend" ziemlich sinnfrei.

> wenn man das vorher
> einplant bzw. sich zusammen setzt. Aber hinterher zum FPGA "herunter"
> schieben um die (erneute) Verifikation eines MCU-Projektes komplett zu
> sparen

Es ist halt immer der fromme Wunsch, man könnte Sicherheit nachträglich 
in ein Systen "hineintesten", weil man ja Fehler durch den Test findet 
und eliminiert. Und "hinein-getestete" Sicherheit ließe sich irgendwie 
auf ein anderes Systen übertragen.

Dabei hat die Erfahrung gezeigt, das man:
(a) von Anfang ein System auf Sichherheit auslegen muss (bspw. durch 
verringerung der Komplexität (KISS-prinzip) und (struktureller) 
Redundanz) und
(b) einen Entwicklungsprozess aufzieht, der von sich aus sicher und 
nachvollziehbar ist, "design assurance" und
(c) muss die Qualität des Produktes und der Entwicklung mess- und 
nachweisbar sein  - "Quality assurance".

--------------------------------------------------------------

> dass sich mit dem Einbringen eines
> STM32 in einen FPGA auskennt

Da hat mal einer angefangen hier fürs Forum allgemein zu beschreiben wie 
man einen CPU-Core in die Xilinx Toolchain einklinkt: 
https://www.mikrocontroller.net/articles/Xilinx_Microblaze_MCS_Workflow

Allein die Integration des binaries in den config-datastream ist mit 
vielen nicht klar dokumentierten Schritten verbunden, das es für nicht 
durch die GUI vorgesehene Cores langwierig wird. Deshalb ist es IMHO bei 
den mikroblaze als voll unterstützen Core geblieben und die ARM-Softcore 
Ankündigungen trafen auf wenig praktisches Echo. Wenn man sich da 
heranwagt, dann verrichtet man sozusagen Pionierarbeit.

Beitrag "ARM gibt Cortex-M-Prozessoren für Xilinx FPGAs frei"
https://embdev.net/topic/498890

Und dann wäre noch der Schritt vom ARM-Softcore zur STM32 (Peripherals 
übertragen) Nachstellung zu gehen. Wobei aber auch die Frage wäre, warum 
man nicht gleich einen SoC wie den Zynq verwendet. Oder macht man das 
schon, um welchen FPGA-Typ handelt es sich denn hier?

von Lars R. (lrs)


Lesenswert?

Klaus K. schrieb:
>>> Oder architekturunabhängige Software einfordern. Und erst mal festlegen,
>>> was "Software" hier konkret bedeudet.
>> TO schaut auf das Binary. Das soll sich nicht ändern.
>
> Dann Emulator/bit-code-Interpreter. Ob dieser bit-code-Interpreter grad
> ein STM Softcore nachbau ist oder ein emulator, der auf einen
> hochgetakteten ARM-Softcore läuft ist Zertifizierungstechnisch gleich.

Plus Nachweis/Beleg, dass sich "Emulator/bit-code-Interpreter" genauso 
verhält wie Original, mit dem das SW-Binary ursprünglich verifiziert 
wurde.

> Es muss nachgewiesen werden, das die geforderte Funktion 1:1 übertragen
> wurde und das Dreck-/Seiteneffekte nicht die Funktion beeinträchtigen.

Erneute Verifikation der SW wollte man ja gerade vermeiden.


> Allein die Integration des binaries in den config-datastream ist mit
> vielen nicht klar dokumentierten Schritten verbunden
Kein Problem.

von Martin S. (strubi)


Lesenswert?

Moin,

Bernd H. schrieb:
> Gibt es zufällig ein Forenmitglied, dass sich mit dem Einbringen eines
> STM32 in einen FPGA auskennt oder gar das bereits gemacht hat?

Sagen wir so: Ich habe mal einen Cortex-M0-Core auf einem FPGA laufen 
lassen und bin sehr bald auf eine andere Architektur umgestiegen. Hat 
u.a. auch mit dem Interrupt-Handling zu tun.

Um Rechnungen zu beschleunigen, gibt es verschiedene Konzepte, dazu 
musst du etwas mehr Fleisch an den Knochen legen. Die simpelste 
Streaming-Variante basiert auf Bufferqueue mit Scatter-Gather-DMA und 
Packetizer-Engines, die nahtlose Datenverarbeitung mit CPU-Intervention 
wie bei FX3 und Konsorten erlaubt. So werden hier bei mir Datenstroeme 
von FPGA zu Host  durchgepustet.

CPU-Befehle aufbohren ist hingegen gar nicht unterhaltseffektiv, aber 
darauf zielst du wohl auch nicht ab.

Dazu kostenlose Beratung zu bekommen ist allerdings relativ 
unwahrscheinlich und dein Management taete besser daran, dich nicht 
vorzuschicken.

von Bernd G. (Gast)


Lesenswert?

Mampf F. schrieb:
>> Solange ist die Lieferzeitgarantie - ist oliv!
>
> Das ist ähm naja eine ganz schöne Herausforderung.
Das ist mehr oder weniger Standard! Bestimmte Sachen müssen auch mal 10 
Jahre irgendwo liegen, um dann binnen weniger Stunden flott gemacht 
werden zu können. Es muss nur der Treibstoff installiert werden, damit 
es "fliegt".

Andreas M. schrieb:
> Ihr wollt also gar keinen STM sondern irgend einen Softcore mit
> Peripherie.

NNEEIIINN!

Es scheint schwer zu sein, mit dem Lesen. Ich schrieb:
> STM32 in FPGA
Was ist daran so schwer zu verstehen?
Dass es ein Erfordernis wird, etwas einmalig anzupassen und das 
unwirtschaftlich sein könnte, steht außer Frage - ist aber Gegenstand 
des gegenwärtigen Klärungsprozesses. Daher ist zu erruieren, ob es einen 
tauglichen Core gibt und welche Erfahrungen es damit gibt.

Zur Info an die Gemeinde: In einem speziellen Fall haben wir einen als 
eigentlich open Source deklarierten Core direkt vom Entwickler nach 
unseren Vorgaben umbauen lassen und ihn gekauft. Die Version ist dann in 
einen ASIC gegeben worden.

Klaus K. schrieb:
>>> Oder architekturunabhängige Software einfordern. Und erst mal festlegen,
>>> was "Software" hier konkret bedeudet.
>> TO schaut auf das Binary. Das soll sich nicht ändern.

Wieder nein. Die Software, die in den STM geladen wird, darf sich 
natürlich einmal ändern und angepasst werden. Danach muss aber Sense 
sein! Das ist die Forderung. Wenn das Teil einmal steht, soll es stehen, 
damit nicht in 5 Jahren wieder ein anderer Entwickler eine SW anpassen 
muss, weil es einen neuen Prozessor gibt. Die Teile müssen in aus 
heutiger Sicher unbekannter Menge nachproduziert werden können. Daher 
FPGA. Für ASIC sind es wahrscheinlich zu wenige.

von Klaus (feelfree)


Lesenswert?

Bernd H. schrieb:
> Die Teile müssen in aus heutiger Sicher unbekannter Menge nachproduziert
> werden können. Daher FPGA.

Aha. FPGA gibts also mit 15 Jahre Liefergarantie, Controller aber nicht? 
Wieder was gelernt.

von Bernd G. (Gast)


Lesenswert?

Klaus schrieb:
> Aha. FPGA gibts also mit 15 Jahre Liefergarantie, Controller aber nicht?
> Wieder was gelernt.
???

1. FPGAs sind in der Struktur konfigurierbar - Controller nicht.

2. Ein in einem FPGA eingefrorener Controller von 2003 ist in einem FPGA 
2030 noch immer der gleiche, läuft mindestens genau so schnell und hat 
den gleichen Befehlssatz.

3. Mehrere Elektronik-Einheiten unterschiedlicher Controllerfamilien 
lassen sich mit einem FPGA bauen und damit vereinheitlichen. Es ist 
damit möglich, ein bereits etabliertes System, das 2 Controller 
absorbiert hat, so umzuprogrammieren und ohne einen PCB-Neubau 
weiterzunutzen, dass es auch die neue, 3. Elektronik, die von einer 
aufgekauften Firma kommt, absorbiert. Dazu muss nur die STM32-FW die 
dort entwickelt wurde, integriert werden.

4. In einem FPGA lässt sich ein und dasselbe CPU-System mehrfach 
einbauen, um Redundanz zu erzielen.

JETZT! hast du etwas gelernt! Und im Übrigen:

Klaus schrieb:
> FPGA gibts also mit 15 Jahre Liefergarantie,
Ja, Xilinx hat uns für den verwendeten FPGA seinerzeit 20 Jahre Garantie 
gegeben. Davon sind noch fast die Hälfte übrig. Und selbst wenn das FPGA 
einmal getauscht werden müsste, so müsste das nur einmal für alle Serien 
passieren.

von Bernd G. (Gast)


Lesenswert?

Martin S. schrieb:
> CPU-Befehle aufbohren ist hingegen gar nicht unterhaltseffektiv, aber
> darauf zielst du wohl auch nicht ab.

Möglichst nicht. Besagte FA hat aber sehr viel auf STM32-CPUs gemacht 
und mehrere der Einheiten, meistens Steuersysteme sollen nun adaptiert 
werden. Es geht dabei nicht nur um die FW sondern auch das gesamte 
SCstem drum herum, inklusive UNIX-PC und embedded-PC Software, die das 
Protokoll fährt. Das Timing muss da eingehalten werden. Es braucht in 
einem Fall z.B. exakt den Faktor 3, den man mit einem FPGA ausreichender 
Größe und Güte- locker hinbekommt.

Die Alternative ist es, den Code und vieles drum herzum zu portieren. 
Das will aber auch gut überlegt sein, weil das vor 10 Jahren 
schondurchgeackert wurde, als Xilinx die Power PCs abgelöst hatte und 
mit den ARMs in den Zynqs ankam.

Wenn man das als Soft-Core hat, ist es egal, ob AMD demnächst auf die 
Idee kommt, die ARMs durch irgendetwas zu ersetzen ...

Und wie gesagt: Eine Soft-Core CPU in Verilog bekommt mitsamt fest 
eingebautem BIOS-Code binnen weniger Tage von einem ASIC-Hersteller in 
eine simulierbare Netzliste übersetzt und zugeschickt, die dann auf den 
Analog-Libs des Herstellers basierend das gesamte System abbildet und 
komplett durchvalidierbar ist. Damit lässt sich alles Gebaute zielsicher 
rapid in einen neuen ASIC setzen, wenn nötig.

von Klaus (feelfree)


Lesenswert?

Bernd H. schrieb:
> JETZT! hast du etwas gelernt!

Jawohl. Nämlich, dass Du immer noch nicht einmal ansatzweise verstanden 
hast, wie dein Problem sinnvoll lösbar wäre.
Du also mit deiner Aufgabe heillos überfordert bist.

Und wenn ich dann sowas lese,

Bernd H. schrieb:
> 4. In einem FPGA lässt sich ein und dasselbe CPU-System mehrfach
> einbauen, um Redundanz zu erzielen.

dann bin ich mir sicher, dass Du keine Ahnung hast, was Controller 
leisten können, noch dass Du jemals den Begriff Lockstep gehört hast.

Ach und noch etwas habe ich gelernt:
Wenn man einen Softcore in ein FPGA integriert, heißt das in deiner Welt 
wohl
> absorbiert

: Bearbeitet durch User
von Martin S. (strubi)


Lesenswert?

Bernd H. schrieb:
> Möglichst nicht. Besagte FA hat aber sehr viel auf STM32-CPUs gemacht
> und mehrere der Einheiten, meistens Steuersysteme sollen nun adaptiert
> werden. Es geht dabei nicht nur um die FW sondern auch das gesamte
> SCstem drum herum, inklusive UNIX-PC und embedded-PC Software, die das
> Protokoll fährt. Das Timing muss da eingehalten werden. Es braucht in
> einem Fall z.B. exakt den Faktor 3, den man mit einem FPGA ausreichender
> Größe und Güte- locker hinbekommt.
>

Ich habe nun nicht alle Beitraege hier durchgelesen, aber: Wenn eine 
ausreichend automatisierte Testbench des ganzen Systems "in the loop" 
vorliegt, laesst sich das (nach Austausch des CPU-Core) in wenigen Tagen 
zyklengenau verifizieren und Latenzgarantie geben. Wenn das komplexer 
als eine Software-Main-loop wird, oder eure Toolchain das nicht kann, 
steckt typischerweise ein Wurm im Grundgeruest.

Deine Argumente pro FPGA sind absolut nachvollziehbar, aber eine 
Portierung (auf die es so oder so typischerweise hinauslaeuft) wird so 
oder so draus, und dazu sollten die Hausaufgaben bereits gemacht worden 
sein. Wenn Ihr in der Liga spielt, einen ASIC anzuwerfen, solltet Ihr 
auch die Tools haben, um eure timingkritischen Anwendungen in einen 
Coprozessor zu giessen, damit der Rest der SW-Steuerung 
architekturunabhaengig wird (BTDT).

Und damit ist die Frage immer noch offen, was Ihr genau wissen wollt.

von Lars R. (lrs)


Lesenswert?

Bernd H. schrieb:
> Es scheint schwer zu sein, mit dem Lesen. Ich schrieb:
>> STM32 in FPGA
> Was ist daran so schwer zu verstehen?

>>>> was "Software" hier konkret bedeudet.
>>> TO schaut auf das Binary. Das soll sich nicht ändern.
>
> Wieder nein.

Arm Cortex xyz sind CPU-Kerne der Firma Arm. Diese werden verwendet als 
Softcore, Hardmacro und als dedizierte MCU.

STM stellt unter anderem dedizierte MCUs her, unter anderem mit Arm 
Cortex xyz; mit ganz bestimmter, eigener Peripherie um den CPU-Kern 
herum. Deshalb funktioniert beispielsweise ein Binary für einen Arm 
Cortex R52 der Firma STM nicht auf einer MCU mit Arm Cortex R52 der 
Firma NXP.

Bereits seit einigen Beiträgen bestehst Du darauf, dass es ein STM sein 
muss. Ich nahm an, das SW-Projekt soll bereits jetzt nicht wieder 
angefasst werden wegen Aufwänden der Verifikation.

Unklar ist, warum genau es ein STM32 mit seiner STM-Peripherie (welcher 
genau?) sein muss. Wenn die Motivation ist, damit die 
SW-Entwicklungsumgebung exakt genauso beibehalten werden kann, dann ist 
das noch weniger verhältnismäßig.


Martin S. schrieb:
> Ich habe nun nicht alle Beitraege hier durchgelesen, aber: Wenn eine
> ausreichend automatisierte Testbench des ganzen Systems "in the loop"
> vorliegt, laesst sich das (nach Austausch des CPU-Core) in wenigen Tagen
> zyklengenau verifizieren und Latenzgarantie geben.

Wenn es um einen exakten STM-Nachbau mit dennoch ungefähr gleicher 
Leistung geht und ggf. noch Lockstep-Redundanz, dann denke bei 
"zyklengenau" auch an den integrierten Cache, integrierten SRAM und 
integrierten Flash der MCU. Dann ist die BOM schnell beim Faktor 50 bis 
500+ aufgrund des Wechsels von dedizierter MCU auf Softcore im FPGA.

von J. S. (engineer) Benutzerseite


Lesenswert?

Lars R. schrieb:
> und ggf. noch Lockstep-Redundanz,
Eigentlich macht man das ja nicht unbedingt zyklengenau, oder? Im 
Gegenteil: Ich möchte eine Einflussgröße, was auch immer sie ist und 
wirkt, nicht zeitlich auf den selben Bearbeitungsschritt in allen 
Prozess-Einheiten wirken haben. Bei einem jüngst entworfenen System war 
das Bestreben eher, das auseinander zu ziehen und komplementär arbeiten 
zu lassen. Besonders wegen Störungen auf den Übertragungsstrecken.


Inwieweit es bei Prozessorsystemen so oder so gehandhabt wird, weiß ich 
nicht, aber bei FPGAs ziehen wir Redundanz räumlich und auch zeitlich 
auseinander. RAM-Zugriffe z.B.

von Christoph Z. (christophz)


Lesenswert?

Motopick schrieb:
> Das muss ein olivgruener ADA-Compiler sein!

Ja, und?
Gibt es doch schon seit einem Moment auch für Risc-V:
https://www.adacore.com/gnatpro/comparison

Die ersten Risc-V sind auch schon im Weltraum aber erst in kleinen 
Dingen. Die grossen, kritischen Projekte kommen noch dafür muss aber der 
PolarFire-SoC zuerst qualifiziert sein bzw. der Gaisler GR765 fertig 
entwickelt werden.

Bernd H. schrieb:
> 4. In einem FPGA lässt sich ein und dasselbe CPU-System mehrfach
> einbauen, um Redundanz zu erzielen.

Dazu würde ich gerne mal die FMEA sehen.

von Dergute W. (derguteweka)


Lesenswert?

Moin,

Bernd H. schrieb:
> Dergute W. schrieb:
>> wollt ihr den CPU Befehlssatz irgendwie selber erweitern?
>
> Nein, wieso?
"Haett' ja koenn' gesei'", sagt da der Unterfranke.

> Es geht um die direkt Einbringung des Cores zu dessen Ersatz! Wo ist das
> Verständnisproblem? FPGA werden doch andauernd genutzt, um digitale
> Logik zu ersetzen und zu kompaktieren.

Das Verstaendnisproblem ist ganz einfach: Du kommst mit recht knapp 
gehaltenen, aber schon erkennbar wirren Vorstellungen hier an. D.h.: Ich 
weiss dass es eine Schnapsidee ist, aber ob jetzt eher Kirsch-, 
Zwetschge- oder gar Kartoffelbrand war noch nicht klar.
Jetzt, nachdem du dir ein paar weitere Salamischeiben wie zaehe 
Klabusterbeeren aus der Nase hast ziehen lassen, kann man/ich schon 
etwas besser abschaetzen, in welche Geschmacksrichtung diese Schnapsidee 
laufen soll.

Bleibt aber wohl erstmal eine Schnapsidee. Sehe anscheinend auch nicht 
nur ich so...
Sorry for no better news.

Gruss
WK

von Mampf F. (mampf) Benutzerseite


Lesenswert?

Projekt hört sich irgendwie spannend an ... Würde ich hauptberuflich Sw- 
und Hw-Entwicklung machen, würde ich mich da sofort drauf stürzen 🤔

Aber wenn da soviel Geld dahinter ist, dass man sogar ASICs machen kann, 
gibt es bestimmt auch soviel Geld, um STMicro zu motivieren, einen STM32 
nach Wahl für einen FPGA zur Verfügung zu stellen.

Odeer zumindest eine Garantie zu kaufen, dass es genau den speziellen 
STM32 noch 50Jahre gibt^^

Oder STMicro zu motivieren, einen kundenspezifischen ASIC zu 
produzieren, der für immer nachproduziert werden kann.

: Bearbeitet durch User
von Andreas M. (amesser)


Lesenswert?

Mampf F. schrieb:
> Aber wenn da soviel Geld dahinter ist, dass man sogar ASICs machen kann,
> gibt es bestimmt auch soviel Geld,

Einen Design in einen eigenen ASIC zu gießen kostet weniger als man 
glaubt. Da kosten ein paar Schuss mit der Patriot oder Iris-T weitaus 
mehr. Daher sollte das bei oliv kaum eine Rolle spielen.

von Christoph M. (mchris)


Lesenswert?

Mampf F. (mampf) Benutzerseite
>Projekt hört sich irgendwie spannend an ... Würde ich hauptberuflich Sw-
>und Hw-Entwicklung machen, würde ich mich da sofort drauf stürzen 🤔

Ja, ein interessantes Projekt.
Ich aber lehne die Unterstützung von olivgrünen Projekten aus 
moralischen Gründen grundsätzlich ab.

https://www.youtube.com/watch?v=O-2tpwW0kmU

von Lars R. (lrs)


Lesenswert?

Mampf F. schrieb:
> Projekt hört sich irgendwie spannend an ... Würde ich hauptberuflich Sw-
> und Hw-Entwicklung machen, würde ich mich da sofort drauf stürzen 🤔
Wenn etwas nicht passt, dann häufig das Budget. Insofern ist "drauf 
stürzen" relativ.

> Odeer zumindest eine Garantie zu kaufen, dass es genau den speziellen
> STM32 noch 50Jahre gibt^^
Eventuell möchte man das ebenso vermeiden wie das Lagern der ICs, weil 
man die Stückzahlen schwer abschätzen/vorhersehen kann. Daher die Idee 
mit einem Chip, der mit geringem Aufwand und ohne SW-Änderung gegen 
einen anderen getauscht werden kann.

von Εrnst B. (ernst)


Lesenswert?

Lars R. schrieb:
> Eventuell möchte man das ebenso vermeiden wie das Lagern der ICs, weil
> man die Stückzahlen schwer abschätzen/vorhersehen kann.

Wenn das Projekt mit dem FPGA, Redesign, Software-Anpassungen, 
Zertifizierungen usw. nachher 100 Mio mehr kostet, kann man entweder 
sagen: Scheiß drauf, ist eh nur Geld vom Steuerzahler.
Oder man kauft für 1 Mio einen Container voller STM32, stellt den auf 
eine Kaserne, und lässt die nächsten 50 Jahre Soldaten außenherum 
patrouillieren.

Selbst wenn kein einziger der STMs jemals ausfällt, und der Vorrat nie 
gebraucht wurde, ist das noch ein gutes Geschäft.

: Bearbeitet durch User
von Lars R. (lrs)


Lesenswert?

Εrnst B. schrieb:
> [...]

Ganz so ungünstig ist die Relation über mehrere Projekte hinweg 
betrachtet nicht. Im Gegenteil. Auch mit vorausschauender Auswahl einer 
aktuellen MCU wird diese gewählte MCU für manche der zukünftigen 
Projekte nicht geeignet sein.

Das Lagern von Teilen mit hoher garantierter Verfügbarkeit ist für 
extreme Szenarien nicht trivial. Die Teile werden ja nicht in der 
Kaserne gelagert (scherzhaft von Dir gemeint). Firmen können pleite 
gehen und Lagerbestand kann verloren gehen.

Manche Geräte/Komponenten werden extrem lang genutzt, aber man weiß 
nicht, welche von den heute Aktuellen das sein werden. Die 
Ersatzteilkosten werden exorbitant, aber das Redesign rechnet sich 
nicht, weil eins ins andere greift und andere Stellen auch betroffen 
sind.

Für kleine Stückzahlen ist es ein Ansatz, die Kosten einmal an den 
Anfang zu ziehen mittels "Virtualisierung des MCU-Kerns". Die SW wird 
einmal zertifiziert und läuft dann auf verschiedenen ICs (FPGAs) auf den 
Taktzyklus genau so wie ursprünglich zertifiziert. Nur verwendet man 
dafür typischerweise keinen STM32; falls möglich keinen ARM.

Ein anderer Aspekt ist, dass manche Abläufe mit komplett unabhängig 
voneinander laufenden MCUs (nicht Multicore) einfacher verifizierbar 
sind. In einem FPGA kann man mehrere MCUs abbilden und hat auf dem PCB 
nur einen IC mit relativ homogener Struktur.

von Εrnst B. (ernst)


Lesenswert?

Lars R. schrieb:
> Ganz so ungünstig ist die Relation über mehrere Projekte hinweg
> betrachtet nicht.

Bei Neuentwicklungen mag das Sinn machen. Da kannst du dir 1,2,x 
Softcores mit in den FPGA packen, und darauf hoffen/vertrauen dass das 
Ganze in zukünftigen FPGA-Generationen genauso synthetisierbar bleibt.

Aber für eine existierende Applikation ganze STM32, incl. aller Erratas 
und ungenutzter Funktionen, in den FPGA zu verschieben macht halt wenig 
Sinn. Und manövriert dich in eine Sackgasse, willst du wirklich dann die 
ganze zukünftige Weiterentwicklung und Neuentwicklungen auf so einer 
Workaround-Krücke aufsetzen?

von J. S. (engineer) Benutzerseite


Lesenswert?

Christoph M. schrieb:
> Ich aber lehne die Unterstützung von olivgrünen Projekten aus
> moralischen Gründen grundsätzlich ab.

Wir werden OT, aber dazu muss ich eins loswerden:

Deine Haltung in Ehren - und als Berufsanfänger habe ich auch so 
gedacht, habe sie aber inzwischen geändert: Wenn jeder deutsche 
Ingenieur so denken würde, dann würde die Waffentechnik, die die 
Bundeswehr benutzt, nur noch von anderen Ländern entwickelt werden, 
womit diese dann auch die Preise bestimmen, das KnowHow aufbauen und 
langfristig haben, uns weiter abhängen und sogar und entscheiden können, 
was wir bekommen und welche Ausstattung es hat.

Das geht gar nicht! Die Verteidiungstechnik ist die allerletzte Branche, 
bei der man darüber nachdenken darf, sie anderen Ländern zu überlassen! 
Wir machen das bekanntlich schon mit Medizinprodukten und Pharma und 
haben uns z.B. von den Chinesen abhängig gemacht! Je mehr man sich 
freiwillig aus der Knowhowentwicklung herausnimmt, um so mehr macht man 
sich zum Bittsteller. Andere greifen das erfreut auf und springen da 
hinein! Da haben nicht wenige ganz und gar keine moralischen Probleme, 
uns mal zu erpressen und vereinzelt passiert das ja schon! Da lässt ein 
chinesischer Minister offen durchblicken, dass Deutschland zur Kenntnis 
nehmen möge, das man im Lande es Lächelns doch so viele tolle 
Medizinprodukte herstellt , statt sich ständig um Uyguren zu kümmern. So 
sieht es inzwischen aus!

Mit Bezug zum Thema, ist die Softwareentwicklung - auch und vor allem in 
FPGAs - wo es high-tech Signalverarbeitung geht, ein essenzieller Faktor 
in Sachen Selbständigkeit und Unabhängigkeit dieses Landes, denn mit 
Software lässt sich sehr viel anstellen und auch verhindern und es ist 
gut und richtig, hier in eigene Technologien zu investieren, um die 
Zügel in der Hand zu behalten!

Ich rede jetzt nicht über Details, weise aber auf folgende Fakten hin 
und überlasse die letztliche Schlussfolgerung dem Leser:

- Elektronische Systeme kann man generell mit sehr unterschiedlich gut 
ausgebauter Software ausstatten,

- Oszilloskope z.B. können mit gleicher Hardware dank Softwareupdate 
sehr viel mehr. Sie sind z.B. schneller und messen mit mehr Rate und 
erfassen mehr Daten, die eine präzisiere Auswertung erlauben.

- Medizingeräte werden für unterschiedliche Länder mit abweichender SW 
ausgestattet, je nachdem, was dort gefordert ist und man hinliefern 
muss, aber auch, was man da hinliefern möchte!

- Bestimmte Messtechnikprodukte werden z.B. nicht an chinesische 
Hersteller geliefert, auch nicht an "ähnlich orientierte" Staaten in der 
östlichen Region

- Mit einer guten Bildverarbeitung sehen manche Medizingeräte bei 
gleicher MRT-, Laser und Kameratechnik deutlich mehr und besser, sie 
arbeiten und lokalisieren genauer, sie fokussieren schneller und wissen 
früher, wo was ist

Und das Wissen wenden wir jetzt mal bitte auf Laser- und kameragestütze 
Flugobjekte an und Radare an.

Na?

Vielleicht ein Hinweis noch: Im Golfkrieg haben die Amis die Flugzeuge 
der Iraker nur deshalb so leicht vom Himmel geschossen, weil die eigenen 
Radare etwas weiter gucken konnten und die Raketen losgelassen werden 
konnten, bevor die anderen was gesehen hatten und reagieren konnten. Ich 
selbst habe mit exakt diesem Hinweis bereits an Radaren gearbeitet und 
mittels verbesserter SW - ohne irgendeine Änderung an der HW - die 
Reichweite um 20% erhöht. Da machen einige Kilometer und Zehntelsekunden 
sehr viel aus.

Und um noch deutlicher zu werden: Am Ende entscheiden Sensorauflösungen 
in Chips, Beamformingtechniken in der Antenne sowie die 
Signalverarbeitung darüber, ob die russische Rakete in Kiew einschlägt, 
oder ob man sie vorher erwischt!

Solange es Leute gibt, die eigene Soldaten für etwas Prestige- und 
Landgewinn zu opfern bereit sind, in andere Länder einmarschieren und 
uns mit Nuklearraketen drohen, können wir uns hier leider keine so hohen 
Moralmaßstäbe leisten.

von J. S. (engineer) Benutzerseite


Lesenswert?

Lars R. schrieb:
> In einem FPGA kann man mehrere MCUs abbilden und hat auf dem PCB
> nur einen IC mit relativ homogener Struktur.

Ich darf aus NDA-Gründen kein konkretes Beispiel bringen, aber genau das 
wird in der Tat gemacht und man geht noch einen Schritt weiter: Man kann 
Aufgaben auf unterschiedliche CPU-Kerne verteilen und das System passend 
reskalieren, wenn in einem neuen Gerät z.B. 9 statt 7 Einheiten verbaut 
werden, die mit geringerer Rate arbeiten. Statt die 63 Takteinheiten auf 
dem Prozessor laufen zu lassen, steckt man eben 2 mehr hinein und 
arbeitet mit 7/9 der Taktfrequenz. So einen Umbau bekommt man 
kostengünstig nur in einem FPGA hin.

Eine Firma für die ich tätig war, hat dazu sogar eine SW, die 
automatisch die Prozesse verteilt und die Module so zusammenstrickt, 
dass man 6,8 oder 10 Prozessoren damit versorgen kann. Das ganze 
passiert zu Designzeit inklusive der Generation aller SW-Interfaces. Man 
muss sich damit keine Gedanken mehr über die Partitionierung des Systems 
machen, sondern gibt es einfach vor.

Was ich dazu erwähnen kann, ist ein offiziell angebotenes System der 
Firma Sundance, wo es möglich ist, einmal geschriebene Module zwischen 
DSPs und FPGAs hin und herzuschieben, je nachdem, wie das eigene System 
aussieht. Die einen arbeiteten in C, die anderen in VHDL. Die Interfaces 
wurden auch da automatisch generiert.

: Bearbeitet durch User
von Andreas H. (ahz)


Lesenswert?

Jürgen S. schrieb:
> Wir werden OT, aber dazu muss ich eins loswerden:
> [...]

100% signed.

/regards

von Klaus (feelfree)


Lesenswert?

Jürgen S. schrieb:
> Statt die 63 Takteinheiten auf
> dem Prozessor laufen zu lassen, steckt man eben 2 mehr hinein und
> arbeitet mit 7/9 der Taktfrequenz. So einen Umbau

würde niemand machen, der noch ganz bei Sinnen ist.

von J. S. (engineer) Benutzerseite


Lesenswert?

Klaus schrieb:
> würde niemand machen,

Nur der Klärung wegen, die Aussage bezieht sich darauf, dass mit (den 
beispielhaften Zahlen) insgesamt 63 ähnliche Aufgaben parallel zu machen 
sind. Damit erhebt sich die Frage, wie man sie auf wieviele Prozessoren 
verteilt. Denkbar sind ja die ganzzahligen Teiler, wenn man die Proz. 
symmetrisch und damit maximal auslasten will. Die 63 könnte man als 64 
laufen lassen mit z.B. 4 CPUs und 16x PRozess - wenn das zeitlich geht, 
oder auch 8x8.

Wenn die CPU-Last steigt, braucht man z.B. 30% mehr Leistung. Wie 
verteilt man ein bestehendes (z.B.) 5 Prozessor-System?  Die erste 
Antwort lautet 7. Legt man aber zugrunde, dass jeder Prozessor 3 
Hauptprozesse fährt - z.B. 3 Farben berechnet, dann stimmt das nicht 
mehr so einfach, denn 15/7 geht erstens nicht und reicht auch nicht.
Du wirst das System also auf 4x2x2 umbauen, um die 16 zu erzielen. Bei 
Farben liegt man da aber auch daneben.
Du hast also mehrere Randbedingungen und Lösungen.

Wenn man die  Struktur per Script umbauen kann, weil man, wie in FPGAs 
üblich, bei gleicher Wärmelast und Rechenleistung Platz gegen Frequenz 
austauschen kann, hat man einfach mehr Möglichkeiten, als ein neues PCB 
mit getauschten Prozessoren.

Wenn wir hier eine "Dichte" von 7 auf 9 erhöht wird und das 
Gesamtszenario gleich bleibt, setzt man einfach die Rate runter und ist 
fertig. Die Struktur die vorher 63 Aufgaben gepackt hat, wird sie auch 
jetzt wieder packen.  Ist die Struktur von vorn herein dynamisch 
aufgezogen, daß die Einheiten über Interfaces miteinander reden können, 
kann man das auch leicht auf die physische Struktur verteilen und z.B. 
bei einem Wärmeproblem auf weitere CPUs ausbreiten.

Wie gesagt, darf ich kein Beispiel aus der Projekthistorie bringen, 
hatte aber einst so eine Implementierung für Audio-DSP-Einheiten 
entwickelt:
http://www.96khz.org/htm/scalableaudiodsp.htm

Mit immer leistungsfähigeren FPGAs wird das auch immer öfters zum 
Einsatz kommen.

Ob da allerdings STM32 oder SOFT-ARMs zur Anwendung kommen, halte ich 
für fraglich. Eher kleine abgespecte RISC-Einheiten, wo jeweils 
anwendungsspezifisch das nicht benötigte wegsynthetisiert wird.

von Klaus (feelfree)


Lesenswert?

Jürgen S. schrieb:
> Ob da allerdings STM32 oder SOFT-ARMs zur Anwendung kommen, halte ich
> für fraglich

Ich nicht. Niemals werden relativ langsame General-Purpose-CPUs massiv 
parallel eingesetzt, wenn man noch klar bei Verstand ist.

Beitrag #7564219 wurde vom Autor gelöscht.
von Rick D. (rickdangerus)


Lesenswert?

Klaus schrieb:
> Niemals werden relativ langsame General-Purpose-CPUs
Am Ende reicht es, nur die für die jeweilige Aufgabe relevanten Teile 
mit ins FPGA zu packen.

Mich hat am ARM-Cortex-M1 die Größe im FPGA gestört: 
https://developer.arm.com/Processors/Cortex-M1

von Markus F. (mfro)


Lesenswert?

Klaus schrieb:
> Ich nicht. Niemals werden relativ langsame General-Purpose-CPUs massiv
> parallel eingesetzt, wenn man noch klar bei Verstand ist.

Sag' niemals nie: 
https://blogs.oracle.com/developers/post/building-the-worlds-largest-raspberry-pi-cluster

von J. S. (engineer) Benutzerseite


Lesenswert?

Markus F. schrieb:
> Klaus schrieb:
>> Ich nicht. Niemals werden relativ langsame General-Purpose-CPUs massiv
>> parallel eingesetzt, wenn man noch klar bei Verstand ist.
> Sag' niemals nie:

@Klaus: Nicht alles, was du nicht für möglich und machbar hältst, wurde 
von Menschen erdacht, die nicht bei Verstand waren.(?) Es gibt viele 
Lösungen und Gründe für scheinbar ungewöhnliche Ansätze. Im 
industriellen sind es oftmals Sachzwänge - im Privaten einfach Spass an 
der Freude - siehe 8-Bit-Computing.

Ich kann z.B. Beispiele nennen, wo auch kleine MCUs in FPGAs gesteckt 
wurden, um einfach die Schaltung zu verkleinern. Wie gesagt, lässt sich 
damit die Parallelität nutzen, um echtzeitfähig(er) zu werden / bleiben. 
Ob das jeweils auch die beste Lösung war, hatte ich auch jeweils 
hinterfragt :-)

@Markus:

Das sind z.B. solche privaten Lösungen, die natürlich eher 
Repräsentationsgründe haben, sage ich mal. Wir hatten mit der Uni Bochum 
seinerzeit mal ein Projekt mit ähnlichem Ansatz, wo wir einen 
Riesenhaufen UNIX-Rechner vernetzt haben. Das hatte und hat einen realen 
Nutzen, auch wenn es damals, vor 25 Jahren im Wesentlichen aus 
Privatinteresse initiiert wurde, um sich am Unix-Weltrekord zu 
beteiligen, der damals in NRW lief. Über geblieben sind die Leute und 
die Ideen, die auch nach wie vor dort verfolgt werden, was ich so sehe 
und höre.

Ganz konkret zu deinem link:

So ein "Himbeerklumpen" macht natürlich was her, weil die ganze Welt auf 
Raspberry abfährt, ist aber nicht wirklich ein lohnenswerter Ansatz, 
weil die Rechenleistung pro cm3 zu gering ist. Außerdem liefert so ein 
RBP nichts, was ein erwachsener PC nicht auch hat und toppen kann.

Die grundsätzliche Problematik bei der Integration von Soft-CPUs in 
FPGAs besteht halt darin, dass die CPU nur in SW läuft - 
FPGA-spezifische Techniken also nicht nutzen kann. Umgekehrt ist das 
FPGA-Universal-Silizium zu langsam und zu stromfressend, was ein 
Packungsdichteproblem macht. Sobald eine MCU richtig performant arbeiten 
soll, ist sie im FPGA als Softcore einfach zu verschwenderisch.

von Kay-Uwe R. (dfias)


Lesenswert?

Jürgen S. schrieb:
> - Oszilloskope z.B. können mit gleicher Hardware dank Softwareupdate
> sehr viel mehr. Sie sind z.B. schneller und messen mit mehr Rate und
> erfassen mehr Daten, die eine präzisiere Auswertung erlauben.
Sehe ich genau andersherum. Mit der Gängelsoftware in der Basisversion 
und dem vermeintlichen "Upgrade" für die Vollversion bedient man beide 
Marktsegmente mit der gleichen bzw. derselben Hardware. Die Hardware 
bestimmt, was möglich ist, die Software, wie weit dies erreicht wird.
Die "Drosselkom" hatte seinerzeit die Datenrate auf den Telefonleitungen 
gekappt, das GPS erhielt einen Störkubus aufgepfropft. Das sind 
vorsätzliche Maßnahmen, die die Fähigkeit der gegebenen Hardware 
einschränken. Sicher gibt es auch Entwicklungen, die noch nicht 
abgeschlossen sind und man vorab Versionen mit reduziert performanter 
Firmware ausliefert – mit dem Angebot oder zumindest der Aussicht auf 
ein späteres Update.
Wenn ich nur eine CPU oder einen µC im System habe, nutzt es nichts, 
Multiprozessor-fähige Software hochzuladen. Mehr als 100 % geht nun mal 
nicht.
Im vorliegenden Fall sollte man vorerst abschätzen, inwieweit die 
Firmware drosselt und was eine Umsetzung z. B. auf Assemblerebene 
brächte.
Ich selbst entwickle seit den 80ern Hard- und Software für 
Weltraumanwendungen und habe für etliche Instrumente Umsetzungen auf 
Assemblerebene für zeitkritische Prozesse realisiert. Der Gewinn war 
jeweils ordentlich bis beträchtlich. Auch die aktuelle Plattform mit den 
LEON-Prozessoren (übrigens liefen die ersten Space-tauglichen LEONs als 
Soft-Cores in FPGAs, bevor es die ersten, nicht wesentlich schnelleren 
ASICs gab) wird mit den verfügbaren (und zugelassenen) GNU-Compilern 
erheblich gedrosselt. Selbst mit allen verfügbaren Optimierungen erkennt 
der Compiler mögliche Einsparpotenziale nicht. Der Compiler ist extrem 
schlecht im Vergleich mit z. B. Microsofts VS, Keil, IAR und wie sie 
heißen. Es liegen Welten dazwischen, zumindest wenn es "bittig" wird.
Die Qualifizierung ist inzwischen auch recht komplex geworden, aber es 
muss nicht alles Class A oder B sein, wie z. B. Bootloader, denn 
Applikations-SW lässt sich auch per Telecommand hinterherschicken. Bei 
so manchem Projekt hat man so noch viele Jahre Zeit, die SW 
weiterzuentwickeln. (Stimmt nur, solange der Etat das hergibt.)

von Markus F. (mfro)


Lesenswert?

Jürgen S. schrieb:
> So ein "Himbeerklumpen" macht natürlich was her, weil die ganze Welt auf
> Raspberry abfährt, ist aber nicht wirklich ein lohnenswerter Ansatz,
> weil die Rechenleistung pro cm3 zu gering ist. Außerdem liefert so ein
> RBP nichts, was ein erwachsener PC nicht auch hat und toppen kann.

Korrekt. Das ist nicht mehr als ein Spielzeug.

Mittlerweile gibt's das ähnlich aber auch in professionell. Neben den 
ARM Multicore-Ansätzen (die man nicht kaufen kann), die z.B. Amazon oder 
Alibaba bereits in ihren RZs einsetzen, gibt's durchaus auch 256 
ARM-Kerne in 2HE für  jeden: 
https://www.primeline-solutions.com/de/server/nach-prozessor/arm-ampere/

Interessant ist hier nicht die Rechenleistung/cm³ sondern die 
Gesamtenergieeffizienz im Verhältnis zur Rechenleistung (da sieht ARM 
deutlich besser aus als "erwachsene PCs"). Mit den Dingern kann man - 
anders als bei x64 - ganze full height Rackreihen ohne spezielle 
Kühlungs-Klimmzüge betreiben.

von Klaus (feelfree)


Lesenswert?

Markus F. schrieb:
> Klaus schrieb:
>> Ich nicht. Niemals werden relativ langsame General-Purpose-CPUs massiv
>> parallel eingesetzt, wenn man noch klar bei Verstand ist.
>
> Sag' niemals nie:
> 
https://blogs.oracle.com/developers/post/building-the-worlds-largest-raspberry-pi-cluster

Ein Raspi mit 4x Cortex-A72 @1.5GHz ist aber genau keine

>  relativ langsame General-Purpose-CPU

und mit einem Cortex-M* eines STM32 nicht mal im Ansatz zu vergleichen.
Wenn die Rechenleistung des Cortex-M* nicht reicht, wird man halt die 
nächstgrößere/schnellere Version wählen, oder auf Cortex-R* gehen, aber 
doch nicht n schwache Kerne parallel rechnen lassen.

: Bearbeitet durch User
von Bernd G. (Gast)


Lesenswert?

Klaus schrieb:
> Bernd H. schrieb:
>> 4. In einem FPGA lässt sich ein und dasselbe CPU-System mehrfach
>> einbauen, um Redundanz zu erzielen.
>
> dann bin ich mir sicher, dass Du keine Ahnung hast, was Controller
> leisten können, noch dass Du jemals den Begriff Lockstep gehört hast.

Ich bin mir sehr wohl bewusst "was Controller leisten können" und habe 
diverse Mechanismen und Strategien in petto um solchige zu 
synchronisieren und zu parallelisieren.

Es ändert aber nichts an der Tatsache, dass die GEschäftsstrategie so 
ist, wie sie ist und umgesetzt werden muss. Natürlich kann man in dem 
Zusammenhang die Technologiplaner und Systemingenieure kritisieren, 
deren Entscheidungen infragestellen, RASPIS vorschlagen, 
Bundeswehreinsätze diskutieren und sonst allen Quatsch dahertratschen, 
wie es einige hier tun ...

geht aber alles an der Fragestellung vorbei!

Die Fragestellung lautete, ob es hier jemanden gibt, der das zufällig 
schon durchgeführt hat oder nicht.

Die Frage lautete nicht, wer alles eine Meinung hat zu den hier nun 
abseits diskutierten Fragestellungen.

von Klaus (feelfree)


Lesenswert?

Bernd H. schrieb:
> Die Fragestellung lautete, ob es hier jemanden gibt, der das zufällig
> schon durchgeführt hat oder nicht.
>
> Die Frage lautete nicht, wer alles eine Meinung hat zu den hier nun
> abseits diskutierten Fragestellungen.

Wenn Du nur Antworten haben willst, die dir genehm sind, dann bist Du 
hier falsch.

Die Antowrt auf die erste Frage wurde indirekt schon zig mal 
beantwortet. Natürlich hat das noch nie jemand gemacht und auch Du wirst 
das nie machen (können).

: Bearbeitet durch User
von Lars R. (lrs)


Lesenswert?

Bernd H. schrieb:
> Es ändert aber nichts an der Tatsache, dass die GEschäftsstrategie so
> ist, wie sie ist und umgesetzt werden muss. Natürlich kann man in dem
> Zusammenhang die Technologiplaner und Systemingenieure kritisieren,
> deren Entscheidungen infragestellen
Dem Anschein nach bist Du verantwortlich. Demnach wäre genau das Dein 
Job (leider lose-lose-Situation). Oder versuchen, nachzuverhandeln.

> geht aber alles an der Fragestellung vorbei!
In anderen Foren stört mich das weit verbreitete Verhalten (auch) sehr, 
dass alles mögliche geschrieben und vorgeschlagen wird, nur keine 
konkrete Antwort auf die gestellte Frage.

In diesem Fall hast Du jedoch, wie bereits angemerkt, die Antwort auf 
exakt Deine Frage schon lang bekommen, und zwar mehrfach.

Die weitere Diskussion drehte sich um Aspekte, wie man Dein Anliegen 
dennoch prinzipiell umsetzen könnte mit etwas anderen Anforderungen. Das 
waren viele konstruktive Beiträge. Ohne weiteren Input von Dir läuft das 
in alle möglichen Richtungen und ohne weiteren Input von Dir bleibt es 
bezüglich Deiner ursprünglichen Frage bei der ursprünglichen Antwort.

Wenn Du nur eine einzelne Person suchst für eine ganz bestimmte Aufgabe, 
dann ist das passende Instrument eine Stellenausschreibung.

von Bernd G. (Gast)


Lesenswert?

Klaus schrieb:
> Die Antowrt auf die erste Frage wurde indirekt schon zig mal
> beantwortet.

Bedingt! Ich habe niemanden sagen hören "ja, habe ich" . Ich habe nur 
Beiträge von Personen gelesen, die keine Erfahrung haben, aber viel ins 
Blaue hinein interpretiert haben.

von Klaus (feelfree)


Lesenswert?

Bernd H. schrieb:
> Ich habe niemanden sagen hören "ja, habe ich" .

Zumindest diesen Part hast du zu 100% richtig verstanden.

von Morty S. (Gast)


Lesenswert?

>  Ich habe nur
> Beiträge von Personen gelesen, die keine Erfahrung haben, aber viel ins
> Blaue hinein interpretiert haben.

Naja, dieses Unterforum ist eines der wenigen in der überwiegend 
Personen mit langjähriger Erfahrung (als Entwickler) schreiben, die 
Person mit wenig praktischer Erfahrung ist meist allein der TO.

Da der TO hauptsächlich mit "sloganhaften Allgemeinplätzen" wie "FPGA 
werden doch andauernd genutzt, um digitale Logik zu ersetzen und zu 
kompaktieren." argumentiert, drängt sich die Einschätzung auf, da er das 
Problem aus Sicht eines Projektmanager betrachtet, der lediglich auf die 
Allokation von Fachkräften im Entwicklungsprozess fokussiert ist, ohne 
deren Tätigkeit und spezifischen Probleme überhaupt zu kennen.

Äußerst bedenklich, besonders im Bereich sicherheitskritischer Systeme, 
klingt eine Argumentation wie:

"Die Alternative ist es, den Code und vieles drum herzum zu portieren.
Das will aber auch gut überlegt sein, weil das vor 10 Jahren
schondurchgeackert wurde, als Xilinx die Power PCs abgelöst hatte und
mit den ARMs in den Zynqs ankam."

Das liest sich wie die Rechtfertigung des billigen "Code-klau" um das 
"Invest" von vor 10+ Jahren unge-testet, un-verifiziert und un-validiert 
auf grundsätzlich andere Hardware "retten" zu können. Also einfach auf 
Kosten der Qualität/Sicherheit billig weitermachen wie in den letzten 
Jahren. Typische Projektmanager-denke,
jedenfalls bei denen, die eben vorher nicht 20 Jahre lang (gute) 
Entwickler waren, bevor sie "Manager" wurden.

von Klaus (feelfree)


Lesenswert?

Morty S. schrieb:
> drängt sich die Einschätzung auf, da er das
> Problem aus Sicht eines Projektmanager betrachtet, der lediglich auf die
> Allokation von Fachkräften im Entwicklungsprozess fokussiert ist, ohne
> deren Tätigkeit und spezifischen Probleme überhaupt zu kennen.

So betrachtet ergeben sowohl die initiale Fragestellung als auch das 
Nicht-Verständnis sämtlicher Antworten ob der Sinnlosigkeit des 
Vorhabens plötzlich einen Sinn.

Zum Glück arbeite ich in einer Firma, in der die Projektmanager auf das 
Urteilsvermögen und das Know-How ihrer eigenen Entwickler vertrauen, 
anstatt ohne Ahnung inm nächstbesten Forum nachzufragen.

von Dergute W. (derguteweka)


Lesenswert?

Moin,

Bernd H. schrieb:
> Bedingt! Ich habe niemanden sagen hören "ja, habe ich" .

Das deckt sich sicher mit Erfahrungen, die man in einem Chirurgenforum 
machen kann, wenn man dort anfragt: "Ich will mir ein Loch ins Knie 
bohren und Milch hineingiessen, hat das schon mal jemand gemacht?"

Was willst du, selbst als alter "Schlachtross"-Chirurg, der durchaus 
schon Loecher in Kniee gebohrt hat, auf sowas antworten?

scnr,
WK

von Lars R. (lrs)


Lesenswert?

Morty S. schrieb:
> "Invest" von vor 10+ Jahren unge-testet, un-verifiziert und un-validiert
> auf grundsätzlich andere Hardware "retten" zu können. Also einfach auf
> Kosten der Qualität/Sicherheit billig weitermachen

Nicht ganz. Die Frage ist, wie erzielt man am Besten eine 
Langzeitverfügbarkeit unter diversen Bedingungen (safety, zertifizierte 
Compiler, usw)? Firmen nutzen dafür verschiedene Konzepte. Manche davon 
wurden hier angesprochen.

Gern würde ich mehr mit Softcores (nicht STM32) machen. Aber andere 
Maßnahmen sind auch für MIL/Aero sehr effizient.

Dazu kommt: MCU-Entwicklung bleibt nicht stehen. Automotive-MCU mit 10 
Kernen und 20MByte SRAM kostet 130 EUR.

von Bernd G. (Gast)


Lesenswert?

Morty S. schrieb:
> Naja,

... sehr viel Philosphie und Mutmaßung. Wahnsinn, was in machen Köpfen 
so abgeht.

Auch das hier passt dazu:

Klaus schrieb:
> ob der Sinnlosigkeit des Vorhabens plötzlich einen Sinn.

Nein, der Sinn ist, eine bereits vollständig durchvalidierte, getestete 
und in den Produkten laufende Software möglichst unverändert 
konservieren zu können, indem man eine HW baut, die das leistet.

Ein Grund ist eben der Portierungsaufwand. Da steckt nicht nur 
Validierung dahinter, sondern auch die Nutzung zertifizierter Libraries 
von Zulieferern. Das muss auch alles wieder eingephast werden.

von Klaus (feelfree)


Lesenswert?

Bernd H. schrieb:
> Nein, der Sinn ist, eine bereits vollständig durchvalidierte, getestete
> und in den Produkten laufende Software möglichst unverändert
> konservieren zu können, indem man eine HW baut, die das leistet.

Das haben wir schon verstanden.
Ist ja dann egal, dass die Entwicklung der Hardware, die das leistet, 
eine zigfaches kostet und die SW trotzdem neu validiert werden muss, 
weil sie ja auf anderer Hardware läuft.

von Bernd G. (Gast)


Lesenswert?

Klaus schrieb:
> Ist ja dann egal, dass die Entwicklung der Hardware, die das leistet,
> eine zigfaches kostet und die SW trotzdem neu validiert werden muss,
> weil sie ja auf anderer Hardware läuft.

wieso sollte das mehr kosten, als einen neuen Prozessor einzubauen? ??
Und sie muss eben nicht neu validiert werden. Sie muss nur getestet 
werden. Und das einmal.

von Klaus (feelfree)


Lesenswert?

Bernd schrieb:

> wieso sollte das mehr kosten, als einen neuen Prozessor einzubauen? ??

Weil es keinen STM32 in einem FPGA gibt und ST da auch keinen portieren 
wird, ganz abgesehen von analoger Peripherie, die sich sowieo kaum 
sinnvoll abbilden lässt.

Darüber hinaus:

> Es geht um dauerhaften
> Ersatz zur Beschleunigung einer MCU-Einheit.

Ein Softcore in einem FPGA wird niemals schneller sein als ein 
dedizierter Controller, sondern ganz im Gegenteil.

Wurde in diesem Thread alles schon zigfach bemerkt, und alle haben's 
verstanden, nur einer nicht.
Aber wenn Du dich hier trotzdem weiter ins Knie bohren willst - es hält 
dich keiner ab.

: Bearbeitet durch User
von Klaus (feelfree)


Lesenswert?

Bernd schrieb:
> der Sinn ist, eine bereits vollständig durchvalidierte, getestete
> und in den Produkten laufende Software möglichst unverändert
> konservieren zu können, indem man eine HW baut, die das leistet.

Und für diese Hardware nimmt man dann Komponenten, die dazu geeignet 
sind. Zum Beispiel einen Controller, dessen Lieferbarkeit seitens des 
Herstellers garantiert wird. Eigentlich ganz einfach.

: Bearbeitet durch User
von Lars R. (lrs)


Lesenswert?

Bernd schrieb:
> Klaus schrieb:
>> Ist ja dann egal, dass die Entwicklung der Hardware, die das leistet,
>> eine zigfaches kostet und die SW trotzdem neu validiert werden muss,
>> weil sie ja auf anderer Hardware läuft.
>
> wieso sollte das mehr kosten, als einen neuen Prozessor einzubauen? ??

Weil der "neue Prozessor", bzw. der Nachbau ebenfalls zu zertifizieren 
ist. So etwas wird nicht her verschenkt.

Weil Du nicht nur einen "neuen Prozessor" auf der FPGA-Architektur 
zertifizieren musst, sondern sogar, dass sich der "neue Prozessor" exakt 
genau so verhält, wie der Bisherige. SW und Libaries sind für den 
Bisherigen zertifiziert und nicht für einen Nachbau, der sich nur in 
99.99% der Fälle genauso verhält wie das Original. Man denke nur an 
Bus-Multiplexer, mehrere Busmaster/DMA, CDCs, IRQs, IOs, 
unterschiedliche Taktfrequenzen. Ursprünglich wurde das Projekt ja nicht 
auf eine saubere Trennung ausgelegt.

Weil Peripherie, die zur Laufzeit konfigurierbar ist (MCU), wesentlich 
aufwendiger ist als Peripherie, die zur Designzeit konfiguriert wird 
(typisches FPGA-Projekt).

Weil die Zertifizierung konfigurierbarer Peripherie noch einmal eine 
andere Dimension hat. Deshalb gibt es Zertifizierung auch nicht für jede 
MCU oder für jede MCU-Peripherie-Komponente.

Weil bis heute on-chip SRAM und on-chip Flash in den Größenordnungen, 
die MCUs mitbringen, in FPGAs Mangelware sind.

Weil analoge Peripherie, wie von anderen erwähnt.

Übrigens haben wir nicht nur langjährige Entwickler im Unterforum, 
sondern auch einige, die offensichtlich mehrfach Projektverantwortung 
übernommen haben.

> Und sie muss eben nicht neu validiert werden. Sie muss nur getestet
> werden. Und das einmal.

Ich interpretiere ins Blaue hinein: Wenn die 
CPU-Performance-Anforderungen überschaubar und die 
Zertifizierungsaufwände wirklich! hoch sind, dann empfehle ich für Deine 
Zielsetzung, das SW-Projekt ganz wegzulassen (ernst gemeint). Was nicht 
da ist, das macht keinen Stress.

von Morty S. (Gast)


Lesenswert?

Bernd schrieb:



> Und sie muss eben nicht neu validiert werden. Sie muss nur getestet
> werden. Und das einmal.

"Test" ist eine Worthülse, was hier nachgewiesen werden muss ist 
Äquivalenz. Und das nicht erst wenn die Geschäftsführung nachfragt, 
sondern als "proof of concept" sollte schon der Ideengeber das von sich 
aus vorführbar haben.

Also, wie sieht die Umgebung für die Überprüfung des gleichen Verhaltens 
zwischen der "diskreten" und der FPGA-Integrierten Lösung aus?:
Die Pins der µC-Variante auf freie Pins des FPGA it Fädeldraht gelegt 
und dort einen Vergleicher laufen lassen, der Abweichungen mit 
Zeitstempel an einen Steuerrechner schiebt?

Welche Testcases und wieviele müssen für einen Äquivalenzcheck 
aufgestellt werden?

Oder genügt die Abarbeitung eines "klassischer" Verifikationsplan wie 
aus der funktionalen Verifikation bekannt?

Bei Soft-Cores ist Simulation mandatory, eine Daumenregel besagt ca. 1 
Test-Case in der Simulation pro 10 Zeilen VHDL/Verilog-Code. Wer stellt 
diese cases auf, wer programmiert die Simulation/Verification? Hat unter 
den "Betroffenen" einer Erfahrung mit OSVVM?

Und wie gedenkt man mit den Parametern umzugehen, bei denen man keine 
Equivalence zwischen den diskreten und dem integrierten Controller 
nachweisen kann? :

* Das wäre neben dem Stromverbrauch das Gehäuse. Im angesprochenen 
Bereich der defence-Elektronik wird gern das Gehäuse pass genau auf die 
elektronik gefräst, das wäre dann auch neu zu gestalten.

* Die Zeit zwischen PowerUp und "system ready" ist bei FPGA's oft ein 
mehrfaches gegenüber einer diskreten Lösung. Klar kann man da Zeit mit 
einen "strafferen" Boot-Code sparen, aber der Code soll ja nicht 
verändert werden.

* Signal integrity ist auch eine Kategorien in der es eigentlich immer 
Unterschiede zwischen FPGA- und Controller-GPIO's gibt. Das fängt schon 
bei Logik-pegeln an, moderne FPGA's unterstützen gerne schon alles über 
2V5 nur über Levelshifter, während bei STM32 auch 5V tolerante IO zu 
finden sind.
Aufmerksamkeit sollte man da besonders dem IRQ-Eingang widmen, da blockt 
ein diskreter Controller schon wegen seinem "trägen" Siliziums kurze 
Stör-Nadel-Impulse ab, die ein ohne besondere Spezifikation 
programmierter FPGA-Interruptcontroller passieren lässt ...





* 
https://www.design-reuse.com/articles/51622/understanding-logic-equivalence-check-lec-flow-and-its-challenges-and-proposed-solution.html
* 
https://www.design-reuse.com/articles/36332/pitfalls-for-logical-equivalence-check.html
* https://www.synopsys.com/glossary/what-is-equivalence-checking.html

https://www.doulos.com/knowhow/vhdl/the-open-source-vhdl-verification-methodology-osvvm/

von Klaus (feelfree)


Lesenswert?

Morty S. schrieb:
> [ganz viel]

Theorie, weil niemals ein STM32 in ein FPGA portiert werden wird, und 
sich dann auch noch nur grob ähnlich verhalten wird wie sein reales 
uC-Vorbild.

von Morty S. (Gast)


Lesenswert?

> Morty S. schrieb:
>> [ganz viel]
>
> Theorie, weil niemals ein STM32 in ein FPGA portiert werden wird,

Nix Theorie und auch nix STM32 spezifisches. Wer sich einen Überblick 
über die ganz praktischen Probleme bei der Portierung von diskreter 
Logic (Prozessor, Custom-Chips) vertraut machen will, beteiligt sich an 
Retrocomputing-projekten wie

* Minimig https://www.minimig.ca/
* 
https://www.computerbase.de/forum/threads/der-mister-das-groesste-fpga-retro-projekt-derzeit.2045949/

* 
https://www.heise.de/news/Retro-Computing-6502-mit-100-MHz-6223820.html

> ... sehr viel Philosphie und Mutmaßung.

Nö, jahrelange Erfahrung

> Wahnsinn, was in machen Köpfen
> so abgeht.

Eben, wie wärs wenn du endlich mal selbst und tatkräftig Dein Projekt 
realisierst anstatt weiterhin darauf zu warten, das Dir eine fertige 
Lösung mit Schleife drum unter den Weihnachtsbaum geschoben wird?!

Wenn man mal hemdsärmlig pro Beitrag  0.1h und einen Stundensatz für 
einen embedded Entwikler v. 100€/h ansetzt, sind dem TO hier Tipps im 
Gegenwert von ca. 800€ geschenkt wurden.

Mach was draus, genügend Starthilfe um Dir selbst zu helfen haste ja 
hier, durch dein Studium und deine Berufspraxis genug bekommen.

Oder ist der TO bereits ein Opfer des Peter-Prinzips geworden ?!!

https://de.wikipedia.org/wiki/Peter-Prinzip

von J. S. (engineer) Benutzerseite


Lesenswert?

Kay-Uwe R. schrieb:
> Sie sind z.B. schneller und messen mit mehr Rate und
>> erfassen mehr Daten, die eine präzisiere Auswertung erlauben.
> Sehe ich genau andersherum. Mit der Gängelsoftware in der Basisversion
> und dem vermeintlichen "Upgrade" für die Vollversion bedient man beide
> Marktsegmente mit der gleichen bzw. derselben Hardware.

Du siehst das Thema damit aber nicht "anders", sondern nur von der 
anderen Seite :-)

Ja, die Oszilloskope-Software-Strategie hat auch die Komponente, des 
vorab aufgespielten downgrades aber um die ging es mir nicht. Man kann 
durchaus mit SV aus Messtechnik mehr rausholen und es gibt auch 
Beispiele im OSC-Bereich, wo die HW gehackt und verbessert wurde, nebst 
dem Umstand, dass die Entwickler das selber nochmal besser hinbekommen, 
wenn sie die Zeit bekommen :-)

Gerade in Sachen Offset- und Temperaturdrift und deren Kompensation in 
SW kann man viel machen.

von Bernd G. (Gast)


Lesenswert?

Morty S. schrieb:
> Welche Testcases und wieviele müssen für einen Äquivalenzcheck
> aufgestellt werden?

DAs ist eben alles schon da , weil für die CPU-Version gemacht. Eines 
der vielen Pakete, die man übernehmen könnte.

von Klaus (feelfree)


Lesenswert?

Bernd schrieb:
> DAs ist eben alles schon da , weil für die CPU-Version gemacht. Eines
> der vielen Pakete, die man übernehmen könnte.

Also für eine CPU-Version gemacht, die es gar nicht gibt und die es auch 
nie geben wird. Du hast echt viel verstanden und dazugelernt im letzten 
Monat. Nicht.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.