The Designer's Guide Community Forum
https://designers-guide.org/forum/YaBB.pl
Modeling >> Semiconductor Devices >> BSIM3v3 C-code call from MATLAB
https://designers-guide.org/forum/YaBB.pl?num=1160906650

Message started by Visjnoe on Oct 15th, 2006, 3:04am

Title: BSIM3v3 C-code call from MATLAB
Post by Visjnoe on Oct 15th, 2006, 3:04am

Hello,

I was wondering if anyone has ever interfaced MATLAB and the BSIM3/4 C-code implementation. More specifically, call this C-code to determine Ids for given W,L. This would allow simulation-accurate sizing from withing a scripting environment.

Kind Regards

Peter

Title: Re: BSIM3v3 C-code call from MATLAB
Post by Geoffrey_Coram on Oct 16th, 2006, 4:57am

If you're in an academic setting, you can probably use the Silvaco/Simucad BSIM3/4 Verilog-A code ("not for commercial use" and you have to register).  Since you don't actually need the derivatives for a Newton solver (just evaluating Ids for given W,L -- and biases), you can probably pretty quickly convert the V-A code to MATLAB (MUCH more quickly than convering C code).   Prof. Roychowdhury at U Minn was using a Verilog-A version of BSIM3 to interface with some MATLAB functions for obtaining dc convergence using some new homotopy algorithms; you might try contacting him to see if he converted V-A to MATLAB or has some other way of evaluating V-A from MATLAB.


Title: Re: BSIM3v3 C-code call from MATLAB
Post by Visjnoe on Oct 16th, 2006, 10:43am

Hi Geoffrey,

thanks for the pointer towards the Silvaco open-source model. I saw in the comment that you contributed personally to this.

I browsed quickly through the code and have some questions:

1. Is it correct that this code is only valid for some transistor model (e.g. thick oxide NMOS)?
   I assume the very long list of parameters has to be adapted very every technology and transistor type.

2. I think not all of this code and/or parameters are required to generate Idsat for a given W/L and bias voltages (correct me if I'm wrong).
   My first impression is that the essential code for Idsat is rather limited. I sure do hope not all the code has to be used (although conversion  
   to MATLAB will not be difficult, just a bit of hard work :))

Kind Regards

Peter  

Title: Re: BSIM3v3 C-code call from MATLAB
Post by Geoffrey_Coram on Oct 17th, 2006, 4:45am

Hi, Peter -
BSIM3 has been used down even to 90nm CMOS, I believe.  Of course, depending on your application, you may find problems even in larger geometries; my company (Analog Devices) needed to enhance the model for high-precision circuits in 180nm (0.18u).

The code has a parameter TYPE that you can set to -1 to simulate PMOS.  And yes, you have to set (extract) a bunch of parameters for the model to match data for a given technology.

A fair number of the parameters are used for the diodes (body-drain, body-source), current and capacitance.  Oh, yes, and there's a lot of the code used for the CAPMOD channel charge/capacitance.  I see a comment in the copy I have
 // C-V model
(capacitance as a function of voltage), and you can delete that section (all the way down to and including the four lines after // Add depletion capacitance) if you just want Ids.  There aren't that many parameters used only in the C-V model, though, so you won't save much in that regard.

-Geoffrey

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