Contents lists available at ScienceDirect
SoftwareX
journal homepage: www.elsevier.com/locate/softx
2
SCAPy: Electric and electronic symbolic circuit analysis in python
Luis Cortés Ramírez
a
, Luis A. Sánchez-Gaspariano
a,∗
, Israel Vivaldo-de-la-Cruz
a
,
Carlos Muñiz-Montero
b
, Alejandro I. Bautista-Castillo
c
a
Facultad de Ciencias de la Electrónica, Benemérita Universidad Autonóma de Puebla, Pue., CP 72570, Mexico
b
Ingeniería en Electrónica y Telecomunicaciones, Universidad Politécnica de Puebla, Juan C. Bonilla, Puebla, CP 72640, Mexico
c
Sistemas y Circuitos Integrados, Instituto Nacional de Astrofísica, Óptica y Electrónica, Tonantzintla, Puebla, C.P. 72840, Mexico
ARTICLE INFO
Keywords:
Python
Symbolic-simulator
E
2
SCAPy
Analog-circuits
ABSTRACT
Recently Python has become relevant for many tasks in a variety of disciplines leading to the development of
various open source libraries. Our contribution to that cluster of tools is
2
SCAPy, a useful program for the
symbolic computation of analog circuits. The most appealing feature of
2
SCAPy lies in its ability to solve large
circuits with several nodes in few milliseconds due to its DDD algorithm, which drives to the fast solution of
the system of equations of the circuit. To show the
2
SCAPy performance, three nonclassical circuit examples
are reported: a WTA/LTA filter, a Memristor and a Fractional Integrator.
Code metadata
Current code version v.0.0.1
Permanent link to code/repository used for this code version https://github.com/ElsevierSoftwareX/SOFTX-D-24-00358
Permanent link to Reproducible Capsule –
Legal Code License GNU GPLv3
Code versioning system used git
Software code languages, tools, and services used Python
Compilation requirements, operating environments & dependencies Python 3.10, numpy, pandas, symengine, sympy, multiprocessing, memory-profiler
If available Link to developer documentation/manual For example: https://github.com/luisCorl/e2scapy
Support email for questions lui.corl.ing@hotmail.com
1. Motivation and significance
Electronic Design Automation (EDA) tools are software solutions
widespread used at both industry and academy [1]. Most of these apps
are numerical programs mainly employed for the design and verifica-
tion of the functionality of the devices that constitute an electronic
system [2,3]. Nevertheless, numerical simulation does not explicitly
show the influence of each circuit element in the simulation out-
come. As a result, several simulation runs are usually required. Instead,
symbolic analysis provides analytic expressions which allow a deeper
insight into the circuit behavior [4–6].
Compared to numerical simulators of the SPICE type, a symbolic
simulator allows the identification of the most remarkable circuit pa-
rameters in a network and thus to optimize the circuit in order to
exhibit a better performance in terms of sensitivity and robustness for
∗
Corresponding author.
E-mail address: luis.sanchezgas@correo.buap.mx (Luis A. Sánchez-Gaspariano).
temperature, voltage or process variations [7]. Yet, compared to their
numerical counterpart, only a few symbolic simulators are available.
A good compendium about symbolic simulators, highlighting the
use of EI-SCAM (a program in MATLAB) can be found in [1,8]. Even
though MATLAB is a prominent software for systems analysis, in recent
years Python has become relevant for many tasks in a variety of
disciplines [9–11]. Since Python is a freeware programming language,
it drives to the development of various open source libraries whose
scope entwines a large amount of users. Moreover, Python capabilities
for heavy computing tasks are impressive, especially when used along
with various libraries and frameworks such as NumPy, SymPy, Pandas,
Symengine, Multiprocessing and Memory-profiler, to name a few.
In this way, taking into account that symbolic circuit simulators
typically require demanding computing capabilities to solve large and
https://doi.org/10.1016/j.softx.2024.101910
Received 1 July 2024; Received in revised form 16 September 2024; Accepted 17 September 2024
SoftwareX 28 (2024) 101910
Available online 21 September 2024
2352-7110/© 2024 Published by Elsevier B.V. This is an open access article under the CC BY license (http://creativecommons.org/licenses/by/4.0/).