UPGRADE YOUR BROWSER

We have detected your current browser version is not the latest one. Xilinx.com uses the latest web technologies to bring you the best online experience possible. Please upgrade to a Xilinx.com supported browser:Chrome, Firefox, Internet Explorer 11, Safari. Thank you!

cancel
Showing results for 
Search instead for 
Did you mean: 
Adventurer
Adventurer
1,249 Views
Registered: ‎08-16-2017

BUFGMUX_CTRL selecting a clock

Hi Folks,

 

I am looking for a way to select bwteen two input clocks. The clocks are pixel clocks from two cameras and are recevied on an FMC board. 

 

instanciating BUGMUX_CTRL to select between the two input clocks as :

 

 

    
BUFGMUX_CTRL_inst : BUFGMUX_CTRL
    port map (
    O => video_clk_bufg_mux, -- 1-bit output: Clock output
    I0 => video_clk_bufg1, -- 1-bit input: Clock input (S=0)
    I1 => video_clk_bufg2, -- 1-bit input: Clock input (S=1)
    S => cam_select -- 1-bit input: Clock select
    );
    
  

Makes Vivado complain:

 

 

 

[Place 30-675] Sub-optimal placement for a global clock-capable IO pin and BUFG pair.If this sub optimal condition is acceptable for this design, you may use the CLOCK_DEDICATED_ROUTE constraint in the .xdc file to demote this message to a WARNING. However, the use of this override is highly discouraged. These examples can be used directly in the .xdc file to override this clock rule.
	< set_property CLOCK_DEDICATED_ROUTE FALSE [get_nets IBUFG_inst_1/O] >

	IBUFG_inst_1/IBUFCTRL_INST (IBUFCTRL.O) is locked to IOB_X1Y130
	 BUFGMUX_CTRL_inst (BUFGCTRL.I0) is provisionally placed by clockplacer on BUFGCTRL_X0Y24

	The above error could possibly be related to other connected instances. Following is a list of 
	all the related clock rules and their respective instances.

	Clock Rule: rule_bufgce_bufg_conflict
	Status: PASS 
	Rule Description: Only one of the 2 available sites (BUFGCE or BUFGCE_DIV/BUFGCTRL) in a pair can be
	used at the same time
	 BUFGMUX_CTRL_inst (BUFGCTRL.O) is provisionally placed by clockplacer on BUFGCTRL_X0Y24

	Clock Rule: rule_gclkio_bufg
	Status: PASS 
	Rule Description: An IOB driving a BUFG must use a GCIO in the same clock region as the BUFG
	 IBUFG_inst_2/IBUFCTRL_INST (IBUFCTRL.O) is locked to IOB_X1Y182
	 and BUFGMUX_CTRL_inst (BUFGCTRL.I1) is provisionally placed by clockplacer on BUFGCTRL_X0Y24

 

 

It is not clear to me how to overcome this error? my two input clocks 

"video_clk_bufg1" and "video_clk_bufg2"

 

Are buffered with:

 IBUFG_inst_1 : IBUFG
    port map (
        O => video_clk_bufg1,            
        I => fmc_in1_pclkout  -- 1-bit input: Buffer input
    );
    
    IBUFG_inst_2 : IBUFG
    port map (
        O => video_clk_bufg2,            
        I => fmc_in2_pclkout  -- 1-bit input: Buffer input
    );

and the two 

fmc_in1_pclkout fmc_in2_pclkout

are the IO pins.

 

Any help is welcome.

 

0 Kudos
7 Replies
Scholar dpaul24
Scholar
1,227 Views
Registered: ‎08-07-2014

Re: BUFGMUX_CTRL selecting a clock

@ziladdev,

 

The answer is right inside the warning:

Sub-optimal placement for a global clock-capable IO pin and BUFG pair.If this sub optimal condition is acceptable for this design, you may use the CLOCK_DEDICATED_ROUTE constraint in the .xdc file to demote this message to a WARNING. However, the use of this override is highly discouraged. These examples can be used directly in the .xdc file to override this clock rule.

In your XDC set the CLOCK_DEDICATED_ROUTE to false.

 

See this answer record: https://www.xilinx.com/support/answers/64452.html

--------------------------------------------------------------------------------------------------------
FPGA enthusiast!
All PMs will be ignored
--------------------------------------------------------------------------------------------------------
0 Kudos
Adventurer
Adventurer
1,219 Views
Registered: ‎08-16-2017

Re: BUFGMUX_CTRL selecting a clock

Thanks for the answer. Well, the message also say it is NOT recommended to do this.

 

Please note that both PINS I am getting the clocks from are CC pins, so I am a bit perplexed why I am getting this message in the first place.

0 Kudos
Scholar dpaul24
Scholar
1,214 Views
Registered: ‎08-07-2014

Re: BUFGMUX_CTRL selecting a clock

@ziladdev,

 

Well, the message also say it is NOT recommended to do this.

I do it everytime in big designs when I run out of clock capable pins.

 

Please note that both PINS I am getting the clocks from are CC pins, so I am a bit perplexed why I am getting this message in the first place.

That does not sound good, have you re-checked?

--------------------------------------------------------------------------------------------------------
FPGA enthusiast!
All PMs will be ignored
--------------------------------------------------------------------------------------------------------
0 Kudos
Adventurer
Adventurer
1,187 Views
Registered: ‎08-16-2017

Re: BUFGMUX_CTRL selecting a clock

Yes, I have now double checked and both clocks on the FMC are received on :

FMC_HPC0_LA17_CC_P

FMC_HPC0_LA00_CC_P

Positive pin of a CC pin on the FMC, both are on the same Bank 66 on the ZCU102.

 

Is there any primitive which I could try ? Basically this was supposed to be a quick switch between two camera inputs, I have a design for each camera and I wanted to merge both and have a swicth on the board switching camera inputs (data and pclks). 

0 Kudos
Adventurer
Adventurer
1,176 Views
Registered: ‎08-16-2017

Re: BUFGMUX_CTRL selecting a clock

Perhaps it is relevant to add, the resulting clock, output of the BUFG_MUX is fed to the clockking wizard (MMCM) afterwards basically in order to cleanup and improve clock jitter. I will try and remove that and see if it has any effect.

 

0 Kudos
Adventurer
Adventurer
1,148 Views
Registered: ‎08-16-2017

Re: BUFGMUX_CTRL selecting a clock

I am out of ideas. I removed the two initial clock buffers and used the MUX directly on the pins and still Vivado complains. As I mentioned both clocks are on the C(lock)C(apable) pins of the ZCU102. I am even wondering if this primitive works at all or is it a bug in Vivado.

I have a similar design on a Zebboard, with exactly the same FMC card on the same pins received on CC IO and Vivado seems to do the placement and implementation without a glitch.

 

Any help is more than welcome.

0 Kudos
1,137 Views
Registered: ‎06-21-2017

Re: BUFGMUX_CTRL selecting a clock

By default, the clocking wizard introduces a buffer at its input, meaning you may be chaining two buffers together.  Check to see if there is a buffer at the input to the MMCM in addition to your BUFGMUX.  Try regenerating the clock wizard without the input buffer.

0 Kudos