Forum: FPGA, VHDL & Co. PCI mit Virtex 5


von Sandy (Gast)


Lesenswert?

Liebe Kollegen!

Ich möchte gerne etwas mehr Erfahrung mit PCI machen und habe mein 
Virtex 5 Board im PC eingebaut. Das Testdesign von Xilinx funktioniert 
und jetzt würde ich gerne eine Led anmachen wenn Daten empfangen wurden.
Leider kann ich kein Programming File erstellen.

ERROR:LIT:550 - CLKIN of GTP_DUAL symbol
   "U1/pcie_ep0/pcie_blk/SIO/.pcie_gt_wrapper_i/GTD[0].GT_i" (output
   signal=U1/pcie_ep0/pcie_blk/SIO/.pcie_gt_wrapper_i/gt_refclk_out) is 
not
   driven by a BUFG, BUFR, IBUFDS, IBUFGDS or GT.
Errors found during logical drc.
1
#Created by Constraints Editor (xc5vlx110t-ff1136-1) - 2012/11/26
2
NET "clk" TNM_NET = clk;
3
TIMESPEC TS_clk = PERIOD "clk" 100 MHz HIGH 50%;
4
5
INST "U1/pcie_ep0/pcie_blk/SIO/.pcie_gt_wrapper_i/GTD[0].GT_i" LOC = GTP_DUAL_X0Y2;
6
#INST "PCI_top/U1/pcie/pcie_blk/SIO/pcie_gt_wrapper_i/GTD[0].GT_i" LOC = GTP_DUAL_X0Y1;
7
NET "pci_exp_rxn[0]" LOC = AF1;
8
NET "pci_exp_txn[0]" LOC = AE2;
9
NET "pci_exp_txp[0]" LOC = AD2;
10
NET "pci_exp_rxp[0]" LOC = AE1;
11
NET "clk" LOC = AH15;
12
NET "reset" LOC = H10;
13
NET "led" LOC = F6;

Bitte helft mir, ich sitze schon seit Stunden und komme nicht auf meinen 
Fehler!!!

DANKE!

Bussi
Sandy

von Clara (Gast)


Lesenswert?

Oh nein, die Bussi-Tante ist wieder da!

von Sandy (Gast)


Lesenswert?

Danke, hab Dich auch lieb.

Wenn Du mir hilfst lass ich das Bussi in Zukunft weg !?

von Sandy (Gast)


Lesenswert?

Hat denn schon mal jemand die PCI verwendet?

Bussi
Sandy

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


Lesenswert?

Sandy schrieb:
> mehr Erfahrung mit PCI machen
> ...
> CLKIN of GTP_DUAL symbol "U1/pcie_ep0/pcie_blk
Was denn jetzt? PCI oder PCIe?
Ist trotz fast gleichem Namen immerhin ein Unterschied wie Tag+Nacht...

von Sandy (Gast)


Lesenswert?

PCIe

Sorry, war etwas schlampig beim schreiben

von DuArte (Gast)


Lesenswert?

Simulierst du dein Design?

von Sandy (Gast)


Lesenswert?

Nein, ich wollte zuerst nur eine Led anmachen wenn etwas vom PC gekommen 
ist.
1
entity PCI_data is
2
    Port ( clk : in  STD_LOGIC;
3
           reset : in  STD_LOGIC;
4
           trn_rsrc_rdy_n : in  STD_LOGIC;
5
        led : out std_logic;
6
           trn_rdst_rdy_n : out  STD_LOGIC;
7
           trn_rd : in  STD_LOGIC_VECTOR (63 downto 0));
8
end PCI_data;
9
10
architecture Behavioral of PCI_data is
11
12
begin
13
14
p_read : process (clk, reset)
15
16
begin
17
18
if reset = '0' then
19
  led <= '0';
20
  trn_rdst_rdy_n <= '1';
21
elsif clk'event and clk = '1' then
22
  if trn_rsrc_rdy_n = '0' then
23
    led <= '1';
24
    trn_rdst_rdy_n <= '0';
25
  end if;
26
  
27
end if;
28
29
end process;
30
31
end Behavioral;

Leider kann ich kein Programming File erstellen.

Inzwischen habe ich einen Microblaze mit PCI ausgestattet und den in den 
FPGA gesteckt. Mit dem Microblaze habe ich schon gearbeitet aber noch 
nicht mit PCI deshalb kenne ich mich nicht mit den Befehlen vom PCI aus.

Lieber wäre mir allerdings ich erspare mir den Microblaze.

Bussi
Sandy

von DuArte (Gast)


Lesenswert?

Mensch Meier.

>PCI

>>PCIe
>>Sorry, war etwas schlampig beim schreiben

Immer noch nicht geschnallt.


Du musst dein Design simulieren, sonst wird das nie was.

von Sandy (Gast)


Lesenswert?

Eine Test Bench für PCI stelle ich mir etwas aufwändig vor.
Das Timing für die serielle Übertragung !?

Mein Hauptproblem ist der o.a. Fehler. Die Files wurden direkt mit der 
ISE erstellt und haben Fehler.

Hast recht, ich versuch eine Testbench für das Design zu basteln.

Bussi
Sandy

von Gustl B. (-gb-)


Lesenswert?

Macht du jetzt PCIe oder PCI?

entity PCI_data is

Was mich auch irritiert ist

trn_rd : in  STD_LOGIC_VECTOR (63 downto 0);

Was ist das mit dem du sprichst? Direkt PCI ist das doch nicht? Oder 
sprichst du mit einem 64Bit breiten PCI?

http://de.wikipedia.org/wiki/Peripheral_Component_Interconnect
http://de.wikipedia.org/wiki/PCI_Express

Ich kenne mich auch nicht aus damit, aber die haben zumindest andere 
Anschlüsse.

von Sandy (Gast)


Lesenswert?

PCIe!

Im LogiCORE Endpoint Block Dokument von Xilinx steht das so drinnen. Bei 
trn_rd ... kommen die Daten raus (laut timing diagram).

Der Fehler:
ERROR:LIT:550 - CLKIN of GTP_DUAL symbol
   "U1/pcie_ep0/pcie_blk/SIO/.pcie_gt_wrapper_i/GTD[0].GT_i" (output
   signal=U1/pcie_ep0/pcie_blk/SIO/.pcie_gt_wrapper_i/gt_refclk_out) is
not
   driven by a BUFG, BUFR, IBUFDS, IBUFGDS or GT.
Errors found during logical drc.

ist ärgerlich. Damit kann ich das Design nicht einmal ausprobieren. Wäre 
schon glücklich wenn zumindest die LED angeht. Dann sehe ich, dass ich 
am richtigen Weg bin.

Test Bench von der ISE erstellt wirft viele Errors aus. Tolles Programm 
(oder bin ich nicht kompatibel).

von Klaus F. (kfalser)


Lesenswert?

Sandy schrieb:
> Der Fehler:
> ERROR:LIT:550 - CLKIN of GTP_DUAL symbol
>    "U1/pcie_ep0/pcie_blk/SIO/.pcie_gt_wrapper_i/GTD[0].GT_i" (output
>    signal=U1/pcie_ep0/pcie_blk/SIO/.pcie_gt_wrapper_i/gt_refclk_out) is
> not
>    driven by a BUFG, BUFR, IBUFDS, IBUFGDS or GT.
> Errors found during logical drc.

Warum versuchst Du nicht den Fehler zu verstehen?
BUFG usw. sind Taktelemente. Da scheint ein Takt-Eingang des PCIe Cores 
nicht richtig verbunden zu sein.

Vielleicht erklärst du auch ein bischen besser was Du machst?
Du hast ein Design erstellt, in dem nur der PCIe Core instanziiert ist, 
und mit dessen Ausgängen treibst Du das LED?
Oder hast Du das Beispiel-Design von Xilinx modifiziert und nun geht's 
nicht mehr?

Könnte auch sein, dass Du bestimmte Eingänge nicht angeschlossen hast 
und dass deshalb Teile des Cores wegoptimiert werden, sodass es das 
Signal nicht mehr gibt.

von Sandy (Gast)


Lesenswert?

Den Fehler hab ich verstanden. Die Lösung ist das Problem :)

Der Code steht weiter oben. Ich habe einen PCIe Core von Xilinx und 
meine Entity in einem eigenen Design. Die LED soll nur angehen wenn 
etwas vom PC empfangen wurde. (ein erster Versuch).

Das mit dem wegoptimieren klingt logisch. Danke für den Tip!

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.