Forum: FPGA, VHDL & Co. Kommunikation FPG: VHDL und C++


von The D. (wiplash4)


Lesenswert?

Hallo
Der Computer kommuniziert mit dem FPGA, dieser via VHDL mit dem Rest.
Wie bekomme ich die Kommunikation hin?
Der VHDL-Code steht schon aber ich muss den ML505 bzw. Virtex5 auch noh 
anprechen!
Gruesse

von Morin (Gast)


Lesenswert?

Gibt es schon eine physikalische Verbindung zwischen PC und FPGA, oder 
musst du eine entwerfen?

Welche Datenrate muss über die Verbindung gehen? Welche Latenz ist 
erlaubt? Wie genau müssen Zeitgrenzen bei der Verbindung eingehalten 
werden?

Welches Betriebssystem auf dem PC?

von The D. (wiplash4)


Lesenswert?

Hi.
Ich finde euch Leute lustig:) Ich sietze den Virtex5... Sie ist eine 
Dame, sie verdient Respekt...

Ich dachte da haette jemand schonmal was gemacht, ich hatte gehofft, 
jemand haette da schonmal ein Interface erarbeitet.

Ich kann diese Dinge nicht sagen, denn sie werden nicht von mir 
entworfen.

Irgendjemand hat ein Protokoll zur Kommunikation zwischen PC und 
Ethernet-Gigabit Schnittstelle hergestellt.
Meine Aufgabe besteht nur darin, ein C++-Programm zu erstellen, dass 
Daten von C++ in VHDL umwandelt.
Gruesse

von Duke Scarring (Gast)


Lesenswert?

Ranjeet Kuruvilla schrieb:
> Ich dachte da haette jemand schonmal was gemacht, ich hatte gehofft,
> jemand haette da schonmal ein Interface erarbeitet.
Ja sicher. Da sitzen jeden Tag Leute, die sowas machen...

> Ich kann diese Dinge nicht sagen, denn sie werden nicht von mir
> entworfen.
Schlecht, weil dann hättest Du vielleicht konkretere Vorstellungen.

> Meine Aufgabe besteht nur darin, ein C++-Programm zu erstellen, dass
> Daten von C++ in VHDL umwandelt.
??
C++  -> Software
VHDL -> Hardware

Ich suche jemanden, der mir Gedanken und Ideen in Gehirn umwandelt?!?

Duke

von Xenu (Gast)


Lesenswert?

Du erwartest doch nicht ernsthaft, dass Dir jemand auf dermaßen 
schwammige Fragen antworten kann, oder?
Was genau hast Du, und was genau willst Du?
Und dass Du einen "C++ nach VHDL"-Konverter schreiben willst, bezweifle 
ich.

von Morin (Gast)


Lesenswert?

> Ich kann diese Dinge nicht sagen, denn sie werden nicht von mir entworfen.

Dann wird deine erste Teilaufgabe darin bestehen, diese Dinge 
herauszufinden. Eine Alternative gibt es nicht ;)

Siehe dazu die oben von mir gestellten Fragen. Wenn du die beantworten 
kannst, bist du ein gutes Stück weiter und wir können dir auch 
konkretere Antworten geben.

von Ironie (Gast)


Lesenswert?

Ranjeet Kuruvilla schrieb:
> Meine Aufgabe besteht nur darin, ein C++-Programm zu erstellen, dass
> Daten von C++ in VHDL umwandelt.

Au ja, das möchte ich auch. Aus C++ Sourcen fällt dann ein Bitfile ...

von adr (Gast)


Lesenswert?

Hat irgendeiner kapiert, was der machen soll?

von Jan S. (jan_s)


Lesenswert?

Ein Interface zwischen FPGA und einem PC Bussystem oder ähnliches nehme 
ich mal an.
Aber jemand der VHDL oder C++ für ein Format hält wird sowas vermutlich 
erstmal nicht hinbekommen.

von Hans-Georg L. (h-g-l)


Lesenswert?

Suchst du so etwas ?

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

Dann such mal nach "System c".

von TTNAT (Gast)


Lesenswert?

Der compiler für C++ in VHDL hat Xilinx das Programm dafür.
Das Programm heisst EDK. Weitere Info am Besten auf Xilinx Website 
reinschauen.


Gruss

Gast

von Oliver P. (Firma: UAS Merseburg) (olipunk)


Lesenswert?

TTNAT schrieb:
> Der compiler für C++ in VHDL hat Xilinx das Programm dafür.
> Das Programm heisst EDK.

Hmm. Das sollte man so glaub ich nicht stehen lassen. Nachher trifft 
jemand den Thread und sucht sich nen Wolf ;-). Bitte berichtigt mich:
Hier wird wahrscheinlich die Generierung von Maschinencode aus C++ für 
den MB bzw. ähnliche RISC gemeint, oder? Zumindest habe ich im EDK nicht 
die Option gefunden, meine C++ Sourcen ins VHDL übersetzen zu lassen. 
Zumal dann geschätzt bei jeder for Schleife die Logikelemente ausgehen … 
;-).

von bko (Gast)


Lesenswert?

C++ nach VHDL: so mach ich es (mit dem cc65) ;-)
cl65 -O hello.c text.s -o a.out
srec_cat a.out -binary -output rom.vhd -vhdl

von Ranjeet Kuruvilla (Gast)


Lesenswert?

Hallo
Sorry, war ne Zeit lang nicht hier.

Amuesierte mich ueber eure Antworten:) Der Grund warum ich nicht mehr 
sagte war, dass ich selbst nicht weiss, was ich machen soll...

Also der Nutzer sieht ein Programm in C++, in dem er irgendwas 
einstellen kann. Dieses Programm kommuniziert mit einer VHDL-Entity, 
welche dann Daten an den Chip sendet. Es geht nicht darum, ein 
C++-Programm zu schreiben, welches nach VHDL synthetisiert wird!

Nutzer <-> C++-Programm <-> VHDL-Entity <-> CHIP

Mein Gedanke war immer, dass man das C++-Programm schreibt und dann das 
VHDL-Entity und wenn alles klappt, kommunizieren die miteinander.

Ist das klar genug?

Entschuldigung fuer alles.

Es handelt sich uebrigens um Hardware, welche ueber den Computer 
gesteuert wird.

Brauche nur ein generelles Konzept. spezielles fuchtele ich dann durch.

von Lattice User (Gast)


Lesenswert?

Hallo Ranjeet

Ich nehme mal an mit Computer meinst du einen stinknormalen PC, und da 
stellt sich die Frage wie ist die Hardware (Chip) mit dem Computer 
verbunden?
Z.b. USB, Ethernet oder Einsteckkarte mit PCI bzw PCIex.

Das C++ auf dem PC kommuziert nicht direkt mit irgendeiner VHDL Entity, 
sondern spricht eine der obigen Schnittstellen auf. Auf dem Chip musst 
du dann die Gesgenseite dieser Schnittstelle in VHDL realisieren. Je 
nach Typ und Protokoll ist das mehr oder weniger Aufwendig.

von Klaus F. (kfalser)


Lesenswert?

Ranjeet Kuruvilla schrieb:
> Dieses Programm kommuniziert mit einer VHDL-Entity,
> welche dann Daten an den Chip sendet

Du hast keine Ahnung was VHDL ist und was man damit macht, oder?

von Ranjeet Kuruvilla (Gast)


Angehängte Dateien:

Lesenswert?

@Klaus Falser: Vielleicht druecke ich mich immer richtig aus, aber ich 
weiss sehr wohl, was VHDL ist:). Nur nicht immer, was VHDL alles kann.

Vielleicht hilft das angehaengte Bild....

von Klaus F. (kfalser)


Lesenswert?

Ranjeet Kuruvilla schrieb:
> Vielleicht hilft das angehaengte Bild....

Warum nicht gleich so?

Ranjeet Kuruvilla schrieb:
> Nutzer <-> C++-Programm <-> VHDL-Entity <-> CHIP

Welches C++ Programm meinst Du?
Du solltest die oben genannte Kette noch verfeinern, z.B.

Hardware             Software
PC                   C++ Programm
-> LAN               Socket(??)
-> FPGA              Microblaze
-> Microblaze        C-Programm
-> VHDL Peripherie   Register interface
-> Chip              ??

von Klaus (Gast)


Lesenswert?

lol, was genau ist ein "Computerchip"???

von Lattice User (Gast)


Lesenswert?

Hallo Ranjeet

Es gibt schlicht keine magische Verbindung zwischen C++ (oder einer 
anderen Programmiersprache) und VHDL.

Da du nicht sehr auskunftsfreudig was dein eigentliches Problem ist habe 
ich mal Google bemüht, und werde jetzt mal etwas raten.

Du hat auf der einen Seite des Virtex Ethernet und auf der anderen Seite 
deinen Spikey ASIC, den du mit einer VDHL Entity kontrollierst. Und das 
dazwischen fehlt dir noch.
Das ist nicht ganz trivial, d.h. entweder einen MicroBlaze zur 
Implementation des Netzwerkstacks und zur Interpretation von 
Datenpacketen zur Steuerung deiner existierenten HW. Wenn der 
Datendurchsatz des MicroBlaze nicht reicht wirds allerdings aufwendig, 
denn dann musst du den bzw Teile des Netzwerkstacks in VHDL realisieren.

Auf dem PC mit C++ ist das dann ganz normale Socketprogrammierung, d.h. 
Packete send und empfangen.

von Anguel S. (anguel)


Lesenswert?

Ich schätze, dass Du nach ca. 10 Jahren harter Arbeit evtl. in der Lage 
sein wirst, das beschriebene System zu realisieren. Welche Erfahrungen 
hast Du mit C++, VHDL und mit Elektronik, Ethernet sowie FPGAs?

von gnihihihi (Gast)


Lesenswert?

der will ne "SystemC" (das ist ne Obermenge von C++) testbench .. wieso 
rallt ihr das nicht? darüber kann er Signale ins DUT treiben und auch 
auslesen.. ist ne tolle Sache sowas

von Ranjeet Kuruvilla (Gast)


Lesenswert?

@gnihihihi: Danke, genau das habe ich gesucht.
@Lattice: Ja, das habe ich befuerchtet. Trotzdem danke fuer die Hilfe.

Der Computerchip ist ein CPLD.

von Ranjeet Kuruvilla (Gast)


Lesenswert?

Ach und das Betriebssystem ist Ubuntu.

von Uwe (Gast)


Lesenswert?

Ist aber nur ne Testbench ! Nix Implementierbar !

von Uwe (Gast)


Lesenswert?

Interface definieren in beide Hardwareplattformen implementieren und 
Software Schreiben -> fertig

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.