www.mikrocontroller.net

Forum: FPGA, VHDL & Co. High Level Synthese mit C++


Autor: MT (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

kennt von euch vielleicht wer Code Schnipsel von synthetisierbaren C++ 
Code (Zähler, Sate Machines)?
Ich nutze Catapult C als Umgebung.

Besonderes Problem hab ich momentan Werte in Registern 
zwischenzuspeichern oder auch schon ein simpler Zähler gelinkt mir nicht 
(weiß nicht was wann passiet oder wie ich den Takt nutzen muss ?).
Kompliezierte Gleichungen dagegen  werden zumindest schon einmal 
syntethisiert.

Leider findet man nicht sehr viel Dokumentation oder Beispiele.

Autor: faul (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi, redest du von SystemC? Da gibts im Internet einiges, habe mir vor 2 
Jahren das selber beigebracht. Google halt mal ein bisschen.

Es gibt da sogar Tutorials...

Spezielle Fragen bekommst du bestimmt auch hier beantwortet.

Autor: MT (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das Tool kann auch SystemC, allerdings was ich für viel interessanter 
halte, solle es auch Standard C++ in Hardware umwandeln können.
Ein einfacher Zähler ist mir mittlerweile gelungen:
#pragma hls_design top

unsigned short i=0;// 16 Bit Zähler

void zaehler(unsigned short *output)// Nur Output CLK und Reset werden automatisch generiert
{
    if(i<65535)
    {
     *output=i;// gebe Zaehlerstand aus
     i++; //Zaehle hoch
    }
   else
   {
    i=0; // setzte Zaehler zurück 
   }
}

Hatte da irgendwie ein Brett vorm Kopf normalerweise nutze ich halt auch 
VHDL.

Autor: faul (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi, ich verstehe nicht so ganz: SystemC ist doch C++...

Wenn man die SystemC-Bibliothek nicht benutzt muss man imho dennoch eine 
eigene Erweiterung benutzen und hätte keine Vorteile im Vergleich zu 
SystemC...

Autor: MT (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
faul schrieb:
> Wenn man die SystemC-Bibliothek nicht benutzt muss man imho dennoch eine
> eigene Erweiterung benutzen und hätte keine Vorteile im Vergleich zu
> SystemC...

http://www.mentor.com/esl/catapult/overview

Mit dem Tool lässt sich ANSI C++ synthetisieren, also auch ohne SystemC 
Bibliothek oder einer Eigenen.

Wie gut das ganze ist versuche ich mal so langsam zu ergründen.

Autor: Ottmar (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Such mal nach dem Buch "High-Level Synthesis Blue Book" direkt vom 
Hersteller. Dort sind viele Beispiele beschrieben.

Autor: Harald Flügel (hfl)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@ MT

... und wenn Du alles zum Laufen gebracht hast, dann lass die Gemeinde 
doch ein deinem Wissen teilhaben. Ich persönlich habe zu allen Tools 
oberhalb RTL ein sehr gespaltenes Verhältnis. Irgendwie leuchten mir die 
Vorteile nicht ein. Der zitierte Zähler ist in RTL auch nicht 
komplizierter, und wenn man wirklich abstrakte Sachen macht, dann 
scheitert die Synthese. Also?

Autor: MT (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Harald Flügel schrieb:
> @ MT
>
> ... und wenn Du alles zum Laufen gebracht hast, dann lass die Gemeinde
> doch ein deinem Wissen teilhaben. Ich persönlich habe zu allen Tools
> oberhalb RTL ein sehr gespaltenes Verhältnis. Irgendwie leuchten mir die
> Vorteile nicht ein. Der zitierte Zähler ist in RTL auch nicht
> komplizierter, und wenn man wirklich abstrakte Sachen macht, dann
> scheitert die Synthese. Also?

Algorithmen dagegen kann man mal eben in einer Zeile schreiben...
Ob es scheitert ist dann natürlich DIE Frage...

Autor: Lothar Miller (lkmiller) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
MT schrieb:
> Algorithmen dagegen kann man mal eben in einer Zeile schreiben...
Was ist daran neu? Das geht in anderen Beschreibungssprachen auch...

Autor: Harald Flügel (hfl)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@ MT

Vielleicht kommt dir bei deinen weiteren Recherchen ja etwas vor die 
Linse, von dem Du sagen kannst, dass die Modellierung mit C++ ein echter 
Gewinn war. Ich habe jedenfalls noch nichts derartiges gefunden.

Seien wir doch mal ehrlich: Sehr oft, wenn neue Sprachen und/oder 
Methoden erfunden worden, standen nicht unbedingt heere Ziele im 
Vordergrund. Die "alten" Sprachen und Methoden haben prima funktioniert, 
wenn gut geschulte und erfahrere Menschen sie angewendet haben und die 
Tools fehlerarm waren. Mehr als eine Softwarekrise wurde dadurch 
verursacht, dass zu wenige erfahrene Informatiker vorhanden waren und 
man statt dessen jeden an eine Tastatur gelassen, der bis 3 zählen kann. 
Was machen die Manager, wenn bessere Tools/Methoden kommen, die einen 
höheren Abstraktionsgrad erlauben oder weniger Fehler zulassen? Lassen 
sie die gleichen Leute "bessere" Systeme entwickeln? Nein, weniger 
geschulte Leute die gleichen Systeme. Oder, andere Frage: Was war die 
Intialzündung für SystemC? Abstraktion? No! SystemC bringt den 
Simulationskern als Klassenbibliothek mit. Schon können wir ModelSim 
Lizenzen sparen.

Ich für meinen Teil bin (bis dato) ein flammender Befürworter der 
besseren Ausbildung der Entwickler. Hier wird in den Unternehmen viel zu 
wenig getan, und im Studium hört man gerade mal ein Semester VHDL. Ende. 
Oh Mann!

Aber, wie gesagt, vielleicht kommt Dir ja etwas vor die Linse.

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.