The-OpenROAD-Project / OpenLane

OpenLane is an automated RTL to GDSII flow based on several components including OpenROAD, Yosys, Magic, Netgen and custom methodology scripts for design exploration and optimization.
https://openlane.readthedocs.io/
Apache License 2.0
1.26k stars 367 forks source link

PDN creating stripes of met4 over macros too close to existing power straps #1682

Open mattvenn opened 1 year ago

mattvenn commented 1 year ago

Description

precheck is failing due to DRC on met4 spacing.

image

which results in things like this:

image

Expected Behavior

vertical met4 power stripes should not run over macros

Environment report

Kernel: Linux v5.13.0-28-generic
Distribution: ubuntu 20.04
Python: v3.8.10 (OK)
Container Engine: docker v20.10.7 (OK)
OpenLane Git Version: a35b64aa200c91e9eb7dde56db787d6b4c0ea12a
pip: INSTALLED
python-venv: INSTALLED
---
PDK Version Verification Status: OK
---
Git Log (Last 3 Commits)

a35b64a 2023-02-22T11:46:16+02:00 Checkers updates (#1665) - Kareem Farid -  (grafted, HEAD, tag: 2023.02.23)
---
Git Remotes

origin  https://github.com/The-OpenROAD-Project/OpenLane (fetch)
origin  https://github.com/The-OpenROAD-Project/OpenLane (push)

Reproduction material

https://github.com/TinyTapeout/tinytapeout-03 make uncompress make run-precheck

Relevant log output

{{FINISH}} Executing Finished, the full log 'precheck.log' can be found in '/home/matt/work/asic-workshop/shuttle9/caravel_user_project/precheck_results/16_MAR_2023___09_36_59/logs'  
{{FAILURE}} 1 Check(s) Failed: ['Klayout BEOL'] !!!
mattvenn commented 1 year ago

Also note that I have modified pdn_cfg.tcl:

https://github.com/TinyTapeout/tinytapeout-03/blob/2fdfa67e6c8386bcea37e6ab56bc925c7102b7f5/openlane/user_project_wrapper/pdn_cfg.tcl#L56

to only use the 1st power domain (otherwise I can't get the straps dense enough)

mattvenn commented 1 year ago

my workaround is to disable vertical straps in the pdn_cfg.tcl

maliberty commented 1 year ago

@gadfort any thoughts?

gadfort commented 1 year ago

@maliberty not off the top of my head. I would have to run it to get a better feel for the issue.

maliberty commented 1 year ago

I can't reproduce from the instructions given

% make uncompress
export CARAVEL_ROOT=/home/mliberty/bugs/ol/1682/tinytapeout-03-main/caravel && make -f /home/mliberty/bugs/ol/1682/tinytapeout-03-main/caravel/Makefile uncompress
Makefile:29: warning: undefined variable 'PDK_ROOT'
make[1]: Entering directory '/home/mliberty/bugs/ol/1682/tinytapeout-03-main'
make[1]: /home/mliberty/bugs/ol/1682/tinytapeout-03-main/caravel/Makefile: No such file or directory
make[1]: *** No rule to make target '/home/mliberty/bugs/ol/1682/tinytapeout-03-main/caravel/Makefile'.  Stop.
make[1]: Leaving directory '/home/mliberty/bugs/ol/1682/tinytapeout-03-main'
make: *** [Makefile:84: uncompress] Error 2

A self-contained test case would be preferrable.

mattvenn commented 1 year ago

I'm not sure how to do a self contained test for this. @kareefardi any ideas? @maliberty you'd have to install caravel submodule with make install, and have PDK_ROOT and OPENLANE_ROOT set to where pdk and openlane are installed.

vijayank88 commented 1 year ago

@mattvenn Please add exit 1 in https://github.com/The-OpenROAD-Project/OpenLane/blob/master/scripts/openroad/pdn.tcl#L33 and run make user_project_wrapper. It will produce the issue_reproducible and attach it here. Then restore pdn.tcl to original state.

mattvenn commented 1 year ago

reproducible.tar.gz

maliberty commented 1 year ago

I've run your test case but I'm not sure where to find the violation. Please provide some coordinates.

maliberty commented 1 year ago

I found one here: image

@gadfort are you supporting

  SPACINGTABLE
     PARALLELRUNLENGTH 0
     WIDTH 0 0.3
     WIDTH 3 0.4 ;

Where the wide strap requires a 0.4 spacing rather than 0.3?

gadfort commented 1 year ago

@maliberty I'm headout out to GOMAC today, so I don't have a lot of spare time this week, but I'm happy to take a look later this week.

maliberty commented 1 year ago

@mattvenn is this urgent? If not I'll leave it for Peter

mattvenn commented 1 year ago

Not urgent, I resolved it by turning off vertical power straps. Matt

On Mon, 20 Mar 2023 at 18:39, Matt Liberty @.***> wrote:

@mattvenn https://github.com/mattvenn is this urgent? If not I'll leave it for Peter

— Reply to this email directly, view it on GitHub https://github.com/The-OpenROAD-Project/OpenLane/issues/1682#issuecomment-1476667357, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAE223GKUSUOATXDUMARI33W5CI33ANCNFSM6AAAAAAV47BHXI . You are receiving this because you were mentioned.Message ID: @.***>

-- Matthew Venn web mattvenn.net twitter @matthewvenn https://twitter.com/matthewvenn