Sunday, August 28, 2011

Logisim: An Essential for Every ICS 331 Student

An Assessment of Open Source Software against the Three Prime Directives for Open Source Software Engineering

Last semester, I took ICS 331 with Dr. Curtis Ikehara, which is a course entitled "Logic Design & Microprocessors," and about each week, he would assign us a lab assignment using our breadboards.  In other words, understanding and building circuits was a huge portion of the class, and if only I had begun to think sooner about delving into the world of open source software, then I would have saved myself from unnecessary eraser markings and trouble.

Overview

Logisim is exactly as its name implies: a simulation of logic - of digital logic circuits, to be more specific.  Its main function is to serve as a user-friendly interface for designing, building, and simulating digital logic circuits.  More information can be found at its SourceForge.net website and Project Home website.  In reference to Dr. Philip Johnson's Three Prime Directives, my assessment of Logisim is as follows.

Prime Directive #1: The system successfully accomplishes a useful task.

In less than five minutes, I was able to discover Logisim's most basic function without reading any tutorials by replicating a XOR circuit consisting entirely of NAND gates, as shown in the image below.  After accessing the "Help" menu, I discovered the feature of building circuits automatically using input from a truth table, which is a useful function for building especially complex circuits.  This program also features hierarchical circuit design, or the ability to use saved/already-existing circuits as portions of other circuits.  In short, this system, without a doubt, successfully accomplishes a useful task (and more).


Figure 1: XOR circuit consisting entirely of NAND gates

Figure 2: The "Help" Documentation

Prime Directive #2: An external user can successfully install and use the system.

It took about a minute or so to download, install, and run the program (the latter accomplished by a simple double-click on the OR gate icon labeled "Logisim").  For download and installation support, straightforward and concise "Getting Logisim" directions are found on the Project Home website, upon clicking the "Download" link on the left panel.

As mentioned above in the first prime directive, the interface is simple enough in design that the average user can construct a circuit in under five minutes.  Click once (but do not hold down) on a logic component icon, such as a gate, move the mouse pointer over to the dotted area, position the icon, and place it down by clicking once more.  Hovering the mouse pointer over the blue markings behind a gate, for example, creates a momentary green circle around the specific marking.  This circle indicates a point from which the user can click, hold, and drag a solid line from one icon to another.  The entire contents of the "Help" documentaion for Logisim can be found offline on the "Help" toolbar within the program or online at the developer's website.  In short, this system is extremely easy to successfully install and use.

Prime Directive #3: An external developer can successfully understand and enhance the system.

Bugs, Feature Requests, and Support Requests could be reported/requested using the "Tracker" menu on Logisim's SourceForge.net toolbar.  The News information under the "Develop" menu includes version release notes; the 2.7.1 entry here introduces a mailing list for development updates, which anyone can subscribe to at this link.  There is also a separate Logisim Developers' mailing list and Google Group found on the "Support" menu.

Features, bug fixes, and design changes are highlighted on Logisim's Project Home website under "Release History," and Carl Burch, the original developer, also provides his e-mail address in the "Comments" section in case the SourceForge.net resources do not serve a user's needs.

At Logisim's "Develop" page on SourceForge.net, clicking the "browse code" link under "Repositories" displays a page that shows the file/folder name, the number of revisions made to that file/folder, the "Age" (stating the elapsed time since the last revision), the "Author" (who made the last revision), and the last log comment/entry.  One way to access the source files is by clicking on the "Download GNU tarball" link.  Another way to access them is by decompressing the jar file included with the initial download of the Logisim software.

In regards to the Java source code, I feel that there is a significant lack of comments in each of the ten sample files I have opened.  Most of the comments are something along the lines of "access methods" or short three- to five-word one-liners.  Only one of the files I opened actually had a few comments within a method itself.  This style of commenting is in no way beneficial on my part or, as I can imagine, on anyone else's.  Hence, despite the fact that some pretty solid support and documentation exists for the Logisim open source software, it does not meet the last prime directive because its source files are not well-outlined and well-commented.  Nevertheless, I still recommend that every ICS 331 student take advantage of this software as soon as humanly possible.

1 comment:

  1. Thank you for your insight on Logisim, I am enrolled in ICS 331 this semester and I will definitely be utilising logisim !!!

    ReplyDelete