OpenROAD icon indicating copy to clipboard operation
OpenROAD copied to clipboard

est: Add utility to query resistance between pins

Open openroad-ci opened this issue 4 months ago • 7 comments

Add est::sum_point_to_point_resist to sum the total parasitic resistance between two connected pins. See below for sample output.

>>> est::report_net_parasitics [get_net _096_]
Net _096_ 0.493
Nodes:
[redacted]
Resistors:
1 _462_/Y _096_:8 0.045
2 _096_:8 _096_:10 0.041
3 _096_:10 _096_:14 0.024
4 _096_:14 _096_:18 0.040
5 _096_:18 _096_:22 0.040
6 _096_:22 _626_/A 0.031
7 _096_:14 _504_/B 0.017
Coupling Capacitors:
>>> est::sum_point_to_point_resist [get_pin _462_/Y] [get_pin _504_/B]
125.927605

openroad-ci avatar Aug 28 '25 16:08 openroad-ci

clang-tidy review says "All clean, LGTM! :+1:"

github-actions[bot] avatar Aug 28 '25 16:08 github-actions[bot]

I've included some extra changes to move helpers from rsz which are est related and a small code tweak. FYI @eder-matheus

povik avatar Aug 28 '25 16:08 povik

In your example the res are all < 0.1 but the sum is 125? Is there a units issue?

maliberty avatar Sep 22 '25 14:09 maliberty

Yes, I think the report is user facing and might be using kohms while the query utility is internal and returns ohms.

povik avatar Sep 22 '25 14:09 povik

The path between the two pins is

1 _462_/Y _096_:8 0.045
2 _096_:8 _096_:10 0.041
3 _096_:10 _096_:14 0.024
7 _096_:14 _504_/B 0.017

the sum of that is 0.045 + 0.041 + 0.024 + 0.017 = 0.127.

The 0.127 ~ 0.126 discrepancy should be due to rounding in the net report.

povik avatar Sep 22 '25 14:09 povik

The CI failure is a test timing out:

//src/rsz/test:repair_fanout6-tcl                                       TIMEOUT in 300.0s

@maliberty Have you seen that elsewhere? I don't think I'm changing anything in use by that test.

povik avatar Sep 22 '25 14:09 povik

Seems to have gotten lost....

maliberty avatar Oct 20 '25 22:10 maliberty