Description of gsim
gsim is simulation pre/post processor for gschem, ngspice and matplotlib based on Python. Allows easy control of simulation process directly from the circuit in gschem or interactively in Python environment.
A. Standard simulation - simulation is controlled directly from gschem (see examples)
![]() |
Example - gEDA/gschem circuit diagram |
![]() |
Example - Simulation result, defined by A2 |
gsim contains a set of predefined components (see list of components )
- for simple graphic output directly from gschem - instant graphic components a.e.
- amplitude-phase characteristic plotter
- 4 channel analog scope
- 2 channel analog recorder
- 2D xy parametric scope
- 3D xyz parametric scope
- 4 channel digital recorder
- 8 channel digital recorder
- for input of analog and digital blocks of XSpice simulator. Enables the creation of hybrid models, consisting of discrete, block and logic components and their use as regular components in gschem.
B. Python scripting - simulation is controlled from Python language/enviroments (eg. IPython, Geany )
1 ...
2 from gsim import *
3 g=gsim('file_name.sch') # load gschem file in to simulator
4 g.netlist() # create and update netlist
5
6 for i in arange(1e-5, 10e-5, 1e-5):
7 g.setPAR('IB',i) # update parameter in netlist
8 g.sim() # repeat sumulation
9 ic=g.yData.get('v(ic)') # extract data from simulation in to python enviroment
10 plt.plot(g.xData,ic) # data processing in python
11 ...
gsim contains a set of predefined Python scripts (see example)
- in interactive mode substitutes parameters of components (functions setPAR, setTRAN, setAC …)
- set of inherited classes for easy data manipulation (simulation results) in the interactive mode
Additional Python functions
- simple *.sch files parser
- generates list of a part of the schematics (components, connections...)
- *.net file parser with preferences
- allow use of real components in the simulation, corrects the order of pins for the simulation by real pin name (eg diode - Anode, Anoda, AN, A), eliminates problems with different components for simulation and real proposal of the circuit
- generates block models for XSpice in their specific format based on the components attributes
Example - original line from Spice netlist file for D flip-flop
A4 6 4 5 5 7 6 D_DFF
Part of expanded netlist by gsim for XSpice simulation, based on gschem D_DFF component attributes
* >>><<< A4 6 4 5 5 7 6 D_DFF A4 6 4 5 5 7 6 D_DFF_A4 .MODEL D_DFF_A4 D_DFF ( + rise_delay=1.0e-9 + fall_delay=1.0e-9 + set_load=1.0e-12 + reset_load=1.0e-12 + data_load=1.0e-12 + clk_load=1.0e-12 + reset_delay=1.0e-12 + ic=0 + clk_delay=1.0e-9 + set_delay=1.0e-9 )
Download contains
- Python source code
- Examples - Small set of gsim examples - analog,digital, mixed, hybrid for testing of functionality
- Component library - Selected set of Spice and Xspice components.
- Models - Small set of Spice/Xspice models and macromodels
gsim is in an early experimental version, it is intensively tested and continuously developed. Please notice, this is conceptual proposal which will be extended in the future.
itPK - Team