I
Isaac
I am new to building big elaborate models for pspice version 9.2 and
have hit a brick wall with something. I am trying to build a model for
a fully custom bipolar process that takes into account design rules
and emitter sizes to scale all the parasitics accordingly.
I am attaching below some snippets of one of the models that is
causing me problems because I think my mistake is either a syntax
issue or an option I havent turned on.
..SUBCKT QB2NS c b e PARAMS: le=0 we=0 ne=1 bv=10 mm=1
.PARAM Gnsbl = {Gr_c8(BV) + Gr_c4(BV) + Gr_c9(BV) + Gr_c3(BV)}
.PARAM Gnsbw = {2 * Gr_c8(BV)}
.PARAM Knsea = {Le * We * Ne}
RC c c1 repi {Rcval/mm}
RB b b1 rbcnt {Rbval/mm}
QNQ c1 b1 e $G_SUB Qn {mm}
QNParQ $G_SUB c1 b1 $G_SUB QnparQ {mm}
.MODEL QNQ AKO:Qn NPN(
+ is = {Mp_Qnis * Knseasc}
+ ikf = {Mp_Qnikf * Knseasc}
+ ise = {Mp_Qnise * Knsep} )
..ends
The model is actually a lot longer but I just cut out a few samples of
what I am doing. Anything that is Gr_????(BV) is a function that does
a table lookup of a layout rule for a given breakdown voltage.
Anything that is MP_??? is a model parameter. Both of these variables
work fine and I have tested all those equations.
What is happening though is that the .Model inside the sunckt is not
inheriting the .Params defined in the subckt. It also does not give
an error. it seems like it just default the param value to 0. On the
other hand when I try to call up a param that was defined at the top
of the hierarch it has no trouble pulling up the value, its only
params defined inside the subckt. The reason I need this to happen is
so I can scale defferent model parameters by different values based on
how the device is actually built and how it the drawing scales as
emitter sizes and breakdown voltages are changed. My understanding is
that if I use the default model scale value, everything scales by that
one value.
At this point I font know if the problem is that my approach is all
wrong or if its something else.
Any help would be greatly appreciated.
Thanks,
Isaac
have hit a brick wall with something. I am trying to build a model for
a fully custom bipolar process that takes into account design rules
and emitter sizes to scale all the parasitics accordingly.
I am attaching below some snippets of one of the models that is
causing me problems because I think my mistake is either a syntax
issue or an option I havent turned on.
..SUBCKT QB2NS c b e PARAMS: le=0 we=0 ne=1 bv=10 mm=1
.PARAM Gnsbl = {Gr_c8(BV) + Gr_c4(BV) + Gr_c9(BV) + Gr_c3(BV)}
.PARAM Gnsbw = {2 * Gr_c8(BV)}
.PARAM Knsea = {Le * We * Ne}
RC c c1 repi {Rcval/mm}
RB b b1 rbcnt {Rbval/mm}
QNQ c1 b1 e $G_SUB Qn {mm}
QNParQ $G_SUB c1 b1 $G_SUB QnparQ {mm}
.MODEL QNQ AKO:Qn NPN(
+ is = {Mp_Qnis * Knseasc}
+ ikf = {Mp_Qnikf * Knseasc}
+ ise = {Mp_Qnise * Knsep} )
..ends
The model is actually a lot longer but I just cut out a few samples of
what I am doing. Anything that is Gr_????(BV) is a function that does
a table lookup of a layout rule for a given breakdown voltage.
Anything that is MP_??? is a model parameter. Both of these variables
work fine and I have tested all those equations.
What is happening though is that the .Model inside the sunckt is not
inheriting the .Params defined in the subckt. It also does not give
an error. it seems like it just default the param value to 0. On the
other hand when I try to call up a param that was defined at the top
of the hierarch it has no trouble pulling up the value, its only
params defined inside the subckt. The reason I need this to happen is
so I can scale defferent model parameters by different values based on
how the device is actually built and how it the drawing scales as
emitter sizes and breakdown voltages are changed. My understanding is
that if I use the default model scale value, everything scales by that
one value.
At this point I font know if the problem is that my approach is all
wrong or if its something else.
Any help would be greatly appreciated.
Thanks,
Isaac