Create PostScript And Netlist Using XCircuit

Sneha Ambastha

Fig. 1: Symbol example
Fig. 1: Symbol example

With so many design tools and features, it is really difficult to identify which design tool to select without knowing about its features, working ability and advantages. Above all, the most important thing is to find out how easy the tool will be to use.

Many times, you come across a situation where the tool is so complicated that learning it takes more than three months, while you have only four months to complete your design. Here is an attempt from EFY to help you understand XCircuit to an extent that you will be able to make the right choice.

Initially designed as a drawing program for undergraduate electrical engineers by Tim Edwards, XCircuit is now used worldwide not only for presentations but as an electronics design and automation (EDA) tool, too. Although the main purpose of XCircuit is to help create electric circuit models, it also allows you to create other two-dimensional schematics, like music typography, NAND gate, etc.

It makes the task of creating complex circuits easy with the use of some basic design elements, like circles, lines and rectangles. These design elements can be rotated, flipped and joined to create desired circuit schematics that are used by the schematic capture to produce circuit netlists.

Fig. 2: Initial circuit window when starting XCircuit
Fig. 2: Initial circuit window when starting XCircuit

Unlike other design tools, XCircuit considers all circuits to be hierarchical, and thus provides hierarchical outputs. Edward says, “I use XCircuit probably more than any other tool, including for writing-out piano and violin scores and for writing Christmas cards.”

Graphical programming advantage
Usually, what do you do? Create a circuit design using a design tool, write programming codes and then use the suitable format of codes in the circuit to check its working. In this process, you are required to learn a programming language (assembly-level or hardware-level) to start with, which is quiet time-consuming.


But, at the same time, if we have graphical design tools with which we do not have to spend time on coding, design graphics and the code for that will be auto-generated, like in case of MATLAB, it will be advantageous.

Designers get this opportunity with XCircuit that uses a PostScript file format for both input and output. PostScript is a programming language that gives publishable quality circuit diagrams as outputs. Unlike most graphical programs that provide output in a custom format (for example, .fig files for xfig) that can be translated to other graphical formats, PostScript is in ASCII format and need not be translated as it is widely-accepted.

This platform-independent programming format allows one to hand-edit the output and view its source in detail. Being an interpreted language, PostScript helps XCircuit to create a set of definitions that can help it overcome a set of issues related to circuit drawing. The expansion of the set makes these compatible with earlier versions.

Although PostScript is a printer language, it saves files in the same format that is used to print these. Thus, printing output designs with XCircuit is not that tough.

From 2D architectural designs to PCBs
As discussed earlier, XCircuit can be used as a generic program to draw 2D designs and circuit architecture. You can design the architectural drawing, music typography, printed circuit boards (PCBs) and almost anything that requires the use of repeated standard set of graphical objects.

Fig. 3: Front-end schematic

Create your own library. Although the main aim of XCircuit is to create circuit diagrams, it can also be used to create symbols that can be saved in a library and used later during circuit design. Tim Edwards, who wrote XCircuit, says, “I created an example symbol in a library in XCircuit. I can now use that symbol as part of any drawing in XCircuit if I wanted to. I think XCircuit would be a good choice for arbitrary diagram drawing needs.”

Easy LaTeX embedding. PostScript (.ps) format of files saved in XCircuit allows you to embed the circuit in LaTeX document easily. As LaTeX works on TeXnicCenter, you only need to open the document and select Insert Picture to use the saved file.

Recover files on crash. XCircuit has been created in a way that a copy of its current work is saved in the temporary (/tmp) directory, which is removed when you exit the program. However, if the program shuts down unexpectedly, or if the system crashes, the current work remains in the/tmp directory.

Now, you open XCircuit again. It will prompt you to recover the file in the same way as Microsoft Office or Open Office. However, this feature has a small shortcoming. XCircuit creates a backup of files periodically, once in every ten minutes. Thus, changes made in the last few minutes of the crash do not get updated.

Default single-click. Key and button bindings in XCircuit use the name Hold to indicate that these can be operated by pressing a key or button. It does not use the double-clicking option by default. However, the tool command language tcl/tk version of XCircuit makes use of tk Bind command to allow multiple clicks (double, triple and quadruple). These options are not available with default button bindings.

Quick library messages. XCircuit has another message window at the bottom of its main screen to provide quick information regarding the library that has just loaded (for example, /usr/local/lib/XCircuit-3.2/analoglib2.lps). In the non-tcl version of XCircuit, this message disappears after ten seconds. The message window shows various other messages like results, errors and warnings.

Supports macros. XCircuit has been optimised for quick operations. It also supports multiple keyboard shortcuts or macros to allow easy shape-insertion and to edit circuit model.

Element arrangements. XCircuit also has the option to position objects designed either over or under the previous object, so as to provide actual design experience. More importantly, you can do this by simply pressing exchange key X.

Snap-to-grid. Another important feature of XCircuit is the appearance of grid on the design window to properly line-up critical elements with each other. Although XCircuit does not have an option to turn-off the grid without pressing snap function key S, it can reduce or increase the size of the grid using macros + and -.

Multi-colour design. Every page in XCircuit has the default colour black, which is inherited by elements used in that page with colour value Inherit. Again, if you paint any element on that page with a different colour, all components in that element with colour value Inherit will adopt that colour. The idea is to be able to have multi-coloured circuit designs that will allow us to identify different components easily.

The comparision

C3B_box3Comparison is good for identifying the best option but, when it comes to XCircuit, comparing is a little tough. While other design tools are specific to one particular design, XCircuit is open to all. This means it is not limited to electrical circuit designs or other architectural designs. It can be used for both, till the time the design is either one-dimensional or two-dimensional. Of course, it cannot be used for designing 3D architectures as done by Maya or AutoCAD.

6FF_box4Another feature with respect to which XCircuit can be compared to other tools is its ability to provide publishable circuits in the format that is easily accepted by printers. If you consider ExpressPCB to design a circuit for a PCB, you will have to convert the file you saved into a format acceptable by the printer. Hence, another tool will be required for the same.

XCircuit is based on PostScript program that toggles between embedded (EPS) diagrams and full-page diagrams.EPS format of the files retain the resolution of schematics, no matter how much you zoom, whereas full-page diagrams are actually multiple-page files that need to be adjusted accordingly for printouts. Encapsulated PostScript comes into action when working with embedded files. It incorporates the diagram into a single-page document. However, in case of multiple pages, the diagram is centred on the output page.

What others say about XCircuit
It is always a good idea to find out about the experiences of others before getting a new product, and the same applies to design software. Every designer wants to know how many people have used the software he or she plans to use, and their experiences.

A user of XCircuit at compared it to free design software like ExpressPCB and LTSpice. He said that these free software do not provide any satisfactory schematics that can be used in a report. He explained that XCircuit has an ability to save files as PostScript and embed them into LaTeX document for reporting purposes. He seems to have liked XCircuit so much that he considers it to be the best software freely-available so far.

Fig. 4: Help menu
Fig. 5: XCircuit and the Tcl-Tck interpreter

Other users at find XCircuit difficult to install on a new operating system since they are unaware of supporting files.

If you are looking for a program to create schematics and other designs, XCircuit is a free and open source alternative with many in-built features. The tool is flexible enough to be used for various other architectures even when you do not want to design electric circuits.

Whether it is PostScript output or Spice netlist, XCircuit allows designers to come up with hierarchical circuit models. Based on UNIX/X11 program, XCircuit has plenty of features and advantages one should know about.

Download latest version of the software: click here

The author is a technical journalist at EFY


Please enter your comment!
Please enter your name here