Xschem is a schematic capture program, it allows creation of hierarchical representation of circuits with a top down approach . By focusing on interfaces, hierarchy and instance properties a complex system can be described in terms of simpler building blocks. A VHDL or Verilog or Spice netlist can be generated from the drawn schematic, allowing the simulation of the circuit. Key feature of the program is its drawing engine written in C and using directly the Xlib drawing primitives; this gives very good speed performance, even on very big circuits. The user interface is built with the Tcl-Tk toolkit, tcl is also the extension language used. - hierarchical schematic drawings, no limits on size - any object in the schematic can have any sort of properties (generic in VHDL, parameters in Spice or Verilog) - new Spice/Verilog primitives can be created, and the netlist format can be defined by the user - back annotation for variety of device parameters in a hierarchical fashion when combined with ngspice simulator. - built-in waveform viewer in the schematic with back-annotation dynamically linken with the "b" cursor - ngspice integration and other simulator as well - TCP interface to BeSpice wave - tcl extension language allows the creation of scripts. any user command in the drawing window has an associated tcl comand - VHDL / Verilog / Spice netlist, ready for simulation - Behavioral VHDL / Verilog code can be embedded as one of the properties of the schematic block.