Hallo, ich möchte ein SD-RAM oder ein DDR-RAM an ein Xilinx Spartan 3-PGA anschließen. Da dies leider ziemliches Neuland für mich ist, wäre es super, wenn Ihr mir helfen könntet: 1) wie schließe ich ein SD-RAM oder ein DDR-RAM hardware-mäßig an ein FPGA an ? Welche Pins sind zu benutzen etc. (evtl. Links im Internet) 2) wie sieht das notwendige timing bzw. die notwendigen Lese-und Schreib-Operationen für das RAM aus ? Wie realisiere ich es im FPGA mittels VHDL (Links zu Modellen ?) 3) das ganze soll später benutzt werden, um Grafiken in dem Speicher abzulegen uns später auf einem TFT auszugeben. Wie kann ich eine Grafik in das RAM laden ? Das ganze soll irgendwie mittels VHDL realisiert werden. Vielen Dank für die Hilfe....
:-) auch da kannst du dich mal hier ... http://direct.xilinx.com/bvdocs/userguides/ug130.pdf hinklicken... Dann schaust du aber auf die Seite 11. Da ist erklärt die der Speicher an den Spatan angeschlossen ist. Axel MEineke
>wie schließe ich ein SD-RAM oder ein DDR-RAM hardware-mäßig an ein >FPGA an? Anlöten? >wie sieht das notwendige timing bzw. die notwendigen Lese-und >Schreib-Operationen für das RAM aus ? Wieso schaust Du nicht einfach im Datenblatt nach? >Wie kann ich eine Grafik in das RAM laden ? Indem Du es ins RAM schreibst?
OK, deine Antworten helfen mir nicht so wirklich weiter (sorry, dass ich Anfänger bin). Aber kannst du mir erklären (möglichst ausführlich), wie ich eine Grafik in das RAM lade. Wenn möglich in einer VHDL-Routine. Ich nehme an das RAM wird fester Bestandteil meines Adressraum des FPGA (kenne es nur vom Microcontroller so). Wie lade ich eine Grafik in das RAM, um sie später auf ein Display wieder auszugeben. Danke....
1) Manche FPGA haben bestimmte Pins für den Anschluss von SDRAM / DDRRAM. Mußt du im Datenblatt deines FPGA nachschauen. http://direct.xilinx.com/bvdocs/appnotes/xapp454.pdf 2)Wenn du Anfänger bist, würde ich dir empfehlen einen fertigen RAM Controller zu nehmen. Schau direkt bei Xilinx oder bei Opencores (http://www.opencores.org/browse.cgi/by_category) 3)Kommt drauf an was du für Interfaces zur Verfügung hast. Per serielle Schnittstelle o.ä.
>Aber kannst du mir erklären (möglichst ausführlich), wie ich eine >Grafik in das RAM lade. Wenn möglich in einer VHDL-Routine. Nein kann ich nicht. Welche Grafik denn überhaupt? Welches TFT-Display? Welches SDRAM? Was genau willst Du eigentlich bauen? Willst Du oder musst Du? Da Du offenbar - oder irre ich mich da? - keinerlei Ahnung von VHDL und/oder FPGAs/CPLDs hast, wieso lernst du nicht zuerst die Grundlagen bevor Du mit so einem Riesenprojekt anfängst? Lies Dir zuerst mal ein Buch über VHDL durch oder schau im Netz nach Tutorials und Ähnlichem. >Ich nehme an das RAM wird fester Bestandteil meines Adressraum des >FPGA Ein FPGA hat keinen Adressraum, weil ein FPGA kein Mikroprozessor ist. Ausser natürlich Du implementierst einen Prozessor mit dem FPGA. Ein FPGA wird nicht "programmiert"; in einem FPGA läuft kein Programm ab. Ein VHDL-"Programm" ist eine Beschreibung digitaler Logik.
OK, also ganz freiwillig mache ich das nicht. Aber das kann man sich nicht immer aussuchen (Studium etc...) Mit dem Rest liegst du schon ganz richtig. Das ganze Ding mit FPGA ist Neuland für mich. OK ein FPGA hat kein Adressraum, aha (wieder etwas dazugelernt). Zu meiner Verteidigung muss ich aber sagen, dass es Anfänger schwer auf diesem Gebiet haben. Man wird nicht gerade mit Infos darüber zugeschüttet wird - aber dafür gibt es ja Foren wie dieses, in dem man geholfen bekommt. Also mit Mikrocontroller habe ich schon gearbeitet und auch VHDL ist mir nicht fremd (aber kein Profi). OK, ob man jetzt VHDL als Programmiersprache ansieht oder nicht, kann man sich streiten - OK genau genommen ist es keine Programmiersprache, das stimmt. Gruß und Danke....hoffe aber auf weitere Hilfe....
Es genügt übrigens wenn du einmal postest... >OK, also ganz freiwillig mache ich das nicht. Aber das kann man sich >nicht immer aussuchen (Studium etc...) So hörte es sich auch an. Studienprojekt oder wie? >Zu meiner Verteidigung muss ich aber sagen, dass es >Anfänger schwer auf diesem Gebiet haben. Da hast Du wahr. Das schwierige an VHDL ist nicht die Sprache an sich, sondern dass viele Anfänger einfach keine Ahnung von Digitaldesign haben. Du musst halt wissen was kombinatorische und sequentielle Logik ist; du musst die elementaren Bausteine digitalter Schaltungen kennen. Dann hast Du auch keine Probleme sie mit VHDL (oder Verilog oder was auch immer) zu beschreiben. Wenn Dir dieses Wissen abgeht, wirst Du immer wieder Probleme bekommen.
Beiträge, wie die von Jochen Pernsteiner, kann man getrost überlesen. Sie zeigen nur den oberflächlichen Charakter eines mitteilungsbedürftigen Menschen, der eigenlich keine Ahnung hat. spoonox
Wobei er schon recht hat. Das Problem ist bei den meisten zu verstehen, das der programmtext nicht immer sequenziell ablaufen. Brauchst du denn noch tipps für den einstieg in VHDL??? Da kann ich dir nen paar nette links posten. Es ist doch auch wirklich schwer dir die komplette Lösung bei einem so komplexen Thema zu posten, da musst du doch zustimmen oder?
Über ein paar links zu VHDL wäre ich immer dankbar. Habe zwar schon mit VHDL gearbeitet, aber ein Profi bin ich echt noch nicht... Mir ist schon klar, dass man mir wahrscheinlich keine komplette Lösung für mein Problem geben kann. Über ein paar Tipps, Ansätze oder auch nur ein paar Links (über Speicher, Anschluß von Speichern an FPGA & MC, VHDL-Modelle von Speichern etc), wäre ich schon dankbar und würde mir auch reichen... Das ich mich letztlich damit allein durchschlagen muss, ist klar. Aber ich bin über jede Hilfe dankbar. Gruß an Jochen Pernsteiner ;-) Gruß & Danke...
Moin... Da muss ich mich doch auch mal melden, das kommt mir doch alles so bekannt vor. Also, meine Erfahrungen: Besorg dir ein EVK. Das Original von Xilinx ist nicht schlecht und kostet nur knapp 100eur. Das JTAG Kabel das es dazu gíbt kostet allein schon 60eur. Weiß jetzt aber nicht ob DRAM drauf ist. Avnet und Memec haben auch gute Boards. Das Avnet habe ich gerade mit einem V2p vor mir, die Fehler sind erträglich. - Vergiss alles was Xilinx veröffentlicht. Nichts davon läuft, egal wie schön die das reden. - Wenn du nicht musst, vermeide DDR-RAM. SDRAM reicht dir! - Interessant ist der Xmil. Bekommst du als registrierter Benutzer. Der generiert die Interfaces auf Knopfdruck. - Design ist trotzdem Schrott => komplett überarbeiten. Dein kleinstes Problem wird übrigens das VHDL sein. Ich gebe (endlich) nächste Woche meine Diplomarbeit ab: DDR-SDRAM an Virtex2p und Migration an Virtex4. Macht keinen Spass, ohne passende Software. Womit willst du Synthese uns Simulation machen? -- Sven Johannes
Morgen... Also um deine Unsicherheit zu beseituigen, Das Spartan-3 Starter Kit hat 2x256kbx16 SRam. Aber mich würde das Xmil interessieren. Ixch gestehe, das ich das noch gar nicht kenne. Bei Xilinx finde ich auch nichts wo ich genauere Infos dazu bekomme. Hast du ein Manual dazu? Oder ein Link wo man sich informieren kann?
Moin... wie gesagt, gibts gegen Registrierung. Dann bekommt man auch die confidential Xapps, die sind immer so 50% unfangreicher als die "normalen" Versionen: http://xilinx.com/products/design_resources/mem_corner/index.htm Das Tool heißt MIG, xmil ist eine andere Version, sorry. Das wirklich nette an dem Ding ist, dass alle Delaylines damt Kompensation automatisch angelegt werden. Das was an Source ansonsten ausgespuckt wird kannst du aber ziemlich vergessen. Xapp688c und 678c sollen das eigentlich dokumentieren; das hat man dem Entwickler aber wohl nicht mitgeteilt... BTW: ich habe nochmal etwas weiter gelesen. Du willst also ein Display sammt Speicher anklemmen. Bist du sicher das SDRAM da die beste Lösung ist? Ich würde mir erstmal das Starter Kit auf den Tisch legen und versuchen den bereits vorhandenen VGA Port zum Leben zu erwecken. DAs Board hat schon alles was du brauchst! -- Sven Johannes
Haben wir ihm auch schon ans Herz gelegt. Er ist ja auch schon fleissig am Studieren, wie das mit back porch front porch etc so abläuft. (Anderer Thread hier im Forum). Ich denke seine Aufgabe ist nicht die leichteste. Aber das andere werd ich mir mal genauer anschauen. Klingt sehr interessant. Danke
@ Sven Johannes > - Vergiss alles was Xilinx veröffentlicht. Nichts davon läuft, egal > wie schön die das reden. Kann ich eigentlich nicht bestätigen. Imho kann sich eine Firma wie Xilinx es sich auch nicht leisten unverifizierte Komponenten ins Netz zu stellen. Wenn man sich die Manuals zu den Komponenten durchliest und genau das macht, was da drin steht, dann funktionieren die auch tadellos. Was du vielleicht meinst: Die Xilinx Cores sind nicht gerade mit generics gespickt ... d.h. sie sind meist nur auf einen spezifischen Fall zugeschnitten. Da diese Cores aber meist nur als Netzliste (EDN) vorliegen, kann man da leider aber nichts mehr dran ändern ... naja heißt es halt selbst schreiben. gruß michael
Moin... Ich meine nicht die Cores, die sind sogar ziemlich gut durchgetestet. Versuch mal eine der Xapps zum laufen zu bekommen. Da kommt man sich vor als ob das ein Mensch mit Ahnung entworfen und zu 80% gebaut hat und dann kam der Azubi der die letzten 20% vermixt. So Sachen das laut Dokumentation Fifo verwendet werden, im Code sind dann Schieberegister verbaut. Timer die dokumentiert sind, aber niemals abgefragt werden usw... -- Sven Johannes
Kannst du mal eine XApp nennen mit der du Probleme hast? Vllt kann ich dir ja helfen. Ist vllt etwas Offtopic aber egal ...
Nun mir scheint eh als ob TPSK Kapituliert hat. Na ich hoffe mal das er noch nicht aufgegeben hat sein Videoprojekt in die Tat umzusetzen.
Moin... @michael 253,678(c),688(c),758(c) und noch so einige Andere. KEINE von denen war auch nur ansatzweise lauffähig, entgegen der Doku. Viele Fehler kann man beim Entwurf eigentlich nicht übersehen haben, es sei denn man wollte sie verstecken. Sorry, aber mit denen bin ich durch. Nett war das Ding auf das mein Kollege gestossen ist: Serielles Interface im Spartan. Schieberegister zum deserialisieren eingesetzt. Korrekt implementiert, danach auskommentiert und mit falscher Schieberichtug wieder eingefügt. Dazu dann noch die Tatsache das die Dokumentationen nicht immer SO GANZ den tatsächlichen Designs entsprechen.... -- Sven Johannes
Moin, moin...I'm back (Gruß an Axel). Also ich habe noch nicht kapituliert mit meinem Video-Projekt (ganz im Gegenteil, es ärgert mich, dass ich so wenig Ahnung von der ganzen Thematik habe, dass ich mittlerweile wieder ziemlich motivieren bin - auch wenn ich immer noch nicht durchblicke...) Aber mal zurück zu MEINEM Problem: Zusammenfassung: zur Darstellunng einer Grafik benötige ich ein RAM (DDR-RAM oder SRAM - je nachdem, wie meine Vorgaben sein werden), das praktisch als Grafikspeicher dient. Als FPGA kommt ein Xilinx Spartan 3 zum Einsatz. Ich habe mich nun etwas in die Thematik von RAM-Speichern eingelesen. Meine Frage ist (nach wie vor), wie ich ein DDR-RAM oder SD-RAM an ein FPGA anschließe. Am liebesten wäre mir ja, wenn mir einer mal eine Schematic (von Speicher und FPGA mit allen notwendigen Steuer- und Datenleitungen) und dazu passenden VHDL-Code eines RAM-Controllers schicken könnte. Ich weiß, ist vielleicht etwas zu viel verlangt, aber ich freue mich natürlich auch über jede andere Hilfe (Gruß und Kompliment an alle User dieses Forums). Achso, so ganz nebenbei ist mir auch noch nicht klar, wie ich dann eine Grafik in den Speicher bekomme. Kann ja bestimmt nicht einfach sagen "speicher xxx.jpeg" ;-) Achso an alle "FPGA-Profis": schaut mal bitte unter meinen anderen Beitrag "Display-Ansteueung mittels Xilinx-FPGA" -- Hilfe ??? Danke
Hi Sven Johannes, ich lade mir mal "MIG" herunter und werde es studieren. Da du dich ja in deiner Diplomarbeit mit fast der gleichen Thematik (und den gleichen Problemen) beschäftigt hast, scheinst du ja mein Mann zu sein (sorry, die anderen natürlich auch ;-). Super, dass su auch meinen anderen Beitrag gelesen hast. Das Problem ist, dass ich zur Realisierung nicht einfach ein fertiges Evaluation-Board mit VGA-Port etc. einsetzen kann, sondern letztendlich auch ein eigenes Board entwerfen muß, um alles zu realisieren. So, jetzt wißt ihr auch, warum ich so viele Fragen habe...
Autsch... du musst ein eigenes Board entwerfen??? Argh... das wird nicht ganz ohne. Das musst du auch alles Bestücken lassen. So weit ich weiss, gibt es Spartan-3 Bausteine nur in einem BGA gehäuse oder??? Ist das für dich auch ne Diplomarbeit??? Dann hast du wirklich noch viel zu tun. Ich habe aber immer noch nicht so richtig verstanden was du da machen must. Du hast nen Jpeg welches du auf dem Display darstelen sollst? Oder wie habe ich das verstanden.
OK, also es ist eine Diplomarbeit für mich (Ahhaaa !!!), allerdings will ich nicht allzuviel darüber reden (Firma etc...) Also ich muss ein Board entwickeln, auf dem u.a. ein FPGA und ein Speicher (DDR-RAM oder SD-RAM) enthalten ist (Layout und Bestückung ist kein Problem). Mit Hilfe dieses Board soll ein großes Grafik-Display angesteuert werden. Die anzuzeigende Grafik befindet sich im Grafikspeicher... So ganz grob mein Vorhaben bzw. mein Problem...
Hallo TPSK Muss es denn unbedingt SD-RAM oder DDR-RAM sein? Wieviele Pixel hat denn das Grafik-Display? Ich denke nämlich, dass das nur ein Bildwiederholspeicher sein muss und da reicht ein SRAM aus. Falls du dennoch vorgefertigte Bilder aus einem Speicher holen sollst, dann wäre Flash auf jeden Fall 'ne Alternative. Bevor du dich in die Timings von SD-RAM und DDR-RAM eingearbeitet hast ist das meiner Meinung nach 'ne sinvollere Lösung.
@ Michael: Das Display ist hier beschrieben : http://www.mikrocontroller.net/forum/read-9-184389.html
@TPSK: Mußt du "nur" die Schaltung entwickeln? Vielleicht nützt dir das Blockschaltbild was: http://www.xess.com/prod035.php3 oder : http://direct.xilinx.com/bvdocs/appnotes/xapp134.pdf
Moin... Na putzig. Also deine Probleme habe ich auch schon durch. Ein Display am Xilinx habe ich als Studienarbeit gemacht, DDR-SDRAM als Diplom. Wenn du die Platine auch nochmachen willst wünsche ich dir jetzt schon viel Spass... Nochmal der Tip: Nimm dir ein EVK vor das zumindestens grob das macht was du anstrebst. Wenn du alle Baustellen gleichzeitig anpackst weisst du nacher nicht mehr wo du eigentlich stehst und wer oderwas dir in die Suppe spuckt! - SRAM ansteuern. Wenn Daten kommen=> gut. - VGA Signal erzeugen. Wenn IRGENDEIN Bild da => gut. - Eigenes Board entwerfen, alte SRAM Ansteuerung => Daten? - eigene VGA Lösung, alte bilderzeugung => gleiches Bild? Dann hast du zumindestens nur HW oder SW als Fehlerquelle. Fallsches Design und verkorkste Logik => Ticket in die Hölle! -- Sven Johannes
@ Sven an welcher Uni warst du? Irgendwie kommen mir deine Studien- & Diplomarbeit als auch dein Name bekannt vor ...
@ Michael Noll... Noch zu deinem Einwand: "ich denke, dass das nur ein Bildwiederholspeicher sein muss". Kannst du mir genau dessen Bedeutung erklären oder etwas mehr Info darüber geben, wann, wie und wozu ich so etwas brauche ? Ich bin mir natürlich nicht sicher. Letztendlich sollen irgendwann mal Grafiken auf einem Display erscheinen. Ich denke, die müssen dann auch in irgendeinem Speicher stehen, oder ? und du würdest dazu einen Flash nehmen ? Mmmhhh, macht eigentlich Sinn, da die Grafik im RAM ja nicht dauerhaft bleiben. Gruß
Abend... Sorry, aber langsam glaube ich, du hast da bei deiner Diplom(oderwasauchimmer)-Arbeit etwas zu hastig nach den Sternen gegriffen - ist meine persoenliche Meinung, musst du also nix drauf geben. Jedoch zu deiner Frage: Bildwiederholspeicher - eigentlich sagt der Name schon alles? Bild: ... deine Daten wiederhol: zyklisch speicher: erklaert sich von selbst, oder? Wie ein CRT-Monitor oder ein Display funktioniert weisst du ja bestimmt? Nun, im Allgemeinen kann man sagen, dass ueber einen laengeren* Zeitraum der Inhalt des Displays/Monitors nicht veraendert wird. Das Bild aber muss zyklisch und kontinuierlich aufgebaut werden. Soll heiszen: In deinem Bildwiederholspeicher (ab jetzt kurz BWS) liegt z.B. an Adresse 0000 der Farbwert fuer das Pixel ganz links oben und z.B. an Adresse 0FFF der Farbwert fuer das Pixel ganz rechts unten. Nun zaehlst brav deine Adressen hoch und erzeugst noch, lapidar gesagt, zusaetzlich die fuer dein Display noetigen HSYNC und VSYNC-Signale. An der letzen Adresse angekommen, springst wieder auf deine Startadresse (daher also wiederholen) Die Daten fuer den Bildwiederholspeicher kannst du dir woher auch immer holen. Du musst halt nur beachten, dass du waehrenddessen du einen Zyklus durchlaeufst nur bedingt schreiben (Tristate) oder nur mit Aussetzen schreiben kannst. Prinzipiell ist das aber moeglich, da ja egal ist woher die Daten vom Datenbus kommen. Aber vorsicht mit deinen WE und OE-signalen am Speicher. Vllt. ist dir bei LCD-Displays an Ticketautomaten schon mal aufgefallen, dass wenn du ein anderes Menue waehlst, kurz der Bildschirm schwarz wird. In dieser Zeit wird eine neue Grafik in den BWS geschrieben, d.h. der Zyklus des Auslesens wurde Angehalten um neue Bilddaten in den BWS zu laden. Hoffe, du hast jetzt so einigermaszen das Prinzip eines BWS verstanden. Wir beantworten dir gerne weiterhin deine Fragen. Also nicht scheuen Schoenen Abend noch.
Moin... @Michael ich bin/war an der HAW Berliner-Tor in Hamburg. Technische Informatik. Habe am Montag mein vorläufiges Zeugnis bekommen ... (freu) Ich kann garnicht sagen WIE SEHR ich die Schna*** voll habe! -- Sven Johannes
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.