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: 
Voyager
Voyager
268 Views
Registered: ‎10-12-2016

How to define the clock at output of MUX(LUT or BUFGMUX) ?

Jump to solution

Hi Friends, 

I have Clock muxes in the design, vivado synthe replaces them with LUT's. I am getting no_clk issues on the output clk of mux. How can i declare the clock on output of mux ?

Any help or suggestion is highly appreciated. 

garnet_clock_mux_u_ifabric.PNG

 

 

 

-Sam 

 

 

 

 

-Sampath
0 Kudos
1 Solution

Accepted Solutions
Moderator
Moderator
259 Views
Registered: ‎11-04-2010

Re: How to define the clock at output of MUX(LUT or BUFGMUX) ?

Jump to solution

Hi, @ssampath ,

For BUFGMUX, the input clocks will just propagate through the BUFGMUX automatically. You can find all the input clock at the output of BUFGMUX.

For LUT, you have to use create_generated_clock command to create clock on the output pin of LUT with the source of original input clock respectively.

-------------------------------------------------------------------------
Don't forget to reply, kudo, and accept as solution.
-------------------------------------------------------------------------
0 Kudos
6 Replies
Moderator
Moderator
260 Views
Registered: ‎11-04-2010

Re: How to define the clock at output of MUX(LUT or BUFGMUX) ?

Jump to solution

Hi, @ssampath ,

For BUFGMUX, the input clocks will just propagate through the BUFGMUX automatically. You can find all the input clock at the output of BUFGMUX.

For LUT, you have to use create_generated_clock command to create clock on the output pin of LUT with the source of original input clock respectively.

-------------------------------------------------------------------------
Don't forget to reply, kudo, and accept as solution.
-------------------------------------------------------------------------
0 Kudos
Xilinx Employee
Xilinx Employee
248 Views
Registered: ‎05-14-2008

Re: How to define the clock at output of MUX(LUT or BUFGMUX) ?

Jump to solution

You can change your coding to instantiate BUFGMUX for the clock mux.

BUFGMUX has to be manually instantiated.

-vivian

-------------------------------------------------------------------------------------------------
Don’t forget to reply, kudo, and accept as solution.
-------------------------------------------------------------------------------------------------
如果提供的信息能解决您的问题,请标记为“接受为解决方案”。
如果您认为帖子有帮助,请点击“奖励”。谢谢!
-------------------------------------------------------------------------------------------------
0 Kudos
Voyager
Voyager
242 Views
Registered: ‎10-12-2016

Re: How to define the clock at output of MUX(LUT or BUFGMUX) ?

Jump to solution

Thank You @hongh  , 

I have two clock inputs to mux, suppose in my canse if i use LUT for mux, do i have to create muxout as clock with both the input clocks ?

Can you pls elaborate more clearly if possible with a block diagram or simple example. 

 

and 

@viviany    As you suggested we are replaced them for next revision of RTL, But Current revision we want to work with LUT only. 

 

-Sam

-Sampath
0 Kudos
Xilinx Employee
Xilinx Employee
228 Views
Registered: ‎02-27-2019

Re: How to define the clock at output of MUX(LUT or BUFGMUX) ?

Jump to solution

Hi @ssampath ,

In this AR https://www.xilinx.com/support/answers/62488.html

use case 5 might helps you.

-------------------------------------------------------------------------
Don't forget to reply, kudo, and accept as solution.
-------------------------------------------------------------------------
Moderator
Moderator
186 Views
Registered: ‎11-04-2010

Re: How to define the clock at output of MUX(LUT or BUFGMUX) ?

Jump to solution

Hi, @ssampath ,

Yang's example(Case5) is quite a good reference for you.

In that situation, the mux can be replaced with the name of the LUT:

create_generated_clock -name clk0mux -divide_by 1 -source [get_pins U_clock_manager_rx/U_audio_link_clk_mux/I0] [get_pins U_clock_manager_rx/U_audio_link_clk_mux/O]
create_generated_clock -name clk1mux -divide_by 1 -source [get_pins U_clock_manager_rx/U_audio_link_clk_mux/I1] [get_pins U_clock_manager_rx/U_audio_link_clk_mux/O] -add

Don't forget to use -add option in the 2nd create_generated_clock constraint, or the first create_generated_clock constraint will be overriden.

-------------------------------------------------------------------------
Don't forget to reply, kudo, and accept as solution.
-------------------------------------------------------------------------
0 Kudos
Highlighted
150 Views
Registered: ‎01-22-2015

Re: How to define the clock at output of MUX(LUT or BUFGMUX) ?

Jump to solution

@ssampath

Routing clocks through LUTs is a really really bad idea, as explained by Avrum <here>.

If your goal is to multiplex clocks, then you should instantiate the BUFGMUX as recommended by viviany.  -and ensure that clock inputs to the BUFGMUX are coming from the clock tree (eg. MMCM, PLL, clock buffers) and not from LUTs or from other fabric components.

Mark