www.mikrocontroller.net

Forum: FPGA, VHDL & Co. Korrelator in VHDL


Autor: Hi (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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?

Autor: Ben (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: SeriousSam (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Pro Takt kommt aber wohl nur ein Wert. Dann speicherst du eben hundert 
Resultate von Multiplikationen, resp. hundert Zwischenresultate.

Autor: Gast (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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...

Autor: Ben (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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 ?

Autor: dert (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Hi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Die Daten werden mit 52 MHz eingelesen und sind 12 Bit breit. Den 
Korrelator möchte ich in einem Altera Stratix II FPGA verwenden.

Autor: Ben (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
was wird denn 'korreliert' ?

Autor: dert (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Na der EP2S60 hat 144 Multis (18bitx18bit), dann wäre das ja kein 
Problem.

Autor: Gast (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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).

Autor: dert (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [vhdl]VHDL-Code[/vhdl]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.