XSCHEM PRESENTATION

PREV UP NEXT

## XSCHEM IS

###

- A Free OSS small project, follows the UNIX KISS philosophy. ~65K SLOC.
- A Digital / Analog / Mixed mode circuit schematic editor.
- A hierarchical design tool: wrap (parametric) sub-blocks into symbols and use them multiple times.
- Has syntax for vector nets (bus notation) like DATA[7:0], WORD[7:0,15:8] as well as vector instance placements like Xinv[7:0], to handle repetitive components.
- Fast: Performance is important. Editing a schematic with 100K instances MUST not be a problem. Netlist extraction must be instant (<500ms) on small to medium designs.
- Xschem knows the connectivity. Netlist build is embedded in the core.
- Verilog, VHDL, Spice, tEDAx netlist backends. Adding another backend is not difficult.
- Intensive and time consuming computations all done in pure C.
- Tcl-tk used for GUI and scripting language. Direct Xlib drawing.

## XSCHEM IS NOT

###

- Huge. Depends on a very limited number of libraries. 63k SLOC
- Using binary formats for storing data. Everything is ASCII and in documented format.
- A Gtk or Qt project. Xschem will not bitrot over time due to changed library APIs.
- A layout tool, although the graphical engine was designed to support layout as well.
- A circuit simulator.
- Easy to use: there is a learning curve.
- A memory hog: XSCHEM with a medium design loaded requires 54M virtual memory, 24M resident set. A full chip design can be handled with a 1GB RAM system and low end processor.
- A C++, C99, C11 project: all code is ANSI-C C89, works on old Solaris, Irix machines, compiles on 32bit, 64 bit and on armhf.