XCircuit: An IntroductionXCircuit is a UNIX/X11 (and now Windows, if you have an X-Server running) program for drawing publishable-quality electrical circuit schematic diagrams and related figures, and produce circuit netlists through schematic capture. XCircuit regards circuits as inherently hierarchical, and writes both hierarchical PostScript output and hierarchical SPICE netlists. Circuit components are saved in and retrieved from libraries which are fully editable. XCircuit does not separate artistic expression from circuit drawing; it maintains flexiblity in style without compromising the power of schematic capture.
XCircuit is flexible enough to be used as a generic program for drawing just about anything, and is competitive with powerful programs such as "xfig". It is especially good for any task requiring repeated use of a standard set of graphical objects, including architectural drawing, printed circuit board layouts, and (my personal favorite) music typography (see my Music Page for examples).

XCircuit was written and is maintained by Tim Edwards, currently with the Johns Hopkins University Applied Physics Laboratory in Laurel, Maryland. XCircuit started life in the summer of 1993 as a drawing program to render circuit diagrams for an undergraduate electrical engineering course in the Johns Hopkins University Whiting School of Engineering Part-time programs. Since then, it has expanded to encompass schematic capture and is used by people all over the world for both presentations and as an EDA (Electonic Design Automation) tool.
The Power of Programming LanguagesAs an extension to the idea of the ``power of programming languages,'' XCircuit now makes extensive use of the Python scripting language as a command-line interpreter. The use of Python scripts to interpret and control xcircuit internal data structures makes it possible for the end-user to modify the behavior of xcircuit to suit his or her own needs. Current work on adding features to xcircuit (as opposed to the usual bug-fixing grunt work) attemps to retain the current interface more or less unchanged, and define new capabilities through Python scripts. See the XCircuit Python Reference page for details of the embedded python interpreter interface to XCircuit.
How To Draw Schematic Diagrams
XCircuit real-world examplesThe most extensive use of xcircuit for a publication to date (that I know of) is Tony Kuphaldt's Lessons In Electric Circuits, a sweeping electronics textbook available for free download from ibiblio.org. This link is provided with permission from the author.
If you know of other publications which make use of xcircuit, please let me know so I can include them here.
Help!
Caveat End-UserI am aware that in many ways I am just duplicating the features of such programs as ``xfig'' and the Caltech "chipmunk" tools' ``until''. In some ways they do it better (for instance, xfig can merge in other graphics formats and until can write text in TeX fonts). My justification is that these programs still don't have a good sense of hierarchy and they don't output PostScript directly, so they often make large files compared to those from xcircuit. Also they don't have built-in and user-defined catalogs of items, which is a necessity for drawings with many instances of a handful of objects, such as you get with circuit diagrams, architectural drawing, etc. Nor can they handle multiple pages of output in one file, and so forth. Thus even though I do describe ``xcircuit'' as a general-purpose drawing tool, if you're really looking for a general-purpose drawing program, you might consider something like xfig, which is powerful and well-developed. However, with each new revision, xcircuit is getting more powerful and easier to use (yeah, that's what they all say, you're saying to yourself).
Xcircuit is streamlined for ease of use in generating circuit schematics. In addition, the schematic capture features allow exporting of the circuit schematics to netlist formats like ``spice,'' ``sim,'' and ``pcb.'' Spice output is fully hierarchical, surpassing the ability of most (if not all?) other schematic capture system by automatically generating subcircuits from the drawing, determining pin connections into a subcircuit from context, not just from designated pins. Subcircuits are not just symbols with their own associated schematics, but also any collection of devices and nets which have been compiled into a library object. The development of XCircuit is also moving in the right direction for PCB engineers. In particular, development parallels work on the open-source program pcb, in an attempt to make XCircuit a useful schematic-capture tool for PCB netlisting and netlist validation.
Notice:
XCircuit's official web address is
http://xcircuit.ece.jhu.eduIf you have arrived here via the original address http://bach.ece.jhu.edu/~tim/programs/xcircuit/, please update (or inform the appropriate webmaster to update) the link(s). |
|---|
Go to Tim's home page. . .

email: tim@bach.ece.jhu.edu