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

Add Steps to Create Obstructions #225

Merged
merged 17 commits into from
Oct 23, 2023
Merged

Add Steps to Create Obstructions #225

merged 17 commits into from
Oct 23, 2023

Conversation

kareefardi
Copy link
Collaborator

@kareefardi kareefardi commented Oct 18, 2023

  • Created the following obstruction
    • Odb.AddRoutingbstructions: Base step for adding obstructions to a design
    • Odb.RemoveRoutingObstructions: Base step for removing obstructions from a design.
      • The preceding two steps, and their derivatives, should be used in tandem, i.e., obstructions should be added then removed later in the flow.
    • Odb.AddPDNObstructions: Inherits from Odb.AddRoutingObstructions. Runs before PDN generation.
    • Odb.RemovePDNObstructions: Inherits from Odb.RemoveRoutingObstructions. Runs after PDN generation.
  • Added validation for obstruction commands in defutil.py
  • Added exit codes for validation errors in obstruction commands in defutil.py
  • Added a command to remove obstructions to defutil.py
  • Enhanced obstructions regex matching to account for >5 items in an obstruction definition.
  • Propagated exit code when raising StepError due to Subprocess error.
  • Added unit tests for the add PDN obstructions step:
    • success
    • fail - Metal layer not found
    • fail - Wrong format: >5 items in obstruction
    • fail - Wrong format: alphanumeric coordinates
  • Added unit tests for remove PDN obstructions step:
    • success
    • fail - Metal layer not found
    • fail - Wrong format: >5 items in obstruction
    • fail - Wrong format: alphanumeric coordinates
    • fail - Obstruction not found
  • Added default Toolbox when Toolbox is not defined for a step
  • Removed missing Toolbox unit test.
  • Added output dir argument for create_test
  • Added step dir option for create_test
  • Delete "run_ol.sh" in create_test output directory

Fixes #67


Depends on efabless/openlane2-step-unit-tests#1

@donn donn changed the title add the following steps Add steps to create obstructions Oct 18, 2023
@donn donn changed the title Add steps to create obstructions Add Steps to Create Obstructions Oct 19, 2023
@kareefardi kareefardi marked this pull request as ready for review October 22, 2023 14:51
@donn
Copy link
Member

donn commented Oct 22, 2023

did you test out of bounds obstructions?

@kareefardi
Copy link
Collaborator Author

did you test out of bounds obstructions?

Yes

odb.AddObstructions
odb.RemoveObstructions
odb.AddPDNObstructions
odb.RemovePDNObstructions
rename RemoveObstructions to RemoveRoutingObstructions
Use that property in AddPDNObstructions unit tests
append test path to python path
quit on obstruction not found in remove_obstructions
add odbpy scripts to PYTHONPATH when running odbpy scripts
added step dir argument for create_test
create_test removes "run_ol.sh" automatically
@donn donn force-pushed the pdn-obstructions branch from d31966a to 7a9a864 Compare October 23, 2023 13:56
@donn donn merged commit fe25022 into main Oct 23, 2023
68 checks passed
@donn donn deleted the pdn-obstructions branch October 23, 2023 14:32
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

PDN Obstructions
2 participants