SemiVi

Circuit Solver

Circuit Solver

The circuit solver takes circuit netlists in spice format and performs desired set of simulations.

Salient Features
  • Supports non-linear circuit solver,
  • Parameterized electronic components
  • Allows user-defined parameters and math functions
  • Python scripting enables parameters editing, results post-processing, use of Python-specific data-processing and optimization libraries.
  • Users can create functional and behavioural models in Python
  • Coupled electro-thermal solver enabled in DC, AC, and transient

Supported component, analyses and Parametrization

  • Linear components - R, L, C, and mutual-inductance,
  • Voltage- and current-controlled switches,
  • Lossless and lossy transmission lines, RC network,
  • Non-linear components - Diode, JFET, MOSFET, MESFET, and BJT,
  • AC, DC, and transient I/V sources,
  • Dependent sources - VCVS, CCVS, VCCS, CCCS,
  • Subcircuits - can be parametrized and math functions can be defined,
  • Heat generation - enabled in passive components,
  • Heat conduction - use thermal "R" and "C"

Collaboration

  • We are open to collaborating with the users to add customized non-linear components.

Circuit Draw - A user-friendly GUI for --

  • Circuit drawing
  • Setting analyses and simulations
  • Results visualization
  • Circuit optimization.

User-manual and examples

  • Equations corresponding to each of the components
  • Parameters of various components and their usage
  • Various analyses and default parameters
  • Python interface and various functions therein.

Functional compact models

  • Functional modeling interface: A quick way of modeling functionality of a digital chip (e.g. drivers, signal-processors) in the analog circuit.
  • An example code (without all the functions) looks as follows:

    class SimpleDriver (cs.functionalmodel): 
    def updateOutputPinVoltages (self, isOutputPin, inputV, time):
    return outV

  • For detailed description, please refer to the user-guide and the examples therein.

Behavioural compact models

  • Behavioural modeling interface: Define a custom compact model of non-linear devices in Python.
  • An example code (without all the functions) looks as follows:

    class MyDiode (cs.behaviouralmodel): 
    def getDerivativesAndPinCurrents (self, inputV, time):
    return np.append (outdI, outI)

  • For detailed description, please refer to the user-guide and the examples therein.

Python Interface

  • Python-interface allows modifying model parameters, analysis, and result extraction.
  • An example code (without arguments) looks as follows:

    import circuitsolver as cs 
    p = cs.circuit()
    p.readSpiceCircuitFile(...)
    R3Now = p.getComponentParamVal(...)
    p.setComponentParamVal(...)

  • For detailed description, please refer to the user-guide and the examples therein.

Circuit Optimizer

  • Built-in circuit-optimizer: compact model calibration and performance optimization.
  • An example code (without arguments) looks as follows:

    f = cs.optimizer(p) 
    f.setOptimizationAlgorithm(...)
    f.addOptimizationParameter(...)
    f.addExperimentalDataAndPower(...)
    f.optimize()

  • For detailed description, please refer to the user-guide and the examples therein.

License Purchase

  • Please send an email to info@semivi.ch.