Quick Pointers for Mips-It Simulators
How to Start
- Unzip the MipsIt.tgz
- Following is the directory structure and important files:
- mipspipe2000.exe: Pipeline simulator
- S-script : Simple pipeline design
- Xl-script : Xl pipeline design ( Design with forwarding and hazards detection )
- bin/Mips.exe: Mips Studio2000, ISE for producing code that will run on pipeline simulator
- MipsIt_overview.pdf : A section tells about processor writing language
- MipsIt_reference.pdf : Mips Studio's help is available in this document
MipsIt Studio 2000
When you execute Mips.exe, it will give a warning port not found, ignore that warning. Then Open a new project,
It gives you the option of c, asm or mixed. Choose assemble type project.
Then you can start writing code in a new file. While writing assemble following points may be worth to note down
- Look at the convention of registers name, you have to use $1, $2 etc rather than $a1, $v1 etc.
- .set noat and .set noreorder will be useful in header, otherwise either assembler will do a smart job which you
may not understand or it may give error or warnings.
- Assembler can assemble any mips program but simulator is simulating a limited instruction set of the processor, so
you are also suggested to limit yourself on this instructions. Jump, multiplication, division, floating point instructions
are not implemented in the sample design. As it does not warn for errors so you are supposed to be careful while writing.
Instructions which are implemented can be seen in control files of the processor design (S-script/component/control.dit)
or (Xl-script/component/control.dit).
- Build will produce the object code required by pipeline simulator
Pipeline Simulator
- First load the pipeline ( from S-script or Xl-script)
- The open the object code created by MipsIt Studio.
- Run in step mode to see what is happening after each cycle
Processor Scripts
As mentioned in documentation provided with software, processor pipeline is designed in a Java like
language ( it is said so probably because of object oriented nature of the language).
For modifying the design, you may need to understand the existing design. Existing design is quite
similar to processor model taught in the class, understanding connection will not be so difficult.
To help in designing following may be helpful
- Changes in design will be reflected in numbers shown while executions (using probes) and will not appear in the
picture. As picture is just loaded and all the BUS values are overlayed on the bmp picture
- For debugging your design, you can keep more probes.
- Change the picture finally which reflect component (data path or control path added by you)
- While designing you may notice some component classes are not there, these classes are there in
the simulator and not open sourced. We can not change these classes