Forum: FPGA, VHDL & Co. Xilinx ISE Problem mit PCIe Core vom Generator bzw. den Examples


von Tim T. (tim_taylor) Benutzerseite


Lesenswert?

Hallo,

wie der Betreff schon sagt habe ich habe ein Problem mit meiner ISE 12.3 
bzw. dem PCIe Endpoint Block Plus 1.14:

Ich erstelle ein neues Projekt, werfe den Core Generator an, bastel mir 
den PCIe Endpoint Block Plus Core zurecht und generiere ihn.

Dann mache ich ein "Add Copy of Source" der VHDL Dateien und dem 
Constraintsfile aus dem Exampleordner 
(ipcore_dir\endpoint_blk_plus_v1_14\example_design\).

Danach mache ich noch ein "Add Source" der XCO Datei 
(ipcore_dir\endpoint_blk_plus_v1_14.xco) und starte ein Generate 
Programming File des Topmodules(xilinx_pci_exp_ep.vhd).

Die Synthese läuft auch durch ( allerdings viel zu schnell ) und er 
bricht beim Implement Design mit 8 Errors ab die sich alle darauf 
beziehen das, daß Core Element was im Constraint erwähnt wird nicht im 
Design gefunden wird:

ERROR:ConstraintSystem:59 - Constraint <INST 
"ep/pcie_ep0/pcie_blk/SIO/.pcie_gt_wrapper_i/GTD[0].GT_i" LOC = 
GTP_DUAL_X0Y3;>
   [xilinx_pci_exp_blk_plus_1_lane_ep_xc5vlx50t-ff1136-1.ucf(115)]: INST
   "ep/pcie_ep0/pcie_blk/SIO/.pcie_gt_wrapper_i/GTD[0].GT_i" not found. 
Please verify that:
   1. The specified design element actually exists in the original 
design.
   2. The specified object is spelled correctly in the constraint source 
file.

Den gleichen Fehler gibt es wenn ich den Core entferne (remove 
endpoint_blk_plus_v1_14.xco), also erkennt wohl irgendwas in der ISE 
diesen nicht.

Das interessante dabei ist jedoch das es zwischenzeitlich (gleiche ISE, 
gleiche Coreversion) mal genau so funktioniert hat, bzw. auch ein Design 
mit diesem Core von einem Tag auf den anderen nicht mehr Implementierbar 
war (mit eben diesem Fehler).

Also gehe ich von irgendeinem Bug aus der nur unter bestimmten 
Bedingungen zum Tragen kommt und hoffe das mir irgend jemand helfen kann 
diesen zu umgehen.

von Georg A. (Gast)


Lesenswert?

Sind denn die IP-Sources im xst-Projektfile überhaupt drin? An sich 
sollte man die Files auch in der HDL-Compilation-Sektion vom xst-Log 
finden.

von Tim T. (tim_taylor) Benutzerseite


Angehängte Dateien:

Lesenswert?

Georg A. schrieb:
> Sind denn die IP-Sources im xst-Projektfile überhaupt drin? An sich
> sollte man die Files auch in der HDL-Compilation-Sektion vom xst-Log
> finden.


Nein, im xst-File stehen die IP-Sources nicht drin, nur -sd 
{"ipcore_dir"  }; aber die Sourcen stehen im prj-File, wobei mir nicht 
klar ist warum er unbedingt was aus dem example Ordner will, dazu noch 
in Verilog.

Auch im Logfile compiliert er den Verilogfile aus dem example Ordner...

Irgendwie bin ich ratlos und hänge am besten die Dateien mal an.

von Georg A. (Gast)


Lesenswert?

Ich kenn jetzt den Core nicht, aber es sieht so aus, als wäre der 
diverse ipcore-Source im .prj nicht für die Synthese geeignet, kann man 
wohl bedenkenlos rauswerfen. Wenn das Ding aus dem Coregen kommt, wird 
das wohl eine Blackbox im .ngc-Format sein. Dazu passt auch:
"Instantiating black box module <endpoint_blk_plus_v1_14>".

Wenn das ngc nicht im ipcore-Pfad liegt, ist es entweder woanders oder 
gar nicht mehr da. Evtl. den Core nochmal erzeugen...

von Tim T. (tim_taylor) Benutzerseite


Lesenswert?

Hab mal den neuen prj-File angehängt, nach dem Entfernen der oben 
genannten Zeilen, wird er neu gebaut, diesmal aber mit allem drum und 
dran. Es haben wohl einige Sourcen gefehlt.

Das warum ist mir zwar immer noch nicht bekannt, aber hiermit kann ich 
fürs erste leben.

Edit: Irgendwie nimmt er den File nicht, dann eben so:
1
verilog work "ipcore_dir/endpoint_blk_plus_v1_14/source/tlm_rx_data_snk_pwr_mgmt.v"
2
verilog work "ipcore_dir/endpoint_blk_plus_v1_14/source/tlm_rx_data_snk_mal.v"
3
verilog work "ipcore_dir/endpoint_blk_plus_v1_14/source/tlm_rx_data_snk_bar.v"
4
verilog work "ipcore_dir/endpoint_blk_plus_v1_14/source/sync_fifo.v"
5
verilog work "ipcore_dir/endpoint_blk_plus_v1_14/source/tx_sync_gtx.v"
6
verilog work "ipcore_dir/endpoint_blk_plus_v1_14/source/tx_sync_gtp.v"
7
verilog work "ipcore_dir/endpoint_blk_plus_v1_14/source/tlm_rx_data_snk.v"
8
verilog work "ipcore_dir/endpoint_blk_plus_v1_14/source/pcie_blk_ll_tx_arb.v"
9
verilog work "ipcore_dir/endpoint_blk_plus_v1_14/source/pcie_blk_ll_tx.v"
10
verilog work "ipcore_dir/endpoint_blk_plus_v1_14/source/pcie_blk_ll_oqbqfifo.v"
11
verilog work "ipcore_dir/endpoint_blk_plus_v1_14/source/pcie_blk_ll_arb.v"
12
verilog work "ipcore_dir/endpoint_blk_plus_v1_14/source/cmm_intr.v"
13
verilog work "ipcore_dir/endpoint_blk_plus_v1_14/source/cmm_errman_ram8x26.v"
14
verilog work "ipcore_dir/endpoint_blk_plus_v1_14/source/cmm_errman_ram4x26.v"
15
verilog work "ipcore_dir/endpoint_blk_plus_v1_14/source/cmm_errman_ftl.v"
16
verilog work "ipcore_dir/endpoint_blk_plus_v1_14/source/cmm_errman_cpl.v"
17
verilog work "ipcore_dir/endpoint_blk_plus_v1_14/source/cmm_errman_cor.v"
18
verilog work "ipcore_dir/endpoint_blk_plus_v1_14/source/cmm_errman_cnt_en.v"
19
verilog work "ipcore_dir/endpoint_blk_plus_v1_14/source/cmm_decoder.v"
20
verilog work "ipcore_dir/endpoint_blk_plus_v1_14/source/pcie_soft_int.v"
21
verilog work "ipcore_dir/endpoint_blk_plus_v1_14/source/pcie_gt_wrapper.v"
22
verilog work "ipcore_dir/endpoint_blk_plus_v1_14/source/pcie_gtx_wrapper.v"
23
verilog work "ipcore_dir/endpoint_blk_plus_v1_14/source/pcie_blk_plus_ll_tx.v"
24
verilog work "ipcore_dir/endpoint_blk_plus_v1_14/source/pcie_blk_plus_ll_rx.v"
25
verilog work "ipcore_dir/endpoint_blk_plus_v1_14/source/pcie_blk_ll_credit.v"
26
verilog work "ipcore_dir/endpoint_blk_plus_v1_14/source/pcie_blk_cf_pwr.v"
27
verilog work "ipcore_dir/endpoint_blk_plus_v1_14/source/pcie_blk_cf_mgmt.v"
28
verilog work "ipcore_dir/endpoint_blk_plus_v1_14/source/pcie_blk_cf_err.v"
29
verilog work "ipcore_dir/endpoint_blk_plus_v1_14/source/pcie_blk_cf_arb.v"
30
verilog work "ipcore_dir/endpoint_blk_plus_v1_14/source/bram_common.v"
31
verilog work "ipcore_dir/endpoint_blk_plus_v1_14/source/prod_fixes.v"
32
verilog work "ipcore_dir/endpoint_blk_plus_v1_14/source/pcie_reset_logic.v"
33
verilog work "ipcore_dir/endpoint_blk_plus_v1_14/source/pcie_mim_wrapper.v"
34
verilog work "ipcore_dir/endpoint_blk_plus_v1_14/source/pcie_gt_wrapper_top.v"
35
verilog work "ipcore_dir/endpoint_blk_plus_v1_14/source/pcie_clocking.v"
36
verilog work "ipcore_dir/endpoint_blk_plus_v1_14/source/pcie_blk_ll.v"
37
verilog work "ipcore_dir/endpoint_blk_plus_v1_14/source/pcie_blk_cf.v"
38
verilog work "ipcore_dir/endpoint_blk_plus_v1_14/source/pcie_top.v"
39
verilog work "ipcore_dir/endpoint_blk_plus_v1_14/source/pcie_blk_if.v"
40
verilog work "ipcore_dir/endpoint_blk_plus_v1_14/source/extend_clk.v"
41
verilog work "ipcore_dir/endpoint_blk_plus_v1_14/source/pcie_ep.v"
42
verilog work "ipcore_dir/endpoint_blk_plus_v1_14/source/endpoint_blk_plus_v1_14.v"
43
vhdl work "EP_MEM.vhd"
44
vhdl work "PIO_EP_MEM_ACCESS.vhd"
45
vhdl work "PIO_64_TX_ENGINE.vhd"
46
vhdl work "PIO_64_RX_ENGINE.vhd"
47
vhdl work "PIO_TO_CTRL.vhd"
48
vhdl work "PIO_EP.vhd"
49
vhdl work "PIO.vhd"
50
vhdl work "pci_exp_64b_app.vhd"
51
vhdl work "ipcore_dir/endpoint_blk_plus_v1_14/simulation/board.vhd"
52
vhdl work "ipcore_dir/endpoint_blk_plus_v1_14/simulation/dsport/pci_exp_usrapp_tx.vhd"
53
vhdl work "ipcore_dir/endpoint_blk_plus_v1_14/simulation/dsport/pci_exp_usrapp_cfg.vhd"
54
vhdl work "ipcore_dir/endpoint_blk_plus_v1_14/simulation/sys_clk_gen_ds.vhd"
55
vhdl work "ipcore_dir/endpoint_blk_plus_v1_14/simulation/dsport/pci_exp_usrapp_rx.vhd"
56
vhdl work "ipcore_dir/endpoint_blk_plus_v1_14/simulation/sys_clk_gen.vhd"
57
vhdl work "ipcore_dir/endpoint_blk_plus_v1_14/simulation/dsport/test_interface.vhd"
58
vhdl work "ipcore_dir/endpoint_blk_plus_v1_14/simulation/tests/tests.vhd"
59
vhdl work "ipcore_dir/endpoint_blk_plus_v1_14/example_design/xilinx_pci_exp_ep.vhd"
60
vhdl work "ipcore_dir/endpoint_blk_plus_v1_14/example_design/PIO.vhd"
61
vhdl work "ipcore_dir/endpoint_blk_plus_v1_14/example_design/PIO_TO_CTRL.vhd"
62
vhdl work "ipcore_dir/endpoint_blk_plus_v1_14/example_design/PIO_EP.vhd"
63
vhdl work "ipcore_dir/endpoint_blk_plus_v1_14/example_design/PIO_64.vhd"
64
vhdl work "ipcore_dir/endpoint_blk_plus_v1_14/example_design/PIO_64_RX_ENGINE.vhd"
65
vhdl work "ipcore_dir/endpoint_blk_plus_v1_14/example_design/EP_MEM.vhd"
66
vhdl work "ipcore_dir/endpoint_blk_plus_v1_14/example_design/PIO_EP_MEM_ACCESS.vhd"
67
vhdl work "ipcore_dir/endpoint_blk_plus_v1_14/example_design/PIO_64_TX_ENGINE.vhd"
68
vhdl work "ipcore_dir/endpoint_blk_plus_v1_14/example_design/pci_exp_64b_app.vhd"
69
vhdl work "xilinx_pci_exp_ep.vhd"

von Tim T. (tim_taylor) Benutzerseite


Lesenswert?

Hmm, jetzt ist mein vorhergehender Text irgendwie verschwunden ( dürfte 
der 24h DSL-Reconnect gewesen sein ).

Wie auch immer:
Nach dem händischen löschen der Verilog und der Example Zeilen aus dem 
prj-File wurde dieser neu gebaut und sowohl Synthese als auch 
Implementierung funktionieren.

Vielen Dank für deine Mühe!

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.