mikrocontroller.net

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


Autor: The Dude (wiplash4)
Datum:

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

Autor: Morin (Gast)
Datum:

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

Autor: The Dude (wiplash4)
Datum:

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

Autor: Duke Scarring (Gast)
Datum:

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

Autor: Xenu (Gast)
Datum:

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

Autor: Morin (Gast)
Datum:

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

Autor: Ironie (Gast)
Datum:

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

Autor: adr (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hat irgendeiner kapiert, was der machen soll?

Autor: Jan S. (jan_s)
Datum:

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

Autor: Hans-Georg Lehnard (h-g-l)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Suchst du so etwas ?

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

Dann such mal nach "System c".

Autor: TTNAT (Gast)
Datum:

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

Autor: Oliver Punk (Firma: UAS Merseburg) (olipunk)
Datum:

Bewertung
0 lesenswert
nicht 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 … 
;-).

Autor: bko (Gast)
Datum:

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

Autor: Ranjeet Kuruvilla (Gast)
Datum:

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

Autor: Lattice User (Gast)
Datum:

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

Autor: Klaus Falser (kfalser)
Datum:

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

Autor: Ranjeet Kuruvilla (Gast)
Datum:
Angehängte Dateien:

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

Autor: Klaus Falser (kfalser)
Datum:

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

Autor: Klaus (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
lol, was genau ist ein "Computerchip"???

Autor: Lattice User (Gast)
Datum:

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

Autor: Anguel S. (anguel)
Datum:

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

Autor: gnihihihi (Gast)
Datum:

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

Autor: Ranjeet Kuruvilla (Gast)
Datum:

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

Der Computerchip ist ein CPLD.

Autor: Ranjeet Kuruvilla (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ach und das Betriebssystem ist Ubuntu.

Autor: Uwe (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ist aber nur ne Testbench ! Nix Implementierbar !

Autor: Uwe (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Interface definieren in beide Hardwareplattformen implementieren und 
Software Schreiben -> fertig

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.