Forum: FPGA, VHDL & Co. PCIe Virtex 5 ML505 Xilinx Beispiel gesucht


von Outbreaker _. (outbreaker)


Lesenswert?

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

von Matthias F. (flint)


Lesenswert?

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.

von Outbreaker _. (outbreaker)


Lesenswert?

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

von Matthias F. (flint)


Lesenswert?

*) 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.

von Outbreaker _. (outbreaker)


Lesenswert?

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 ;-)

von Matthias F. (flint)


Lesenswert?

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.

von Matthias F. (flint)


Lesenswert?

P.S.: Bei mir laufen Mapper und PAR mit High Effort, Synthese dauert 
damit ca. 20 min.

von Outbreaker _. (outbreaker)


Lesenswert?

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

von Matthias F. (flint)


Lesenswert?

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.

von Outbreaker _. (outbreaker)


Lesenswert?

kannst du mir sagen was das für ein Buch ist
würde mir vielleicht auch weiter helfen
Danke

von Matthias F. (flint)


Lesenswert?

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.

von Outbreaker _. (outbreaker)


Lesenswert?

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

von Frank (Gast)


Lesenswert?

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

von Matthias F. (flint)


Lesenswert?

@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.

von Outbreaker _. (outbreaker)


Lesenswert?

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!??

von Matthias F. (flint)


Lesenswert?

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.

von Outbreaker _. (outbreaker)


Lesenswert?

naja wie gesagt ist alles aus dem CoreGen Ordner
oder redest du von einer externen Lib?

von Matthias F. (flint)


Lesenswert?

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.

von Outbreaker _. (outbreaker)


Lesenswert?

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?

von Matthias F. (flint)


Lesenswert?

Hallo nach dem Wochenende.

Muss wohl eine der Xilinx-Libs sein, unisim, simprim oder die corelib. 
Ist aber nur eine Vermutung.

von Outbreaker _. (outbreaker)


Lesenswert?

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

von Outbreaker _. (outbreaker)


Lesenswert?

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

von Matthias F. (flint)


Lesenswert?

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.

von Outbreaker _. (outbreaker)


Lesenswert?

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 :-(

von Matthias F. (flint)


Lesenswert?

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.

von Outbreaker _. (outbreaker)


Lesenswert?

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?

von Matthias F. (flint)


Lesenswert?

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.

von Outbreaker _. (outbreaker)


Lesenswert?

werde es heute Nacht mal laufen lassen und dann sehen wir morgen früh 
was sich ergeben hat ...

von Outbreaker _. (outbreaker)


Lesenswert?

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

von Outbreaker _. (outbreaker)


Lesenswert?

...
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?

von Outbreaker _. (outbreaker)


Lesenswert?

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?

von Matthias F. (flint)


Lesenswert?

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.

von Christian R. (supachris)


Lesenswert?

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.

von Matthias F. (flint)


Lesenswert?

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.

von Outbreaker _. (outbreaker)


Lesenswert?

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?

von Matthias F. (flint)


Lesenswert?

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.

von Outbreaker _. (outbreaker)


Lesenswert?

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 
...?

von Matthias F. (flint)


Lesenswert?

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?

von Matthias F. (flint)


Lesenswert?

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?

von Outbreaker _. (outbreaker)


Lesenswert?

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

von Frank (Gast)


Lesenswert?

@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

von Outbreaker _. (outbreaker)


Lesenswert?

@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?

von Matthias F. (flint)


Lesenswert?

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 ;) .

von Matthias F. (flint)


Lesenswert?

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.

von Outbreaker _. (outbreaker)


Lesenswert?

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

von Matthias F. (flint)


Lesenswert?

Sorry aber dann weiß ich auch nicht mehr, was ich dir raten soll. Ich 
hoffe dass der Xilinx Support das lösen kann.

von yassine (Gast)


Lesenswert?

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.

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

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 
:-/

von yassine (Gast)


Lesenswert?

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

von yassine (Gast)


Lesenswert?

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.

von yassine (Gast)


Lesenswert?

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

von john (Gast)


Lesenswert?

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.

von yassine (Gast)


Lesenswert?

ich brauche den Bord auch für meine Diplomarbeit

von Duke Scarring (Gast)


Lesenswert?

@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.

von yassine (Gast)


Lesenswert?

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

von Outbreaker _. (outbreaker)


Lesenswert?

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

von yassine (Gast)


Lesenswert?

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.

von Outbreaker _. (outbreaker)


Lesenswert?

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ß

von yassine (Gast)


Lesenswert?

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?

von Matthias F. (flint)


Lesenswert?

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

von yassine (Gast)


Lesenswert?

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

von Christian R. (supachris)


Lesenswert?

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.

von yassine (Gast)


Lesenswert?

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

von yassine (Gast)


Lesenswert?

jaaa habe ich gefunden,
ich habe ISE 10.1.03 - Foundation,
ist das richtig?

von Christian R. (supachris)


Lesenswert?

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?

von Christian R. (supachris)


Lesenswert?

Hier kannst du eine Lizenz erzeugen und runterladen: 
http://www.xilinx.com/ipcenter/pcie_blkplus_lounge/pcie_blkplus_get_license.htm

von yassine (Gast)


Lesenswert?

Guten Tag,

welche Gerät meinst du ? den Board ML555 mit einem FPGA 
XC5VLX50T-FF1136-1?
ist das richtig?

danke sehr.

von Christian R. (supachris)


Lesenswert?

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.

von yassine (Gast)


Lesenswert?

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.

von yassine (Gast)


Lesenswert?

weisst du vielleicht wie kann ich meine Host ID type und Host ID Value 
und Host Name unter ubuntu finden?

von yassine (Gast)


Lesenswert?

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.

von yassine (Gast)


Lesenswert?

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?)

von Christian R. (supachris)


Lesenswert?

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.

von yassine (Gast)


Lesenswert?

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.

von Christian R. (supachris)


Lesenswert?

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.

von yassine (Gast)


Lesenswert?

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

von yassine (Gast)


Lesenswert?

ich weisse jetzt nicht genau, nachdem ich den FPGA gepflasht habe, wie 
ich jetzt Daten senden oder empfangen kann.

von yassine (Gast)


Lesenswert?

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
Noch kein Account? Hier anmelden.