www.mikrocontroller.net

Forum: FPGA, VHDL & Co. Hochsprachencompiler für FPGA (z.B. Handel-C)


Autor: Jason Hadley (jason80)
Datum:

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

Autor: Marcus Harnisch (mharnisch) Benutzerseite
Datum:

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

Autor: Mathi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
StreamsC ist die Vorlage zu ImpulseC gewesen und die Quellen finden sich 
hier: http://www.rasr.lanl.gov/StreamsC/

Autor: Jason Hadley (jason80)
Datum:

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

Autor: Marcus Harnisch (mharnisch) Benutzerseite
Datum:

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

Autor: Jason Hadley (jason80)
Datum:

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

Autor: Marcus Harnisch (mharnisch) Benutzerseite
Datum:

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

Autor: Jason Hadley (jason80)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Vielen Dank!

Autor: Günter -.. (guenter)
Datum:

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

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.