You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 
Brian Taylor 09f070f582 Error handling improvements in cfunc.mod. Ensure that d_process.h wiil always respond to version and interface checks sent from sendheader. This is needed so that the pipe reads in sendheader do not cause Windows to hang when the interface version and in/out counts do not match. This hang was the cause of errors not being reported and the Windows gui hanging. Startup and header checks are now detected in cm_d_process, and the simulator will run but with runtime errors since a d_process model cannot be completely instantiated after initial errors. It would be good to find a means of gracefully halting the simulation run. 2 years ago
..
EKV2.6 Update the example structure for OSDI/OpenVAF: 3 years ago
bsimbulk Add input file dedicated to batch mode, 3 years ago
bsimbulk-local Remove bulk simulation netlist from files 3 years ago
bsimcmg Add plot for inverter gain 3 years ago
hicuml0 Update the example structure for OSDI/OpenVAF: 3 years ago
mextram Update the example structure for OSDI/OpenVAF: 3 years ago
mixed-models Update the example structure for OSDI/OpenVAF: 3 years ago
psp103 Use the PSP103 model pspnqs103va (including nqs option) 2 years ago
r2_cmc Update the example structure for OSDI/OpenVAF: 3 years ago
README Rename test_osdi_libs to osdi_libs 3 years ago

README

A 'quick and dirty' howto for OpenVAF and OSDI:


Example BSIMBULK
Tested under MS Windows 10 and OpenSUSE 15.4

Have OpenVAF compiler available.
Executables for download are available at https://openvaf.semimod.de/download/
for Linux and MS Windows.
Download BSIMBULK model from http://www.bsim.berkeley.edu/models/bsimbulk/
Open bsimbulk.va in a text editor
Search for the module name, here:
module bsimbulk(d, g, s, b, t);
The module name 'bsimbulk' will become the new model type in the .model statement
.model mname type ( pname1 = pval1 pname2 = pval2 ... ).
Compile bsimbulk.va with OpenVAF to obtain bsimbulk.osdi
Put bsimbulk.osdi into directory bsimbulk/osdi_libs
Search for suitable model parameters
BSIMBULK107 distro does not contain any parameters
BSIMBULK106 does contain a model parameter file model.l among the benchmark tests
Put model.l into directory bsimbulk/Modelcards
Edit model.l:
Check if model type is 'bsimbulk' (it is already)
Choose a model name for mname (nch or pch may be o.k., or BSIMBULK_osdi_N or ...)
There are NMOS and PMOS parameters in the same file here.

Create a ngspice netlist in directory bsimbulk, e.g. bb_IDvsVG.cir.

*** BSIMBULK107 Id versus Vgs ***
* the voltage sources
Vd dd 0 50m
Vg gg 0 1
Vs ss 0 0
Vb bb 0 0

* load the model parameter sets
.include Modelcards/model.l

* the call to the transistor (OSDI devices always start with N !)
NMN1 dd gg ss bb BSIMBULK_osdi_N W=500n L=90n

* the .control section
.control
* load the model dynamically
pre_osdi osdi_libs/bsimbulk.osdi
* the dc simulation
dc Vg 0 1.5 0.01 Vb 0 -1.6 -0.4
* plotting
set xbrushwidth=3
plot I(Vs)
.endc
.end
*********************************

So we have two OSDI specific actions in the netlist:
load the model by
pre_osdi osdi_libs/bsimbulk.osdi
instantiate the transistor by
NMN1 dd gg ss bb BSIMBULK_osdi_N W=500n L=90n