www.mikrocontroller.net

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


Autor: nurel (Gast)
Datum:

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

Autor: Ras Funk (rasfunk)
Datum:

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

Autor: nurel (Gast)
Datum:

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

Autor: nurel (Gast)
Datum:
Angehängte Dateien:

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

Grüsse
nurel

Autor: Kest (Gast)
Datum:

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

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

Autor: Patrick Sulimma (abaddon1979)
Datum:

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

Autor: Ras Funk (rasfunk)
Datum:

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

Autor: nurel (Gast)
Datum:

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

Autor: nurel (Gast)
Datum:

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

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.