OpenROAD icon indicating copy to clipboard operation
OpenROAD copied to clipboard

deltaDebug.py leaves files with a few insts and nets that is megabytes

Open oharboe opened this issue 2 years ago • 8 comments

Description

One great thing about deltaDebug.py is that it can reduce confidential examples to the point where they can be shared as bug reports.

However, when the resulting .odb file with a few insts and nets is megabytes, that doesn't install confidence that no confidential information is divulged.

Suggested Solution

The .odb files should be small and then converted to a textual representation that can be inspected for confidential information.

When there are a few insts and nets I would have expected a text file in the kilobytes, not a binary in megabytes...

Additional Context

No response

oharboe avatar Feb 17 '23 06:02 oharboe

You can write_lef & write_def to get text. If you want to share a confidential one with me in private I can try to analyze the size. Its possible the space represents deleted objects as we can only compress an array down to the last allocated element.

maliberty avatar Feb 17 '23 18:02 maliberty

I mean the standard cells and other library elements represent a non-zero amount of size in ODB. Do we delete dbMasters that aren't used?

QuantamHD avatar Feb 17 '23 19:02 QuantamHD

No the lef elements remain unchanged which is a likely cause. We could add a final pass to remove unused cells.

maliberty avatar Feb 17 '23 21:02 maliberty

The db doesn't have a way to delete dbMaster as we don't normally do so. That will require an enhancement

maliberty avatar Mar 21 '23 04:03 maliberty

Hello @oharboe @maliberty @QuantamHD I've started working on this issue, please feel free to assign it to me.

NairiBaveyann avatar Apr 26 '24 14:04 NairiBaveyann

Thanks for looking at it.

maliberty avatar Apr 28 '24 02:04 maliberty

Hello, currently I am working on the implementation of the new pass (which will delete unused cells) and I need a test case to reproduce the issue and check the implementation correctness. Could you please attach an appropriate experimental design and expected results?

NairiBaveyann avatar May 08 '24 12:05 NairiBaveyann

Adapt the integration test?

https://github.com/The-OpenROAD-Project/OpenROAD-flow-scripts/blob/master/flow/test/test_delta_debug.sh

oharboe avatar May 08 '24 13:05 oharboe

Hi, I've added a new function that removes unused masters in the .odb file and reduces its size. I am attaching the resulting odb files (original and with removed masters) for your review. Note, in the latest version of OpenRoad, when I run test-delta-debug.sh it gives "No error found in original input file" instead of cutting via "Iter: 100" and reducing design, so I've tested a new function with the cfe92e17a7d986ea9bd82031a61d47120e30dc7a version. ODB_files.zip

NairiBaveyann avatar May 29 '24 15:05 NairiBaveyann

image

oharboe avatar May 29 '24 18:05 oharboe

The file size looks good. It would be easier to review a PR with the code changes.

maliberty avatar May 29 '24 20:05 maliberty