Instance Name Being Removed?

Hello,

I'm having an instance being optimized away, although I'd like to keep the instance name hierarchy. I have "keep hierarchy" set to soft, because I'm utilizing some Chipscope ILA cores.

The instance/block shows up fine in RTL viewer, but when I use Floorplanner after Translate, it's gone. I need to apply an AREA_GROUP constraint to it, so I can't easily do that w/o the correct instance name.

Thx,

-Brandon

Reply to
Brandon Jasionowski
Loading thread data ...

FYI, I tried the keep_hierarchy in my .xcf, but that didn't help... It recognized the constraint tho:

Set user-defined property "KEEP_HIERARCHY = true" for unit .

It's really bothering me that the instance is maintained in the ngc, but not after Translate. What is going on exactly? Is there anything else I can do?

Thanks.

Reply to
Brandon Jasionowski

Unused logic is not removed until translate or par (can't remember now). In the schematic view even those things show up that get optimized away later.

If your instance is not there after translate/map, then it was probably removed completely for some reason. Maybe because it was never used, produces only constant outputs or something.

--
My email address is only valid until the end of the month.
Try figuring out what the address is going to be after that...
Reply to
Sean Durkin

Well, I dont' believe the the logic is being removed because the input and output registers of that instance still persists in floorplanner under "Primitives", not under it's instance name. There's some other LUTs that have those jibberish names like "_and00001", "Mcompar__cmp_gt0001_lut", etc. The i/o net names of these primitives sometimes correspond to the internal net names of the entity in question, which further leads me to believe the logic is still all there.

I'm not sure if this is common or not, because I wouldn't normally care about instances being dissolved, as I rarely put constraints on INSTances. Now that I'm working with BUFRs, I'm finding I need to assign AREA_GROUP constraints to anything clocked by them, this instance being one of them...

Thanks.

Reply to
Brandon Jasionowski

What I have done on my designs that use BUFRs is to put an HU_SET attribute on the module that contains the BUFR clock domain, then use that to create the area group.

Another way that you can constrain the logic that uses the BUFR clock is to form a timing group from the clock net, then create an area group from the timing group. Take a look at the area group section of the constraints guide. Here is an example from page 104 of the 8.2 version of the constraints guide:

For example, assume you have the following UCF constraints: NET "clk" TNM_NET="clock"; TIMESPEC "TS_clk" = PERIOD "clock" 10 MHz; TIMEGRP "clock" AREA_GROUP="clock_area";

I have not tried doing it this way yet. It would be nice if the tools would just do this for you automatically.

Regards,

John McCaskill

formatting link

Reply to
John McCaskill

Thanks. Creating Area Groups from Timing Groups did the trick! I can't believe I didn't see that part in the CGD...

Reply to
Brandon Jasionowski

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.