DLX Simulator
Between 1993 and 1996 I took an Applied Computing degree course at the University of East Anglia (UEA) in Norwich, Norfolk, England. In the final year I had to produce a project. I chose to simulate the DLX CPU as described in the first edition of the book "Computer Architecture: A Quantitative Approach", by John L Hennessy and David A Patterson as this had been used extensively in part of the second year of the course. I have now released the project as free (GNU GPL) software so that anyone else can make use of or expand upon the system as required.
Note that I do not claim that this simulator is any better than any others that are now out there. However, the source code is available and you can tinker with it in any way you want (if you make vast improvements then please email me a copy and the reasons for the changes).
The software is supplied as source code only but with a Makefile that will allow it to be compiled using the GCC compiler under Unix or Linux. The source is written in ANSI standard C and has previously been compiled under Unix, Linux, PC (Turbo C++ - with a couple of restrictions) and even the old Amiga (SAS C)!
The H&P book has been released in 2nd, 3rd and even 4th editions now and many of the references in the manual and the course code will probably no longer apply. Ah well, that's progress :-)
Click here to download a zip (135K) containing the source code plus several DLX examples. Please note that I am unable to provide any further help or information with or on this simulator - several times over the past few years I have been asked by people to help them build a version of the simulator in other languages but, unfortunately, I no longer have the time to do such things.
Note: anyone wishing to include this software with any other bundle is totally free to do so provided they adhere to the rules of the GNU GPL.... and that's exactly what Gentoo Linux did several years ago.
Please drop me an email when you download the simulator to tell me why you are interested in it (email address on the contact page).