For a corner simulation, I would like to change the model name of a single instance. I can easily be done using SKILL, but I would like to use the Spectre alter statement for that. Is there a way to do it? Maybe something like that ...
alter1 dev=M0 param=model value=new_model_name
I don't believe this is possible (I may be wrong; I don't really have the bandwidth to explore and test this). I'd suggest you go via customer support for this one.
Thanks, I might ask there.
Another problem I ran into: I would like to parametrise a model, so I created an inline subcircuit containing only a model statement as described in the manual. Then I instantiate the model subcircuit and use the instantiated model for my device as follows:
inline subckt new_model_subckt parameters dvt=0 model new_model_subckt old_model vth0=0.5+dvtends new_model_subckt
M0 (net1 net2 0 0) new_model l=1u w=1u
However, Spectre doesn't seem to like it and stops halfway through without an error message. Do you have an idea what's wrong here? Is there a way to parametrise a model without having to create a subcircuit containing the device instance?
If you're going to use an inline subckt to do this, you have to have the right number of pins for the subckt, the parameters defined, and an instance of the new model:
inline subckt new_model_subckt (d g s b)parameters w=2u l=2u dvt=0// based on original modelmodel new_model orig_model vth0=0.5+dvt // instantiate the model. Note that the instance name should// match the inline subckt name. Also needs to pass all the parameters innew_model_subckt (d g s b) new_model w=w l=lends new_model_subckt
M0 (net1 net2 0 0) new_model_subckt l=1u w=1u
Something like that.