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


von MT (Gast)


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.

von faul (Gast)


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.

von MT (Gast)


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:
1
#pragma hls_design top
2
3
unsigned short i=0;// 16 Bit Zähler
4
5
void zaehler(unsigned short *output)// Nur Output CLK und Reset werden automatisch generiert
6
{
7
    if(i<65535)
8
    {
9
     *output=i;// gebe Zaehlerstand aus
10
     i++; //Zaehle hoch
11
    }
12
   else
13
   {
14
    i=0; // setzte Zaehler zurück 
15
   }
16
}

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

von faul (Gast)


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

von MT (Gast)


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.

von Ottmar (Gast)


Lesenswert?

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

von Harald F. (hfl)


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?

von MT (Gast)


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

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

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

von Harald F. (hfl)


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.

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.