www.mikrocontroller.net

Forum: FPGA, VHDL & Co. Stratix und die komplexen Zahlen


Autor: NN (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich habe eine APP mit diversen Berechnungen in komplexer Zahlenebene, 
die ich mit einem Cyclone FPGA mache. Nun habe ich erfahren, daß der 
Stratix dieses ausdrücklich unterstützt, finde aber bei Altera keine 
INfo, wie man das programmiert, benutzt.

Müsswen da mit dem Wizzard spezielle Instanzen genutzt werden oder macht 
das der Compiler aus dem Code indem er erkennt, daß komplex gerechnet 
wird?

Autor: Thomas Reinemann (Firma: abaxor engineering) (abaxor)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

FPGAs bieten Unterstüzung für die Verarbeitung numerischer Variablen 
durch Bereitstellung von Addierern und Multiplizierern. Ein 
FPGA-Hersteller wird die Universalität seiner FPGAs nicht dahin 
einschränken, in dem er Adder und Multiplizierer fest zu komplexen 
Operationen verdrahtet. Darum ist die Aussage "daß der Stratix dieses 
ausdrücklich unterstützt" falsch. Nun beschäftige ich mich schon 
jahrelang mit FPGAs, wenn auch weniger mit Altera's FPGAs. Trotzdem hat 
mir das Suchwort "complex" auf der Altera Webseite sofort die gewünschte 
Info hinsichtlich komplexer Operationen geliefert.
Ich gehe mal davon aus, dass du das auch gemacht hast. Du kannst mit den 
Infos scheinbar nichts anfangen. Weiterhin schreibst du: "oder macht das 
der Compiler aus dem Code indem er erkennt, daß komplex gerechnet 
wird?".
Beide Fakten sagen mir, dass du von FPGAs absolut keine Ahnung hast. 
Darum empfehle ich dir für die Bearbeitung deines Projekts, sehr viel 
Zeit (Monate) für die Einarbeitung in das FPGA-Design einzuplanen oder 
das Projekt von jemanden machen zu lassen, der sich mit FPGAs auskennt.
Auch wenn viele die Implementierung von Algorithmen auf FPGAs als 
FPGA-Programmierung bezeichnen, hat es mit der klassichen Programmierung 
gar nichts zu tun. VHDL ist auch keine Programmiersprache.

Bye Tom

Autor: Rainer (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Mich interessiert das jetzt auch. Wenn ich die Altera Note richtig lese, 
macht man das am Besten mit dem MEGA Wizzard. Was mir dabei auffiel:

Die Implementieung in konventioneller Form mit 18 Bit braucht bei 
Stratix III und Cyclone III jeweils 4 DSP Blocks. Beim Stratix kommen 
zusätzlich 36 LEs hinzu, beim Cyclone jedoch 180! (Seite 13 
"ALTMUL_COMPLEX").

Autor: Sym (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Die MAC-Einheiten haben (wie bei den meisten FPGA-Herstellern) eine 
Struktur, um Multiplikationen und Additionen günstig miteinander zu 
verbinden. Je nachdem wie diese Multiplizierer und Addierer nun 
verschaltet sind, kann man damit auch komplex Multiplizieren.

Bei Altera kannst du dir im MegaWizzard diverse mathematische 
Operationen bauen lassen, die du dann instanzieren kannst. Da es keine 
standardisierte Libary für komplexe Zahlen gibt, kann Quartus auch keine 
Operator inference machen (=selbsterkennen der notwendigen Struktur). 
Reele Multiplikationen werden aber erkennt und in DSP-Blöcke gemappt. 
Man könnte natürlich Funktionen für komplexe Multiplikationen aus den 
reelen selbst definieren. Inwiefern das sinnvoll zu verwenden ist, 
kannst du dir selbst überlegen, wenn der Multiplizierer mehrere 
Pipelinestufen hat.

Autor: Der Experte (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>wenn der Multiplizierer mehrere Pipelinestufen hat.
So arg viele pipeline Stufen haben die MULs aber garnicht und wenn, 
haben das die ADD-Komponenten auf. Eine simple komplexe Zahl zu 
multiplizieren geht oft mit einen CLK!

>Beim Stratix kommen zusätzlich 36 LEs hinzu, beim Cyclone jedoch 180! (
Der Stratix hat komplexere ( :-) ) LEs.

Autor: Sym (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Sicher kann man in einem Taktzyklus eine komplexe Zahl multiplizieren, 
die mögliche Taktfrequenz ist dann aber recht bescheiden, trotz gleichen 
Ressourcenverbrauchs. Baut man sein Design nun aber so, dass das 
Resultat erst 2 Taktzyklen später benötigt wird, dann kann man die 
Pipelinestruktur voll ausnützen.
Mögliche Überläufe beim Multiplizieren zu erkennen ist wieder ein 
anderes Thema.

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.