cancel
Showing results for 
Search instead for 
Did you mean: 
Highlighted
Visitor
Visitor
6,677 Views
Registered: ‎06-14-2016

Drive BUFIO2 with PLL output

Jump to solution

Hi to everyone,

 

In my design i'm using a PLL to generate a global clock for all my logic. I'd like to use the same output clock to generate the clock for the OSERDES primitive using different BUFIO2.

 

During the map i get this error:

 

ERROR:Place:1136 - This design contains a global buffer instance,
   <a/clkout1_buf>, driving the net, <int_clk>, that is driving the following
   (first 30) non-clock load pins.
   < PIN: Generation_oserdes_data.I; >
   < PIN: Generation_oserdes_clock1.I; >
   < PIN: Generation_oserdes_clock1.IB; >
   < PIN: Generation_oserdes_clock2.I; >
   This is not a recommended design practice in Spartan-6 due to limitations in
   the global routing that may cause excessive delay, skew or unroutable
   situations.  It is recommended to only use a BUFG resource to drive clock
   loads. If you wish to override this recommendation, you may use the
   CLOCK_DEDICATED_ROUTE constraint (given below) in the .ucf file to demote
   this message to a WARNING and allow your design to continue.
   < PIN "a/clkout1_buf.O" CLOCK_DEDICATED_ROUTE = FALSE; >
ERROR:Pack:1654 - The timing-driven placement phase encountered an error.

 

Here is part of the code highlighting the connections between the PLL and the BUFIO2 for the OSERDES blocks 

 

a : clock
  port map
   (-- Clock in ports
    CLK_IN1_P => clkp,
    CLK_IN1_N => clkn,
    -- Clock out ports
    CLK_OUT1 => int_clk);

--------------------------------------------------------------------------
----CLOCK GENERATION FOR OSERDES BOTH DATA AND DATA CLOCK------------------------------------------
--------------------------------------------------------------------------

Generation_oserdes_data : BUFIO2 generic map(
      DIVIDE			=> 8,              		-- The DIVCLK divider divide-by value; default 1
      I_INVERT			=> FALSE,               	--
      DIVIDE_BYPASS		=> FALSE,               	--
      USE_DOUBLER		=> FALSE)               		--
port map (
      I				=> int_clk,  		-- Input source clock 0 degrees
      IOCLK			=> txioclk,        		-- Output Clock for IO
      DIVCLK			=> gclk_s,                -- Output Divided Clock
      SERDESSTROBE		=> txserdesstrobe) ;           	-- Output SERDES strobe (Clock Enable)	
		
		
BUFG_inst : BUFG
port map (
	O => gclk, 
	I => gclk_s 
);

Generation_oserdes_clock1 : BUFIO2 generic map(
      DIVIDE			=> 8,              		-- The DIVCLK divider divide-by value; default 1
      I_INVERT			=> FALSE,               	--
      DIVIDE_BYPASS		=> FALSE,               	--
      USE_DOUBLER		=> TRUE)               		--
port map (
      I				=> int_clk,  		-- Input source clock 0 degrees
      IOCLK			=> txioclk_clk,        		-- Output Clock for IO
      DIVCLK			=> gclk_clk_s,                -- Output Divided Clock
      SERDESSTROBE		=> txserdesstrobe_clk) ;           	-- Output SERDES strobe (Clock Enable)	

Generation_oserdes_clock2 : BUFIO2 generic map(
      DIVIDE			=> 8,              		-- The DIVCLK divider divide-by value; default 1
      I_INVERT			=> TRUE,               	--
      DIVIDE_BYPASS		=> FALSE,               	--
      USE_DOUBLER		=> FALSE)               		--
port map (
      I				=> int_clk,  		-- Input source clock 0 degrees
      IOCLK			=> txioclk_clk2,        		-- Output Clock for IO
      DIVCLK			=> open,                -- Output Divided Clock
      SERDESSTROBE		=> open) ;           	-- Output SERDES strobe (Clock Enable)	
		
		
BUFG_inst_dataclock : BUFG
port map (
	O => gclk_clk, 
	I => gclk_clk_s 
);

 

thanks in advance for your answers.

0 Kudos
1 Solution

Accepted Solutions
Highlighted
Xilinx Employee
Xilinx Employee
12,929 Views
Registered: ‎09-20-2012

Re: Drive BUFIO2 with PLL output

Jump to solution

Hi @tony91

 

The BUFIO2 input should be connected to GCLK pin (top level port). You cannot drive PLL/BUFG output to BUFIO2.

Thanks,
Deepika.
--------------------------------------------------------------------------------------------
Google your question before posting. If someone's post answers your question, mark the post as answer with "Accept as solution". If you see a particularly good and informative post, consider giving it Kudos (the star on the left)

View solution in original post

0 Kudos
1 Reply
Highlighted
Xilinx Employee
Xilinx Employee
12,930 Views
Registered: ‎09-20-2012

Re: Drive BUFIO2 with PLL output

Jump to solution

Hi @tony91

 

The BUFIO2 input should be connected to GCLK pin (top level port). You cannot drive PLL/BUFG output to BUFIO2.

Thanks,
Deepika.
--------------------------------------------------------------------------------------------
Google your question before posting. If someone's post answers your question, mark the post as answer with "Accept as solution". If you see a particularly good and informative post, consider giving it Kudos (the star on the left)

View solution in original post

0 Kudos