The-OpenROAD-Project / OpenROAD

OpenROAD's unified application implementing an RTL-to-GDS Flow. Documentation at https://openroad.readthedocs.io/en/latest/
https://theopenroadproject.org/
BSD 3-Clause "New" or "Revised" License
1.42k stars 496 forks source link

macro_placement doesn't recognize MACRO's with CLASS RING as placeable #5302

Open stefanottili opened 5 days ago

stefanottili commented 5 days ago

Describe the bug

macro_placement doesn't recognize MACRO's with CLASS RING.

macro_placement
[WARNING MPL-0100] No macros found.

iccad04 RISC2 testcase. After changing RING to BLOCK, macro_placement works. https://github.com/The-OpenROAD-Project/OpenROAD/issues/5284

In order to make the testcase fail again, change lef/risc2.lef.gz back to using RING.

MACRO tsyncram_512x32
  CLASS RING ;
MACRO rf_128x22
  CLASS RING ;
MACRO rf_8x32
  CLASS RING ;

Expected Behavior

treat MACRO's with CLASS RING as macro's to be placed by the macro_placement

Environment

OpenROAD v2.0-14335-g0a6aa3b92  (Jun 27 2024) M1 Mac
Features included (+) or not (-): +Charts +GPU +GUI +Python

To Reproduce

In order to make the testcase fail one has to change lef/risc2.lef.gz back to using RING.

Relevant log output

No response

Screenshots

No response

Additional Context

No response

maliberty commented 5 days ago

I've never see a macro of class RING in any PDK we deal with so this is something new (or more likely very old). My guess is lots of things that deal with macros will not handle this case. I suggest for your purpose you just change these to type BLOCK as this isn't a production design. We can keep this open but as a low priority.