<@U01TH14MD17> have you tried specifying the actua...
# analog-design
y
@User have you tried specifying the actual BSIM instance? ie adding .mskywater_fd_.....
v
Well, I've been trying to avoid it, mostly because of the crazy long instance name. Why can't we just use "M1" like TSMC does? Also, though the current subcircuit models seem to be subcircuits for no obvious reason, they could conceivably stick transistors into other components in the subcircuit to model effects not modeled by the standard model. If that were to happen, you'd really want to alter the parameter at the subcircuit level, otherwise, you're missing something with your
alter*
-based edits. That, or you have more work to do when using
alter*
commands.
y
It's quite common to place the BSIM model inside a subcircuit. For example if you want to model an NMOS in a deep NWELL then you need to include the parasitic diodes outside of the BSIM model. Yes, it's a good point that if you alter the BSIM model then the other elements will not be updated. I'm just suggesting how you can make what you want happen. I'm sure I don't need answer to why ngspice and the first open source PDK don't behave the same as Spectre and TSMC
Have you tried specifying the width as a parameter and providing that the MOS subcircuit? Then altering that parameter would update any other elements in the subcircuit that use the parameter
v
That's on my list to try. It feels very Cadence-y. I would rather reach into the circuit from on high and alter it AS WOULD A GOD! If I could do that from a .control block and could then back annotate it when I'm satisfied with the design, well, that would feel more Mentor-y (pre-Tanner). That's what IC Station's viewpoints were for. But I digress.
UPDATE: I have given up on
alter
and
alterparam
for changing subcircuit MOSFET model parameters. Both clearly refuse to do that. The Cadence-y
.param mnisrc_w=1u mnisrc_l=0.3
, however, does work, and
alterparam
will change it. Only thing is, there's no motivation to use
alterparam
when you can just change the parameters directly. Well, I guess you could set up a sweep in the
.control
block, but I've been using xschem as a simulator front end. Now that I think about it, with the big, long loading time ngspice seems to have (even with the .spiceinit
set ngbehavior=hsa; set ng_nomodcheck
trick), a
.control
block sweep with
alterparam
might be worth it!