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

Parasitic intermittent crashes, reproducibility of extract files #304

Open
thesourcerer8 opened this issue May 2, 2024 · 3 comments
Open

Comments

@thesourcerer8
Copy link

There is a problem in the parasitic extraction of magic, sometimes it gives an error, sometimes it works, on the same file:
grafik
This is the INV.mag file which contains a simple inverter which allows to reproduce the issue:
INV.mag.txt

These are the commands used:

extract all
ext2sim labels on
ext2sim
extresist tolerance 10
extresist

And this is the whole tool where it is used: https://github.com/thesourcerer8/StdCellLib/blob/master/Tools/perl/parasitics.pl

One idea for a potential reason might be the ordering in the generated .ext file, which seems to be different:
grafik

One important thing for me is reproducibility, so if you see a way to make the ordering in the extract files reproducible by sorting the output, that would be great, (unless that creates unbearable CPU or memory load)

Or perhaps we should create an "extract reproducible" option so that it can be switched off by default, and reproducibility enforced only on demand?

@RTimothyEdwards
Copy link
Owner

I've been aware of this issue but this is the first reasonably small test case I've seen demonstrating it.

FYI, there are still various subtle bugs in the extresist code. They should have nothing to do with the random order of the output, which is due entirely to the fact that the output is generated by walking a hash table, and the hash table contents are keyed by memory location, so order is dependent on the memory allocation algorithm. It is of course possible to sort the hash table contents before output; there would be a memory overhead associated with it, and I would probably want to make it an option that can be turned on or off, but it's not hard to do.

@RTimothyEdwards
Copy link
Owner

Magic version 8.3.478 fixes the error condition (and also a crash condition that got uncovered by fixing the error condition). The order of capacitor lines in the .ext file is not considered.

@thesourcerer8
Copy link
Author

Great! I cannot reproduce the error anymore with 8.3.478 👍
So I think we should close this bug, and have a seperate issue for the reproducible ordering of the lines?

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

No branches or pull requests

2 participants