Questions and Answers

0 Like 0 Dislike

Geoffrey Coram

What happens at V_i == vbi?

I'm looking at  the following lines in the code:

if (V_i != vbi ) begin
j_photo     =         jphoto_max * (1 / tanh((V_i   - vbi)/2/$vt) - 2*$vt/(V_i  - vbi));     //calculate collection current
end
else begin
j_photo     =         0;                                                                     //fill the undefined point
end

(side comment: it would be nice to indent the if and else blocks)

I wonder: what really happens at V_i == vbi, and what happens in the limit as V_i -> vbi from either side?

Usually, in compact modeling, I tell people not to use == (or !=), because it is likely to produce incorrect derivatives.

In this model, at V_i == vbi, j_photo == 0, and d(j_photo)/dV_i == 0.  However, I suspect that for V_i = vbi+epsilon, the derivative is not zero.

Is there some way to use a Taylor series around vbi to get a smooth derivative?

Report abuse

1 Responses

  1. 0 Like 0 Dislike

    Xingshu Sun

    Hi Dr. Coram



    Thanks for your comments.



    At V_i == vbi, j_photo is zero from either side if you use Taylor series. d(j_photo)/d(V_i) is 1/3 at V_i = vbi as well  if use Taylor series.



    So I'm actually using Taylor series here to make sure it is continuous.



    let me know if I answer your question..



     



     



     

    Reply Report abuse

    Please login to answer the question.