PCI mit Virtex 5

Gast #2933231
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
Gast
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
Gast
Mensch Meier.

>PCI

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

Immer noch nicht geschnallt.


Du musst dein Design simulieren, sonst wird das nie was.
Gast
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
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.
Gast
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).
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.
Gast
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!

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 13 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [vhdl]VHDL-Code[/vhdl]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.