Routing von Bank2 nach Bank0

Gast #3740744
Lesenswert?

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);
Gast #3740767
Lesenswert?

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.
#3740886
Lesenswert?

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.!
Gast #3740957
Lesenswert?

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.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren