Ich bin zurzeit in Amerika fuer ein Praktikum und soll nun das ml 507 board (virtex 5 XC5VFX70T) programmieren und mit Rocket I/O protokoll ausstatten. Welche naeheren Spezifikationen das Protokoll haben wir ist noch unklar, wird aber sicher ueber "fiber optic" uebertragen zu einem anderen FPGA. Leider muss ich sagen das ich bis auf Hello World und ein paar blinkende Leds keine Ahnung vom VHDL FPGA programmieren habe. Somit tu ich mich im Moment auch mit dem Verstaendniss der gesamten Rocket I/O Sache noch ein bisschen schwer. Vielleicht koennt ihr mir mal grundsaetzlich ein paar Fragen beantworten. 1. Rocket I/O ist ein Uebertragungsstandard oder eigenes protokoll? 2. Also nehmen wir an ich will einen integer schicken ueber Rocket I/O an ein anderes FPGA board, dann laeuft das wie ab? Hier gehts mir Hauptsaechlich mal um das Verstaendniss , warum gibt es denn fuer die Rocket I/O noch verschiedene Standards wie Aurora, Fiber.... XAUI ?? Was ist das, sind ja Protokolle , was ist dann Rocket I/O auch ein Protokoll?? 3. Vielleicht hat ja jemand auch noch ein kleines beispiel rumliegen, das klar ausweist ..... -- hier Daten fuer Senden --- gehen an (was auch immer Aurora Protokoll---- geht an Rocket IO -"Fiber optic"----zum 2 ten FPGA --- Rocket IO----Aurora.... --- hier Daten die Empfangen werden, sowas waere zum Verstaendniss super!! 4. !! Zumal ich ja nichtmal weis ob das so laeuft.... hab mir bereits mit dem Core generator Rocket IO Kerne erzeugt aber was ich dann mach und wie ich die einbinde und Daten sende da weis ich leider nicht weiter...... Danke bereits im Voraus, Andi
Hättest du nicht zig Postings gekapert, hättest du vielleicht gemerkt, dass ich dir hier Beitrag "Re: IP Core Wizard Rocket IO Xilinx" schon eine ausführliche Antwort gebenen hatte.
Doch hab ich gesehen danke, dachte nur so wird schneller jemand aufmerksam. Danke für die Infos natürlich.
Andi schrieb: > dachte nur so wird schneller jemand > aufmerksam. Ja. Da wird jemand aufmerksam. Aber im negativen Sinne... Duke
Hab mich nun eh entschuldigt... allerdings auch in jedem Thread, ohhhh kommt mir grad war wohl auch nicht die beste Idee, naja sie werdens schon ueberleben, bisschen Nachsicht mit einem Neuling ;)
Hast du denn das von mir verlinkte Xilinx Dokument durchgearbeitet? Das hilft dir auf jeden Fall für das absolut nötiges Basiswissen. Wenn du dann spezielle Fragen hast, kannst du gern nachfragen.
Ja hab ich danke, warte im Moment auf mehr INFOs von einem anderen Kollegen. Ist immer noch nicht sicher welche Art des Datenaustauschs sie verwenden, hab mir sagen lassen vielleicht doch nicht Rocket IO.... wir werden sehen, danke fuer das Angebot natuerlich, ich melde mich sobald ich was weiss und nicht mehr weiter komme.
Sodala da hab ich doch gleich nochmal eine Frage! Bin jetzt mal soweit durch, hab das abgeklaert, die Kommunikation laeuft ueber Aurora 8B/10B zwischen einem ML405 eval board (FPGA: XC4VFX20) und meinem ML507 eval board (FPGA: XC5VFX70T). Hab mir nun einmal mit dem Core Generator einen Aurora Single Line 8B/10B Core erzeugt diesen in ein neues ISE 12.2 Project eingebunden und wollte dieses nun mit Chipscope Pro Analyzer testen, kompilieren funktioniert, runterspielen mit Impact auch, wenn ich mich dann allerdings mit Chipscope drauf verbinde passiert mal garnichts, ich sehe DATA ports welche alle LOW sind bis auf einen , konnt aber noch nicht rausfinden welcher das ist, sollte ich nicht etwas sehen wie ein PWM signal, wenigstens vom CLOCK signal, oder so welches im Testmodus (Chipscope) von TX nach RX ueber den LOOP Modus geschickt wird?? Hab mal das automatisch erstellte .UCF angehaengt, auch hierzu mal eine Frage also das erste ist die REFCLK 8ns sind 125 MHZ , das passt so moechte ich das auch, die 2 weiteren sind 2 mal USER CLK(8ns = 125 MHZ und 16ns = 62.5 MHz) ok fuer was werden die verwendet? Und warum gibt es dort noch ein " mgt clock module constraints " welches auf eine differential CLK zugreift?? Wie kann ich rausfinden mit wieviel MHz diese Clk laeuft? Nochmal was grundsaetzlich, an sich laueft der Core jetzt schon wenn ich mein ISE projekt runterspiele, oder?, das Board sendet und wartet auf Daten zum empfangen? Koennte ich das auch testen indem ich TXDATA an einen Button haenge und RXDATA an ein LED, Ausgang und Eingang mit einem echten Kabel verbinde und sage wenn RXDATA != 0 dann LED an? Moechte nur testen ob die Uebertragung schon lauft und das Board schon sendeet und empfaengt! Oder bin ich da noch weit davon entfernt? ######################################################################## ######## ## ___ ___ ## / /\/ / ## ___ \ / ## \ \ \/ Vendor : Xilinx ## \ \ Version : 1.7 ## Application : GTX Wizard ## ___ /\ Filename : rocketio_wrapper_top.ucf ## \ \ / \ ## \___\/\___\ ## ## ## USER CONSTRAINTS FILE FOR MGT WRAPPER EXAMPLE DESIGN ## Generated by Xilinx GTX Transceiver Wizard ## ## Device: xc5vfx70t ## Package: ff1136 ################################## Clock Constraints ########################## NET tile0_refclk_i PERIOD = 8.0 ns; # User Clock Constraints NET "tile0_txusrclk20_i" TNM_NET = "tile0_txusrclk20_i"; TIMESPEC "TS_tile0_txusrclk20_i" = PERIOD "tile0_txusrclk20_i" 8.0; NET "tile0_txusrclk0_i" TNM_NET = "tile0_txusrclk0_i"; TIMESPEC "TS_tile0_txusrclk0_i" = PERIOD "tile0_txusrclk0_i" 16.0; ######################## locs for top level ports ###################### #GTX PLLLKDET pins NET TILE0_PLLLKDET_OUT LOC=AG25; #LED ######################### mgt clock module constraints ######################## NET TILE0_REFCLK_PAD_N_IN LOC=H3; NET TILE0_REFCLK_PAD_P_IN LOC=H4; ################################# mgt wrapper constraints ##################### ##---------- Set placement for tile0_rocketio_wrapper_i/GTX_DUAL ------ INST rocketio_wrapper_i/tile0_rocketio_wrapper_i/gtx_dual_i LOC=GTX_DUAL_X0Y5; Danke bereits im Voraus fuer die Antworten! Andi
Andi schrieb: > Nochmal was grundsaetzlich, an sich laueft der Core jetzt schon wenn ich > mein ISE projekt runterspiele, oder? Möglicherweise schon. Bevor ich sowas auf dem Board teste, schaue ich aber in der Simulation nach, ob sich dort was tut. In den allermeisten Fällen habe ich nämlich irgendwas falsch konfiguriert, so das es auf dem FPGA gar nicht laufen kann. In der Simulation kann ich aber viel besser der Ursache auf den Grund gehen. > Koennte ich das auch testen indem ich TXDATA an einen Button haenge und > RXDATA an ein LED, Ausgang und Eingang mit einem echten Kabel verbinde > und sage wenn RXDATA != 0 dann LED an? Moechte nur testen ob die > Uebertragung schon lauft und das Board schon sendeet und empfaengt! Könnte funktionieren. Aber genau das (Tastendruck + LED), läßt sich auch super einfach simulieren. Ich würde allerdings zum Testen zwei LFSR nehmen. Eins auf der Sendeseite und zum Vergleich eins auf der Empfangsseite. Bei Abweichungen wird dann ein Error-Flag (LED) gesetzt. Duke
Also ich hab nun mal die Simulation gestartet, nur den generierten RocketIO Core, wie erwartet hab ich einen Haufen 'U' = "uninitialized" INPUTs bekommen, nun dachte ich mir ich koennte diese ja einfach am Beginn meines Codes mit einem INITIAL Block einfuegen sowas wie das hier, process begin signal_a <= '0'; signal_b <= "000000"; ......... ......... ......... wait; end process; allerdings habe ich Schwierigkeiten den richtigen Platz zu finden, damit meine ich wo auch immer ich bis jetzt diesen Block hingesetzt habe bekam ich einen Error, daher nun im Anhang mein rocketIO_wrapper CODE und ein Screenshot meines ISIM Fensters damit ihr einen Ueberblick habt, meine Frage wo muss ich meine Signale oder eben auch die CLKs initialisieren, wo soll ich den Block hinsetzen im Code??? Bzw. sollte ich das so machen oder gibt es eine galantere Methode?? Danke fuer den Tip mit den LFSR, gute Idee werd ich sobald die SIM laeuft mal ausprobieren! Danke wieder mal im Voraus, Andi
Wenn du in ISE eine Test Bench erstellst (New Source -> Test Bench) dann macht der das automatisch für dich. Jedenfalls alles auf 0. Ob das immer sinnvoll ist, musst du selbst herausfinden. Auch für die Clocks wird ein Prozess erzeugt. Und du darfst natürlich nicht das RocketIO MOdul selber simulieren, sondern die Testbench. Hast du denn überhaupt schon mal was mit FPGA und VHDL gemacht? Da fehlen ja die grundlegendsten Kenntnisse. Und hast du inzwischen mal den User Guide für die Rocket I/Os und das von mir lverlinkte Paper durchgelesen?
Hi, danke fuer die schnelle Antwort. Ja hab schon mit FPGA und VHDL "gearbeitet", war ein Hobby waehrend eines nicht sehr anstrengenden Semesters, jedoch ohne Simulation. Wie bereits weiter oben beschrieben waren das sehr sehr einfache Basisprogramme (LED, SWITCH ,.....). Und ja habe bereits den User Guide für die Rocket I/Os und das von dir verlinkte Paper durchgelesen. Und tut mir natuerlich leid wenn ich eure Zeit so in Anspruch nehme, bin wirklich sehr dankbar ueber die Hilfe. :)
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.