Forum: FPGA, VHDL & Co. VHDL PCI Master IP Core


von nurel (Gast)


Lesenswert?

Hallo Zusammen

Wir haben folgendes Problem und zwar haben wir an unserem Cyclone2 FPGA 
eine PCI-Schnittstelle mit anschliessender PCI/Wishbone Bridge. Am 
Wishbone-Bus haben wir einige selber erstellte IP-Cores, die wir nun 
gerne über den PCI-Bus ansprechen wollen.

Das Problem liegt nun darin, das uns die Zeit nicht mehr reicht um 
Treiber zu schreiben, um mit dem MPC85XX über PCI die IP-Cores 
anzusprechen.

Hat jemand von euch eine Idee wie wir die IP-Cores trotzdem testen 
könnten?
Wie wäre es mit einem PCI-Master IP-Core direkt vor der PCI/Wishbone 
Bridge?

Grüsse
nurel

von Ras F. (rasfunk)


Lesenswert?

Klingt nach einem "epic fail" :-(

Welches Betriebssystem läuft denn auf dem MPC? Ist es nicht vielleicht 
doch möglich, schnell einen Testtreiber zu hacken? Gerade unter Linux 
gibt es doch unendlich viele Beispiele und Sourcen von denen man sich 
"inspirieren" lassen könnte. Falls der Treiber nicht zu komplex ist 
lassen sich doch schnell ein paar Register setzen und Daten 
transferieren.

Falls das tatsächlich keine Option sein sollte, würde ich mir bei 
OpenCores den am besten unterstützten Prozessor-Core ziehen 
(möglicherweise OpenRisc oder ZPU) und als Master an den Avalon-Bus 
anschließen. Dann in einer Hochsprache (C) Testprogramme schreiben.

Aber so richtig zeitsparend klingt das aus meiner Sicht nicht.

Das Gleiche in grün (aber möglicherweise schneller) wäre es, den Nios II 
Prozessor und den Avalon-Bus herzunehmen. Das Avalon-Bus-Interface ist 
sehr schnell geschrieben, und die ganze Umgebung (Toolchain, teilweise 
Treiber) für den Nios II ist im Qaurtus bereits vorhanden und leidlich 
integriert.

Edit: Die Idee mit dem PCI-Master vor der Bridge hab ich noch nicht 
verstanden. Die PCI-Bridge an sich soll doch nicht getestet werden, 
oder?

von nurel (Gast)


Lesenswert?

Hallo Ras Funk

Vielen Dank für deine Antwort! Es ist das erste Mal das ich in ein Forum 
schreibe und prompt schon eine Antwort.

Also auf dem MPC läuft Linux. Wir haben einen Studenten, der sich sehr 
gut mit Linux auskennt. Ich weiss zwar nicht ob er schon Treiber 
geschrieben hat. Auf jeden Fall ist er der Meinung, das wäre zu 
zeitaufwendig. Wir sind eben nur Studenten;). Wir haben einen IP-Core 
für einen ADC, einen IP-Core für einen DAC, einen IP-Core für 
Encoder-Eingänge und einen PWM-Generator.

Einen Avalon-Bus hätten wir auch, wir würden es eben gerne mit dem 
Wishbone-Bus machen. Für den haben wir eben auch das "Wishbone-Bus 
Maker" Tool von MEN Micro. Du musst verstehen, für uns ist das neu, wir 
wussten vor ca. 4 Wochen nicht einmal, das es einen Wishbone-Bus gibt, 
geschweige den wie der PCI-Bus funktioniert. Dort wird es so oder so 
noch genügend offene Fragen geben, z.b. mit der Address-Verteilung der 
IP-Cores, der Chameleon-Tabelle etc.

Nein, die Bridge selber sollte doch eigentlich laufen. Es geht uns darum 
die IP-Cores, die am Wishbone-Bus hängen, zu testen. Da es ja mit dem 
MPC ohne die Treiber nicht geht. Man könnte doch einen ganz einfachen 
PCI-Master nach dem Timing-Diagram in VHDL schreiben und anschliessend 
eine Adresse mit anschliessenden Daten auf den Wishbone-Bus geben. Ist 
das nicht möglich?

Grüsse
nurel

von nurel (Gast)


Angehängte Dateien:

Lesenswert?

Im Anhang noch 2 Seiten FPGA, das ist leider alles was im User Manual 
über das FPGA steht.

Grüsse
nurel

von Kest (Gast)


Lesenswert?

Ich meine (einfache) PCI-Treiber für Linux zu schreiben ist viel weniger 
aufwändig, als für Windows zu schreiben.

Andererseits gibt es noch
http://www.jungo.com/st/windriver_usb_pci_driver_development_software.html

Da gibt es Treiber für alles Mögliche. Die Treiber kann man kostenlos 
ausprobieren (ich glaube mit 30 Tagen Laufzeit). Bei uns hat alles 
sofort funktioniert (allerding Altera-PCI Core)

Grüße,
Kest

von Patrick S. (abaddon1979)


Lesenswert?

Mit dem Tool "PCItree" kann man auf PCIdevices zugreifen und in ihre 
Register schreiben/lesen.

Das reicht meistens für einen schnellen Test, ansonsten kann ich wie 
Kest nur jungo empfehlen. Das benutzen wir generell bei der 
Treiberentwicklung.

von Ras F. (rasfunk)


Lesenswert?

> Nein, die Bridge selber sollte doch eigentlich laufen. Es geht uns darum
> die IP-Cores, die am Wishbone-Bus hängen, zu testen. Da es ja mit dem
> MPC ohne die Treiber nicht geht. Man könnte doch einen *ganz einfachen
> PCI-Master* nach dem Timing-Diagram in VHDL schreiben und anschliessend
> eine Adresse mit anschliessenden Daten auf den Wishbone-Bus geben. Ist
> das nicht möglich?

OMG, "PCI-Master" und "ganz einfach" in einem Satz, das ist gewagt! ;-)

Ich habe in meinem ersten Post im zweiten Absatz nicht den Avalon-Bus 
gemeint, sondern den Wishbone-Bus (auf OpenCores.org sind fast alle 
Cores auf den Wishbone ausgelegt). Daher müssten auch eure IP Cores 
nicht umgemodelt werden.

Aber unabhängig davon: ich würde weiterhin die Linux-Treiber-Variante 
empfehlen. Kommt ja auch dem fertigem Produkt am nächsten.

von nurel (Gast)


Lesenswert?

Vielen Dank für eure Antworten!
Wir werden uns das Tool "PCItree" mal anschauen und ausprobieren, sofern 
es unter Linux läuft.

Grüsse
nurel

von nurel (Gast)


Lesenswert?

Ja das mit dem "PCI-Master" und "ganz einfach" hat sich inzwischen 
geändert, es ist nicht einfach;)

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.