The-OpenROAD-Project / RePlAce

RePlAce global placement tool
BSD 3-Clause "New" or "Revised" License
206 stars 75 forks source link

Support for non-rectangular standard-cell area - Need clarification #63

Closed rbarzic closed 4 years ago

rbarzic commented 4 years ago

Hello,

I have a design with a non-rectangular standard-cell area (The initial DEF has several macros placed and the std cells rows do no overlap with the macros) - It crashes with a free() invalid pointer/core dump when running the rep init_replace command When looking at the readme it mentions: RePlAce does not support rectilinear layout regions but the GIFs clearly show non-rectangular standard cell area (which is the definition of a rectilinear region for me) . So I'm wondering if I should investigate more in debugging the issue or if Replace simply does not support non-rectangular area

mgwoo commented 4 years ago

The "RePlAce does not support rectilinear layout regions" means that RePlAce can't understand the DEF syntax like "DIEAREA ( x1 y1 ) ( x2 y2 ) ( x3 y3 ) ... ( xn yn )".

The gif you've seen is that macros are given and those macros have "FIXED" attributes in DEF, which is different from rectilinear supports.

mgwoo commented 4 years ago

If your target is want to have a blockage in macros like gif image, you can make a "DIEAREA ( lx ly ) ( ux uy )" statements in DEF and macrocells to have "FIXED" attributes in COMPONENTS section. RePlAce also supports fragmented ROW (e.g. removing ROW definitions where std cells should not be placed). This ROW definition will enable you to make some additional halos around each macro.

OpenROAD-flow has open macro design testcases. (e.g. nangate45-swerv_wrapper / nangate45-tinyRocket designs -- Link) You can also check the expected input DEF that have FIXED macros and fragmented-ROW testcases in the following link: https://github.com/The-OpenROAD-Project/RePlAce/blob/openroad/test/medium05.def

FYI, RePlAce is cleanly rewritten and verified in the openroad branch with a new command (global_placement), but RePlAce in the openroad branch is not a standalone binary anymore. I have a plan to update the master branch to point the openroad branch.

rbarzic commented 4 years ago

Thank you for the clarification !