Quick Clicks


6004.tgz
6004.zip
Compressed tar archive of all 6.004 files
Zip archive of all 6.004 files
jsim.jar
nominal.jsim
8clocks.jsim
stdcell.jsim
latest release of JSim (2.1.2) and include files
bsim.jar
beta.uasm
latest release of BSim (1.2.2) and include files
tmsim.jar
latest release of TMSim (1.2.2)
lab1checkoff.jsim checkoff file for Lab #1
lab2checkoff.jsim checkoff file for Lab #2
lab3checkoff_6.jsim
lab3checkoff_10.jsim
lab3_test_adder.jsim
lab3_test_bool.jsim
lab3_test_cmp.jsim
lab3_test_mult.jsim
lab3_test_shift.jsim
checkoff files for Lab #3
lab4header header file for Lab #4
lab5checkoff.uasm
checkoff file for Lab #5
lab6basicblock.uasm
lab6basicblock.jsim
lab6pc.jsim
lab6regfile.jsim
lab6ctl.jsim
lab6.uasm
lab6checkoff.jsim
checkoff files for Lab #6
lab7macros.uasm
lab7checkoff.uasm
swapregs.uasm
checkoff files for Lab #7
lab8.uasm file for Lab #8
projcheckoff.uasm
projcheckoff.bin
projcheckoff.jsim
file for Design Project
jsim.el Major EMACS mode for editing JSim netlists
ant.jar Ant demo from Lecture 6 (just for fun!)

Running JSim

First, you'll need to install a Java system. The Sun Java Runtime Environment, Standard Edition (J2SE), can be downloaded from Sun's official site. On Linux, you'll want to change your PATH environment variable so that the "java" command is on your search path. On Windows and OS X, double-clicking any of the 6.004 jar files will run the program (assuming you've installed the Sun Java environment).

Once you've installed a Java environment and downloaded the 6.004 files (see "Quick Clicks" above), you can run JSim using the following command:

    java -jar jsim.jar -Xms8m -Xmx32m -reporterrors file...

You may have to specify complete pathnames for "java" and "jsim.jar" depending on your current search path and working directory. Each of the arguments is explained below.

    -jar jsim.jar adds the java archive jsim.jar to the list of files Java examines when trying to find classes. jsim.jar contains the classes used by jsim for displaying/editing netlists, running simulations and browsing the results.

    If you get an error of the form "Exception in thread "main" java.lang.NoClassDefFoundError: jsim/JSim", the Java runtime didn't find the jsim.jar file -- try giving its full pathname, e.g., C:\6.004\jsim.jar or whatever is appropriate for your installation.

    -Xms8m -Xmx32m sets the minimum heap size to 8MB and the maximum heap size to 32MB. Starting JSim with a generous heap allocation avoids a lot of garbage collection overhead the first time your circuit is processed. If you run out of memory, try specifying the -no-local-names option when running JSim. This will greatly reduce the size of the node name hashtable JSim constructs when processing the netlist. The downside of using this option is that nodes can only be referred to by using their name in the (sub)circuit where they were first defined.

    -reporterrors asks JSim to provide a backtrace whenever it encounters an internal error. In the unlikely event an error occurs, it would be very helpful if you can email this backtrace to cjt@lcs.mit.edu.

    file... are optional arguments specifying one or more JSim netlist files.

Editing netlists

The netlist editor built into JSim is based on the JTextArea class in Swing. Many people find the editing facilities provided by this class to be underwhelming and prefer to use an external editor. jsim.el defines a new major mode for EMACS useful for editing JSim netlists. You can invoke the mode automatically when reading in a ".jsim" file by adding the following to your .emacs file:

;;; jsim support, assumes jsim.el lives in your home directory
(autoload 'jsim-mode "~/jsim" nil t)
(setq auto-mode-alist (cons '("\.jsim$" . jsim-mode) auto-mode-alist))
(add-hook 'jsim-mode-hook 'turn-on-font-lock)