Other verification options
There are a some additional options related to command-line execution.
The -load command-line parameter
A more complex circuit might include a RAM component that needs to be loaded with a program in order for the circuit to have anything to do. You can specify a memory image file at the command line, which will be loaded into any RAM component in the circuit before simulation begins. (This does not work when loading the GUI - it is only for command-line execution.)
java -jar logisim-filename.jar cpu.circ -tty table -load mem-image.txt
The order of the parameters is not important (except the table parameter must be immediately after -tty, and the memory image's filename must be immediately after -load). The memory image file should be in Logisim's memory image format.
Logisim searches for RAM recursively, so this will still work if RAM is nested within a subcircuit. There is no way, though, to distinguish different RAM components: Logisim will attempt to load the same file into every RAM that it can find.
Options for the -tty parameter
In our examples thus far, we've always used
to indicate that a table of output values should be displayed. You can
customize the behavior in other ways by listing one or more options,
separated by commas. For instance, you might write
and the program will perform all three behaviors listed below.
(The order in which they are listed does not matter.)
After the simulation ends, a one-line message is displayed explaining why the simulation ended. Error conditions - such as a detected oscillation - are displayed in any case.
If you use speed in conjunction with
-tty, then after completing the simulation Logisim will display a summary of how quickly the circuit was simulated, such as:
714 Hz (509 ticks in 712 milliseconds)
Note that displaying information during the simulation makes the simulation go much slower. As just one comparison, the same circuit and image ran at 714 Hz above with just the speed option but 490 Hz with the table option as well.
Shows a tab-delimited table containing statistics about components used by the top-level
maincircuit in the project. The table includes four columns:
- Unique: The number of times that component appears in the circuit's hierarchy, where each subcircuit within the hierarchy is counted only once.
- Recursive: The number of times that component appears in the circuit's hierarchy, where we count each subcircuit as many times as it appears in the hierarchy.
- Component: The name of the component.
- Library: The name of the library from which the component came.
The distinction between
Recursiveis explained further under
black boxes: The contents of the library's circuits are not included in the unique and recursive counts.
(This feature can be useful for instructors who assign students to build projects using a subset of Logisim's libraries.)
(as already discussed)
Any TTY components send their output to the display (standard output), and any information typed at the keyboard is sent to all Keyboard components in the circuit. These components are included even if they are nested deeply in the subcircuit hierarchy.
Next: Testing multiple files.