Skip to content

gpl: top-level region limitation #11128

Description

@gudeh

Description

In the past, we used dummy cells to occupy all space outside a given region, meaning the region sees its outer space as fully occupied. This acted as a soft constraint, as GPL still allows overlaps. In other words, every region had access to the entire core area, but the space outside its bounds was pre-filled with dummy instances.

To enforce a hard constraint, I modified the region space in OpenROAD PR #8693. Instead of spanning the whole core area and relying on dummy cells, the bin grid is now restricted directly to the region’s area. As a result, the region has no access to or awareness of space beyond its boundary. This successfully guarantees that every region-assigned instance remains strictly within its designated region. However, this hard constraint does not apply to top-level instances.

The Issue: Top-level (regionless) still uses dummy instances to occupy regions. Because this relies on soft density penalties rather than strict boundary constraints, top-level instances can still bleed inside regions. Macros work the same, using dummy instances.

I considered creating holes/voids in the bin grid for the top-level, but I suspect this approach will introduce grid continuity and density calculation issues. Alternative ideas or suggestions are welcome.

The upf_aes.tcl test clearly demonstrates this issue. For example, here is how DPL pull top-level instances out into regionless space:

Image

Suggested Solution

No response

Additional Context

No response

Metadata

Metadata

Labels

gplGlobal Placement

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions