cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
Highlighted
Contributor
Contributor
1,695 Views
Registered: ‎08-18-2017

Unplaced instances encountered during Post-Route Phys Opt Design

Jump to solution

I have a design that doesn't quite make timing following default implementation strategies. I tried tweaking a few settings, and adding a post-route script to re-run the following sequence until timing is met: opt_design, place_design, phys_opt_design, route_design, phys_opt_design. This was all working pretty well until I added a couple I2C interfaces with inout ports for SDA. I explicitly instantiated IOBUFs for the inout ports, and they look good in simulation, post-synthesis schematic, and post-implementation schematic. However, when I try to include Post-Route Phys Opt Design in my implementation settings, I get errors about unplaced instances in the data logic leading to the input of the IOBUFs:

messages.jpg

 

If I open the implemented design, and navigate through the Netlist, I can find each of those instances.  Below is the schematic for the first one listed as unplaced, with the cone expanded all the way to the IOBUF on the right.  You can see the instance is highlighted, and the name matches the first unplaced instance in my error messages.

schematic.jpg

 

If I try to click on one of the error messages, however, I get this pop-up:

errorpopup.jpg

 

I don't see any other references to those instances or net names in the runme.log file (i.e. they don't show up as removed or absorbed).  How can I proceed with Post-Route Phys Opt Design?  Thanks in advance for any assistance.

0 Kudos
1 Solution

Accepted Solutions
Highlighted
Contributor
Contributor
1,949 Views
Registered: ‎08-18-2017
OK - so I guess the moral of the story is that the errors should have been my hint that there was something wrong in the design. I had some control register logic mistakes that were causing the instances in question to be trimmed. I didn't find any actual messages indicating that to be the case, but I found the errors on my own. Once fixed, I can run through phys opt without the DONT_TOUCH properties set, and everything works fine. I was confused when I saw the instances in post-synthesis and post-implementation schematics. I appreciate the help!

View solution in original post

0 Kudos
5 Replies
Highlighted
Mentor
Mentor
1,684 Views
Registered: ‎02-24-2014

Does anything change if you apply a DONT_TOUCH = "yes" to the IO cell in question?

Don't forget to close a thread when possible by accepting a post as a solution.
Highlighted
Moderator
Moderator
1,643 Views
Registered: ‎01-16-2013

@rhc110again,


Can you share the runme.log file from .runs/impl_1 folder? Check if all the cells in design are placed after place_design command. 

 

Also is it possible for you to share the post opt dcp file?

 

--Syed

---------------------------------------------------------------------------------------------
Kindly note- Please mark the Answer as "Accept as solution" if information provided is helpful.
Give Kudos to a post which you think is helpful and reply oriented.

Did you check our new quick reference timing closure guide (UG1292)?
---------------------------------------------------------------------------------------------
0 Kudos
Highlighted
Contributor
Contributor
1,620 Views
Registered: ‎08-18-2017
@jmcclusk,

That does the trick. If I apply DONT_TOUCH to each of the 5 instances, then I can run my implementation and Tcl script. This begs a few other questions, obviously. Why does this happen? Can I avoid it in the future? Or will is my design procedure now as follows:

1. Make design changes.
2. Try to synthesize and implement.
3. If any instances are found to be unplaced during post-route phys opt and Tcl script, then apply DONT_TOUCH on them.
4. Go to Step 2.
0 Kudos
Highlighted
Contributor
Contributor
1,614 Views
Registered: ‎08-18-2017

@syedz,

 

I've attached my runme.log, which I recreated with the errors by commenting the DONT_TOUCH properties I added at @jmcclusk's recommendation.

 

I'm not comfortable attaching any dcp files, unless you can assure me they don't contain any source files.

0 Kudos
Highlighted
Contributor
Contributor
1,950 Views
Registered: ‎08-18-2017
OK - so I guess the moral of the story is that the errors should have been my hint that there was something wrong in the design. I had some control register logic mistakes that were causing the instances in question to be trimmed. I didn't find any actual messages indicating that to be the case, but I found the errors on my own. Once fixed, I can run through phys opt without the DONT_TOUCH properties set, and everything works fine. I was confused when I saw the instances in post-synthesis and post-implementation schematics. I appreciate the help!

View solution in original post

0 Kudos