Hallo, ich muss eine PCIe Schnittstelle mit einem FPGA Virtex 5 zum laufen bringen. Habe dazu das ML505 Board von Xilinx und wollte den Jungo driver für den PC verwenden. Stehe noch ganz am Anfang und suche nun ein kleines Beispiel und Hilfe. Werde den "Endpoint Block Plus Wrapper for PCI Express" verwenden. Habe den Core schon erstellt und nun ist die Frage wie kann ich selber Daten zwischen PC und Board schicken? Was muss ich auf dem Board alles Programmiertechnisch realisieren um Daten an den PC zu schicken? Würde gerne ein Paket vom Board an den PC schicken die Daten verarbeiten. Wird eine PCIe mit einer Lane. Hat zufällig jemand ein einfaches VHDL Beispiel? oder sonstige hilfe? Danke schonmal
Ich hab das als Vorbereitung auf die Implementierung von PCIe auf einem Virtex5 auf einem anderen Board gemacht. Beispielcode wäre jetzt etwas zu umfangreich, aber zu den Erfahrungen: *) Das Xilinx-Beispieldesign läuft an sich out of thex box. Man muss aufpassen, ob es sich beim FPGA um ein ES handelt (das ist bei uns der Fall), dann muss man einen Patch für den Coregenerator installieren. Ohne den Patch hat der Rechner nicht gebootet. *) Wenn man Anpassungen machen will muss man an sich nur in die RX_ENGINE und die TX_ENGINE hineingreifen. Ich hab die RAMs durch einen eigenen Dual-Port RAM ersetzt hinter dem dann das Design sitzt, das unsere Maschine steuert. Debugging kann eine zeitlang dauern, bei uns ist der Rechner zb eingefroren, als ich eine falsche Längenangabe beim Rücksenden von Daten hatte. Man muss also damit rechnen dass kleine Fehler schon das ganze in den Abgrund reißen können. *) Wir haben einen eigenen Treiber, der aber kein DMA kann sondern die Funktion iowrite32 benutzt. Das höchste der Gefühle bei uns ist bisher das verschicken von 2x32 bit Datenpaketen. Es reicht mal vorläufig. *) Unbedingt bei Xilinx nach Ressourcen zu dem Core suchen, es gibt unter anderem zur Verfügung gestellte UCF Files. Jetzt läuft das Design stabil, wir hatten bisher keine Probleme.
Danke für die Hinweise damit habe ich ja schon mal einen Einstieg. Auf den Jungodriver bin ich nur gekommen da das bei Xilinx stand das man den nehmen kann. Mir geht es auch erstmal nur darum das ich Pakete schicken kann brauche erstmal kein DMA. Ist der Treiber den du benutzt frei Verfügbar? Wenn ja wo? *) Was bedeutet um einen ES handelt? *) verstehe ich das richtig das ich wenn ich Pakete senden will das nur in den TX_ENGINE bzw RX mache? *) Habe beim Coregenerator die Version 10.1 *) hast du ein Einfaches Design das du mir z.b. per E-Mail zukommen lassen könntest? Danke
*) ES heißt Engineering Sample, das kann man aus der Partnummer vom FPGA herausfinden. *) Bzgl Senden/Empfangen: Ich habe abgesehen von anderen Signalen die ich in die Top-level entity führen musste, die Files von Xilinx so genommen wie sie waren und die TX und RX Engine State Machines verändert. Dabei habe ich ganz einfach ein wenig mehr states eingeführt, sodass auch längere Pakete empfangen werden können. Wenn man sich aber fix auf 32 bit Pakete beschränken kann (damit haben wir zum ML505 einen Durchsatz etwas über 200Mbit/s gehabt) muss man an den Engines denke ich kaum was ändern. *) Ich hab immer noch die 9.2er vom Coregenerator und benutze den Core in der 1.5er Version. Es würde mich sehr interessieren, wie gut der Core in der 1.7er funktioniert, insbesondere wie schwer es ist, dass er bei der Synthese das Timing schafft. Bei mir habe ich immer wieder so nette Slacks von einer Handvoll Picosekunden also viel Luft ist da wohl nicht. *) Noch ein kleiner Tipp: Die Testbench simuliert kein EROM-Paket. Genau dort hatte ich aber einen Fehler. Hat auch Ewigkeiten gebraucht, bis ich den gefunden hatte. Also am besten in der Testbench einen EROM Read dazufügen. Bzgl Code: Ich hab eigentlich nur den Code den ich hier für die Firma geschrieben habe. Weiß noch nicht so ganz, ob ich den hergeben will/darf.
Bzgl Code: wenn es sich natürlich um speziellen Code handelt kann ich
das verstehen wenn du den nicht rausgeben willst. Dachte nur das du
vielleicht am Anfang dir erstmal ein einfaches Beispiel gebaut hast um
das System zu verstehen. Weil das mache ich gerade bevor ich mich dann
an das gesamte setze was mal rauskommen soll.
*) Ich muss mir das ganze mal genau ansehen aber mir ist noch nicht so
ganz klar wie ich Daten empfange bzw Sende lege ich diese einfach an die
Datenleitungen in TX an und warte einen Takt oder wie genau soll das
ablaufen?
(habe vorher mal mit RS 232 gearbeitet und da war es so gewesen)
>> Die Datenpakete brauchen ja auch einen Header wird dieser dann automatisch
angefügt oder bin ich auch dafür zuständig?
*) die Version beim 10.1 ist 1.6 >> Werde dich auf dem laufenden halten
wie es sich damit arbeitet ;-)
Das Interface ist in irgendeinem User Guide (ich glaube ug197 aber ich bin nicht sicher) beschrieben. Xilinx baut seine Interfaces anscheinend gerne so, das Interface zum TEMAC-Core ist praktisch identisch. Ich hatte es sehr einfach, weil mein Device nicht von sich aus Daten anfordert sondern nur Completions durchführt, da kann man die meisten Teile des empfangenen Headers für den zu sendenden Header verwenden und die Logik ist in dieser Form schon im Xilinx-Design implementiert. Wenn man selber Completions anfordert ist die Logik wohl aufwändiger, weil man intern dann auswerten muss, ob eine Completion rechtzeitig beantwortet wurde. Ich habe zuerst einmal die Speicherbereiche so umgebaut, wie ich sie brauche und es damit mal zum Laufen gebracht. Das restliche Design dahinter zu hängen war dann kein Problem. Die TLP Checksum werte ich nicht aus, wir vertrauen auf die Sicherungsschicht. Die Simulation ist ziemlich gut, dauert aber sehr lange (kann man evtl beschleunigen, findet man auch bei Xilinx). Wenn Pakete in der Simulation nicht durchkommen, haben sie einen Fehler. Die Testbench sollte man sich anschauen und evtl für die eigenen Zwecke etwas erweitern. Insbesondere der Timeout und die Undurchschaubarkeit bzgl Endianess fand ich da sehr störend. Bzgl Core-Version: Bei den Release Notes zu 1.6 oder 1.7 sah ich zum ersten Mal den Hinweis, dass manche User mit Standard-Einstellungen das Timing nicht schaffen könnten. Darum interessiert mich, wie es da ausschaut, bevor ich meine funktionierende 1.5er durch 1.6 ersetze.
P.S.: Bei mir laufen Mapper und PAR mit High Effort, Synthese dauert damit ca. 20 min.
Welchen Block hast du genommen für PCIe? habe diese zwei zur Auswahl: *)Endpoint Block for PCI Express *)Endpoint Block Plus for PCI Express da es aber nur beim Plus die von dir beschriebene TX und RX Engine gibt gehen ich mal davon aus das du den Plus genommen hast? Bei dem Plus Block ist mir nicht ganz klar welche PINs ich in der Engine für was setzen muss? Sieht doch sehr unübersichtlich aus... Danke
Ich habe den Block Plus genommen, der andere dürfte wesentlich mehr Implementierungsarbeit erfordern, dafür hat man aber auch mehr Freiheiten. PINs? Sorry, versteh ich gerade nicht. Wir haben hier ein fettes Buch über PCIe, das hat mir sehr geholfen. Die Xilinx Dokumentation ist zwar auch nicht schlecht aber sie handelt eben von dem Core und nicht PCIe, daher stehen da viele Dinge nicht explizit drinnen, die man wissen sollte, damit man weiß, wo die Reise hingeht. Aber im Prinzip werden in den Engines eh die richtigen Werte gesetzt, schau dir mal in der Simulation das Schreiben und das Lesen an, da sieht man, wann die RX_Engine welche Werte an die TX_Engine signalisiert.
kannst du mir sagen was das für ein Buch ist würde mir vielleicht auch weiter helfen Danke
Von Addison Wesley "PCI Express System Architecture". Ist aber wahrscheinlich Overkill, der Physical Layer zb ist sehr explizit beschrieben, das fand ich zwar spannend aber gebraucht hab ichs nicht.
Ich versuche mal zu beschreiben was ich gemacht habe und vielleicht kannst du mir ja sagen wo und ob ich bis jetzt einen Fehler gemacht habe?! 1) Core gebaut den PLUS 2) ISE Projekt erstellt und folgende Dateien hinzugefügt: >> alles aus "<my core>\example_design\" >> alles aus "<my core>\simulation\" >> alles aus "<my core>\simulation\dsport" >> alles aus "<my core>\simulation\tests" 3) Wollte dann die Simulation mit ModelSim starten 3.1) habe es mit dieser Datei versucht "pci_exp_1_lane_64b_dsport.v" > da kommen aber nur viele Fehler in ModelSim 3.2) habe dann "board.vhd" als Simulation File genommen > dann funktioniert ModelSim zum Teil >> kommen jedenfalls keine Fehler > habe dann 5 Signale welche zu funktionieren scheinen Einmal der Reset der schaltet am Anfang von 1 auf 0 und dann nach na Weile wieder von 0 auf 1 (nach 5ms) > die Ein und Ausgänge als RX und TX sind U > Muss ich in der Simulation noch was machen damit diese funktioniert? Also muss ich die Signale selber noch belegen? Sind die Schritte ansonsten soweit richtig? Danke
Ich habe das Board ML-555.Bisher waren die Meßergebnisse sehr ernüchternd, was den Datendurchsatz anbelangt. Weit entfernt von den theoretisch möglichen 8GBit/s. Vermutlich werde ich doch in den saueren Apfel beißen müssen und den Treiber mit Hilfe des DDK umsetzen. Als Treiber habe ich bisher den von Jungo benutzt. Was ich an dem Board aber wirklich gut finde: reinstecken und das Demodesign vom Flash laden und es geht. Nun steht demnähcst die Adaption des Demodesigns an meines an. Vermutlich in der selben Art wie oben beschrieben: die Speicherkomponente durch meine eigene ersetzen. frank
@Outbreaker: Das Simulationmodell von dem Endpoint Clock Plus hast duc auch dabei? Das ist bei mir nämlich gefinkelter Weise eine Verzeichnisebene über den Dingen, die du aufgezählt hast. So klingt es für mich als würde das Link Training in der Simulation nicht funktionieren. @Frank: Dass der Durchsatz weit weg vom theoretischen Maximum ist, liegt imho sehr daran, dass der Core eben nur 32-bit Pakete verschickt. Sobald unser Treiber 64 bit auf einmal (also zwei Datenwörter in einem Paket) schicken konnte, hatte sich unser Durchsatz verdoppelt. Ich hab mir das auch am LA angeschaut, da wäre noch viel Platz für längere Pakete und damit höhere Transferraten.
alles klar oberhalb der von mit beschriebenen Ordner gab es noch eine Datei "endpoint_blk_plus_v1_6.vhd" diese habe ich jetzt noch hinzugefügt und nun bekomme ich bei ModelSim folgenden fehler gemeldet: Compiling entity endpoint_blk_plus_v1_6 # -- Compiling architecture structure of endpoint_blk_plus_v1_6 # ** Error: ../endpoint_blk_plus_v1_6.vhd(7282): (vcom-1136) Unknown identifier "sim_mode". # ** Error: ../endpoint_blk_plus_v1_6.vhd(7706): (vcom-1136) Unknown identifier "sim_mode". # ** Error: ../endpoint_blk_plus_v1_6.vhd(8130): (vcom-1136) Unknown identifier "sim_mode". # ** Error: ../endpoint_blk_plus_v1_6.vhd(8554): (vcom-1136) Unknown identifier "sim_mode". # ** Error: ../endpoint_blk_plus_v1_6.vhd(8975): (vcom-1136) Unknown identifier "sim_mode". # ** Error: ../endpoint_blk_plus_v1_6.vhd(9455): (vcom-1136) Unknown identifier "pcs_com_cfg". # ** Error: ../endpoint_blk_plus_v1_6.vhd(12438): (vcom-1136) Unknown identifier "sim_mode". # ** Error: ../endpoint_blk_plus_v1_6.vhd(53854): VHDL Compiler exiting # ** Error: D:/Program Files/Modeltech_xe_starter/win32xoem/vcom failed. # Error in macro ./board.fdo line 22 Habe dann mal in die File gesehen und hängt an dieser Stelle: BU2_U0_pcie_ep0_pcie_blk_pcie_mim_wrapper_i_bram_tl_tx_generate_tdp2_0_r am_tdp2_inst : RAMB36_EXP generic map( [.....] SIM_MODE => "SAFE", [.....] ) das SIM_MODE setzen kommt an mehreren Stellen vor leider habe ich keine Ahnung warum er sich da aufhängt bzw was ich ändern muss damit es läuft!??
Hmm, passt da evtl die Library Version nicht zum endpoint? Unknown identifier klingt für mich danach, dass dieser generic Parameter SIM_MODE in der Library nicht vorkommt.
naja wie gesagt ist alles aus dem CoreGen Ordner oder redest du von einer externen Lib?
Ich red von der Lib in der RAMB36_EXP steht. Ist aber nur eine Vermutung, ich hab gerade bei meinem 1.5er geschaut bzw gegrept, da ist kein Parameter SIM_MODE drinnen.
ja dann wird der Fehler wohl da liegen weißt du wie die Lib heißt in der das drin ist ich habe schon gesucht aber finde keine bis jetzt weil dann muss ich mir bestimmt noch ne neue LIB besorgen?
Hallo nach dem Wochenende. Muss wohl eine der Xilinx-Libs sein, unisim, simprim oder die corelib. Ist aber nur eine Vermutung.
Hallo, habe mal gesucht und die LIB auch gefunden. Das Problem war das die LIB im ModelSim zu alt war. Also ich hatte nicht die aktuellste Version von ModelSim. habe mir jetzt aber die aktuelle runtergeladen und muss nun noch auf die neue license datei warten. Um zu testen ob es dann geht
So ging doch mit der alten license File die neue lässt noch auf sich warten. Die Simulation startet jetzt aber die Signale > cor_pci_exp_txn > cor_pci_exp_txp > cor_pci_exp_rxn > cor_pci_exp_rxp sind immer noch U das > cor_sys_reset_n = 0 und die clk funktionieren auch ich starte ModelSim aus der ISE und benutze diese Datei dazu > .../endpoint_blk_plus_v1_6/simulation/board.vhd ist das die Richtige zum starten der Simulation? ist die von Xilinx oder mache ich sonst noch was falsch? Danke
Eine zeitlang sind die Signale auf 'U' aber bei mir ist das Link Training in der Simulation nach ca 120 us zu Ende und die ersten Datenpakete kommen bei der RX_Engine an. Die board.vhd ist schon die richtige Top-Level Entity. Also wenn sich nach 200us noch immer nichts tut würde ich annehmen, dass es ein Problem gibt. Nicht vergessen alles bei Xilinx zu suchen, was es zu dem Core gibt, ich hab auch mal was von Problemen mit dem Link Training in der Simulation gesehen aber mir nicht näher angeschaut, weil ich damit keine Probleme hatte.
Ich sitze immer noch bei der Analyse und suche nach Fehlern habe bei Xilinx leider nichts brauchbares gefunden. mich verwundert das in der board.vhd welches ja das TOP level ist nur dieser Process steht: > BOARD_INIT : process > begin > writeNowToScreen(String'("System Reset Asserted...")); > cor_sys_reset_n <= '0'; > for i in 0 to (500 - 1) loop > wait until (cor_sys_clk_p'event and cor_sys_clk_p = '1'); > end loop; > > writeNowToScreen(String'("System Reset De-asserted...")); > cor_sys_reset_n <= '1'; > > wait; > end process BOARD_INIT; diesen führt er auch aus und gibt auch die Strings aus nur ist meine Frage von wo kommen die Daten? hab mich noch weiter umgesehen und festgestellt das er in der Datei tests.vhd hängen bleibt in dieser Code Zeile: > PROC_SYSTEM_INITIALIZATION(trn_reset_n, trn_lnk_up_n); habe diese procedure mal gesucht die sieht so aus: > procedure PROC_SYSTEM_INITIALIZATION( > signal trn_reset_n: in std_logic; > signal trn_lnk_up_n: in std_logic ) is > > variable L : line; > > begin > > ------------------------------------------------------------------------ - > -- Wait for Transaction reset to be de-asserted.. > ------------------------------------------------------------------------ - > > wait until trn_reset_n = '1'; > writeNowToScreen ( String'("Transaction Reset is De-asserted")); > > ------------------------------------------------------------------------ - > -- Wait for Transaction link to be asserted.. > ------------------------------------------------------------------------ - > > wait until trn_lnk_up_n = '0'; > writeNowToScreen ( String'("Transaction Link is Up")); > > end PROC_SYSTEM_INITIALIZATION; Konsole gibt mir das aus: > # [ 0 ns ] : System Reset Asserted... > # [ 0 ns ] : CoreName = endpoint_blk_plus_v1_6_pcie_blk_plus_gen_1 > # [ 0 ns ] : Running pio_writeReadBack_test0 > # [ 4995 ns ] : System Reset De-asserted... > # [ 5346.1 ns ] : Transaction Reset is De-asserted wie man sieht hängt er erst bei ersten wait und dann beim zweiten Nun passiert aber in der TB nicht mehr außer das init. Ist das richtig? oder fehlt da doch nen Teil der Daten sendet? Danke für die Hilfe. verstehe echt nicht warum ein einfaches Bsp nicht funktioniert :-(
Dass er 120 us in der PROC_SYSTEM_INITIALIZATION hängt ist normal. Wie lange lässt du es laufen? Bist du schon in den Timeout gelaufen und trn_lnk_up_n war immer noch auf '1'? In der tests.vhd sind die ganzen Tests, wenn das ganze mal grundsätzlich funktioniert kann man da ziemlich einfach erweitern.
ich habe es noch nicht so lange laufen lassen. Das wird bei mir wohl die ganze Nacht dauern bis ich da ein Ergebnis habe. Das längste was ich es habe laufne lassen war ca 40 min und da hatte er 78 us simuliert. trn_lnk_up_n war die ganze Zeit lang '1' ändert sich der Wert mal?
Bei mir hat sich wie gesagt erst nach mehr als 100 us was getan. Wenn du kannst würde ich es mal über Nacht laufen lassen. Vielleicht kann man die Linkup Zeit auch verkürzen, aber wie gesagt, alles weitere bei Xilinx.
werde es heute Nacht mal laufen lassen und dann sehen wir morgen früh was sich ergeben hat ...
So habe es heute Nacht mal laufen gelassen habe 1335 us geschafft.
leider ohne eine Veränderung des Ausganges die 4 oben beschriebenen
Leitungen bleiben bei U und trn_lnk_up_n und trn_reset_n sind die
gesamte Zeit lange '1'
kann es sein das er bei dem wait im board.vhd was ich oben geschrieben
habe hängen bleibt und gar nichts mehr macht?
>wobei der Takt ja schön weiter generiert wird
Verstehe nicht warum das einfach nicht geht
... ich frage mich auch wo den das Signal auf geändert wird das müsste ja ein paralleler Process machen meiner Meinung nach aber im board.vhd gibt es nur den init Process. oder verstehe ich das ganze falsch?
Des Weiteren bekomme ich in der Konsole diese Ausgabe: ------------------------------------------------------------------------ -- # Component instance "bu2_u0_pcie_ep0_pcie_blk_pcie_ep : pcie_internal_1_1" is not bound. # Time: 0 ps Iteration: 0 Region: /board/ep_inst/ep File: ../endpoint_blk_plus_v1_6.vhd # ** Warning: (vsim-3473) Component instance "bu2_u0_pcie_ep0_pcie_blk_sio_pcie_gt_wrapper_i_gtd_0_gt_i : gtp_dual" is not bound. # Time: 0 ps Iteration: 0 Region: /board/ep_inst/ep File: ../endpoint_blk_plus_v1_6.vhd # ** Warning: (vsim-3473) Component instance "plm_v4f_mgt_gt11_by1_gt11_pciexp_2_inst : gt11" is not bound. # Time: 0 ps Iteration: 0 Region: /board/dsport_inst/xilinx_pci_exp_1_lane_dsport_inst/pci_exp_1_lane_dspo rt File: ../endpoint_blk_plus_v1_6/simulation/dsport/pci_exp_1_lane_64b_dsport.vh d # ** Warning: (vsim-3473) Component instance "plm_v4f_mgt_gt11_by1_gt11_pciexp_2_inst2 : gt11" is not bound. # Time: 0 ps Iteration: 0 Region: /board/dsport_inst/xilinx_pci_exp_1_lane_dsport_inst/pci_exp_1_lane_dspo rt File: ../endpoint_blk_plus_v1_6/simulation/dsport/pci_exp_1_lane_64b_dsport.vh d # ** Warning: Design size of 350799 statements or 9 non-Xilinx leaf instances exceeds ModelSim XE-Starter recommended capacity. # Expect performance to be quite adversely affected. ------------------------------------------------------------------------ -- da steht bei einigen Componenten "is not bound" was bedeutet das?
Die "not bound" Meldungen bedeuten, dass Modelsim die entsprechende Entity nicht gefunden hat. Fehlt dir vielleicht die Xilinxcorelib oder ist was mit der Installation dieser libs nicht in Ordnung? Danach schaut es nämlich aus. Dieses Statement: "# ** Warning: Design size of 350799 statements or 9 non-Xilinx leaf instances exceeds ModelSim XE-Starter recommended capacity. # Expect performance to be quite adversely affected." ist auch unheilvoll, ich hab das bei einem anderen Design mal gehabt und die Performance ist um mindestens 90% runtergegangen. Damit wird das Arbeiten sehr mühsam.
War das nicht so, dass die Starter Version von ModelSim nur 1 VHDL File simulieren kann? Meiner Meinung nach brauchst du das richtige Modelsim XE, was man bezahlen muss.
Ich bin mir nicht ganz sicher, aber soweit ich weiß ist das Limit durch die Anzahl der Zeilen gegeben. Nimmt man die XE Version und verwendet die Xilinx libs dann wird jede Xilinx-Komponente aber nur als eine Zeile gezählt. Mehrere files sind überhaupt kein Problem. Zu Ende war es bei mir erst, als ich eine back-anotated gate-level Simulation gemacht habe, das war nicht mehr vernünftig machbar.
Werden diese Libs nicht mit installiert wenn ich ModelSim installiere? Also wenn ich in ModelSim unter LIB beim Workspace nachsehe dann steht diese Lib drin. Oder muss ich die nochmal neu Installieren? bwz gibs die als extra Installation?
Könnte es ein Problem mit nicht zusammenpassenden Versionen des Modelsim XE und der CoreGenerator lib sein? Ist nur ein Schuss ins Blaue aber es wäre imho eine mögliche Erklärung.
naja ich habe mir das neueste ModelSim runtergeladen und auch die neueste ISE mit dem Coregen also sollte das schon passen bin ich der Meinung. Aber kann natürlich sein das es da immer noch Unstimmigkeiten gibt. Die Frage ist wie ich das raus bekomme ob es nun die selbe Version ist ...?
Und, wie tut sich der Core so? Insbesondere: Wie tut sich die 1.6er Variante so? Gibts Probleme mit dem Timing oder synthetisiert es immer wie es soll?
Hat vielleicht schon jemand anderer Erfahrung mit der 1.6 Version gemacht? Bei Xilinx-Zeug habe ich immer Hemmungen, die neueste Version zu installieren. Ist das bei den IP Cores nicht so, hmm, beta wie zb die jeweils neuesten ISE Versionen?
Also ich hänge immer noch an der Simulation. Habe Kontakt mit dem Xilinx support aufgenommen und versuche nun gemeinsam mit Xilinx mal das Testbench zum laufen zu bekommen. Weil ich scheitere schon dabei. Musste mir nun die ModelSim SE Version installieren damit ich das simulieren kann. (weil es selbst mit PE nicht zu simulieren geht) Hat natürlich auch nicht auf Anhieb so funktioniert wie es vielleicht sollte. Musste noch sehr viele sachen in der ModelSim.ini ändern (u.a. http://www.xilinx.com/support/answers/24800.htm). Das hat dann heute endlich geklappt. Nun startet ModelSim SE und die Simulation startet auch und die rx signale sind auch nicht mehr undef aber meine tx signale sind es noch. Nun lasse ich gerade mal eine längere Simulation laufen aber ich denke das es auch dann nicht gehen wird. Das ist mein aktueller stand zum Thema Core ... ... Ich versuche es weiter sollte noch jemand einen Tipp haben immer her damit
@Outbreaker: wenn du erfolgreich warst, könntest du bittte eine kurze zusammenfassugn schreiben, was du alles getan hast, damit es läuft? (sprich: in coregen pci-expresscore erstellt etc.). Das wäre super. Frank
@Frank: werde ich machen wenn es mal soweit sien sollte :-p Habe jetzt die Simulation laufen lassen für 200us und das Ergebnis ist das die rx Signale ohne Probleme laufen aber die tx die ganze Zeit undef bleiben. Kann mir einer weiterhelfen bzw sagen ob die TB keine tx Signale erzeugt?
Dafür bekommen wir unsere Boards nicht. Das ist schon ein Thema für sich, wenn der Liefertermin für diese Avnet-Boards dreimal verschoben wird, der derzeitige offizielle Liefertermin ist 10 Wochen nach dem ersten. Und mein Vertrauen dass der hält ist endenwollend, wenn die Teile fehlen, um das Board zu bestücken und darum geht es vom Hersteller nicht einmal raus. Und der Zwischenhändler schafft es nicht einmal trotz Zusage anzurufen und das zu kommunizieren. Als ob bei uns nicht die Entwicklung daran hinge. Die beiden Firmen brauchen nicht auf mich als zukünftigen Kunden zu zählen, nicht einmal normale Kommunikation können sie halten ... grmpf. Sorry, das musste mal raus. Die undefined Signale sind per se kein Problem, die gehen irgendwann auf 'H'. Auf http://www.xilinx.com/support/answers/29294.htm hat der Xilinx Support vmtl schon hingewiesen. In der 1.5er gibts auch ein Problem wenn man 8 Lanes gleichzeitig verwendet, das soll angeblich in der 1.6er gelöst sein, aber man weiß ja nie so genau ;) .
Nein, es sollte sich auf allen Leitungen etwas tun, wobei die tx Leitungen zuerst 'X' oder 'U' sind, dann gehen sie eine Zeitlang auf 'H', dann wieder 'X' oder 'U' und dann fängt das Link Training an, das heißt es wird auf den Leitungen kräftig getogglet. Das sollte nach ca. 100 us schon am tun sein.
Also die tx sind die gesamte Zeit undef da tut sich gar nichts die rx gehen gleich am Anfang auf H und fangen dann nach ca 57us an zu toggeln für ca 100us dann gehen sie wieder auf H und das war es dann O_O Edit: ich habe einen Core mit nur einer lane erstellt
Sorry aber dann weiß ich auch nicht mehr, was ich dir raten soll. Ich hoffe dass der Xilinx Support das lösen kann.
hallo kann jemand mir helfen ich bin noch am anfang und wollte ich daten zum fpga schicken und wieder bekommen. und ich weisse überhaupt nicht wie kann ich anfangen. ich habe schon ISE instaklliert 10.1 und auch modelsim letzte version habe ich ML555 bord mit Virtex5 FPGA und wollte ich jetzt wissen wie ich "hallo word schreibe" und wo soll es geschrieben werden und wie kann ich es nochmal aufrufen und wo soll es erscheint wwerden? und wenn jemand ein klein BS hat wäre sehr hilfreich nur wie ich hallo world schreiben kann. ich habe schon ein B.S aber ich weisse nich wie ich es auf FPGA in rAM oder so weiter machen kann. library STD; library IEEE; use IEEE.std_logic_1164.all; use STD.textio.all; use IEEE.std_logic_textio.all; entity hello_world is end entity hello_world; architecture test of hello_world is begin -- where parallel code is placed my_print : process is -- a process is parallel variable my_line : line; -- type 'line' comes from textio begin write(my_line, string'("Hello World")); -- formatting writeline(output, my_line); wait; end process my_print; end architecture test; ich brauche wirklich Ihre hilfe. ich bedanke mich bei euch im voraus.
Autsch, da verwechselst du aber ganz gehörig was :-o > und ich weisse überhaupt nicht wie kann ich anfangen. Sieh dir mal ISBN 3486258095 genauer an. Du kannst nicht C-like in VHDL-Programmieren. Wo sollte denn das "hello world" ankommen. Das
1 | entity hello_world is |
2 | end entity hello_world; |
ist der Kopf einer VHDL-Testbench, weil keine Eingangs- und keine ausgangsports definiert sind. BTW: Wieso den alten Thread ausgraben? Du hättest einen neuen anfangen können :-/
normalerweiss ich will Hallo world auf dem fpga schreiben und weil ich mit UBUNTU arbeite ich habe ein Befehl, der ist wie folgende: memread -a 0x(address) -l(Größe z.b 512) und danach wird Hallo World auf die rechte seite geschrieben wo diese Punkten sind Ab diese Adresse 0xe0000000 wird folgende 1024 Byte Daten aus dem Speicher des Grafik Karte ausgegeben. e0000000: e7 eb ef 00 e7 eb ef 00 e7 eb ef 00 e7 eb ef 00 .............. e0000010: e7 eb ef 00 e7 eb ef 00 e7 eb ef 00 e7 eb ef 00 .............. e0000020: e7 eb ef 00 e7 eb ef 00 e7 eb ef 00 e7 eb ef 00 .............. e0000030: e7 eb ef 00 e7 eb ef 00 e7 eb ef 00 e7 eb ef 00 .............. e0000040: e7 eb ef 00 e7 eb ef 00 c6 cb d0 00 7f 87 8e 00 ............. e0000050: 63 6e 76 00 60 6a 73 00 60 6a 73 00 60 6a 73 00 cnv.`js.`js.`j e0000060: 60 6a 73 00 60 6a 73 00 60 6a 73 00 60 6a 73 00 `js.`js.`js.`j e0000070: 60 6a 73 00 60 6a 73 00 60 6a 73 00 60 6a 73 00 `js.`js.`js.`j e0000080: e7 eb ef 00 bd c3 c9 00 72 7a 83 00 c8 cd d2 00 ........rz.... e0000090: e8 eb ef 00 eb ee f1 00 e8 ec ef 00 e6 ea ee 00 .............. e00000a0: e5 e9 ee 00 e4 e8 ed 00 e3 e8 ec 00 e2 e7 ec 00 .............. e00000b0: ed f0 f3 00 ee f1 f3 00 ef f1 f4 00 ef f2 f5 00 .............. e00000c0: dc e0 e4 00 7d 86 8e 00 c2 c8 cc 00 ea ed f1 00 ....}......... . . . . . . . . .danke sehr für die Antwort
hey Leute ich will nur wissen welche Busses soll ich benutzen damit ich hallo world auf FPGA schreiben und auslesen kann? und wo soll es geschrieben werden ? ich bedasnke mich im voraus.
ich weisse es nicht ob ich dieses Busses was ich auf dem UG341 von xilinx benutzen sollte um hallo world zu schreiben und wieder auslesen: -PCIExpress Interface Signals for the 1-Lane Endpoint Core. -common TRN Interface -Transmit TRN Interface -Receive TRN Interface -Configuration Interface und dann sollte ich ein End block Plus for PCIe erstellen. Gruss Yassine
Yassine, wir helfen gerne. Biite poste hier : http://www.mikrocontroller.net/forum/markt wie viel geld du für das ML555 haben möchtest. Ich denke andere menschen können es besser gebrauchen als du.
@yassine: > ich brauche den Bord auch für meine Diplomarbeit Dann hoffe ich, das Du noch Zeit hast (>~ 4 Monate), die wirst Du zur Einarbeitung brauchen, Deinen Fragen nach zu urteilen. Du brauchst nicht nur einen PCI-Endpunkt im FPGA sondern auch noch den entsprechenden Treiber in Deinem Betriebssystem. Und eine Software die mit dem Treiber arbeitet und Dein "Hello World" auf den Bildschirm zaubert. Duke P.S.: Es wäre schön gewesen, wenn Du für Dein Problem einen neuen Beitrag aufgemacht hättest. Ältere Beiträge lassen sich bei Bedarf verlinken.
wie heisst nochmal dieses treiber und diese softwäre vielleicht habe ich schon? das ist nicht meine Aufgabe für diplomarbeit das ist nur eien Übung damit ich sagen kann ob ich die Diplomarbeit anfangen kann oder nicht. Gruß yassine
Hallo, den Treiber wirst du Dir schon selber schreiben müssen da du ja auch die Hardware selber designs. Ein Treiber gehört immer zur Hardware und dem Chip der darauf läuft. Du musst dir im FPGA mit Hilfe des Core generator deinen "chip" selber bauen. Respektive das was auf dem FPGA laufen soll. Beim bauen deines Core gibst du nen VendorID und eine DeviceID an. Anhand dieser würde dein Treiber dann das Board identifizieren und wissen das er zu dem Board passt. Ein Treiber zu schreiben ist unter Linux einfacher als unter Windows. Also würde ich dir Empfehlen das unter Linux zu versuchen. Ich denke dazu lässt sich im Netz was finden bzw kann ich auch bei Gelegenheit nochmal was raussuchen. Des Weiteren solltest du mal bei Xilinx auf der Homepage gucken da gibt es zu dem Board auch Demos. http://www.xilinx.com/products/devkits/HW-V5-ML555-G.htm Einfach bei Recources gucken. Dazu musst du dich dann noch Registrieren wenn du keinen Account hast aber ich denke das sollte kein Problem sein. Ich hoffe es ist noch genug Zeit bis du deine Diplomarbeit schreiben muss weil ohne jegliche Vorkenntnisse brauchst du min ein halbes bis ganzes Jahr um mit dem Board richtig klar zu kommen. Ich muss aus beruflichen Gründen mit dem ML505 und ML507 arbeiten und das war für mich am Anfang auch alles Neuland und das Einarbeiten dauert schon sehr lange. Dazu kommen noch die vielen Eigenheiten von den Boards und FPGAs. viele Grüße Christian
wawwwww das ist wirklich sehr nett von dir ich werde jetztgaz geben und versuche ich schnelle wir möglich alles zu verstehen,sag mal kann ich dein E-mail haben damit ich dir zeige was für eine code habe ich geschrieben ? oder kann ich dir mein Email schreiben ok? nur wenn es kein problem gibt's. und werde ich wieder mit der treiber versuchen bis ich klar komme. ich bedanke mich im voraus.
Hey also mein E-Mail-Adresse schreibe ich hier nicht direkt rein entweder du meldest dich an und ich schicke Dir eine private Nachricht oder du schreibst deine Fragen ins Forum und ich versuche wenn es geht zu helfen. Vielleicht kann Dir dann auch der eine oder andere weiterhelfen. Gruß
ok danke sehr, jetzt ich habe schon eine code von Xilinx gennomen und wollte ich versuchen ob ich damit daten senden und empfagen kann und das muss auch mit LED das geisst wenn ich was sende oder senden wollte dann muss ein led die auf den Bord steht leuchten und so weiter und so fort bis ich den fehler finde, wo genau beim senden oder empfangen liegt den fehler vertshst du was ich meinte? das heisst wenn led leuchtet bei senden oder umgekehrt das heisst habe ich schon kontakt mit dem bord ok?
Zuerst mal mit lspci -vvv schauen, ob man sein Gerät sieht und ob die ausgegebenen Werte passen. Gut ist auch, den Zustand des trn_lnk_up_n Signals auf eine LED zu geben um zu sehen, ob das funktioniert. Wenn da alles in Ordnung ausschaut, kann man weiter zu senden/empfangen gehen. @Outbreaker: Ich sehe, es hat funktioniert? Bei uns tut das Ding wunderbar und bekommt jetzt eine weitere Verlängerung der Lebenszeit. Ich hatte nur einmal ein recht esoterisches Problem, als ich nach der PLL im PCIe noch eine in meinem User Design hatte, da gab es auf einmal Timing-Verletzungen die die STA vorher nicht gefunden hat. Ist dir sowas auch schon passiert? LG flint
hey, weisst jemand woran liegt den fehler: wenn ich den Generate Programming File starte dann dauert zircka 10 min und am ende Zeigt mir solche fehler. ERROR:Bitgen:169 - This design contains one or more evaluation cores for which bitstream generation is not supported. Please see the informational messages in the NGDBUILD report file for this design, <designname>.bld, to determine which core causes this error. und meine bld file sieht so aus: Release 10.1.03 ngdbuild K.39 (lin) Copyright (c) 1995-2008 Xilinx, Inc. All rights reserved. Command Line: /home/aitmouss/ISE_foundation_10.1/ISE/bin/lin/unwrapped/ngdbuild -ise /home/aitmouss/Endpoint Memory/Endpoint/Endpoint.ise -intstyle ise -dd _ngo -nt timestamp -i -p xc5vlx50t-ff1136-1 XILINX_PCI_EXP_EP.ngc XILINX_PCI_EXP_EP.ngd Reading NGO file "/home/aitmouss/Endpoint Memory/Endpoint/XILINX_PCI_EXP_EP.ngc" ... Loading design module "/home/aitmouss/Endpoint Memory/Endpoint/PCIe_block_plus_4.ngc"... Reading in constraint information from 'xilinx_pci_exp_blk_plus_4_lane_ep_xc5vlx50t-ff1136-1.ucf'... Gathering constraint information from source properties... Done. INFO:coreutil - Design Linking license for component <pcie_blk_plus_v1> found. This license does not allow you to generate bitstreams for designs that incorporate this component. You may generate functional simulation netlists, but you may not evaluate this component in hardware. For ordering information, please refer to the product page for this component on: www.xilinx.com INFO:coreutil - Design Linking license for component <pcie_blk_plus_v1> found. This license does not allow you to generate bitstreams for designs that incorporate this component. You may generate functional simulation netlists, but you may not evaluate this component in hardware. For ordering information, please refer to the product page for this component on: www.xilinx.com INFO:coreutil - Design Linking license for component <pcie_blk_plus_v1> found. This license does not allow you to generate bitstreams for designs that incorporate this component. You may generate functional simulation netlists, but you may not evaluate this component in hardware. For ordering information, please refer to the product page for this component on: www.xilinx.com INFO:coreutil - Design Linking license for component <pcie_blk_plus_v1> found. This license does not allow you to generate bitstreams for designs that incorporate this component. You may generate functional simulation netlists, but you may not evaluate this component in hardware. For ordering information, please refer to the product page for this component on: www.xilinx.com Resolving constraint associations... Checking Constraint Associations... INFO:ConstraintSystem:178 - TNM 'MGTCLK', used in period specification 'TS_MGTCLK', was traced into PLL_ADV instance pcie_ep0/pcie_blk/clocking_i/use_pll.pll_adv_i. The following new TNM groups and period specifications were generated at the PLL_ADV output(s): CLKOUT0: <TIMESPEC TS_ep_BU2_U0_pcie_ep0_pcie_blk_clocking_i_clkout0 = PERIOD "ep_BU2_U0_pcie_ep0_pcie_blk_clocking_i_clkout0" TS_MGTCLK * 2.5 HIGH 50%> INFO:ConstraintSystem:178 - TNM 'MGTCLK', used in period specification 'TS_MGTCLK', was traced into PLL_ADV instance pcie_ep0/pcie_blk/clocking_i/use_pll.pll_adv_i. The following new TNM groups and period specifications were generated at the PLL_ADV output(s): CLKOUT1: <TIMESPEC TS_ep_BU2_U0_pcie_ep0_pcie_blk_clocking_i_clkout1 = PERIOD "ep_BU2_U0_pcie_ep0_pcie_blk_clocking_i_clkout1" TS_MGTCLK * 1.25 HIGH 50%> Done... Checking Partitions ... Checking expanded design ... WARNING:NgdBuild:486 - Attribute "SIM_MODE" is not allowed on symbol "pcie_ep0/pcie_blk/pcie_mim_wrapper_i/bram_tl_tx/generate_tdp2[0].ram_td p2_in st" of type "RAMB36_EXP". This attribute will be ignored. WARNING:NgdBuild:486 - Attribute "SIM_MODE" is not allowed on symbol "pcie_ep0/pcie_blk/pcie_mim_wrapper_i/bram_tl_tx/generate_tdp2[1].ram_td p2_in st" of type "RAMB36_EXP". This attribute will be ignored. WARNING:NgdBuild:486 - Attribute "SIM_MODE" is not allowed on symbol "pcie_ep0/pcie_blk/pcie_mim_wrapper_i/bram_tl_rx/generate_tdp2[0].ram_td p2_in st" of type "RAMB36_EXP". This attribute will be ignored. WARNING:NgdBuild:486 - Attribute "SIM_MODE" is not allowed on symbol "pcie_ep0/pcie_blk/pcie_mim_wrapper_i/bram_tl_rx/generate_tdp2[1].ram_td p2_in st" of type "RAMB36_EXP". This attribute will be ignored. WARNING:NgdBuild:486 - Attribute "SIM_MODE" is not allowed on symbol "pcie_ep0/pcie_blk/pcie_mim_wrapper_i/bram_retry/generate_sdp.ram_sdp_in st" of type "RAMB36SDP_EXP". This attribute will be ignored. WARNING:NgdBuild:452 - logical net 'ep/BU2/gt4_dwen' has no driver WARNING:NgdBuild:452 - logical net 'ep/BU2/gt4_daddr<6>' has no driver WARNING:NgdBuild:452 - logical net 'ep/BU2/gt4_daddr<5>' has no driver WARNING:NgdBuild:452 - logical net 'ep/BU2/gt4_daddr<4>' has no driver WARNING:NgdBuild:452 - logical net 'ep/BU2/gt4_daddr<3>' has no driver WARNING:NgdBuild:452 - logical net 'ep/BU2/gt4_daddr<2>' has no driver WARNING:NgdBuild:452 - logical net 'ep/BU2/gt4_daddr<1>' has no driver WARNING:NgdBuild:452 - logical net 'ep/BU2/gt4_daddr<0>' has no driver WARNING:NgdBuild:452 - logical net 'ep/BU2/gt6_dwen' has no driver WARNING:NgdBuild:452 - logical net 'ep/BU2/gt0_di<15>' has no driver WARNING:NgdBuild:452 - logical net 'ep/BU2/gt0_di<14>' has no driver WARNING:NgdBuild:452 - logical net 'ep/BU2/gt0_di<13>' has no driver WARNING:NgdBuild:452 - logical net 'ep/BU2/gt0_di<12>' has no driver WARNING:NgdBuild:452 - logical net 'ep/BU2/gt0_di<11>' has no driver WARNING:NgdBuild:452 - logical net 'ep/BU2/gt0_di<10>' has no driver WARNING:NgdBuild:452 - logical net 'ep/BU2/gt0_di<9>' has no driver WARNING:NgdBuild:452 - logical net 'ep/BU2/gt0_di<8>' has no driver WARNING:NgdBuild:452 - logical net 'ep/BU2/gt0_di<7>' has no driver WARNING:NgdBuild:452 - logical net 'ep/BU2/gt0_di<6>' has no driver WARNING:NgdBuild:452 - logical net 'ep/BU2/gt0_di<5>' has no driver WARNING:NgdBuild:452 - logical net 'ep/BU2/gt0_di<4>' has no driver WARNING:NgdBuild:452 - logical net 'ep/BU2/gt0_di<3>' has no driver WARNING:NgdBuild:452 - logical net 'ep/BU2/gt0_di<2>' has no driver WARNING:NgdBuild:452 - logical net 'ep/BU2/gt0_di<1>' has no driver WARNING:NgdBuild:452 - logical net 'ep/BU2/gt0_di<0>' has no driver WARNING:NgdBuild:452 - logical net 'ep/BU2/gt6_daddr<6>' has no driver WARNING:NgdBuild:452 - logical net 'ep/BU2/gt6_daddr<5>' has no driver WARNING:NgdBuild:452 - logical net 'ep/BU2/gt6_daddr<4>' has no driver WARNING:NgdBuild:452 - logical net 'ep/BU2/gt6_daddr<3>' has no driver WARNING:NgdBuild:452 - logical net 'ep/BU2/gt6_daddr<2>' has no driver WARNING:NgdBuild:452 - logical net 'ep/BU2/gt6_daddr<1>' has no driver WARNING:NgdBuild:452 - logical net 'ep/BU2/gt6_daddr<0>' has no driver WARNING:NgdBuild:452 - logical net 'ep/BU2/gt4_di<15>' has no driver WARNING:NgdBuild:452 - logical net 'ep/BU2/gt4_di<14>' has no driver WARNING:NgdBuild:452 - logical net 'ep/BU2/gt4_di<13>' has no driver WARNING:NgdBuild:452 - logical net 'ep/BU2/gt4_di<12>' has no driver WARNING:NgdBuild:452 - logical net 'ep/BU2/gt4_di<11>' has no driver WARNING:NgdBuild:452 - logical net 'ep/BU2/gt4_di<10>' has no driver WARNING:NgdBuild:452 - logical net 'ep/BU2/gt4_di<9>' has no driver WARNING:NgdBuild:452 - logical net 'ep/BU2/gt4_di<8>' has no driver WARNING:NgdBuild:452 - logical net 'ep/BU2/gt4_di<7>' has no driver WARNING:NgdBuild:452 - logical net 'ep/BU2/gt4_di<6>' has no driver WARNING:NgdBuild:452 - logical net 'ep/BU2/gt4_di<5>' has no driver WARNING:NgdBuild:452 - logical net 'ep/BU2/gt4_di<4>' has no driver WARNING:NgdBuild:452 - logical net 'ep/BU2/gt4_di<3>' has no driver WARNING:NgdBuild:452 - logical net 'ep/BU2/gt4_di<2>' has no driver WARNING:NgdBuild:452 - logical net 'ep/BU2/gt4_di<1>' has no driver WARNING:NgdBuild:452 - logical net 'ep/BU2/gt4_di<0>' has no driver WARNING:NgdBuild:452 - logical net 'ep/BU2/gt_dclk' has no driver WARNING:NgdBuild:452 - logical net 'ep/BU2/gt6_den' has no driver WARNING:NgdBuild:452 - logical net 'ep/BU2/gt0_dwen' has no driver WARNING:NgdBuild:452 - logical net 'ep/BU2/gt4_den' has no driver WARNING:NgdBuild:452 - logical net 'ep/BU2/gt2_di<15>' has no driver WARNING:NgdBuild:452 - logical net 'ep/BU2/gt2_di<14>' has no driver WARNING:NgdBuild:452 - logical net 'ep/BU2/gt2_di<13>' has no driver WARNING:NgdBuild:452 - logical net 'ep/BU2/gt2_di<12>' has no driver WARNING:NgdBuild:452 - logical net 'ep/BU2/gt2_di<11>' has no driver WARNING:NgdBuild:452 - logical net 'ep/BU2/gt2_di<10>' has no driver WARNING:NgdBuild:452 - logical net 'ep/BU2/gt2_di<9>' has no driver WARNING:NgdBuild:452 - logical net 'ep/BU2/gt2_di<8>' has no driver WARNING:NgdBuild:452 - logical net 'ep/BU2/gt2_di<7>' has no driver WARNING:NgdBuild:452 - logical net 'ep/BU2/gt2_di<6>' has no driver WARNING:NgdBuild:452 - logical net 'ep/BU2/gt2_di<5>' has no driver WARNING:NgdBuild:452 - logical net 'ep/BU2/gt2_di<4>' has no driver WARNING:NgdBuild:452 - logical net 'ep/BU2/gt2_di<3>' has no driver WARNING:NgdBuild:452 - logical net 'ep/BU2/gt2_di<2>' has no driver WARNING:NgdBuild:452 - logical net 'ep/BU2/gt2_di<1>' has no driver WARNING:NgdBuild:452 - logical net 'ep/BU2/gt2_di<0>' has no driver WARNING:NgdBuild:452 - logical net 'ep/BU2/gt0_daddr<6>' has no driver WARNING:NgdBuild:452 - logical net 'ep/BU2/gt0_daddr<5>' has no driver WARNING:NgdBuild:452 - logical net 'ep/BU2/gt0_daddr<4>' has no driver WARNING:NgdBuild:452 - logical net 'ep/BU2/gt0_daddr<3>' has no driver WARNING:NgdBuild:452 - logical net 'ep/BU2/gt0_daddr<2>' has no driver WARNING:NgdBuild:452 - logical net 'ep/BU2/gt0_daddr<1>' has no driver WARNING:NgdBuild:452 - logical net 'ep/BU2/gt0_daddr<0>' has no driver WARNING:NgdBuild:452 - logical net 'ep/BU2/gt2_den' has no driver WARNING:NgdBuild:452 - logical net 'ep/BU2/gt2_dwen' has no driver WARNING:NgdBuild:452 - logical net 'ep/BU2/gt6_di<15>' has no driver WARNING:NgdBuild:452 - logical net 'ep/BU2/gt6_di<14>' has no driver WARNING:NgdBuild:452 - logical net 'ep/BU2/gt6_di<13>' has no driver WARNING:NgdBuild:452 - logical net 'ep/BU2/gt6_di<12>' has no driver WARNING:NgdBuild:452 - logical net 'ep/BU2/gt6_di<11>' has no driver WARNING:NgdBuild:452 - logical net 'ep/BU2/gt6_di<10>' has no driver WARNING:NgdBuild:452 - logical net 'ep/BU2/gt6_di<9>' has no driver WARNING:NgdBuild:452 - logical net 'ep/BU2/gt6_di<8>' has no driver WARNING:NgdBuild:452 - logical net 'ep/BU2/gt6_di<7>' has no driver WARNING:NgdBuild:452 - logical net 'ep/BU2/gt6_di<6>' has no driver WARNING:NgdBuild:452 - logical net 'ep/BU2/gt6_di<5>' has no driver WARNING:NgdBuild:452 - logical net 'ep/BU2/gt6_di<4>' has no driver WARNING:NgdBuild:452 - logical net 'ep/BU2/gt6_di<3>' has no driver WARNING:NgdBuild:452 - logical net 'ep/BU2/gt6_di<2>' has no driver WARNING:NgdBuild:452 - logical net 'ep/BU2/gt6_di<1>' has no driver WARNING:NgdBuild:452 - logical net 'ep/BU2/gt6_di<0>' has no driver WARNING:NgdBuild:452 - logical net 'ep/BU2/gt2_daddr<6>' has no driver WARNING:NgdBuild:452 - logical net 'ep/BU2/gt2_daddr<5>' has no driver WARNING:NgdBuild:452 - logical net 'ep/BU2/gt2_daddr<4>' has no driver WARNING:NgdBuild:452 - logical net 'ep/BU2/gt2_daddr<3>' has no driver WARNING:NgdBuild:452 - logical net 'ep/BU2/gt2_daddr<2>' has no driver WARNING:NgdBuild:452 - logical net 'ep/BU2/gt2_daddr<1>' has no driver WARNING:NgdBuild:452 - logical net 'ep/BU2/gt2_daddr<0>' has no driver WARNING:NgdBuild:452 - logical net 'ep/BU2/gt0_den' has no driver Partition Implementation Status ------------------------------- No Partitions were found in this design. ------------------------------- NGDBUILD Design Results Summary: Number of errors: 0 Number of warnings: 106 Total memory usage is 108344 kilobytes Writing NGD file "XILINX_PCI_EXP_EP.ngd" ... Writing NGDBUILD log file "XILINX_PCI_EXP_EP.bld"... Grüße Yassine
Steht doch da: Du hast keine Lizenz für den von dir benutzten IP-Core "pcie_blk_plus_v1". geht mal auf Hardware -> Check Licenes da steht, wann die abgelaufen ist. Welche Version des EDK hast du? Bei der aktuellen 11.2 laufen die Eval-Lizenzen bis Ende Juni 2010, da hättest du noch genügend Zeit.
wo finde ich hardware damit ich die lezenz überprüfen kann ? und den EDK wo kann ich suchen damit ich weisse welche davon habe ? sorry dass ich nicht viele ahnnung habe. Gruß Yassine
jaaa habe ich gefunden, ich habe ISE 10.1.03 - Foundation, ist das richtig?
Nur ISE? Ich dachte du hast das Design mit EDK gemacht? Naja, dann ist die Lizenz abgelaufen, du musst entweder bei Xilinx eine neue beantragen, eine kaufen, oder ISE 11.2 installieren, damit die Evaluation wieder 1 Jahr geht. Willst du das System mit Prozessor, PCIe und so nur mit ISE bauen? Was soll das überheupt für ein Gerät werden?
Hier kannst du eine Lizenz erzeugen und runterladen: http://www.xilinx.com/ipcenter/pcie_blkplus_lounge/pcie_blkplus_get_license.htm
Guten Tag, welche Gerät meinst du ? den Board ML555 mit einem FPGA XC5VLX50T-FF1136-1? ist das richtig? danke sehr.
Ja richtig, aber was willst du mit dem Board machen? Du hast am Anfang geschrieben, du möchtest "Hello World" ausgeben. Wohin denn? Was ist das für ein Projekt? Falls du lieber in Englisch schreiben willst, gerne. Dein Deutsch ist manchmal schwer verständlich.
Sorry mein english ist ganz schlecht aber ich versuche nochmal auf deutsch gut zu erklären. ich will jetzt am anfang nur probieren wie ich mit dem Board kommunizieren kann das heisst,ich habe als betrieb systeme Ubuntu und wollte ich eigentlich etwas (hallo world) mit VHDL schreiben und ich habe eine Kode schon bei xilinx gefunden,die folgende komponnenten hat: PIO.v PIO_64_RX_ENGINE.vhd PIO_64_TX_ENGINE.vhd PIO_EP.vdh PIO_EP_MEM_ACCESS.vhd PIO_TO_CTRL.vhd pci_exp_4_lane_64_ep.vhd pci_exp_64_b_app.vhd xilinx_pci_exp_blk_plus_4_lane_ep_xc5vlx50t-ff1136-1.ucf xilinx_pci_exp_ep.vhd und wollte ich jetzt damit versuchen ob ich jetzt was zu bord senden und empfangen kann,aber ich muss auch das code ändern so dass,wenn ich etwas sende und empfange, soll eine LED leuchten. das ist nur die anfang meiner Diplomarbeit. dasnke schon für ihre hilfe.
weisst du vielleicht wie kann ich meine Host ID type und Host ID Value und Host Name unter ubuntu finden?
jappy habe ich schon gefunden und jetzt läuft richtig, ich muss jetzt nur den bitfile erzeugen damit ich meine FPGA mit dem Code was ich schon erzählt habe flashen. und gucke ich wie ich mit dem LED arbeiten kann.
jetzt habe ich de lizenz bekommen, und weisse ich nicht wo ich diese Xilinx.lic eingeben soll. ich habe schon auf dem shell konsole xlcm eingetippt aber die zeigt mir folgende fehler: xlc[m] Copyright 2001-2004 by S. Fuchs [http://linecontrol.srf.ch/] Licensed under the GPL, see file LICENSE of the distribution package. version: 1.0.6 proc_lcp3_init(): didn't get a tcp connection... proc_xlcm_lcp3_init() failed! error waiting for process to exit: child process lost (is SIGCHLD ignored or trapped?)
Bei mir liegen die Lizenzen für ISE in dem Ordner C:\Xilinx\11.1\ISE\coregen\core_licenses Ich bin mir aber nicht sicher, ob die Lizenz dann passt. Hast du beim Erstellen deine Host-ID richtig angegeben? Wenn du die da reinkopiert hast, kannst du CoreGen starten, den Core auswählen und bei Actions dann "View License Status" klicken. Da sieht du, ob die Lizenz korrekt ist.
doch du hast vollkommen recht und jetzt hat es funktioniert und dann muss ich jetzt den bitfile auf FPGA flashen.und dann gucke ich was wird danach passieren ob es wieder mit lspci -vvv auftaucht oder nicht? weil manche Code was ich vorher ausprobiert habe nach dem flashen werden nicht auf lspci -v auftauchen d.h wird den Board nicht mehr annerkant.
yassine schrieb: > doch du hast vollkommen recht und jetzt hat es funktioniert und dann > muss ich jetzt den bitfile auf FPGA flashen.und dann gucke ich was wird > danach passieren ob es wieder mit lspci -vvv auftaucht oder nicht? > weil manche Code was ich vorher ausprobiert habe nach dem flashen werden > nicht auf lspci -v auftauchen d.h wird den Board nicht mehr annerkant. Klar, wenn man offensichtlich überhaupt nicht genau weiß, was man tut, kommt das schon mal vor. Da hast du dir ja ein tolles Diplom-Thema vorgenommen, mit deinem Kenntnisstand ist das kaum zu schaffen.
hey,ich habe jetzt den FPGA schon gepflasht und alles chic auch mit dem befehl lspci -v taucht den Bord auf dem konsole, jetzt wollte ich proieren wie ich jetzt daten senden und empfangen kann den code habe schon kein thema ,aber was soll ich in der code ändern wenn es überhaupt was ändern sollte damit ich was senden und empfangen kann. ich muss auch mit einem LED des Bord arbeiten. aber ich weisse es nicht wie das funktionieren sollte.bei senden oder empfangen soll ein LED leuchten. ich bin sehhhr frohe für deine Hilfe wirklich das hat mir sehr geholfen. MFG Yassine
ich weisse jetzt nicht genau, nachdem ich den FPGA gepflasht habe, wie ich jetzt Daten senden oder empfangen kann.
hey, weiist jemand wie ich LED des Board ML-555 als ausgang signal difienieren. ich habe schon auf dem code eine refclkout als output definiert, und jetzt wollte ich auf dem Bord ML555 die LED D7 zu diese Signal zuweisen,d.h wenn diese Signal angesprochen wird,dann leuchtet den LED D7. ich habe schon bei constraint alle signale die ich difiniert habe gefunden und jetzt wollte ich noch mal den Pin nummer von diese LED (D7) in Spallte LOC bei new constraints aber das funktionniert nicht ,es wird allein gelöscht wenn ich die geschrieben habe. Grüß Yassine
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.