OpenROAD-flow-scripts icon indicating copy to clipboard operation
OpenROAD-flow-scripts copied to clipboard

Min metal area ignored by ORFS (DRC error)

Open alpamps opened this issue 1 year ago • 11 comments

Subject

[Stage]: Other. Please describe below.

Describe the bug

I am trying to make a circuit with ORFS but it is not DRC clean and they are many metal stubs.

I also tried to run the example for gcd with ihp-sg13g2 pdk. After the flow is completed successfully, final gds file has many wire stubs (Metal2,etc.) which are smaller than the minimum metal area (0.144um^2). Changing minimum metal area in sg13g2_tech.lef didn't fix the problem.

Expected Behavior

The final design should be DRC clean, no metal stubs smaller than 0.144um^2

Environment

output from /OpenROAD-flow-script/env.sh:

OPENROAD: /OpenROAD-flow-scripts/tools/OpenROAD

To Reproduce

  1. clone the repo: https://github.com/The-OpenROAD-Project/OpenROAD-flow-scripts.git
  2. run docker: docker run --rm -it -u $(id -u ${USER}):$(id -g ${USER}) -v $(pwd)/flow:/OpenROAD-flow-scripts/flow openroad/flow-ubuntu22.04-builder
  3. uncomment gcd example in /flow/Makefile
  4. make
  5. check 6_final.gds file

Relevant log output

No response

Screenshots

image

Additional Context

No response

alpamps avatar Nov 19 '24 14:11 alpamps

How do you "check 6_final.gds file"?

maliberty avatar Nov 19 '24 17:11 maliberty

How do you "check 6_final.gds file"?

You can open the 6_final.gds file with klayout and show only metal2 layer. Then you will notice many wire stubs with small size (some with area < 0.06um2.

p.s. DRC also fails due to this issue. Thanks!

alpamps avatar Nov 20 '24 06:11 alpamps

There was an older issue related to M2 minimum area violations: https://github.com/The-OpenROAD-Project/OpenROAD-flow-scripts/issues/1681

dnltz avatar Jan 05 '25 11:01 dnltz

@maliberty I haven't seen this issue with the i2c-gpio-expander but I have another, bigger design that has 12 M2.d violations related to too small vias. How can I send someone the design to take a look?

#1681 said increasing the via size fixes the issue but that sounds like a workaround to me.

dnltz avatar Feb 04 '25 17:02 dnltz

If the design is not confidential you can just open an issue and provide a link to the test case in google drive or the like.

maliberty avatar Feb 04 '25 19:02 maliberty

ping

maliberty avatar Feb 18 '25 02:02 maliberty

@maliberty sorry, a little bit busy right now with other stuff. I can share the GDS. So, will open an issue in the next days. Thanks!

dnltz avatar Feb 18 '25 04:02 dnltz

Hi, sorry to ask but are there any updates on this? I've also ran into the same problem with Metal2 on ihp-sg13g2 :)

mole99 avatar Mar 03 '25 14:03 mole99

No as this is still pending a test case. @mole99 can you share one?

maliberty avatar Mar 03 '25 15:03 maliberty

Well yes, but on OpenLane and I don't know how to easily create a reproducible. Would the odb/gds already help?

mole99 avatar Mar 03 '25 15:03 mole99

If it helps in any case: reproducible.zip

There are 2 "Min. Metal2 area" violations. The coords for these violations are:

  1. polygon: (200.785,39.38;200.785,39.58;201.46,39.58;201.46,39.38)
  2. polygon: (220.81,20.9;220.81,21.1;221.485,21.1;221.485,20.9)

Let me know if I can provide anything else!

mole99 avatar Mar 03 '25 16:03 mole99

@maliberty April tape-out is over and I had to fix 28 M2 violations by hand. So, I'm ready to help getting this issue fixed. Do you need some more stuff except what @mole99 send on the 3rd?

dnltz avatar Apr 10 '25 11:04 dnltz

The reproducible is not a running reproducer. It is just an odb & gds file - presumably the results. To see what is going wrong we need a complete setup where we can run the router and see the problem being generated.

maliberty avatar Apr 10 '25 21:04 maliberty

@maliberty let me prepare you an ORFS branch with a slightly smaller design. My current design is 6mm2 and takes pretty long to layout.

dnltz avatar Apr 11 '25 04:04 dnltz

@maliberty I pushed an example chip here which will generate M2.d errors: https://github.com/dnltz/OpenROAD-flow-scripts/pull/new/WIP/dnltz/elemrv-for-m2d

dnltz avatar Apr 17 '25 15:04 dnltz

I also pushed a simple DRC sg13g2_quick_m2d.lydrc to only check this error (takes 30sec to run). Do you know how run DRC?

dnltz avatar Apr 17 '25 15:04 dnltz

Do you know how run DRC?

No

maliberty avatar Apr 17 '25 15:04 maliberty

Please make a standalone routing test case.

maliberty avatar Apr 17 '25 15:04 maliberty

@maliberty is that what you were asking for?

https://fileshare.phytec.com/index.php/s/e6CY8JeEi9d66BW

dnltz avatar Apr 17 '25 15:04 dnltz

Thanks, other than needing to change global_route to detail_route in the run script it looks good. @osamahammad21 please look when you can.

maliberty avatar Apr 17 '25 18:04 maliberty

package with detail_route: https://fileshare.phytec.com/index.php/s/oJgdBLG4zrYeJe8

This chip has 13 M2.d violations

  • (1510.825,1634.96;1510.825,1635.16;1511.5,1635.16;1511.5,1634.96)
  • (1470.985,1547.6;1470.985,1547.8;1471.66,1547.8;1471.66,1547.6)
  • (1207.465,1544.24;1207.465,1544.44;1208.14,1544.44;1208.14,1544.24)
  • (1304.425,1328.36;1304.425,1328.56;1305.1,1328.56;1305.1,1328.36)
  • (1567.465,1226.72;1567.465,1226.92;1568.14,1226.92;1568.14,1226.72)
  • (572.905,1676.12;572.905,1676.32;573.58,1676.32;573.58,1676.12)
  • (772.585,1657.64;772.585,1657.84;773.26,1657.84;773.26,1657.64)
  • (764.905,1630.76;764.905,1630.96;765.58,1630.96;765.58,1630.76)
  • (750.985,1241.84;750.985,1242.04;751.66,1242.04;751.66,1241.84)
  • (738.23,768.92;738.23,769.12;738.905,769.12;738.905,768.92)
  • (1021.705,784.04;1021.705,784.24;1022.38,784.24;1022.38,784.04)
  • (991.465,768.92;991.465,769.12;992.14,769.12;992.14,768.92)
  • (661.585,470.72;661.585,470.92;662.26,470.92;662.26,470.72)

dnltz avatar Apr 18 '25 12:04 dnltz

@osamahammad21 any update on that topic? Can I help or test something?

dnltz avatar May 05 '25 16:05 dnltz