Logisim 2.0

Logisim 2.0 is a complete overhaul of Logisim, making it dramatically more powerful than before. Among the more significant new features are ``wire bundles,'' permitting a single wire to carry several bits in parallel, and a much-enhanced interface allowing support for including libraries of components, including several built into Logisim as well as libraries defined using Logisim. As a rough measure of the extent of the changes, version 2.0.0 includes five times as many lines as version 1.09c (38,612 lines versus 7,736)!

After a long string of beta releases, version 2.0 is now available in production form! The Download Logisim page allows you to download the latest Logisim version. And please send me any comments, suggestions, or bug reports! I'll be very interested.

Version 2.0 Features

Engine

  • Include wires that can carry multi-bit values. (This feature is certainly the biggest.)

  • Include ``splitters'' that can select out some of the bits of a multi-bit value.

  • Do a somewhat more realistic approximation of gate delays.

Combinational analysis

  • Compute the Boolean expressions corresponding to a combinational circuit to corresponding Boolean expressions.

  • View a circuit's truth table and compute the corresponding minimized sum-of-products expressions.

  • Generate a circuit from a set of Boolean expressions.

Built-in components

  • Access XOR, NOR, NAND, and XNOR gates.

  • Allow multi-bit wires to pass through components (allowing bitwise AND, for example).

  • Access multiplexers, demultiplexers, decoders.

  • Access adders, subtractors, comparators, multipliers, dividers.

Subcircuits

  • Navigate into (and out of) the current state of subcircuits.

Libraries

  • Include libraries of circuits in Logisim, allowing you to place a library of Logisim-built components into a file and to share that library across circuits in different files.

  • Use libraries of circuits designed in Java. This involves the introduction of a Java API for designing custom components.

User interface

  • An undo feature, including the ability to undo multiple actions.

  • Configure which tools are invoked by the mouse buttons.

  • See a proper rectangle when using the selection tool to select a rectangle.

  • Magnify the canvas using a ``zoom factor.'' This is intended mostly for when the program is used with a classroom projector.

  • Give user the option to export to a GIF file, mostly so that circuits can easily be put on Web pages or brought up within PowerPoint presentations.

Internationalization

  • Choose between shaped and rectangular gates (sometimes called the American and European styles).

  • Customize the language (as it appears in menu items and dialog boxes, for example). (This is not visible within Logisim, and it will not be unless somebody volunteers to translate Logisim to another language. But internally, Logisim is translation-ready.)

Customization

  • Configure which tools appear in the toolbar.

  • Save customization settings in a file, which can be chosen from the command line. I'm particularly interested in doing this so that teachers can configure the settings for the benefit of a class of students.