The Designer's Guide Community Forum
https://designers-guide.org/forum/YaBB.pl
Design Languages >> Verilog-AMS >> EKV VerilogA model from simucad
https://designers-guide.org/forum/YaBB.pl?num=1171699010

Message started by VerilogANovice on Feb 16th, 2007, 11:56pm

Title: EKV VerilogA model from simucad
Post by VerilogANovice on Feb 16th, 2007, 11:56pm

Hi,

Recently I got the VerilogA model from simucad website. I can't find the included "constants.h" file. Does anyone know where I can find it?

Also, there is a system call "$sit_get_prev", what does it mean?

Thanks a lot.

Title: Re: EKV VerilogA model from simucad
Post by Daniel_Platte on Feb 17th, 2007, 1:37am

As far as I know, all $sit_* functions are extensions provided by Silvaco (for device modeling purposes). From their website, you could also obtain some device models (including EKV) after free registration. Anyway, those functions will probably only be supported by Silvaco tools...

Cheers
Daniel

Title: Re: EKV VerilogA model from simucad
Post by VerilogANovice on Feb 17th, 2007, 10:30am

Thanks. So, is there any equivalent function in Verilog-A? Consider the following statement:

Q = C * (VG-VS - ($sit_get_prev(VG,1) - $sit_get_prev(VS,1))) + $sit_get_prev(Q,1);

Is there a way to write it in Verilog-A?

Title: Re: EKV VerilogA model from simucad
Post by Ken Kundert on Feb 17th, 2007, 6:41pm

What Silvaco is doing is not valid modeling. The approach they are taking is going to result in serious charge conservation errors. The correct way to handle this is to use the EKV charge equations directly. When you do this the charge conservation errors go away, as does the need for the special non-standard function.

-Ken

Title: Re: EKV VerilogA model from simucad
Post by Geoffrey_Coram on Feb 19th, 2007, 4:31am

Ken is correct: Silvaco/Simucad are not modeling the devices correctly.

When they originally "translated" the models (several years ago, early 2004), I told them about the problem, and suggested that they not use the $sit_ functions in places where they were not needed.  BSIM3 and later (including EKV) models are all charge based, and if you contact the EKV authors, you can get the full model in valid Verilog-A (after signing an NDA).

The origin of the problem is that Silvaco started with the Spice3 C code, which does some of the numerical integration inside the models (NIntegrate) rather than letting the simulator handle it.  In the early models (MOS level 1 and 3, for example -- which Silvaco also translated), the Spice2 code actually has capacitance models that can't be integrated to get the charge (the differentials Cxy are not "exact" meaning you can't find one Q(d,g,s,b) such that all capacitances are the appropriate partial derivatives).  The $sit_ functions allowed Silvaco to replicate the functionality of the Spice C code.

I think Silvaco started with the "easy" models and got into a bad habit (capacitance formulation).  I think you'll find the BSIM3 and 4 models on their web site do not contain proprietary extensions.

Title: Re: EKV VerilogA model from simucad
Post by Geoffrey_Coram on Feb 19th, 2007, 4:35am


VerilogANovice wrote on Feb 16th, 2007, 11:56pm:
I can't find the included "constants.h" file. Does anyone know where I can find it?


This file may also be called "constants.vams" and is generally found in the "include" path of your simulator.  The file contents are actually specified in the Verilog-AMS LRM (http://www.verilog.org/verilog-ams/htmlpages/public-docs/lrm/2.2/AMS-LRM-2-2.pdf).  You should be a little careful, though, because some of the physical constants have different values in some implementations: eg, some simulators use the value for `P_Q (elementary charge) that was used in Spice; the LRM uses values from NIST.

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