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
Ich glaube gerade für Lattice gibt es einen freien Core, direkt auf der deren Seite Grüße, Kest
Ist der wirklich kostenlos? Xilinx und Altera wollen 5000 $ für deren IP Core haben. Hat jemand Erfahrungen mit Lattice und dem PCI Core ?
Ja, der ist kostenlos. Erfahrung habe ich leider keine damit. Man darf den aber nur in Verbindung mit Lattice FPGAs verwenden, sonst nicht. Kest
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.
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
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...
Es gibt den PCI-Target Core auf Opencores in VHDL: http://www.opencores.org/projects.cgi/web/pci32tlite_oc/overview Dieser wurde auch schon auf PCI-Kart5e von Raggedstone implementiert, siehe: http://projects.varxec.net/raggedstone1
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?
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.
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
Naja, das ist so das Thema: Ich bräuchte erstmal einen deteillierten Überblick über die möglichen Zugriffsarten. :o
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/arch-handbook/driverbasics.html). 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.
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!
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.