There is a plethora of OSS available online that is focused on electronic engineering applications. These programs provide royalty-free access to powerful tools for electronics design, verification, testing, and simulation. Many open-source CAD tools are suited to the board-level design of integrated circuits (ICs), (including application-specific integrated circuits, aka ASICs), field-programmable gate arrays, aka FPGAs, and system-level modelling). Here’s a look at some open-source software that electronic engineers can utilise for their projects.
Electric is an electronic design automation (EDA) tool for schematics, the mapping of IC layouts, design simulation, logical effort analysis, design rules checking, and more. Engineers can use it to design a wide variety of ICs, including complementary metal-oxide semiconductors (CMOS), newer and older chip technologies, and abstract ones. Electric is based on the GNU Operating System and compatible with languages such as VHDL and Verilog.
naga EDA is an open-source tool for electronic design in C++ and Python.
GTKWave is an open-source waveform viewer/hardware description language (HDL) simulation tool that is compatible with 32-bit Linux and Windows.
CircuitMaker is a free-to-use EDA software for electronics schematic modelling and PCB design. Engineers can use it to design and simulate electronic circuits using a wide selection of components available in its library. Also, through its thriving online community, it encourages open collaboration and innovation.
A circuit board that shows conductive tracings. Image courtesy of Pixabay.
SimulIDE is an operational support system (OSS) for real-time simulation of electronic circuits. It has such features as analogue and digital components, microcontrollers, a signal plotter, and oscilloscope; plus, a code editor and debugger PIC, AVR, GcBasic, and Arduino. Technical support is available on its general discussions board. SimulIDE uses the GPLv3 licence.
Graywolf is a professional-grade placement tool for very large-scale integration design, which is typically used in combination with Q-flow. Engineers can use it to simplify design complexity and minimise errors in component placement and routing.
KiCad is a cross-platform OSS that allows electronics engineers to design and automate PCBs in real time. It features the following tools:
Eeschema: provides schematic capture, electrical rules checking, netlists export, bill of materials (BOM) generation, and integrated libraries.
Pcbnew: contains tools for differential pair routing and length tuning, as well as a footprint editor.
3D Viewer: provides an environment for interactive 3D renderings of PCB layouts (up to 32 layers).
Gnucap is a general-purpose circuit simulation tool for true mixed-mode simulation. Engineers can use it to perform non-linear DC and transient analyses, Fourier analysis and more. Included in the latest release (Version 0.35) are functions for diodes, MOSFETs, and bipolar junction transistors, which are also compatible with SPICE models.
SymbiFlow is a multi-platform open-source software for optimising and automating FPGA workflows. It provides ‘architecture definitions’ within the larger framework, which targets specific FPGAs, e.g., ‘Project X-Ray’ for the Xilinx 7-series bit-stream format; ‘Project Trellis’ for Lattice ECP5 bit-stream; and ‘Project IceStorm’ for the iCE40 bit-stream format.
Computer source code. Image courtesy of Pexels.
Are There Disadvantages to Using Open Source Software?
Although open-source software offers a host of advantages to individual and commercial users, it does have a few disadvantages. These relate to compatibility problems, security issues, and legal concerns.
Open-source software is often incompatible with proprietary hardware from commercial users and may not include technical support. Therefore, they might require special drivers to run correctly. Compatibility issues create time and budget constraints to utilise them in their applications.
Cybersecurity is a vital concern for internet use in the modern age. With malicious software and cyberattacks on the rise, hackers may try to exploit vulnerabilities in a software’s architecture. The source code of some free-to-use software can expose users to these risks.
For instance, the ‘GHOST bug’ in Linux systems (CVE-2015-0235) distributions (which is triggered by GetHOST) can allow a hacker to execute code on a Linux device. Moreover, the ‘Heartbleed’ bug, which affects the OpenSSL cryptographic library, allows for information theft, despite being secured with SSL/TLS.
Although the idea of ‘open-source’ is to encourage innovation by open collaboration, intellectual property issues can arise in some scenarios. When organisations fail to put in place third-party copyright statements with appropriate licensing information, users may modify the source code, leading to copyright infringement issues. In the case where a third party holds a patent on open-source software, a company can be sued for copyright infringement if it modifies, distributes, or uses a patented section without its approval.
Ultimately, open-source software offers a host of benefits to electronics and/or electrical engineers. They are free to use, foster collaboration, and are suitable for a wide range of applications. On the flip side, they can present the above compatibility, security, and legal issues for users; in fact, some people argue that they are better suited for individual use than for commercial purposes, but as with so many technologies, it all boils down to a matter of preference.