I am trying to place a design with some macros and I use relative placement for these. Since the design is fairly large and only one (shared) 4 core machine is available I try not to use the GUI to do this. In my script file to carry out the relative placement I perform the following steps:
1) Adjust the floorplan with the floorPlan command. I use a relative floorplan with an aspect ratio of 1.1 and 50% density.
2) Read the co-ordinates of the new floorplan using the dbGet commands.
3) Relatively place the macros using " relativeFPlan --place <instance> <reference_coordinates> <offset_coordinates> <orientation> "
4) Create obstructions using "createObstruct -name <NAME> -box <coordinates>" after calculating the required coordinates.
5) Select the placed macros and use cutRow -selected -halo <spacing>.
6) Place other instances in the design hierarchy using createRegion and createGuide.
After each of the numbered steps I run deselectAll followed by redraw to ensure that none of the previously selected instances foul up following calculations.
Here's my problem: the first time I run this script (with or without the GUI) the obstructions are not created correctly and a number of these warnings are issued:
" **WARN: (ENCSYC-6130): Warning: The X coordinate of lower left corner is greater than upper right. We will exchange them."
When I run the script a second time (after deleting the obstructions), the run complains about HInst constraints being outside the die (fair enough, since I don't actually delete the relativeFPlan) and then warnings about HInsts having constraints on them already and overriding them (again, fair enough). But this time I get the floorplan I want.
Am I missing something in my script? Why do I have to run the script twice to get the floorplan I want?
I am not able to attach pictures which would give you a better idea of what I am trying to get at.
Any help is appreciated.