A simple visual simulator developed fully in Python and based on the Tomasulo and Scorebaording algorithms as described in the book Computer Architecture: A Quantitative Approach, and further explained here: Tomasulo algorithm, and here: Scoreboarding.
It only supports 6 instructions, but this is enough to showcase the scheduling of instructions in both algorithms.
Prebuilt binaries are available for Windows via the Releases page.
To run directly from the source code, if you have all the required packages (that is PyQt5), just use the following in your command line, or run the file main.py in your IDE of choice:
python main.py
The simulator has been tested on Windows 10, Linux and Mac with Python 3.6
Below is an animated image of the simulator's window showing the editor, the instruction queue, different reservation stations, and the instruction timing table. The number of latency cycles of different units is adjustable. There is also the possibilty of changing the number of resevation stations. As mentioned above, the scheduling algorithm can be changed by a dropdown menu.
There are 3 buttons allwoing to load the assembly program (or reset the system), step through the code, and execute the code fully, respectively.