forked from wrcad/xictools
-
Notifications
You must be signed in to change notification settings - Fork 0
guitorri/xictools
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
XicTools Open-Source Release October 1, 2017 Whiteley Research is pleased to offer the XicTools programs: Xic (graphical editor) and WRspice (circuit simulator) as open-source. The two programs have sold commercially for more than 20 years, having been updated steadily along the way. However, a lot more development is required to increase usage, and Stephen Whiteley, the author of most of this, is ready to try a new approach. It is expected that these programs will enjoy accelerated development in an open-source environment, with the contributions of one and all adding capability. One day they may become widely used and known for stability and available on-line support through user and developer groups. With this critical mass, the programs may become a viable choice for foundry users, particularly those who may lack the resources to pay for the Big Box tools. This would never be achieved with a proprietary software model given the limited capabilities of a tiny company such as Whiteley Research. The XicTools software is being released under the Apache-2.0 license, which is actually one of the most "free" licenses available. One is not restricted in using this software in a commercial environment, or in commercial products. There is no requirement that you must share your source code if you use this. The code can be redistributed with few restrictions. See the LICENSE-2.0.txt file for the wording of the license. Basically, if you are commercial and this software can add to your bottom line, go for it, and we might even help you! However, this software, like virtually all software, has a history. Much of it originalted from places like the University of California, Berkeley (e.g., WRspice is a direct descendent of Berleley Spice). There are bits and pieces that come from other universities. The university licenses are also very unrestrictive and likely highly compatible with the Apache-2.0 license (remember that if you paid US taxes, you almost certainly paid for the software developed at the university). At least one accessory (the help viewer) is tainted by the GNU library license. So, at the time of this initial release, there may be some question as to whether the full terms of the Apache-2.0 license apply in some cases. This shall presumably be clarified in the future. All old headers have been retained, so users can make their own judgement about the constraints on a given set of files. Incorporating a better HTML viewer, that understands CSS, should be a priority. Incidently, the GNU licenses are an absolute scourge and should die. Gnu-licensed software is anything but free, its use is highly restricted and is poison in a commercial environment. Fortunately the world is moving away from that nonsense, but the damage has been done. For years, Gnu-licensed Linux, and open-source in general, was considered to be something far-out hippy-dippy communist, due to "copy-lefts" and other peculiarities, by corporate IT departments. These people instead bought Microsoft, costing the world billions of dollars (maybe a trillion? who knows) as a consequence of poor security, and need for countermeasures. Anyway, Bill Gates owes a big wet kiss to the GNU folks who made open-source toxic for so long. 1. Overview - What's Here The distribution consists of several semi-independent programs and libraries, rooted in subdirectories. These are described below. adms This is a wrapper around the adms tool for creating run-time loadable device models for WRspice. fastcap This is a customized version of the venerable capacitance extraction program from MIT. It is called from within Xic for capacitance extraction of layouts, and can be used stand-alone as well. fasthenry This is a customized version of the venerable inductance extraction program from MIT. It is called from within Xic for inductance extraction of layouts, and can be used stand-alone as well. KLU This is simply a wrapper around the SuiteSparse sparse matrix package written by Timothy A. Davis, available from http://faculty.cse.tamu.edu/davis/suitesparse.html The provided makefile operates on the SuiteSparse distribution file, applying needed patches, compiling and linking. The reslt is a run-time loadble module which provides the sparse matrix capability, for use with WRspice (or any other application with a suitable interface). WRspice does not require this plug-in, but will employ it when provided. Use of the SuiteSparse package generally reduces simulation time. mozy The mozy package contains the help system and viewer used by Xic and WRspice, including an http/ftp file transfer utility, and a screen capture into image file utility. This code (and only this program code) is derived from GNU-licensed code. Commercial users may wish to build the XicTools without the mozy package, which is a top-level option. mrouter The MRouter is derived from the Qrouter maze router by Tim Edwards, available at http://www.opencircuitdesign.com. It may be used as a stand-alone tool similar to Qrouter, or run-time loaded into Xic as a plug-in, in which case its functionality is available within Xic. This integration is at a very early development stage. secure (aka xtlserv) This package provides the license server, client-side code, and license-generating utilities for the licensing system used with the commercial version of Xic and WRspice. This, of course, is no longer used. This package is retained, for now at least, in the chance that it may be of value to someone. vl This is a Verilog simulator, which is integrated with WRspice but can be used as a stand-alone non-graphical simulator. wrspice The WRspice program is a SPICE-derived circuit simulator. xic The Xic program is a graphical editor, used for displaying and editing layouts and schematics. It provides DRC, extraction, and a lot of other capability. xt_base This contains base libraries and configuration scripts for use with the other packages. 2. Dependencies wrspice mozy (optional) xt_base KLU vl xic mozy (optional) xt_base mrouter mozy xt_base vl xt_base adms fastcap fasthenry xt_base 3. Building the XicTools 3.1. Prerequisites CentOS/RedHat Linux is the reference platform. You should have success building the tools on a RPM-based Linux, including OpenSuSE and Fedora. Other Linux distributions will provide challenges, for now. You will need to be familiar with makefiles, compilers, and the tools needed to build Linux programs. Unless you are very lucky, something won't work right, and you'll need to know how to fix it. User-friendliness varies from nonexistant to execrable, meaning that the code itself is the documentation. This will all change over time, but for now, this is probably for experts only. You will need to have the development versions of lots of different libraries installed, including GTK. I don't have a list, but as you encounter missing headers, etc., these should be installed on your system from your operating system source repositories. You of course need the software development tools installed. 3.2. Build Procedure for Linux The procedure is as follows. 1. Copy Makefile.sample into Makefile, edit Makefile to set the configuration flags, as described in the Makefile. 2. "make config" will configure the source tree to your build environment. 3. "make all" will build all of the programs. The intended installation procedure is to first build a binary package (e.g., RPM) for each program, then install the packages on your system using the wr_install script. The Makefiles will actually prevent running "make install" to the default location under /usr/local. However, you can modify the Makefiles to allow this, and skip the packaging step entirely if you wish. However, if you don't install from the packages, you won't have the "Safe Install" feature, see http://wrcad.com for info about the packages. Basically, if you are a "user", you probably want to install with packages. If you are a "developer", you may wish to enable direct installation. If you are building on a non-rpm Linux, the packaging system is not yet supported, so direct installation is your sole option. 4. "make packages" will create all of the package files. Packages are left in xt/xt_base/packages/pkgfiles. 5. cd xt_base/packages/pkgfiles; ./install all This will install the programs from the package files. 3.3 Windows This is set up for a hybrid build environment consisting of Cygwin (www.cygwin.org, I use 64-bit version), win-builds-1.5 (win-builds.org, presently only the 32-bit version). Also used is the inno-setup 5.5.9 packager (http://www.jrsoftware.org/). Cygwin provides bash, make, and similar. win-builds provides the compiler tool chain, and the gtk libraries and prerequisites. There is provision for creating a "gtk2-bundle" from win-builds, which is deployed along with the packages. However, you don't need this for a local installation, I'll add detail here in the future. 3.4 OS X You will need xcode, the X-Quartz X-Windows server, and the MacPorts gtk2 libraries. There is provision for creating a "gtk2-bundle" from the MacPorts, which is deployed with packages. Again, a local user can likely skip this and link directly. I'll add detail here in the future.
About
XicTools: Xic graphical editor, WRspice circuit simulator, and accessories. for electronic design.
Resources
Stars
Watchers
Forks
Packages 0
No packages published
Languages
- C++ 77.7%
- TeX 7.7%
- C 6.1%
- Verilog 2.2%
- Yacc 1.8%
- Roff 1.6%
- Other 2.9%