Skip to content

Use IO constraints kept by PPL inside MPL2 to improve QoR #5669

Open
@AcKoucher

Description

@AcKoucher

Description

Currently mpl2 bundles the pins into clusters which get fixed on the boundaries that they were placed.

With the current mechanism, we can benefit from:

  • The connections between the other clusters and bundled IOs;
  • The data flow of the nets that have IOs.

However in ORFS, the macro placer sees the IOs' locations that come from random PPL, so, there's a couple of problematic things:

  1. These locations are random, so there's no guarantee that we're actually having some sort of benefit.
  2. In many cases, bundled IOs cover all four boundaries and, due to the way they're modeled in sequence pair, SA can have a very hard time finding a good solution.

Suggested Solution: Adapt IOs abstraction inside MPL2 to ORFS flow

Main Idea: Change the IO clusters to, instead of represent bundled IOs placed by random PPL, represent groups of IOs with the same constraints and use the -exclude constraints to help guiding the macro placement.

  • First Version (Simplified): Don't take into account the dimensions of the constraints.
    • If an IO is constrained to a region of a certain edge, it is constrained to that entire edge (unconstrained IOs are constrained to all edges).
    • If an edge has more than 70% of its extension excluded, it is considered a blocked edge for IOs.
  • Enhanced Version: Consider the dimensions of constraints whether they are constraint regions or -exclude constraints.
    • Additional: The pin access blockages' depth should depend on the IO density of that constraint region.

Additional Context

This can be the solution for #4867 and #2079

Metadata

Metadata

Assignees

Labels

mplMacro Placement

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions