UP

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.