Forum: FPGA, VHDL & Co. Schnelle Signalverarbeitung


von Stefan (Gast)


Lesenswert?

Hallo!

Ich bräuchte mal ein paar Denkanstöße zu folgendem Problem:

Bei langsamen ADC (z.B. über SPI angebunden) bekomme ich alle paar Takte 
ein Sample. Bei schnellen ADC (parallel angebunden) läuft das FPGA auf 
dem Sampletakt und man bekommt pro Takt ein Sample.

In diesen beiden Fällen ist die Realisierung z.B. eines FIR-Filters 
überschaubar.

Nun gibt es ja inzwischen superschnelle ADC, die per GigaBit-SERDES 
angebunden werden, wo man nach dem Empfänger pro Takt mehrere Samples 
auf einmal vorliegen hat.

Mir ist an dieser Stelle nicht klar, wie ich damit einen FIR-Filter 
füttern soll, da ja im nächsten Takt schon wieder das nächste Paket mit 
mehreren neuen Werten vorliegt.

Hat da jemand eine Idee, wie man das realisiert?

von Christian R. (supachris)


Lesenswert?

Naja Streaming wird dann schon sportlich. Aber stückweise in einem 
Busmatching Fifo sammeln und dann mit der internen Taktfrequenz weiter 
verarbeiten geht ja auch wenn die Anwendung das zulässt.

von Valko Z. (hydravliska)


Lesenswert?

Oder du baust ein Multiraten System mit mehreren FIRs auf. Hängt 
wirklich von dem Anwendungsfall ab.

von J. S. (engineer) Benutzerseite


Lesenswert?

Stefan schrieb:
> Hat da jemand eine Idee, wie man das realisiert?

Indem man auch die Filter zeitlich parallelisiert, d.h. zwei Zeitebenen 
oder mehr realisiert. Als Beispiel kommen 4 Pixel eines Sensors 
gleichzeitig rein, dann musst Du passend buffern und eine Auslese 
erzeugen, die gleichzeitig 4 Pixel prozessieren kann und dabei gfs pro 
Pixel auf 5x5 Pixel zugreifen kann. Das wäre vollparallel.

Bei einem 1D-Datenstrom, wo eine zeitliche Abfolge inbegriffen ist, wäre 
es z.B. so:  D1,D2  /  D3,D4   /  D5,D6

Dann prozessierst Du einmal FIR (D1 ... D5) und FIR (D2 ... D6) 
parallel.

Interessant ist die "Zwischenzeitebene" bei IIR:

Ich habe das irgendwo hier schon mal genauer erörtert. Man bekommt dann 
das, was man in der umgekehrten Betrachtung bei einer Interpolation 
benötigt. Freilich ist es so, dass das einiges an Architektur zur Folge 
hat, was ordentliche pipeline-Längen erzeugt.

Wenn Neu = IIR (Alt, In)  , dann folgt  Neu = IIR ( IIR ( Alt  , In1) , 
In2).

von Stefan (Gast)


Lesenswert?

Ok, ich seh schon. Man muss das echt anwendungsbezogen betrachten.
Vielen Dank für den Input!

von Meety (Gast)


Lesenswert?

Gibt es zu solchen Spezialthemen Literatur? Ich müsste mich auch damit 
befassen, bin seit knapp zwei Monaten in dem Umfeld HPC tätig. Unser 
Kunde arbeitet mit FPGAs und will Echtzeitsimulation machen.

von Dergute W. (derguteweka)


Lesenswert?

Meety schrieb:
> Gibt es zu solchen Spezialthemen Literatur?

Warum sollte es da keine Literatur geben?
Und hier gibts sogar von denen, die solche Literatur verfassen, dann und 
wann Artikel:

https://www.dsprelated.com/

Gruss
WK

von Weltbester FPGA-Pongo (Gast)


Lesenswert?

Die Jungens dort sind aber eher DPS-lastig und so sehen auch deren 
Lösungen oft aus. Wenn es ums FPGA geht, sehen die Lösungen meistens 
aus, wie gehabt: FPGA + SOPC + Linux + C-Code aus Matlab. Nun ja ...

von Dergute W. (derguteweka)


Lesenswert?

Moin,

Weltbester FPGA-Pongo schrieb im Beitrag #4814425:
> Wenn es ums FPGA geht, sehen die Lösungen meistens
> aus, wie gehabt: FPGA + SOPC + Linux + C-Code aus Matlab. Nun ja ...

Auch eigenartig:
Wenn ich auf der Suche nach Rezepten zur Zubereitung eines Cheeseburgers 
bin, sehen die Loesungen meistens aus, wie gehabt: Broetchen, 
Hackbulette, Scheibe Kaese, Saucen, diverses Gruenzeug. Nun ja ...

Gruss
WK

von Weltbester FPGA-Pongo (Gast)


Lesenswert?

Dergute W. schrieb:
> Wenn ich auf der Suche nach Rezepten zur Zubereitung eines Cheeseburgers
> bin, sehen die Loesungen meistens aus, wie gehabt: Broetchen,
> Hackbulette, Scheibe Kaese, Saucen, diverses Gruenzeug. Nun ja ...

Ich wollte damit nur zum Ausdruck bringen, dass heute überall ohne Not 
und Sinn ein C-basiertes System installiert wird, um dann Dinge zu tun, 
die in VHDL dreimal einfacher gewesen wären und dazu noch schneller.

Hab da auch gerade wieder einen Spezi: NIOS mit Linux auf FPGA, 
Echtzeit-System mit mehreren Datenströmen in Multitaskingbetrieb, um 
letzlich doch nur ein paar duselige IOs "gleichzeitig" zu bedienen. 
Gleichzeitig heisst hier innerhalb weniger Millisekunden Änderungen von 
Eingängen erfassen, reagieren und Ausgänge setzen. Jetzt klemmt es 
irgendwo und sie einen erfahrenen Spezialisten, der das zum Laufen 
bringt, womit die Anfrage doch wieder bei uns auf dem Tisch liegt.

Geplant und realisiert wurde das System von einer promovierten 
Softwareentwicklerin. Das Promotionsthema ist im Internet zu finden und 
befasst sich mit der Optimierung von Datenverarbeitung in 
Echtzeitsystemen. (Den Titel möchte ich aus Rücksicht nicht wörtlich 
posten, weil man die Person sonst auffinden könnte).

von Mark B. (markbrandis)


Lesenswert?

Weltbester FPGA-Pongo schrieb im Beitrag #4834188:
> Geplant und realisiert wurde das System von einer promovierten
> Softwareentwicklerin.

Wer nicht die richtigen Leute holt, wird nicht die richtigen Ergebnisse 
erhalten. Das sollte nun eigentlich niemanden verwundern.

Dass man beim Thema FPGA bzw. Signalverarbeitung ohne Kenntnisse aus der 
Elektrotechnik nicht sehr weit kommt, ist doch an und für sich auch 
jedem klar... ach halt, den Heinis in der Personalabteilung natürlich 
nicht.

: Bearbeitet durch User
von Dampf T. (ouuneii)


Lesenswert?

Promoviert bedeutet gar nichts. Beaufsichtig werden sie von einem Prof, 
der vielleicht mal etwas selbst auf diesem Gebiet machte, was aber schon 
einige Jahre her ist. Dann gibt es auch noch Oberassistenten, die waren 
noch nie in der Industrie, kamen noch nie mit einem komplexen Projekt in 
Beruerung. Also = Greenhorn.

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.