Getting started

Above is the image of the animator. It is a simplistic
representation of the MIPS architecture. This animator
should loadup automatically when you visit this webpage.
Depending on the speed of your computer and current network
traffic, the animator may take 1-2 minutes to load.
Once the animator is loaded, you may learn the roles of
each object by clicking on it with the left mouse button.
The two largest objects on in the animator are the ALU and
NextPc. Below is an image of the ALU.

To reveal its subcomponents right click on either objects
with the right mouse button. To replace the cover, right
click you mouse in the shaded area. See image below.

You may begin animation by clicking the start button at the
bottom left corner. The instruction window should appear.
It looks like this

There are two modes of animation:
Step through and
Automatic animation
Before you can begin animation, you must specify the instruction
you wish to animate inside the text box. The instruction must be
from the list of supported instructions.
The format is exactly the same as that of your class notes. For
example: add $t0,$sp,$ra
After you enter a valid instruction, you may begin animation
by clicking on either AutoRun or
Run.
To return to the animator, select MENU from the list on
your left followed by TO ANIMATOR.
Animation legend

Red circuits represents the instruction's main data path.
The presence of a green moving dot indicates that the circuit
is part of the current step.

Red circuits represent the instruction's main data path.
The absence of a green moving dot indicates that the circuit
belongs to a prior step. However, it is still active and is
still transferring data.

Brown circuits represent unintended data flow. Brown circuits
carries the same data as red circuits. The difference is that
brown circuits are ignored.

Blue circuits represent control signals.
Supported opcodes
- add
- addi
- and
- andi
- beq
- bne
- div
- j
- jal
- jr
- lw
- mfhi
- mflo
- mult
- nor
- or
- ori
- slt
- slti
- sll
- sllv
- sra
- srav
- srl
- srlv
- sub
- sw
- xor
- xori
- fetch (Not an instruction)
- update (Update PC, not an instruction)
Stepping through
This mode of animation allows you to progress through
the animation at your own pace. To begin stepping through
an instruction, you must click on button Run(step).
The animator then checks for three things:
- if opcode is correct
- if opcode arguments are correct
- if opcode is supported by this animator
If all three checks are passed, the animation will begin.
At this point you have three options. You can either continue
stepping through at your own pace by clicking on nextStep
or set the animator on AutoRun by clicking on the resume button.
Alternatively, you may end the animation by clicking on reset.
Automatic animation and Speed control
This mode of animation will cycle through each step at
a set interval. The default delay is two seconds. This
setting may be changed by adjusting the speed control.
The maximum and minimum speed setting is 3/10 of a second
and 10 seconds respectively.
You may pause animation at any time by clicking on stop.
At this point you have three options. You can either continue
stepping through at your own pace by clicking on nextStep
or set the animator on AutoRun by clicking on the resume button.
Alternatively, you may end the animation by clicking on reset.
Platform support
This animator will only run correctly on unix or linux running
XWindows. The minimum system requirement is 486 with 8mb ram
Netscape 4.04 which supports jdk1.1.2 should be used
to run the animator.
NOTE: The animator may not work properly unless the above
constaints are met.
Why doesn't it...
NOTE: This listing of possible problems and solutions are for unix
and linux only.
1. Sometimes my windows won't close. Why?
Interaction between various windows are implemented with threads
that poll for input every 1/10 of a second. At times, processing
delay and rapid mouse clicks may cause the input to be read twice.
Sometimes the animator will continue to work properly but sometimes
it will crash. if a crash occurs, go to your console and type ps.
A list of currently active processes will appear. Find the one that
corresponds to Netscape and jot down its process id. At the console
type kill -9 process id.
2. The animator doesn't seem to work properly on my computer.
Sometimes objects don't appear.
Does your system conform with requirements specified in
Platform support?
3. Why aren't some instructions supported?
The animator you are currently using was part of a Computer Science
Honours project that must be completed within an academic year.
The purpose was to help first year students in csc1030 enhance their
understanding of MIPS. Since most students will only use a subset
of the actual instructions set, it was decided that only relevant
instructions would be support.
4. How do I submit my questions?
Email it to nvp@cs.monash.edu.au