Hallo, ich suche Infos, was aktuell an Hochsprachen zur FPGA-Entwicklung zur Verfügung steht, noch dazu im Opensource Bereich. Mit Hochsprachen meine ich nicht VHDL oder Verilog, sondern z.B. modifizierte C-Dialekte wie http://en.wikipedia.org/wiki/Handel-C oder http://de.wikipedia.org/wiki/SystemC. (Es steht außer Diskussion, dass mit C nicht die gleiche Performance erreicht wird, wie z.B. mit VHDL, aber es gibt immer Anwendungsfälle, in denen z.B. die schnelle Portierbarkeit vorhandenen Codes eine größere Rolle spielt als maximale Performance.) Ich kann außer FpgaC (http://fpgac.wiki.sourceforge.net/) kein solches Programm als Opensource finden, und die Entwicklung an FpgaC läuft wenn überhaupt sehr schleppend. Sind euch andere bekannt? SystemC ist ein offener Standard. Existieren nur kommerzielle Compiler, die darauf basieren? Danke Jason
Jason Hadley wrote: > Es steht außer Diskussion, dass mit C nicht die gleiche Performance > erreicht wird, wie z.B. mit VHDL Warum? > SystemC ist ein offener Standard. Existieren nur kommerzielle Compiler, > die darauf basieren? Wie kommst Du darauf? Die Referenz Library der OSCI läuft doch mit GCC. Gruß Marcus
StreamsC ist die Vorlage zu ImpulseC gewesen und die Quellen finden sich hier: http://www.rasr.lanl.gov/StreamsC/
>> Es steht außer Diskussion, dass mit C nicht die gleiche Performance >> erreicht wird, wie z.B. mit VHDL > Warum? Dies soll nicht Thema meiner Frage sein, aber ich gehe davon aus, dass viele VHDL-Programmierer C verteufeln würden, weil manuell optimiertes VHDL in den meisten Fällen mehr oder weniger große Performancevorteile gegenüber C hat. Wenn nicht, um so besser. >> SystemC ist ein offener Standard. Existieren nur kommerzielle Compiler, >> die darauf basieren? > > Wie kommst Du darauf? Die Referenz Library der OSCI läuft doch mit GCC. Kannst du dies genauer ausführen? Kann ich den GCC so erweitern, dass ich SystemC code in eine Netlist übersetzen kann? Wie? Gibt es ein Tutorial für Anfänger? Es geht mir um die praktische Anwendung, nicht um die theoretische Möglichkeit, SystemC zu parsen in ein Format, das ich nicht weiter verwenden kann. Danke Jason
Jason Hadley wrote: > Kannst du dies genauer ausführen? Kann ich den GCC so erweitern, dass > ich SystemC code in eine Netlist übersetzen kann? Wie? Gibt es ein > Tutorial für Anfänger? Es geht mir um die praktische Anwendung, nicht um > die theoretische Möglichkeit, SystemC zu parsen in ein Format, das ich > nicht weiter verwenden kann. Mir war nicht klar, das Du auf SystemC Synthese hinaus willst. Niemand verwendet SystemC ernsthaft für die Synthese... }:^) Dafür gibt es meines Wissens keine OpenSource Werkzeuge. Gruß Marcus
>Mir war nicht klar, das Du auf SystemC Synthese hinaus willst. Niemand >verwendet SystemC ernsthaft für die Synthese... }:^) Jetzt verstehe ich dich gar nicht mehr. Erst zweifelst du an, dass C-Dialekte bei der FPGA-Entwicklung Performancenachteile bringen. Jetzt dies. Wozu ist die OSCI-Referenzimplementirung gedacht? Führt sie eine reine Codevalidierung durch, oder liefert sie compilierten Output? Wenn ja, könnte ich diesen Output eventuell weiter prozessieren. Es wäre nett, wenn du in ein paar Zeilen einen kurzen Überblick über Stand und praktische Einsatzmöglichkeiten von SystemC gibst, da ich auf deren Webseite keine Zusammenfassung finden kann, die etwas anderes beschreibt als Zweck und Ziele der Initiative, also keine praktisch verwertbaren Infos. Dass niemand SystemC ernsthaft für die Synthese verwendet, impliziert, dass es für etwas anderes verwendet wird. Wofür? Danke Jason
Jason Hadley wrote: > Jetzt verstehe ich dich gar nicht mehr. Erst zweifelst du an, dass > C-Dialekte bei der FPGA-Entwicklung Performancenachteile bringen. Jetzt > dies. Ich bin von Simulation ausgegangen, nicht von Synthese. Aber auch bei letzterem hat SystemC keine grundsätzlichen Nachteile -- höchstens welche die von der Implementierung abhängen. > Wozu ist die OSCI-Referenzimplementirung gedacht? Simulation. Ein Schritt, der bei FPGA Entwicklung gern mal ausgelassen wird. > Führt sie eine reine Codevalidierung durch, oder liefert sie > compilierten Output? Wenn ja, könnte ich diesen Output eventuell > weiter prozessieren. Die OCSI library ist ein Simulator. Der Output ist entweder Text (cout -- normales C++ eben) oder VCD (Verilog Change Dump, auch Text). > Es wäre nett, wenn du in ein paar Zeilen einen kurzen Überblick über > Stand und praktische Einsatzmöglichkeiten von SystemC gibst, da ich auf > deren Webseite keine Zusammenfassung finden kann, die etwas anderes > beschreibt als Zweck und Ziele der Initiative, also keine praktisch > verwertbaren Infos. > Dass niemand SystemC ernsthaft für die Synthese verwendet, impliziert, > dass es für etwas anderes verwendet wird. Wofür? Entwurf und Verifikation des Entwurfs auf Systemebene. Algorithmen, Kommunikation, Referenzmodelle für spätere RTL Simulation, etc. Viel höhere Abstraktionsebene als RTL. Natürlich musste man in diese Bibliothek auch Konstrukte einbauen, die Register beschreiben. Mit der Folge, dass einige Tool Hersteller es sich nicht nehmen ließen, solche Beschreibungen zu synthetisieren. http://www.doulos.com/knowhow/systemc/ Gruß Marcus
Wenn du dich nicht auf C festlegst, dann gibt es als OpenSource noch MyHDL http://myhdl.org. Ein anderer Ansatz war Confluence, das ist aber leider vollkommen von der Bildfläche verschwunden. Es gibt noch einige Projekte auf OpenCores, wie z.B. * http://www.opencores.org/projects.cgi/web/cf_cordic/overview * http://www.opencores.org/projects.cgi/web/cf_fft/overview * http://www.opencores.org/projects.cgi/web/cf_fp_mul/overview
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.