.. include:: /project-links.txt .. include:: /abbreviation.txt .. getthecode:: internal-device-parameters.py :language: python3 :hidden: ============================ Internal Device Parameters ============================ This example show how to access internal device parameters. .. code-block:: py3 import PySpice.Logging.Logging as Logging logger = Logging.setup_logging() from PySpice.Doc.ExampleTools import find_libraries from PySpice.Probe.Plot import plot from PySpice.Spice.Library import SpiceLibrary from PySpice.Spice.Netlist import Circuit, SubCircuit, SubCircuitFactory from PySpice.Unit import * class Level2(SubCircuitFactory): __name__ = 'level2' __nodes__ = ('d4', 'g4', 'v4') def __init__(self): super().__init__() self.M(1, 'd4', 'g4', 'v4', 'v4', model='nmos', w=1e-5, l=3.5e-7) class Level1(SubCircuitFactory): __name__ = 'level1' __nodes__ = ('d3', 'g3', 'v3') def __init__(self): super().__init__() self.X('mos2', 'level2', 'd3', 'g3', 'v3') self.subcircuit(Level2()) circuit = Circuit('Transistor output characteristics') circuit.V('dd', 'd1', circuit.gnd, 2) circuit.V('ss', 'vsss', circuit.gnd, 0) circuit.V('sig', 'g1', 'vsss', 0) circuit.X('mos1', 'level1', 'd1', 'g1', 'vsss') if True: circuit.subcircuit(Level1()) else: subcircuit_level2 = SubCircuit('level2', 'd4', 'g4', 'v4') subcircuit_level2.M(1, 'd4', 'g4', 'v4', 'v4', model='nmos', w=1e-5, l=3.5e-7) subcircuit_level1 = SubCircuit('level1', 'd3', 'g3', 'v3') subcircuit_level1.X('mos2', 'level2', 'd3', 'g3', 'v3') subcircuit_level1.subcircuit(subcircuit_level2) circuit.subcircuit(subcircuit_level1) print(str(circuit)) simulator = circuit.simulator(temperature=25, nominal_temperature=25) analysis = simulator.dc(Vdd=slice(0, 5, .1)) # Fixme: ,Vsig=slice(1, 5, 1)