-
I am using manual macro placement. If I accidentally place the macros so they are outside of the core area or they overlap, I dont get a clear error in floorplanning, but a more obtuse error later. I have also unintentionally placed macros off the routing grid, which I dont recommend: confusing and enormously time consuming in running down obtuse error messages and slow detailed routes. floorplanning takes seconds, except PDN insertion for larger designs(it is enormously much faster than it used to be). I think it would be faster and less confusing if floorplanning gave a clear and immediate errors, placing macros off the routing grid should be an error that can be turned into a warning? I can see how adding such error messages without some good unittests would be annoying, error prone and time consuming to do. Where would such checks go and how would the unit tests be written? If they are in tcl, then it would be harder to get to from Python? C++ has a large number of very convenient unittest frameworks, so one could imagine writing these checks and running unittests in a edit, compile, test, debug cycle that takes seconds. |
Beta Was this translation helpful? Give feedback.
Replies: 1 comment
-
You couldn't check before macro placement as they aren't placed. I assume you are using the manual MACRO_PLACEMENT config. It directly modifies the db from tcl so there is no real command active in OR. You could add a check to scripts/read_macro_placement.tcl. A better solution would be to have a place_macro command that could do such a check as well as have a snap to routing grid option. You could then write tests for that command. Such a command could go in mpl2 (mpl will go away and be replaced by it soon). |
Beta Was this translation helpful? Give feedback.
You couldn't check before macro placement as they aren't placed. I assume you are using the manual MACRO_PLACEMENT config. It directly modifies the db from tcl so there is no real command active in OR. You could add a check to scripts/read_macro_placement.tcl.
A better solution would be to have a place_macro command that could do such a check as well as have a snap to routing grid option. You could then write tests for that command. Such a command could go in mpl2 (mpl will go away and be replaced by it soon).