Skip to content

Assignments 2015

Pavel Kryukov edited this page Mar 6, 2016 · 22 revisions

Assignments in 2015

Before you start

  • It's recommended to run your code on our server. Here is an instruction how to connect.
  • We're using Git for version control. Our Git cheat sheet will help you with Git usage.
  • You have to follow our code guidelines. Don't violate them!
  • We suggest you to read literature to improve your skills. You are free to use any other source of information, not only presented by us.

List of assignments

Issue date and deadline Assignment Skills required
1 Oct — 17 Oct A1: Implementation of functional memory model

In this assignment you will implement the main interfaces of the functional memory. They include initialization from a MIPS executable file in the ELF format, reading/writing data and others.

Programming technology:

Read about Revision control and Git.

Read first two chapters of "Teach Yourself C++" by Herbert Schildt:

  • 1. An Overview of C++
  • 2. Introducing Classes
10 Nov - 28 Nov A2: MIPS Disassembler

In this assignment you will implement a static disassembler of main MIPS instructions (objdump). Instructions are read from memory model same as you made in A1.

Theory: Programming language skills:

Revise C-style unions and bit structures from classic K&R book

Read next chapters of "Teach Yourself C++" by Herbert Schildt:

  • 3. A Closer Look at Classes.
  • 4. Arrays, Pointers, and References.
  • 5. Function Overloading.
  • 6. Introducing Operator Overloading.
19 Dec — 29 Feb A3: Single-cycle implementation

In this assignment you will implement a simpliest simulator of MIPS CPU. Instructions are read from memory model same as you made in A1, and decoded by disassembler same to A2.

Theory:
  • Revise materials of L7 lecture and P3 practicum (next lectures)
Programming technology skills:
21 Feb — 13 Mar A4: Pipelined implementation

In this assignment you will upgrade our single-cycle implementation to scalar MIPS simulator with constant latency for instruction execution.

Theory: Programming technology skills:
  • Read our guide to ports library.

  • Clone this wiki locally