Toves: A graphical circuit simulation tool

Latest release: Toves 0.0.2 (17 June 2013)

Why Toves? I've developed Logisim for over twelve years, but over time I've found some inherent limitations that are deeply embedded in the system but prevent it from maturing to "the next level." Rather than try to find some route to overcoming these several limitations within the current framework, I wanted to build on a replacement system from scratch. Hence this project.

Logisim represents a lot of accumulated work, so naturally replacing it will take a lot of work. Though I've put significant work into what Toves is today, it's not very far. Right now, all Toves can do is allow you to build and simulate a simple circuit out of 2-input AND, OR, and NOT gates. No subcircuits, no multibit wires, not even copy-and-paste or opening a file.

So what can you do with Toves today?

  • You can try it out, though let me warn you that it's not particularly useful. (If you want a useful graphical tool for circuit design today, of course I recommend Logisim.)

  • You can follow my blog “Of Toves and Pleasing Hacks” and participate in the comments section to help with ideas for designing Toves.

Planned features

Toves retains many of the major features of Logisim.

  • It is free! (Toves is open-source, released under the GNU Public License).)
  • It runs on most desktop computers, whether they run Linux, MacOS X, or Windows. (It does this by being built using C#/Mono.) Being cross-platform is important for classes where each student may bring a distinct computer systems.
  • The drawing interface is based on an intuitive toolbar. Color-coded wires aid in simulating and debugging a circuit.
  • The wiring tool draws horizontal and vertical wires, automatically connecting to components and to other wires. It's very easy to draw circuits!

And a few features that I hope eventually will be in Toves, but which aren't in Logisim:

  • Diagonal wires [This is in Toves today: Horizontal/vertical is the default, but alt-drag creates a diagonal wire.]
  • Canvas extends infinitely in all directions (rather than having a fixed upper left corner) [This is in Toves today.]
  • Z-ordering of components preserved
  • Drawing arbitrary shapes like rectangles or lines in a layout
  • Modules of varying types - usually a layout (the only Logisim option), but a module might also be a memory, a truth table, or a state machine - and hopefully one day source code (perhaps written in Verilog)
  • No delay in sending signals into a subcircuit (Logisim introduced a one-step delay when sending a signal into or out of a subcircuit) [This is in Toves today.]
  • Bidirectional connections into subcircuits [This is in Toves today.]
  • Eight-valued logic, allowing weakly-driven 1's and 0's - particularly useful for open-collector circuits
  • An oscilloscope for viewing how signals change over time
  • Components that must be "closed" once the simulation becomes inactive - particularly file and network I/O
  • Components that "time out" after a period, like a monoflop.
  • Tablet support under iOS and Android.