ngspice/examples/osdi
Holger Vogt edecf91437 options are not required 2025-05-24 10:58:45 +02:00
..
EKV2.6 Update the example structure for OSDI/OpenVAF: 2023-01-27 16:08:17 +01:00
bsimbulk Add input file dedicated to batch mode, 2023-01-28 17:01:53 +01:00
bsimbulk-local Remove bulk simulation netlist from files 2023-01-28 17:02:13 +01:00
bsimcmg Add plot for inverter gain 2023-08-30 14:23:25 +02:00
hicuml0 Update the example structure for OSDI/OpenVAF: 2023-01-27 16:08:17 +01:00
mextram Update the example structure for OSDI/OpenVAF: 2023-01-27 16:08:17 +01:00
mixed-models Update the example structure for OSDI/OpenVAF: 2023-01-27 16:08:17 +01:00
noise add examples for OSDI noise 2023-11-04 19:36:30 +01:00
psp103 options are not required 2025-05-24 10:58:45 +02:00
r2_cmc Update the example structure for OSDI/OpenVAF: 2023-01-27 16:08:17 +01:00
README Rename test_osdi_libs to osdi_libs 2022-12-27 14:14:01 +01:00

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