In this article we introduce Xyce, a SPICE-compatible parallel electronic circuit simulator developed at Sandia National Laboratories, USA. The software is capable of solving extremely-large circuit problems on large-scale parallel computing platforms. Apart from being an analogue electronic simulator, Xyce is used widely in general network systems such as neural networks and power grids.
Xyce is under continuous development since 1999 and is funded by National Nuclear Security Administration’s Advanced Simulation and Computing Campaign. It is released under open source GPL licence from version 6.0 onwards.
Key features of Xyce
Being a state-of-the-art massively-parallel circuit-simulating platform, Xyce simulator offers the standard capabilities offered by competing commercial and open source simulators in addition to a variety of devices and models specific to Sandia’s needs.
Supporting large-scale parallel computing. With the help of Message Passing Implementation, Xyce can be run on serial, shared-memory and distributed-memory parallel systems. Special care has been taken by the designers to provide optimal parallel efficiency in multiple processors by addressing the specific nature of circuit-simulation problems. Xyce has shown scalability up to hundreds of processors.
Device model support. Though Xyce is not developed as a derivative of SPICE, it is designed to be SPICE-compatible. A canonical set of industry models including Berkeley Short-Channel IGFET model, Vertical Bipolar Inter-Company, Bipolar Transistor model and others are supported.
Apart from this, many non-traditional models that support neuron simulation and reaction networks have been developed. With the help of a powerful expression library, behavioural modelling can be performed. Verilog-A models can be incorporated with a model compiler.
Options for circuit analysis. Standard analysis techniques such as steady-state direct current operating-point analysis, transient analysis and small-signal frequency domain analysis are supported. More exotic analysis methods including Harmonic Balance, Multi-Time PDE and Model-Order Reduction methods are also supported.
The modern code base. Xyce is a highly modular and flexible tool, designed and written from scratch in C++. It applies abstract interfaces to easily develop different analysis types, solvers and models.
Xyce uses Trilinos solver library, yet another open source development from Sandia. This library helps in the development and implementation of robust algorithms and enables technologies with the help of modern object-oriented software design. Trilinos also leverages from values of other well-established libraries like PETSc, Metis/ParMetis, SuperLU, Aztec, the BLAS and LAPACK.
A number of circuit-specific solvers including KLU direct solver have been developed for Xyce.
Faster development time. For each type of analysis in a SPICE based code, new device functions are created. The differential-algebraic equation formulation in Xyce allows all analysis methods to use the same device-load functions. This results in a faster development time for new devices and new analysis types.
Encapsulation between models and solver layers of the source code is significantly improved as the device models using differential-algebraic equation formulation are nearly independent of analysis type.
What is new in the latest version
The latest release Xyce 6.4 has many new features and enhancements. Some of these are:
Inclusion of new device models. New device models have been included and already existing ones have been enhanced. Some notable inclusions and enhancements are as follows:
1. A new memristor device using Yakopcic model
2. Power Grid Generator Bus model enhanced with support for reactive power limits
3. MEXTRAM 504.11 with self-heating
Enhanced solver stability, performance and features.
1. For reducing memory consumption and improving parsing speeds for large circuits, netlist parser has been significantly refactored.
2. In order to improve time stepping for time integrators, Local Truncation Error criteria have been incorporated. History information of signals is used for this purpose.
3. Linear solver has been improved with Kundert SPARSE linear solver.
4. Well-resolved time-domain outputs can be achieved with the help of over-sampling capability for Harmonic Balance time-domain output, which is newly introduced in Xyce.
Improved interfaces. Compatibility between Xyce and PSpice digital behavioural models has been significantly improved in Xyce with support for DIGINITSTATE option. Harmonic Balance output and error handling during netlist parsing have been significantly improved, too. Enhancements at output allows users to suppress the header and footer of standard-format output files.
Releasing the software under open source. The first open source release of Xyce 6.0 was on November 5, 2013. By releasing the source codes and binaries for public download, developers aim to foster external collaboration and solicit feedback from the simulation community. They feel that new collaborators, new benchmarks and external feedback can be a valuable starting point for code improvements.
Moreover, research is funded by the taxpayer’s money. So making it open source is their social responsibility.
For more information: click here
You may also like: click here
The author is assistant professor, Department of ECE at SETCEM, Thrissur