Hallo Leute, was muss generell eingestellt werden, damit ich von Bank2 input-pins nach Bank0 output-pins routen kann. Verwende den 100MHZ-Quarz auf dem u.a. Board Im Moment klappt es bei mir nicht. Zwischen Bank2 und Bank3 funktioniert es problemlos. Habe alle I/O-Pins ausprobiert. Nutze überall LVCMOS33 Meine Hardware: Xilinx FPGA Spartan-6 XC6SLX45-2CSG484I auf Trenz-electronic TE0630-00I und TE0630-003 ISE Webpack 14.7 clkin1_buf : IBUFG port map (O => clkin1, I => sys_clk_pin); pll_base_inst : PLL_BASE generic map (BANDWIDTH => "OPTIMIZED", CLK_FEEDBACK => "CLKFBOUT", COMPENSATION => "SYSTEM_SYNCHRONOUS", DIVCLK_DIVIDE => 2, --400MHz CLKFBOUT_MULT => 8, CLKFBOUT_PHASE => 0.000, CLKOUT0_DIVIDE => 4, --100 CLKOUT0_PHASE => 0.000, CLKOUT0_DUTY_CYCLE => 0.500, CLKOUT1_DIVIDE => 100, --4 CLKOUT1_PHASE => 0.000, CLKOUT1_DUTY_CYCLE => 0.500, CLKOUT2_DIVIDE => 50, --8 CLKOUT2_PHASE => 0.000, CLKOUT2_DUTY_CYCLE => 0.500, CLKOUT3_DIVIDE => 2, --200 CLKOUT3_PHASE => 0.000, CLKOUT3_DUTY_CYCLE => 0.500, CLKOUT4_DIVIDE => 1, --400 CLKOUT4_PHASE => 0.000, CLKOUT4_DUTY_CYCLE => 0.500, CLKOUT5_DIVIDE => 2, --200, um 180° Phasenverschoben CLKOUT5_PHASE => 180.000, CLKOUT5_DUTY_CYCLE => 0.500, CLKIN_PERIOD => 10.0, REF_JITTER => 0.010) clkout0_buf : BUFG --auch für alle anderen port map (O => CLK_100, I => clkout0);
Das Routing hat erst mal nix mit der PLL zu tun. Was genau willst du denn machen? Aus dem Code-Fetzen kann man nur erkennen, dass das sowieso nix wird, denn der Spartan 6 mit Speedgrade 2 schafft allerhöchstens 375MHz am BUFG Taktnetzwerk. Und das sind schon nur Xilinx-Marketing-Angaben.
Könnte auch Speedgrade 3 haben, der sollte das dann ja schaffen. Aber unabhängig davon hab ich es mit 4 MHz getestet. Mein Problem ist, dass ich eine Kamera anschliessen will und dafür 26 Pins für den Daten-Eingang, 10 Pins für Signalisierung, 4 Pins für SPI, und dann leider ;) noch einige Pins für die Ausgabe der verarbeiteten Daten benötige. Insgesamt habe ich also mit Bank 2 und 3 zu wenig nutzbare Pins.
Na und? Das sollte problemlos gehen, vorausgesetzt du verwendest keine BUFIO2 und die SERDES, der BUFIO Takt erreicht nur jeweils eine halbe Bank. Vielleicht ist auch dein Takteingang nur an einen Regional Clock Pin angeschlossen? Dann kann es sein dass der dann nicht so weit reicht. Der Spartan 6 hat ein ziemlich beschränktes Taktnetzwerk. Und 400 MHz intern ist auch mit dem -3 nur mit Rückenwind und im freien Fall machbar.!
Danke für den Hinweis mit den 400 MHz. Hab das in den Unterlagen nochmal gegengeprüft und muss dir Recht geben. Kann den Prozess aber auch mit 200 MHz takten und dann auf jede Flankenänderung reagieren. Und der sys_clk ist an AA12, also einem Global-Clock-Pin angeschlossen. ein einfaches routing wie z.B.: NET "sys_clk_pin" LOC = AA12 | IOSTANDARD = LVCMOS33; NET "input" LOC=T1 | IOSTANDARD=LVCMOS33; --V3_IO_13 NET "output" LOC=A4 | IOSTANDARD=LVCMOS33; --V0_IO_01 test process(sys_clk_pin) begin if rising_edge(sys_clk-pin) then output <= input; end if; end process test; funktioniert ja nicht. Ändere ich die Bank für output in V3 oder V2 geht's.
leider keine in diesem Zusammenhang. Alle Protokolle sind der Meinung, dass es klappen sollte ;( Kann auch schlecht den kompletten Quellcode (1500 lines) posten
Wenn (auch bei dem Minimal-Beispiel) keine Fehlermeldung kommt, aber es trotzdem nicht funktioniert, dann ist an der Hardware was kaputt. Vielleicht ist die VCCO nicht angeschlossen an der Bank 0?
die Stromversorgung könnte es tatsächlich sein. Kann es leider nur nicht mehr testen, da meine Bachelor-Zeit vorbei ist. Trotzdem danke für die Hilfe
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.