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 rentschl
Visitor
693 Views
Registered: ‎04-28-2017

Applying different constraints per IP instance

I have a design that has multiple instances of an IP, each of which needs different set_max_delay value.  The set_max_delay constraint value for each instance is calculated from a different clock period used for each instance.

 

I have an xdc file for the IP itself, and I am hoping to get a scheme where the actual value used for each instance is really inherited from the xdc file where each corresponding clock period is defined.

 

I’ve read about the processing order of constraints and it looks like that might be part of the answer.

 

What's the general methodology for making each instance use the appropriate value?

 

Thanks,

Eric

0 Kudos
4 Replies
Xilinx Employee
Xilinx Employee
660 Views
Registered: ‎05-14-2008

Re: Applying different constraints per IP instance

First, make sure the xdc file in which each clock period is defined is read before the IP XDCs by the tool. For example, this xdc's processing order is early and the IP XDCs' processing order is normal.

 

Then in the IP XDCs, use "get_property PERIOD [get_clocks xxxx]" to query the period value of the clock for each specific IP and then based on this value you can calculate the max delay for the IP.

 

The key point is that those clocks are created before the IP XDCs use them.

 

-vivian

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

Re: Applying different constraints per IP instance

Thanks for the fast response vivian!

 

That makes sense on the ordering, but I do have a question.

 

I currently have a series of "read_xdc <file name>" commands in a .tcl file.

 

Do the "read_xdc" commands get replaced by the  "set_property PROCESSING_ORDER [EARLY|NORMAL|LATE] [get_files <filename>]" commands?

 

Or do the "set_property" commands allow you to apply properties to files already read-in via the "read_xdc" commands?

 

I've done experiments of both of the above approaches and they both did not work right.

0 Kudos
Moderator
Moderator
566 Views
Registered: ‎11-04-2010

Re: Applying different constraints per IP instance

You can try to run report_compile_order command to confirm whether the XDC files are read in as you expected.

When do you run the tcl with a series of "read_xdc <file name>" ?


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

Re: Applying different constraints per IP instance


@rentschl wrote:

Thanks for the fast response vivian!

 

That makes sense on the ordering, but I do have a question.

 

I currently have a series of "read_xdc <file name>" commands in a .tcl file.

 

Do the "read_xdc" commands get replaced by the  "set_property PROCESSING_ORDER [EARLY|NORMAL|LATE] [get_files <filename>]" commands?

 

Or do the "set_property" commands allow you to apply properties to files already read-in via the "read_xdc" commands?

 

I've done experiments of both of the above approaches and they both did not work right.



So you're using non-project mode tcl script?

In this mode, the xdc files are read in the order of read_xdc command.

So try to read the xdc in which the clocks are defined before you read the IPs (I suppose you're using read_ips).

Have a try and let know if that works.

 

-vivian

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