Web lists-archives.com

Bug#926201: ITP: qtmips -- MIPS CPU simulator for education purposes with pipeline and cache visualization.




Package: wnpp
Severity: wishlist
Owner: Pavel Pisa <pisa@xxxxxxxxxxxxxxxx>

* Package name    : qtmips
  Version         : 0.6.8
  Upstream Author : Pavel Pisa <pisa@xxxxxxxxxxxxxxxx>
* URL             : https://github.com/cvut/QtMips/
* License         : GPL
  Programming Lang: C++
  Description     : MIPS CPU simulator for education purposes with pipeline and cache visualization.

The project has started as diploma theses work of Karel Koci.
The complete text of the thesis Graphical CPU Simulator
with Cache Visualization is available from the online
archive of the Czech Technical University in Prague.

  https://dspace.cvut.cz/bitstream/handle/10467/76764/F3-DP-2018-Koci-Karel-diploma.pdf

The document provides analysis of available alternative simulators,
overview of the project architecture and basic usage information.

The used MIPS CPU building block diagram, and a pipeline model matches
lecture slides prepared by Michal Stepanovsky for the subject Computer
Architectures. The course is based on the book Computer Organization
and Design, The HW/SW Interface written by professors Paterson
and Henessy.

Reasons to package

 - We have not found appropriate tool for teaching of CPU pipeline
   and cache basis. There are expensive professional tools which work
   on real CPUs RTL level and many tools to provide approximation
   computations of the cache performance etc. We have used MipsIt
   emulator
     https://www.eit.lth.se/fileadmin/eit/courses/eit090/MipsIt/MipsITEnvRef.html
   in the past but it is Windows only and dated. SPIM
   is widely used but it provides no pipeline and extension
   is almost impossible because it interprets instructions
   directly. MARS is even better with IDE ideal for education
   but again its internals are centered about software
   instructions emulation. QtMips decodes instructions
   to set of signals which are propagated through pipeline
   stages similar way as on real hardware. Result is quite
   low speed with huge graphics overhead but with internal
   state visualization. On the other hand it is much faster
   then complete chip with RTL simulation.

 - The QtMips simulator is used in the course for 350 students
   now and even other faculty expressed interest to use it.
   It can be quite useful for many universities and it
   matches well the classic and widely used book for the subject.

 - I have led the diploma thesis and I have done substantial
   enhancements in the past months to make emulator fit needs
   of our seminaries. I have intent to mantain the package
   as time allows. The backup person is Karel Koci - initial
   project author.

 - Project is already built in Ubuntu launchapd
     https://launchpad.net/qtmips
   and Suse Open Build Service
     https://build.opensuse.org/package/show/home:ppisa/qtmips