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: 
Visitor ldm@c
Visitor
443 Views
Registered: ‎10-30-2018

How to report a related clok for the port?

Hi All,

 

How can I report the clock domains for the ports?

 

Let's assume that a Block A has an input ports IN1 and IN2 and also output ports OUT1 and OUT2 and also has the clock inputs CLK1 and CLK2.

 

Let's assume that the ports IN1 and OUT1 are internally clocked by the clock CLK1 and the IN2 and OUT2 ports are internally clocked by CLK2.

 

So, for each port, how can I report the related clock?  E.g. how can I report by which clock the port IN1 is clocked?

 

How can I report that ports IN1 and OUT1 are clocked by the CLK1 and IN2 and OUT2 are clocked by the CLK2?

 

I'd like to generate such report for each port.

 

Thank you!

 

 

0 Kudos
3 Replies
Voyager
Voyager
441 Views
Registered: ‎06-20-2017

Re: How to report a related clok for the port?

See https://www.xilinx.com/support/documentation/sw_manuals/xilinx2018_2/ug835-vivado-tcl-commands.pdf

 

Open your synthesized design, go to the tcl console, and start playing around with commands (you can also use the GUI to help you get some syntax,

look at get_clocks get_cells, and get_pins with -of_objects and/or -hierarchical as necessary. 

Mike
0 Kudos
Historian
Historian
430 Views
Registered: ‎01-23-2009

Re: How to report a related clok for the port?

You can certainly do it with the report_timing or get_timing_paths commands.

 

First, I need to know what this "block" is; is it a design on its own, or is it a block that is instantiated in the middle of another design (it will matter as to how to access the ports/pins of the block).

 

Let's say it is a block that has been synthesized on its own (either normally or out of context) - so when you open the design, it is the top design.

 

If IN1 is only captured by CLK1 then there will be timing paths between IN1 and CLK1, but not between IN1 and CLK2. So you can ask the timing tool "how many paths are there". This would be done with something like

 

llength [get_timing_paths -from [get_ports IN1] -to [get_clocks CLK1]]

 

This should return a value that is non-zero (if IN1 is captured by CLK1). In fact, since the get_timing_paths (with no options) only returns the worst path, this should return 1 if there are any paths.

 

llength [get_timing_paths -from [get_ports IN1] -to [get_clocks CLK2]]

 

should return 0 (since there are no paths)

 

Same for the outputs

 

llength [get_timing_paths -from [get_clocks CLK1] -to [get_ports OUT1]]

 

I'm sure there are other ways, but this should work...

 

Avrum

0 Kudos
Visitor ldm@c
Visitor
416 Views
Registered: ‎10-30-2018

Re: How to report a related clok for the port?

What about the usage of the report_datasheet? It seems this command creates some summary of the ports vs clock.

0 Kudos