Does anyone have any idea what is wrong?
# analog-design
s
Does anyone have any idea what is wrong?
s
I have tried to do the following: first of all i have set very high precision flags:
.option ABSTOL=1e-14 GMIN=1e-14 RELTOL=1e-5 VNTOL=1e-8
Then in the .control section i have run 2 DC simulations, one with
vip
going forward and one going backward:
dc vip 0 3.3 0.1
write op.raw
set appendwrite
dc vip 3.3 0 -0.1
write op.raw
simulation shows 2 different transfer characteristics. It looks like the DC value of
v(out)
is indeterminate, this happens for example if the output has no dc paths to ground or vsupply and any DC level is a valid solution. Check carefully your circuit. May be some transistors are in Off state and carrying pA of current. However i don't have the schematic, so i can not investigate further.
s
Oh I see. Actually my output is a high impedance output stage of a general BJT op amp. I thought the output voltage could be determined by the two BJTs even though this is a high impedance node. Maybe in gf180 model, the vout couldn't be just determined by the BJT's operating point
I will make some experiments, hopefully I can find out what happens to my circuit
s
you can add a high resistor from out to gnd, like 100MOhm. This will probably remove indetermination.
s
Oh okay
Thank you for your advice
s
ps: use 100MEG not 100M in spice (100M is 100 milliohm) !
the resistor doesn't seem to fix the issue....
can you attach the .sch file(s)?
s
Yes
BJTamp.sch
btw what is the different between 100MEG and 100M? I thought both of them stand for 100*10e6
s
no, m stands for "milli", 1e-3. Since spice is case insesitive 1mF and 1MF both refer to 1 milli Farad
🌍 1
s
Oh yeah I see
s
I found a serious issue in the design. You need to edit the npn symbol and change the name of the substrate pin to S, it is set to 'B'. This creates a substrate to base short.
this is not your fault this must be notified upstream
in the fg180 pdk maintainers
but the fix is easy. descend into the symbol, select the small red square , press 'q' and change name=B to name=S
🌍 1
I also don't know if the S node of the transistor must be connected to the emitter or to AVSS
s
Actually I have changed the terminal from B to S before since the simulation will fail if that isn't changed
s
yes i have seen, however this change must be done. It is not changing the behavior though
s
Yeah
s
I can't understand the biasing of the output stage. You have 2x1k resistors and 2 diodes. As a result Vbe of output bipolars is ~0.9V these transistors are in super ON state and you have 40mA flowing from AV33 to AVSS.
1.png
the diodes themselves are carrying 30mA of current. The differential stage can add/subtract some mA, but this is largely insufficient to drive the outputs.
If you want a push pull stage you must swap pnp and npn output transistors
s
ζˆͺεœ– 2023-02-03 δΈ‹εˆ8.30.03.png
Actually I think you get the correct operating point which is consistent with dc simulation
This is the result of my op simulation
s
I have changed the ouput stage to push pull and get abetter transfer function:
s
Could you send me this .sch file?
I'll spend sometime digging into it
To be honest I am not quite familiar with the BJT design
s
yes i will send it. Anyway i still see mismatch between the op and dc sims... This is probably an issue with the BJT spice models, not with the simulator itself...
s
However it seems that you didn't have that inconsistency issue in you previous screenshot
image.png
This one
Is it under op simulation?
s
no image above was one dc point, dont' remember exactly what vip value... You can backannotate any point in a dc sim, it is explained in this video. The schematic with output transformed to push pull:
🌍 1
s
Okay, thank you so much!
This is very helpful