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


von NN (Gast)


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?

von Thomas R. (Firma: abaxor engineering) (abaxor)


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

von Rainer (Gast)


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").

von Sym (Gast)


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.

von Der Experte (Gast)


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.

von Sym (Gast)


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.

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.