-
Notifications
You must be signed in to change notification settings - Fork 400
New issue
Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? # to your account
Spectre-to-ngspice conversion script for monte carlo params, courtesy of Brad Minch. #309
Comments
Would it make sense to add this to ngspice directly? It might become part of the ngspice compatibility processor (a set of functions activated by a suitable compatibility switch). |
@holvo : I'm assuming that you mean parsing the "statistics { ... mismatch { ... } ... process { ... } }" blocks? The problem is that it was already possible to do mismatch and process monte carlo simulations in the way that the script above does it. Since it only requires setting a parameter value to turn the statistical variation on and off, it is completely compatible with ngspice and most other spice variants that I know of. The statistics {} syntax falls under the category of what I would consider "things that a commercial tool vendor did probably for the sole reason of forcing people to use their tool". Because the statistics {} block only describes which variables need to be varied, it does not indicate whether or not to apply the variation. So you would need some additional method to enable/disable the variation. All in all, I think it's easiest to just apply the script. If you're looking for things to do, more important would be to get the diode level 3 to work, as SkyWater uses these and I don't know how to make them compatible with the existing diode models. |
Tim, |
@dwarning : The main thing seems to be that the level 3 diode takes an actual physical area and perimeter, rather than the "area scale" and "perimeter scale" (unitless) values of the standard SPICE diode model. Beyond that, there are a number of parameters that are not recognized when ngspice reads the device model. I don't know specifically what the model level 3 does, but I can show you which parameters ngspice complains about when it reads the model. |
Tim, |
The following script is provided by Brad Minch and converts the commented-out spectre statements with monte carlo parameters into something that is ngspice-compatible. The ngspice variable name "MC_SWITCH" is used to turn the behavior on (1) or off (0). I am posting the (zipped) python script for anybody who wants to play around with it. I will vet it more carefully when I start working on pull requests to sky130_fd_pr.
process_mismatch_params.zip
The text was updated successfully, but these errors were encountered: