Korrelator in VHDL

Gast #1018146
Lesenswert?

Hallo,

ich habe ein bekanntes Signal das ich mit einem empfangenen Signal 
korrelieren möchte. Wenn es möglich ist sollte der Korrelationswert 
jeden Takt ausgegeben werden. Mein Problem ist nun, wenn ich 
beispielsweise annehme, dass das bekannte Signal aus 100 Werten besteht, 
dann brauche ich ja 100 parallele Multiplizierer. Wie kann man sowas in 
VHDL realisieren (synthetisierbar)?
Hat jemand ein Beispiel oder einen Tipp?
Gast #1018213
Lesenswert?

Die 100 Eingangsdaten mit einer Frequenz X_CLK in einem FIFO (doppelt so 
tief wie der zu verabeitende Datensatz) zwischenpuffern und 
anschliessend (wenn FIFO half-full) mit einem 10-Kanal Korrelator (der 
jetzt natürlich mit 10*X_CLK arbeitet) die Daten prozessieren.
Gruss,Ben
Gast #1018262
Lesenswert?

Falls es sich um ein 1-bit breites Signal handelt, kannst du deine 
Multiplier durch AND-Gates ersetzen und den nachfolgenden 
Kanalakkumulator durch einen Zähler.
Wie mein Vorredner schon bemerkte, ist die Art des Eingangssignals (und 
somit seine Darstellung) nicht ganz unwichtig. Wo soll die Geschichte 
den eingesetzt werden ?
Gast #1018266
Lesenswert?

Such dir einen FPGA mit ausreichend vielen Multiplizierern, z.B.
XC5VSX35T mit 192 Multiplizierern oder XC3SD3400A mit 126 Multis.

Der XC5VSX240T hat übrigens über 1000 Multis, das ist heutzutage kein 
Prob mehr.

Wie breit sind den Deine Faktoren? bei kurzen Faktoren kannst du zwei 
Multiplikationen im selben Takt mit einem Multi rechnen.
Gast #1018695
Lesenswert?

Das ist aber eine ordentliche Reousrceverschwendung. Ich würde 
ersteinmal profen, ob ich das nicht zyklisch mit multiplexten MULs 
machen kann: Bei 52MHz ginge ja wenigstens mal Faktor 3 auf einem 
Stratix (156MHz).
Gast #1019474
Lesenswert?

NunJa, unbenutzt verbleibende Multis sind auch Verschwendung.

3 als faktor ist ein wenig krumm und da der nächstkleinere Stratix 
EP2S30 schon 64 Multis mitbringt, sollte Takt-Verdopplung wenn überhaupt 
ausreichen.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren