Sign In

Don't have a Xilinx account yet?

  • Choose to receive important news and product information
  • Gain access to special content
  • Personalize your web experience on Xilinx.com

Create Account

Username

Password

Forgot your password?
XClose Panel
Xilinx Home
Reply
Visitor
declanwalsh25
Posts: 9
Registered: ‎11-18-2010
0
Accepted Solution

Area Contraints using keep_hierarchy

I have created a top level vhdl module which includes multiple compnents and I would like to use and area constraint for each of these components individually. 

 

I cannot do this when I have the keep_hierarchy attribute set to "no" so I have to set it to "yes" which then leads to the entire design using more resources than I would like.

 

I would like the top level design to keep hierarchy so that I can contrain the components but for the next level, I dont want to these components to keep the hierarchy. I have tried to set the keep_hierarchy attribute to "yes" in the top level module and then to "no" in the vhdl for the second level but the top level keep_hierarchy attribute seems to override this and propagates through the design.

 

Is there a way to overcome this?

Xilinx Employee
austin
Posts: 3,683
Registered: ‎02-27-2008
0

Re: Area Contraints using keep_hierarchy

d,

 

What synthesis tool are you using?  Have you tried more than one synthesis tool?

 

I find these sorts of results and issues highly dependent on the tool, and trying to enforce your idea of what is best is useless:  the tool vendor has made (most) of the choices for you:  you don't get the freedom you think.

 

Why do you need to do what you are trying to do?  It has been posted before that an area constraint may have worse overall results than a good speed constraint, for example.  Have you tried other constarints instead of area?  Have you used PlanAhead to constrain each block of code to a specific fixed size region (one way to do what you want)?

 

In a poerfect world, what you are trying to do would work.  But, that would be your own personal world, and I am afraid we can not join you there.

 

 

 

Austin Lesea
Principal Engineer
Xilinx San Jose
Xilinx Employee
bwade
Posts: 612
Registered: ‎07-01-2008
0

Re: Area Contraints using keep_hierarchy

The following UCF wildcard constraint might work if repeated for each module:

INST "module_name/*" KEEP_HIERARCHY = FALSE ;

Visitor
declanwalsh25
Posts: 9
Registered: ‎11-18-2010
0

Re: Area Contraints using keep_hierarchy

Thanks for the replies. I have managed to solve the problem.

 

I had already tried using the ucf constraint but that was overwritten by the top level property.

 

By setting the top level keep_hierarchy to "no" and the next level to "yes" in the vhdl. I was able to constrain each module into an individual area group. It seems that I may not have grasped the concept properly in my mind. By setting the top level keep_hierarchy to "no", it was my understanding that each of the modules I had created would not be maintained as described in the vhdl, but it seems this is not the case.

 

Thanks for help

Visitor
mikerez
Posts: 16
Registered: ‎05-03-2012
0

Re: Area Contraints using keep_hierarchy

Austin said everything except an answer.

 

BTW I did not find attribute inheritance ruls anywhere in manuals!

 

Do sub-modules inherit all attributes of parent?

Do they do the same if constraints are passed thrue UCF?

 

Thank you all.

Xilinx Employee
bwade
Posts: 612
Registered: ‎07-01-2008
0

Re: Area Contraints using keep_hierarchy

I wouldn't use keep hierarchy to do this since it's possible to close area groups to outside pack and placement anyway with GROUP=CLOSED and PLACE=CLOSED.

 

INST "module_name/*" AREA_GROUP="AG_module_name";

AREA_GROUP "AG_module_name" RANGE=SLICE_X0Y0:SLICE_X100Y100;

AREA_GROUP "AG_module_name" GROUP=CLOSED;

AREA_GROUP "AG_module_name" PLACE=CLOSED;

 

You don't have to define a range. If all you're interested in doing is blocking the outside packs, use just GROUP=CLOSED.

Visitor
mikerez
Posts: 16
Registered: ‎05-03-2012
0

Re: Area Contraints using keep_hierarchy

Bwade thank you for this strategic point.

 

Please clarify for me: if I use partitioning from command line

will GROUP be enough to let MAP see the corresponding module?

 

Now I do keep_hierarchy to let MAP see it.

 

Thank you!

Visitor
mikerez
Posts: 16
Registered: ‎05-03-2012
0

Re: Area Contraints using keep_hierarchy

Or there is no legal way to preserve partition inside NGC with Xst?

Visitor
mikerez
Posts: 16
Registered: ‎05-03-2012
0

Re: Area Contraints using keep_hierarchy

OK I understand.  Actually no need for keep_hierarchy except debugging/simulating.

Use partitioning with separated ngc.