Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

gpl: support regions for routability mode. #6774

Open
gudeh opened this issue Feb 26, 2025 · 0 comments
Open

gpl: support regions for routability mode. #6774

gudeh opened this issue Feb 26, 2025 · 0 comments
Assignees
Labels
gpl Global Placement

Comments

@gudeh
Copy link
Contributor

gudeh commented Feb 26, 2025

Description

In the GPL code, NesterovBase consists of a class representing each region. We have the nbVec_ vector, which holds an object for each region. The first object in this vector (nbVec_[0]) contains all instances that do not belong to any specific region. For example, if a Verilog design is described without any defined regions, as is usually the case, GPL will hold all instances in nbVec_[0].

Currently, in routeBase.cpp, whenever we reference a NesterovBase object, we only do so for the object without regions (nbVec_[0]), while all other objects are ignored. For example:

nbVec_[0]->updateAreas();

I have not yet tested routability mode on a design with regions, but there is no way it would function correctly. However, I believe it will not necessarily throw an error.

Suggested Solution

  • Test what currently happens on a design with regions (e.g., upf_aes in OpenROAD/test/).
  • Most importantly, replace every instance of nbVec_[0] in routeBase.cpp with a loop iterating over nbVec_ objects, and move forward from there.

Additional Context

No response

@gudeh gudeh self-assigned this Feb 26, 2025
@gudeh gudeh added the gpl Global Placement label Feb 26, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
gpl Global Placement
Projects
None yet
Development

No branches or pull requests

1 participant