The Designer's Guide Community Forum
https://designers-guide.org/forum/YaBB.pl
Modeling >> Behavioral Models >> resrtiction on analog derivative operator
https://designers-guide.org/forum/YaBB.pl?num=1165714747

Message started by Aigneryu on Dec 9th, 2006, 5:39pm

Title: resrtiction on analog derivative operator
Post by Aigneryu on Dec 9th, 2006, 5:39pm

Dear All,

 Recently I use the verilog-A MOS transistor model written by Geoffrey_Coram in this forum, I found spectre complains
about the derivative operator because it tried to solve the gm symbolically by using ddx.

After I read a little bit about the ddx operator, I still cannot understand why. Does anybody has ever used this operator?  

Title: Re: resrtiction on analog derivative operator
Post by Geoffrey_Coram on Dec 11th, 2006, 4:56am

Spectre tends to be a little nit-pickier than other simulators ... technically, it may be correct in complaining about use of ddx() in a conditional, but the Verilog-AMS committee has agreed that the restriction is not necessary, and ddx() will no longer be subject to those restrictions in the next LRM.

Title: Re: resrtiction on analog derivative operator
Post by Aigneryu on Dec 11th, 2006, 2:26pm

Thanks Geoffrey,

 So does that mean, there is no problem with that code itself but on spectre? because I can never get it correctly compiled.
I have to remark the conditional def in order to get it work. Is that true?
Since you said that it should be correct to use ddx in a conditional, what should I do with it?

The error message said " The first argument specified for ddx operator contains an expression that cannot be symbollically calculated", but after I back trace the equations for Ids, I think it should be symbolically solvable.

It there any way I can do for this?

Title: Re: resrtiction on analog derivative operator
Post by Geoffrey_Coram on Dec 12th, 2006, 5:56am

Aigneryu -
I think the last time I tried this model, __VAMS_COMPACT_MODELING__ was not pre-defined by Spectre, so the ddx() was `ifdef'ed out.  I just tried it with more current version of the simulator and got the same message you got; tried again with an engineering release and it compiled fine.  So, you may need to disable the noise until you can get an updated version of Spectre.  (You can replace the gm = ddx(...) line with gm = 0;)

-Geoffrey

The Designer's Guide Community Forum » Powered by YaBB 2.2.2!
YaBB © 2000-2008. All Rights Reserved.