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?
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
Pro Takt kommt aber wohl nur ein Wert. Dann speicherst du eben hundert Resultate von Multiplikationen, resp. hundert Zwischenresultate.
Kommt auf das Signal drauf an, für 1-bit Daten kannst auch 1000 Multiplikatoren bauen, die sind recht günstig. Double precision floats sind ungleich teurer...
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 ?
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.
Die Daten werden mit 52 MHz eingelesen und sind 12 Bit breit. Den Korrelator möchte ich in einem Altera Stratix II FPGA verwenden.
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).
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.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.