Forum: FPGA, VHDL & Co. FPGA auslesen mit C-Programm


von Ciggy A. (ciggy)


Lesenswert?

Hallo Forum,
ich habe die Aufgabe bekommen herauszufinden, wie man die Daten, welche 
von einem FPGA über USB zur verfügung gestellt oder erzeugt werden, mit 
einem eigenen C Programm weiterverarbeiten kann.

Ich habe noch nie mit einem FPGA gearbeitet, meine Kenntnisse 
beschränken sich auf die Programmiersprache C.

Ich habe hier einige Tools zur verfügung wie Nios II EDS 9 und Quartus 
II.
Der FPGA den ich zur verfügung habe ist der Cyclone 2.

Ich würde gerne Schritt für schritt in die Sache einsteigen, aber ich 
weiß nicht womit ich am besten anfange um schnelstmöglich das gegebene 
Ziel zu erreichen.

Vielen Dank für eure Hilfestellung!

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


Lesenswert?

Ciggy Alfa schrieb:
> ich habe die Aufgabe bekommen herauszufinden, wie man die Daten, welche
> von einem FPGA über USB zur verfügung gestellt oder erzeugt werden, mit
> einem eigenen C Programm weiterverarbeiten kann.
Nach dieser Beschreibung ist dein Problem nicht das FPGA. Denn ob die 
Daten von einem FPGA oder einem uC oder sonstwoher zu dir kommen, ist 
für deine Aufgabe vorrangig egal.


> von einem FPGA über USB zur verfügung gestellt oder erzeugt werden
Und wohin gehen diese Daten danach? Wo ist der USB angeschlossen? 
Worauf soll dein C-Programm laufen?

von Ciggy A. (ciggy)


Lesenswert?

Lothar Miller schrieb:
> Nach dieser Beschreibung ist dein Problem nicht das FPGA. Denn ob die
> Daten von einem FPGA oder einem uC oder sonstwoher zu dir kommen, ist
> für deine Aufgabe vorrangig egal.
Ja, das ist für die Aufgabe egal, aber um klar zu stellen, dass es sich 
um einen FPGA handelt wollte ich es trotzdem erwähnt haben.

> Und wohin gehen diese Daten danach? Wo ist der USB angeschlossen?
> Worauf soll dein C-Programm laufen?

Der FPGA (Cyclone 2) ist über den USB-Blaster mit dem PC verbunden.
Das C-Programm soll auf dem PC laufen.
Nehmen wir an der FPGA führt durch einen Sensor messungen durch und 
übermittelt diese Daten auf den Rechner, dann will ich diese Daten nicht 
mit anderen Programmen auslesen und dessen Ergebnisse dann manuel 
weiterverarbeiten, sondern ich möchte direkt mit einem eigenhändig 
geschriebenen Programm auf die Messungen zugreifen und sie direkt 
auswerten können.
Es ist eigentlich eine allgemeine Fragestellung und muss nicht unbedingt 
auf dem Cyclone 2 zurechtgeschnitten sein. Ich denke gesucht ist sowas 
wie eine C-Bibliothek die den Zugriff auf die Daten ermöglicht.

von Peter II (Gast)


Lesenswert?

Ciggy Alfa schrieb:
> Es ist eigentlich eine allgemeine Fragestellung und muss nicht unbedingt
> auf dem Cyclone 2 zurechtgeschnitten sein. Ich denke gesucht ist sowas
> wie eine C-Bibliothek die den Zugriff auf die Daten ermöglicht.

dazu müsste man aber genau wissen wie die Daten über USB übertragen 
werden und dann ist von der Software(Hardware) im FPGA abhänig. Es gibt 
sehr viele Möglichkeiten per USB daten zu übertragen.

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


Lesenswert?

Ciggy Alfa schrieb:
> Der FPGA (Cyclone 2) ist über den USB-Blaster mit dem PC verbunden.
Tja, wenn du
1. einen Treiber für dieses Programmierkabel hast
und
2. vom FPGA aus dieses Kabel zur Datenübertragung verwenden kannst
und du
3. vom FPGA auf die entsprechenden Config-Pins zugreifen darfst
sowie
4. eine passende Hardwarebeschreibung dafür hast,
dann könnte das gehen.

von dunno.. (Gast)


Lesenswert?

du hast nicht zufällig ein DE2Board?
dann kannst du "einfach" mit dem in system memory content editor 
arbeiten... :D -oder wie das dingen jetzt in quartus genau heißt.

dann hast du deine daten zumindest schonmal im fpga.

mfg

von Uwe (Gast)


Lesenswert?

Schon wieder ein Profi der sich gedacht hat "ich mach mal FPGA" und noch 
nicht mal ne Kommunikation zwischen µC und PC packen würde. achja nicht 
böse gemeint aber fang doch mal von  Vorne an. Wenn du nen Führerschein 
machst fährst du ja auch nicht glecih auf der Autobahn mit 200km/h und 
fragst deinen Fahleehrer wo die Bremse ist.

von AuMann (Gast)


Lesenswert?

Schon wieder eine Antwort, die unendlich mal dümmer als die Frage war.

von Uwe (Gast)


Lesenswert?

Da kommt ein entsprechendes Interface IC ran z.B. RS232 Levelshifter 
(z.B: MAX232) oder USB µC (Cypress,ATUSB,ARM)oder USB zu irgendwas 
Wandler (FTDI).
Und dann Baust du dir ne Statemachine im FPGA die mit dem Ding spricht 
und das Ding programmierst, konfigurierst du so das es mit dem PC 
Spricht. Und deinen PC programmierst du so das es mit dem Ding spricht 
(z.B. Visual C++). fertisch. Und dich programmierst du so das du mit dem 
PC sprichst.

von mifi (Gast)


Lesenswert?

Hallo ciggy,

such mam nach dem Stichwort "libusb" oder auch "libusb win" bei Google.
Das könnte schon mal in die Richtung gehen was Du suchst.

Ob das aber auch mit dem USB-Blaster Interface geht kann ich nicht 
sagen.

Gruß,
Michael

von Christian R. (supachris)


Lesenswert?

Der USB-Blaster ist ja primär zum programmieren, wenn dann geht das über 
den nur schnarch langsam, weil der ja über JTAG am FPGA hängt. Bei 
Xilinx gibts auf jeden Fall die Möglichkeit, über interne JTAG 
Komponenten mit dem Design zu kommunizieren. Aber über den original 
Programmer wirds eher schlecht, weil die Ansteuerung nicht offen gelegt 
ist. Würde mich wundern, wenn Altera die Schnittstelle zum USB Blaster 
offen legt.

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.