www.mikrocontroller.net

Forum: FPGA, VHDL & Co. freien PCI 32Bit Target in VHDL


Autor: MARK (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo...

Ich suche einen freien PCI 32Bit Target in VHDL.
Ich brauche diesen PCI IP-Core für einen Lattice MachXO FPGA.

Kenn jemand einen?

Vielen Dank
Mark

Autor: Kest (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich glaube gerade für Lattice gibt es einen freien Core, direkt auf der 
deren Seite

Grüße,

Kest

Autor: Willivonbienemaya .. (willivonbienemaya)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ist der wirklich kostenlos?

Xilinx und Altera wollen 5000 $ für deren IP Core haben.

Hat jemand Erfahrungen mit Lattice und dem PCI Core ?

Autor: Kest (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ja, der ist kostenlos. Erfahrung habe ich leider keine damit. Man darf 
den aber nur in Verbindung mit Lattice FPGAs verwenden, sonst nicht.

Kest

Autor: MARK (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ja das Lattice Reference Design habe ich schon gefunden.
Allerdings ist das in Verilog geschrieben und ich bräuchte einen in 
VHDL.

Sonst wäre das schon ganz fein.

Autor: Kest (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Mhh... hast Du auf Opencores.org geschaut? Da gab's ja auch mal 
PCI-Core, aber ich weiß auch nicht, ob in Verilog oder VHDL.

Kest

Autor: Willivonbienemaya .. (willivonbienemaya)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Kann man den Verilog Core nicht in VHDL einbinden?

Autor: MARK (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich habe auf OpenCores.org nur einen Verilog gefunden. Es gibt zwar auch 
einen VHDL, da fehlt aber eine Datei und es ist nur beta 0.1....

Ich kann mit der Student Version von ispLever nur VHDL oder Verilog 
entwickeln.... Mixed Mode geht nicht in der Student Version...

Autor: T.M. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Es gibt den PCI-Target Core auf Opencores in VHDL:
http://www.opencores.org/projects.cgi/web/pci32tli...

Dieser wurde auch schon auf PCI-Kart5e von Raggedstone implementiert, 
siehe:
http://projects.varxec.net/raggedstone1

Autor: Hardwareonkel (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Die Karte will ich mir auch holen, daher ist das Projekt für mich 
interessant. Leider habe ich noch nichts mit PCI auf der Treiberseite 
zur Hardware hin gemacht. Hätte da jemand einen Literaturtipp? Oder 
reicht der Kauf der Raggedstone?

Autor: MARK (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Buchtipps zur Treiberprogrammierung:

Eva-Katharina Kunst, Jürgen Quade: „Linux Treiber entwickeln“ 
(Onlineversion) (http://ezs.kr.hsnr.de/TreiberBuch/html)

Michael Beck, Harald Böhme u.A.: „Linux Kernelprogrammierung-Algorithmen 
und Strukturen der Version 2.4“ 6. Auflage; Addison-Wesley 2001

Jonathan Corbet, Alessandro Rubini, and Greg Kroah-Hartman: Linux Device 
Drivers, Third Edition EBook
(http://lwn.net/Kernel/LDD3/)

Linux Magazin: Kern-Technik Serie

Letzteres ist für Einsteiger zu Empfehlen, allerdings von Artikel 1 zu 
lesen...
Behandelt alles aber nur Linux-Treiber. Bei den Windowstreibern habe ich 
auch keine Ahnung. Man sollte schon einige Erfahrungen im Umgang mit C 
programmierung besitzen.

Laut Homepage ist ein Beispieltreiber zur Ansteuerung der 
7_Segmentanzeige zum Runterladen verfügbar.

Autor: René D. (Firma: www.dossmatik.de) (dose)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
In der ELRAD war mal ein schöner Artikel uber den PCI BUS. Ich weiss 
nicht genau in welcher Ausgabe.

Wenn du nicht alle Buszugriffarten benötigtst, dann reduziert sich der 
Aufwand erheblich. Ich meine damit DMA oder Burst Zugriff

Autor: Hardwareonkel (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Naja, das ist so das Thema: Ich bräuchte erstmal einen deteillierten 
Überblick über die möglichen Zugriffsarten. :o

Autor: Philip S. (phs)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hardwareonkel wrote:
> Die Karte will ich mir auch holen, daher ist das Projekt für mich
> interessant.

Ich hab' vor kurzem auch das Raggedstone1-1500 Board gekauft, ein sehr 
nettes Spielzeug. Allerdings ist es mein erstes FPGA Board, daher habe 
ich keinen Vergleich ob es gut, günstig usw. ist. Mir macht's aber Spass 
;)

Man kann wohl (als Student kostenlos) einen PCI-IP-Core vom Hersteller 
bekommen, darum habe ich mich aber noch nicht gekümmert.  Mein Augenmerk 
liegt im Moment auf der Anpassung der OpenCores.org Implementierung.

> Leider habe ich noch nichts mit PCI auf der Treiberseite
> zur Hardware hin gemacht. Hätte da jemand einen Literaturtipp?

Jemand hat ja schon die Anpassung des OpenCore.org PCI IP Core für das 
Raggedstone-Board verlinkt, zur Erinnerung trotzdem hier nochmal der 
Link: http://projects.varxec.net/raggedstone1. Dafür gibt es schon einen 
Linux-Treiber, der als Lehrbeispiel herhalten kann.
Ein Freund von mir hat das selbe Board und er hat schon mit dem PCI-Core 
experimentiert, laut seiner Aussage funktioniert das alles ganz gut.

Ich persönlich bevorzuge allerdings FreeBSD (http://www.freebsd.org) 
gegenüber Linux, hauptsächlich wegen der hervorragenden Dokumentation. 
Es gibt dort das "Architecture Handbook" wo relativ genau beschrieben 
wird, wie man einen einfachen Treiber schreibt (siehe 
http://www.freebsd.org/doc/en_US.ISO8859-1/books/a...). 
Für die Buszugriffe gibt es eine eigene, gut dokumentierte API 
(bus_space(9) oder auch bus_dma(9)), so dass man sich nicht um die 
Details kümmern muss. Als Bonus ist der Treiber, wenn man die APIs 
verwendet, auch gleich auf mehreren Architekturen verwendbar.

> Oder reicht der Kauf der Raggedstone?

Also das Raggedstone Board kommt ohne große Dokumentation. Das online 
verfügbare Handbuch beschreibt die einzelnen Bauteile auf dem Board und 
es gibt noch ein Einsteiger-Tutorium das beschreibt, wie man ein 
einfaches Design mittels Webpack 8.x auf das Board bringt. Für die 
PCI-Sachen also eher nutzlos.

Autor: René D. (Firma: www.dossmatik.de) (dose)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Ich habe den Artikel zur PCI Einführung gefunden.

Bus Basice Technische Grundlagen des PCI-BUS von Oliver Rovini Elrad 
1997 Heft 3.

Die PCI Karte wird vom BIOS abgefragt wieviel Adressraum benötigt wird. 
Das BIOS weist einen Adressraum zu. Die Karte kodiert den Adressraum 
nach der Zuweisung selbst aus. Der Takt kann von DC bis 33MHz alle Werte 
annehmen. Da müssen die Daten in eine FIFO oder Dual Port RAM gepuffert 
werden.

DMA gibt es nicht. Doch die PCI Karte kann auch Bus Master werden und 
dann den Ganzen PCI Bus steuern. Bus Master ist sohn etwas zu weit. Um 
eine Daten Brücke für den PCI zu haben, ist ein Adressdecoder und eine 
Anmeldung für das BIOS notwendig.

Als typische Chips für solche Universal Karten sind der PLX 9054 und der 
AMCC S5933.


Ich habe eine nicht ganz freien Code gefunden. Er darf nicht in einem 
kommerziellen Produkt verwendet werden!

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.