DigSim Project V0.06
DigSim should provide a platformindependent, flexible tool for hardware simulation. It uses the java latebinding and reflection features to allow the user to integrate his own specialized components into the DigSim environment.
Warning: DigSim is in a very early development state, so if you are looking for a stable product, digsim won't be the right choice for you!

DigSim uses three states, hi, low and unknown and also allows simulation of tristate busses, weak pullups etc. Each simulator component is encapsulated in one java class file. In future versions it will be possible to import classes from file, jar or web during runtime.
Each class contains it internal logic but also the GUI part to display it in the editor. The component tells the editor all about its connections, it internal parameters (timing or workmode) and does also the serialization of its internal state if the editor wants to save the diagram. (Read more)
The all files holding circuits, configuration data are plaintext or XML-files to make debuging simple and the filedata transparent to developers of other components.

The digsim application provides following built-in components:
  • Button and led to set/monitor lines
  • Debug component that prints out debug messages if lines change
  • Clock
  • Not gate
  • Gal 16V8 (from Lattice Semi in simple mode)
Detailed list
If you want to develop own components, click here

If you have java web start you may test the application online, but save won't work: [FIXME MISSING LINK TO JNLP],

To start DigSim locally do:
  • Load the zip here
  • Open dosbox/shell
  • Make sure that java1.4 or later is available (java -version)
  • Start the program: digsim.sh or digsim.bat

The application needs access to its configfiles and to a file to store the userspecific settings. If the application fails to open them correctly add -Dsysrcfilename=pathname_to_digsim_config and -Duserrcfilename=pathname_to_userrcfile in the bat or sh file.
It is neccessary for the application that the sysrcfile is available and readable because it contains the list of defined gates. If you set the userrcfilename to none, the editor won't save the user specific settings after exit.

Here is a short list with demo circuits. You can either download the file and use it with your local DigSim installation or if you have JavaWebStart installed, you can load them without installing anything. (You can load JavaWebStart from www.javasoft.com.)

Inverter Demo file, [FIXME MISSING LINK TO JNLP] Launch
Simple demo showing just an inverter component. Don't forget to select Simulation -> Start from the menubar to start simulator. Try out the right mousebutton above the inverter to see configuration parameters.

Gal16V8 Demo file, [FIXME MISSING LINK TO JNLP]Launch
This demo shows a gal16v8 controlling registers. At the left side there are 10 address lines and a active-low readenable. The component produces one signal to control a 74LS244 busdriver and select one of 4 74LS373 latch to read it (active low OE). The base-address is 0x2FC (hardwired), so a read 0x2FC activates latch 0, 0x2FF latch 3.
Use the right mousebutton to see the fusemap. I've compiled the fusemap by hand using a datasheet from Lattice. It would be interesting if a program would generate the same fusemap, but I have no means to try it out.

You may use, distribute or modify DigSim only for noncommercial or educational purposes.


Before reporting a bug take a look at the bug-list.

To report a bug, send a mail to me (%) halfdog.net including following information:
  • Error:
  • Operating System:
  • Java version:
  • Description of bug:
  • Logfiles: DigSim writes a lot of debug output, it will get into javaws.log (if launched via jws and jws log enabled). If started from dosbox or shell please pipe the output into a file and attatch it to your error report.

Contact: e-mail: me (%) halfdog.net
Last updated: 22.12.2002