Hallo. Ich bin dabei, mein erstes PLD-Projekt zu starten, und hoffe, dass mir vielleicht jemand mit Rat hilft. Ich habe nöchstens theroretische VHDL-Erfahrunf, aber sonst keine Ahnung. Es geht darum, für ein bereits embedded Gerät entweder die vergriffene Ethernet-Erweiterungskarte nachzubauen, oder eine eigene zu konstruieren. Ein Klon der bestehenden würde etwas Absatzmöglichkeit bedeuten, aber für unsere interne Zwecke würde eine Eigenkonstruktion reichen. Ein Exemplar der original Ethernet-Karte liegt vor. Der Bus des Geräts ist einigermaßen ISA-ähnlich, aber schneller. Die ursprüngliche Ethernetkarte verwendete den PCI-Chipsatz RTL8139, und einen proprietären Chip, zwischen diesem und dem Bus. Fragen zum Kommunikationsprotokoll (insb. Busmaster-Emulation) lassen sich insofern klären, dass es einen kompletten Treiber für die Netzwerkkarte inklusive der PCI-Host-Brücke gibt. Es geht dabei um ein nichtkommerzielles Projekt. Ich bin also nur zu relativ kleinen Ausgaben bereit, auch hinsichtlich der großen Wahrscheinlichkeit, dass das Ganze mangels Zeit oder Können im Sand landet. Die Homebrew-Variante wäre also irgendeins der vielen ISA-Ethernet Chipsätze (z.B. von ASIX), über ein CPLD an den Bus gebunden. Die Nachbau-Variante erfordert einen PCI-Host. Zuerst einmal, welche hobbyfreundliche Anfangsmöglichkeiten es gibt. Vor allem die Software sollte kostenlos sein (evtl. kostenlose Studentenversion?), aber auch der Upload-Kabel sollte nicht allzu teuer sein. Ich wäre bereit, bis allerhöchstens 200 EUR für Software, Entwicklerkabel und Entwicklerboard auszugeben, weniger ist besser. Die Software (inkl. Upload) sollte unter Linux laufen können, da wir im Falle der Homebrew-Variante parallel die Treiber für den Host entwickeln müssen, und diese Werkzeuge laufen am Besten unter Linux. Verstehe ich es richtig, dass man für jeden PLD-Anbieter eigene JTAG-Kabel verwenden muss? Es fliegen viele Schaltungen zu LPT-JTAG-Adaptern herum, z.B. dem Xilinx Parallel III und Altera Parallel Blaster, lassen diese sich denn auch an handelsüblichen USB->LPT Adaptern betreiben? Mein Notebook hat kein Parallelport. Kann man diese Kabel auch für aktuelle Modelle nutzen, solange es um günstige FPGAs geht? An interessanten Möglichkeiten habe ich soweit Xilinx-Zeug gefunden, Software ist kostenlos, FPGAs ziemlich günstig. Deren Spartan3e-Starterkit hat für 180 EUR so ziemlich alles, was man sich so vorstellen kann, und einen USB JTAG kabel, den ich auch bei künftigen In-System-Programmed designs verwenden kann. Bei Altera habe ich auch den Endruck, dass sich damit erschwinglich anfangen lässt. Gilt das in irgendeinem Maße auch für kleinere FPGA-Hersteller? In Zusammenhang mit diesem Projekt scheint Quicklogic besonders interessant, da sie "kleine" FPGAs mit eingebauten PCI-Hosts anbieten... Leider scheint es mit ihrer Distribution nicht so gut gestellt hier, und nicht mal die ungefähren Preise für deren Teile konnte ich finden... Welche andere Möglichkeiten gibt es, einen PCI host zu implementieren? Kann man sich als Hobbyprogrammierer die Softcores der FPGA-Hersteller leisten? Wie viel FPGA-Platz fressen sie, vom Kostengesichtspunkt? Was ist mit dem Opencores PCI Project - ist es nur ein PCI-Endgerät, oder kann es auch als Host fungieren? Hat irgendjemand Ahnung/Erfahrung/Tipps? im Voraus dankbar, eye
Viel Text mit vielen Fragen... Nimm was von Xilinx, kostet alles nicht viel und Programmiergerät besteht aus einer Hand voll Bauteilen. Software ist kostenlos und alle sind glücklich. Oft bekommt man Xilinx-Krempel auch günstigst bei eBay.
Bei ebay nach XILINX suchen. Ich habe dort den 4.1 Kit+CD,s für 10 Euro gekauft. Dan Bei Xilinx die Soft kostenlos downloaden. 8.x soll gut sein. Viel MBS ohne DSL :::wait: http://www.stud.fit.vutbr.cz/~xvasic11/cl.cpld/ Hier ist das gut zu sehen mit den Constsaints , bitte dort nach unten scrollen. Das ist zwar nicht in deutsch,oder englisch. Aber du kanst an den Bildern,u. Schaltungen, genau sehen was du zu designen machen must. Was auch ganz wichtig ist sind an dem Chip die GCLK = Global Clock Pins. GSET, GRESET. Global Reset, Global Tristate, Global SET usw.... Diese Pinne solte man nutzen. Gruss Holger.
Seltsam, schon 2 Antworte und keiner hat so richtig gelesen. Dem "Xilinx rult, weil es billig ist"-Gebet will ich nicht folgen, zumindest nicht stur und gedankenlos. Es kann sein, dass für mich z.B. Lattice CPLDs gut sind, die stellen welche mit RAM her, welchen ich möglicherweise als Puffer brauche, um den Bus und Prozessor zu entlasten. Andere wie Actel stellen FPGAs mit Flash her, so dass die Anzahl an Bauteilen reduziert werden kann - wichtig für die Endversion der Netzwerkkarte. Es ist noch unklar, ob das ein FPGA oder ein CPLD werden soll. Der Programmierkabel aus "einer Handvoll Bauteilen" ist für Druckerport, der physisch nicht unbedingt vorhanden ist. PCMCIA LPT Adapter wäre vielleicht eine Möglichkeit, aber die sind eben auch nicht billig. Meine Internet-Leitung tröpfelt nicht. Ich werde auch nicht bei eBay nach irgendeinem Gelegenheitskauf jagen und versuchen, irgendetwas aus ihm zu machen, das wäre getötete Zeit. Das Vorhaben ist groß und anspruchsvoll und erfordert eine systematische Herangehensweise. Ein echtes FPGA-Experimentierboard ist keine schlechte Idee. Es würde mir so einiges erlauben, zum Beispiel die Kommunikation zwischen diesem seltsamen Embedded-Rechner und einer bestehenden Netzwerkkarte für kurze Zeit anzuzapfen und die Daten im FPGA-RAM zwischenzuspeichern. Ein komplexes Design ausprobieren bevor ich zu einem einfacheren gehe, das dann erst ist ein CPLD passt, etc. Holger, ich hoffe, der Großteil der Nachricht war nicht für mich? Oder postest du es zu jeder Frage? Ich kann zwar mit Mühe und Not Tschechisch lesen, aber... was soll das? -eye
Äh und was ist jetzt eigentlich dein Problem bzw. deine Frage, mal in zwei Zeilen formuliert? Du scheinst ja wohl ziemlich genau zu wissen, was du brauchst. Also kauf dir halt das entsprechende. Wenn Gelegenheitskäufe für dich nicht in Frage kommen und du ne schnelle Internetverbindung hast, scheint also Geld keine Rolle zu spielen. Um es zu wiederholen, kaufe halt. Im übrigen ist dein Eingangspost ewig langes Gelaber. Bringe es doch bitte einfach mal auf den Punkt, was willst du jetzt von uns wissen?
Hallo. "Geld spielt keine Rolle" ist nicht richtig. Ich habe gehört, z.B. Lizenzgebühren für einen PCI-Host als Softcore liegen in einer Größenordnung von 1000 EUR und mehr, das kann ich mir ganz und gar nicht leisten. Bei etwa 200 EUR setzt die Schmerzgrenze ein. Einige Hersteller verlangen Miete für die Sofware, die in Größenordnung 100er EUR pro Monat liegen kann - das geht ganz bestimmt nicht. Auch sollten die Teile (CPLDs, FPGAs, PCI-Controller) für Endgeräte 20 EUR nicht überschreiten, wenn es geht. 1. Wie implementiere ich einen PCI HOST, so dass ich mir das leisten kann, so dass es nicht die Ewigkeit dauert, und so dass es funktioniert? Ich blättere gerade durch eine PCI Spec, sieht nach 'ner Menge Holz, ganz und gar nicht damit zu vergleichen, ein PCI-Endgerät zu bauen. Der Host muss nur ein einziges PCI-Endgerät tragen, wenn es hilft. 2. Hat jemand Meinung/Erfahrung zu "kleineren" FPGA-Herstellern, wie Lattice, Qucklogic, Actel. Ob es günstige Evaluierungsboards usw. dafür gibt. Kommentare in der Art von "für A ist B empfehlenswert" oder vielleicht Warnungen in der Art von "X ist eine Kostenfalle", "Problemfalle", "Y geht nicht mit Linux", "Z lässt sich nicht über USB programmieren" etc. So, ich gehe mal alleine suchen. Denn anscheinend kann hier niemand lesen, geschweige denn, dass jemand spezielle Erfahrung dazu hätte. -eye
Tja, preiswert, schnell implementiert, funktionsgarantie und erstes PLD Projekt beissen sich. Du musst dich entscheiden auf was du deine Prioritaet legst. Wenns nichts kosten darf, dann ist der PCI core von opencores unschlagbar. Wenns garantiert mit Haendehalten laufen soll, dann der Core vom FPGA Hersteller, oder den von PLDA kann ich waermstens empfehlen. Jedoch reicht fuer kommerzielle PCI cores 1000EUR bei weitem nicht. Software fuer Altera und Xilinx (ander Hersteller nicht ausgeschlossen) gibts gratis zum download. Funktionalitaet etwas gegnueber der Bezahlversion eingeschraenkt. Mieten musst du auch diese nicht, wobei ein Preis von 100EUR/Monat waehre nichts aussergewoehnliches, eine Jahres subscription der Software einer dieser Hersteller liegt knapp in diesem Rahmen. Was du schlussendlich fuer die FPGAs berappen musst, liegt in der Stueckzahl und Familie die du waehlst. Am besten du laesst dich von einem FAE beraten, ist in meinen Augen unerlaesslich fuer ein ernstes Projekt, wo's um Stueckzahlen geht. Wobei vorher schreibst du von einem nicht kommerziellen Projekt, also kann dir es ja wurscht sein ob das FPGA nun 20 oder 100 Euro kostet. Dein Erstes Posting hatt Fragen ueber Gott und die Welt, wundert mich nicht, dass sich da niemand die Muehe macht um genauer drauf einzugehen. Cheers, Roger
Wenn ich mich jetzt nich verlesen habe willst du an den PCI-Buss nur einen Netzwerkcontroller anbinden. Dann würde ich doch lieber die MAC in den FPGA platzieren. An die IO-Pins noch einen Ethernet-Phy und schon hast du einen Ethernetcontroller. Eine MAC bekommst du zum Beispiel bei www.OpenCores.org Stell dich aber drauf ein, das da noch ein paar Fehler drin sein könnten. Ich habe sie noch nicht benutzt. Bei www.terasic.com.tw bekommt man zum Beispiel das Altera DE1 - Development and Education Board. Mit Zoll und Versandkosten liegen wir aber schon über 200€. Die USB -> Paralleadapter kannst du für diesen Zweck vergessen, sie sind nur für die Komunikation mit einem Drucker ausgelegt. Es gibt einen Adapter, der ist aber eine Etwicklung eines Bastlers, muss mal die URL raussuchen. Bei den PCMCIA gibt es auch nur einige, bei denen die Ansteuerung noch funktioniert. Auf dem Board von Terasic ist schon ein USB-Blaster Nachbau drauf. Vor ein Paar Tagen hat jemand einen USENET Beitrag gepostet, in dem beschrieben stand, wie man Quartus unter Wine zum laufen bekommt. Spartan oder Cyclone: Beitrag "Re: Spartan oder Cyclone"
Ok, danke für die sinnvollen Antworte. >Tja, preiswert, schnell implementiert, funktionsgarantie und erstes PLD >Projekt beissen sich. Du musst dich entscheiden auf was du deine >Prioritaet legst. Auf die Nase fallen ist natürlich immer das Einfachste, und das habe ich auch fast ein bisschen vor. :) >Wenns nichts kosten darf, dann ist der PCI core von opencores >unschlagbar. Beim ersten Hinsehen sieht es nach einem Endgerät-Core aus. Aber ich habe es länger schon im Auge und werde ich mir noch genauer anschauen. >Wenn ich mich jetzt nich verlesen habe willst du an den PCI-Buss nur >einen >Netzwerkcontroller anbinden. Dann würde ich doch lieber die MAC in den >FPGA platzieren. An die IO-Pins noch einen Ethernet-Phy und schon hast >du einen Ethernetcontroller. Plan A ist, einen bestimmten PCI-Netzwerkchip zu nutzen, weil das dem nicht mehr erhältlichen Originalteil entspricht, und bestehende Software einen Treiber dafür einkompiliert hat. Die Implementierung der Hardware ist noch unklar. Plan B ist, auf die Softwarekompatibilität zunächst zu scheißen, und eine teilweise schon bestehende Hobby-Entwicklung zu nutzen. Es hat nämlich schon jemand eine ISA-Karte an den Bus anschließen können. Was noch zu tun bleibt, dem Gerät eine spezifikationskonforme ID zu geben und DMA beizubringen. Da sind mehrere konkrete Implementierungsstrategien erarbeitet, und es klappt auch sicher. Und ich glaube, da komme ich mit einem CPLD statt FPGA aus. Als Bonus ließe sich an den so entstehenden Bus noch ein Compact-Flash Kartenslot hängen... ziemlich cool, wenn auch etwas unsauber. Anzahl der Bauteile wäre minimal: CPLD, ASIX oder Davicom MAC/PHY in einem Chip, Büchse mit eingebauten Magnetics, fertig. Für Treiber und Qualität ist ziemlich gut gesorgt. Für unsere interne Zwecke reicht Plan B. Man könnte sogar versuchen, alte Software zu hacken... Aber mit dem Erfolg könnte man schwer rechnen. ASM-Level-Debuggen auf einem Embedded, auf einem Hitachi-RISC-Prozessor, wo das ganze Betriebssystem mit in jeder Executable drin ist und alle Symbole wegoptimiert sind... da sieht man ja gar nichts! Es könnte da aber ein paar krumme Wege geben. Die Geräte würden in kleiner Serie hergestellt werden, und der Preis für einzelne Teile sollte deswegegen schon vernünftig bleiben. Nichtkommerziell ist es in dem Sinne, dass ich nicht damit rechne, mir die gemachte Arbeit von dem Erlös bezahlen zu lassen, sondern der Verkaufspreis soll lediglich die unmittelbaren Herstellungskosten einigermaßen abdecken. Und wer weiss, vielleicht artet das ja noch in Großserie aus - größtmögliche anzunehmende Absatzmenge ist 20000, aber jetzt werden es etwa 20 Stück sein. >Die USB -> Paralleadapter kannst du für diesen Zweck vergessen, sie sind >nur für die Komunikation mit einem Drucker ausgelegt. Es gibt einen >Adapter, der ist aber eine Etwicklung eines Bastlers, muss mal die URL >raussuchen. http://www-user.tu-chemnitz.de/~heha/bastelecke/Rund%20um%20den%20PC/USB2LPT/ Ich google ja schon seit Monaten. Zu Spartan vs. Cyclone, danke, sehr interessant, insbesondere Vergleich der Features der Programmierumgebungen. Die ziemlich günstigsten Boards sind die unter http://www.fpga4fun.com/board_Xylo.html und die sind für Cyclone. Terasic ist auch interessant, danke. Beides bestätigt ein wenig meinen instinktiven Drang, mich nicht in den Xilinx-Reigen einbinden zu lassen. Danke. -eye
http://www-user.tu-chemnitz.de/~heha/bastelecke/Rund%20um%20den%20PC/USB2LPT/ Den Entwickler dieses Adapters hatte ich vor 1 Jahr oder so gefragt, ob der auch zum Programmieren von FPGAs funzt. Er verneinte. Kann sein dass ich da was dran geändert hat. Ich habe mir mittlerweile eine PCMCIA-Karte gekauft. Zumal, wenn ich die Webseite überfliege, kein Linux supportet wird.
Also mit Host meinst du einen PCI-initiator und mit Slave ein PCI-Target? Kennst Du das: http://techwww.in.tu-clausthal.de/Projekte/Abgeschlossen/VHDL-Entw%FCrfe/pci-tutorial/
Mhmm, soweit mein dünnes Verständnis zulässt, fungieren alle geräte typischerweise sowohl als Initiator als auch als Target. Die Funktionseinheit, die mir eher schleierhaft ist und Angst macht, ist der Moderator, und den muss der Hostcontroller implementieren, ein Endgerät dagegen nicht. Aber: ich habe mir mittlerweile die gesamte Literatur besorgt, lese mich da ein, und dann weiss ich mehr. Danke für den Link.
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.