<@U016ULGAUNM> basically I don't trust the current...
# xschem
y
@Tim 'mithro' Ansell basically I don't trust the current models because Xyce can't converge with them. Now it might be a Xyce issue but my previous experience is that the sky130 models take about 5 times longer for a DC operating point than other similar PDKs. So I'm suspicious of the models
e
@yrrapt can you provide an example where Xyce doesn’t converge? Sorry if you’ve posted this earlier and I missed it.
y
@Eric Keiter Sure, it's originally from @Matt Venn and made more messy by me
e
Ah. Yes, I was talking to @Matt Venn about this very circuit yesterday. I didn’t have time to look into it yesterday but I’ll look at it soon.
Interesting; in the log file it looks you you were running Xyce’s Jacobian test feature.
By default, the Jacobian test will exit with a failure anytime it finds a difference (outside a tolerance) between a devices analytical derivatives and the equivalent numerical derivatives. Does this circuit converge if you turn off the jacobian test?
Part of why I ask is that the Jacobian test is mostly a diagnostic we use to test out the implementations of device models. So, it mostly identifies (potentially) Xyce souce code mistakes, rather than input file mistakes.
y
Yeah, I enabled that to try and see where things went wrong. Noting that the failing node was on the bulk prime I tried modifying the sky130 models to rbodymod = 0.0 which ended up in an error else where after which I kind of gave up
e
I see. The Jacobian test failure reported in this log.log file is a pretty minor one, so I wouldn’t worry much about it.
Also, Jacobian failures during the DCOP phase are tricky. Particularly they can be tricky for the dQdx matrix, although in your example the failure is for 2 entries in the dFdx matrix.
I’ll try to dig into this more today. All the warnings about the source conductance being reset to 1.0e3 are a bit concerning.
I was running a different circuit yesterday that gave these warnings. That was not a Sky130 circuit; it was a TSMC 65 circuit. Anyway, the reason for the warnings in that circuit was that the Xyce BSIM4 didn’t support the RGEOMOD parameter in the .MODEL card. (just in the instance). I was able to quickly fix that, and the warnings disappeared.
y
It still fails without the jacobian output enabled.
Copy code
Step size reached minimum step size bound

	Step size reached minimum step size bound

	Step size reached minimum step size bound
DC Operating Point Failed.  Exiting transient loop
e
Got it. We should be able to fix this. Like I said I’ll dig into it today.
I have to go out for a bit, so the work on this will start in a couple of hours.
One question before I go: Are you running Xyce with the “-hspice-ext all” command line option? That sets a number of compatibilities that might be important. Also, are you using the various conversions documented in this issue: https://github.com/RTimothyEdwards/open_pdks/issues/124
y
I just tried with
-hspice-ext all
and got the same result. Renamed the dev/gauss and matched the lib definitions. I didn't the other ones
e
OK, thanks.