Simulation using NGSPICE ======================== .. _ngspice_configuration_lbl: NGSPICE installation -------------------- Ngspice is an open source simulator hosted at `this `_ page. The tool is well documented and the user manual can be found `here `_. In order to install ngspice the recommended method is the following: .. code-block:: bash git clone https://git.code.sf.net/p/ngspice/ngspice ngspice-ngspice cd ngspice-ngspice ./autogen.sh ./configure --enable-osdi make sudo make install cd .. rm -rf ngspice-ngspice NGSPICE basic testcases ------------------------ A basic spice level netlist, which simulates operating point of a npn13G2 HBT transistor, is shown below: .. code-block:: spicelang **.subckt dc_hbt_13g2 Vce net3 GND 1.2 I0 GND net1 1u Vc net3 net2 0 .save i(vc) XQ1 net2 net1 GND GND npn13G2l Nx=1 le=1.0e-6 .lib cornerHBT.lib hbt_typ .param temp=27 .control save all op print I(Vc) .endc .GLOBAL GND .end The netlist can be saved as dc_hbt_13g2.spice and simulated calling the following command: .. code-block:: bash ngspice -b dc_hbt_13g2.spice The user should get the following output: .. code-block:: bash Note: Compatibility modes selected: hs a Circuit: Doing analysis at TEMP = 27.000000 and TNOM = 27.000000 Using SPARSE 1.3 as Direct Linear Solver No. of Data Rows : 1 i(vc) = 6.492800e-04 Note: Simulation executed from .control section .. code-block:: bash .lib cornerMOSlv.lib mos_tt Vgs net1 GND 0.4 Vds net3 GND 1.0 Vd net3 net2 0 .param temp=27 XM1 net2 net1 GND GND sg13_lv_nmos w=1.0u l=0.13u ng=1 m=1 .control save all op let Id = @n.xm1.nsg13_lv_nmos[ids] print Id .endc .GLOBAL GND .end The netlist can be saved as mostest.spice and simulated calling the following command: .. code-block:: bash ngspice -b mostest.spice The following output should be observed .. code-block:: bash Note: Compatibility modes selected: hs a Warning: m=xx on .subckt line will override multiplier m hierarchy! Circuit: mostest Doing analysis at TEMP = 27.000000 and TNOM = 27.000000 Using SPARSE 1.3 as Direct Linear Solver No. of Data Rows : 1 id = 1.145621e-06 Note: Simulation executed from .control section