Eng 190o Lab #1.1

Purpose

The purpose of this lab is to convert a working multi-cycle LXRE CPU into a functioning pipelined version.

Pipelining

Make the CPU pipelined. Beware of hazards. Forward results as necessary or desired. Make it all work.

Previous Work

For this lab, you are highly encouraged to work with a different partner than you worked with previously. We also highly recommend basing your lab1.1 code on lab1.0 code from a group that shares no members in common with your lab1.1 group. Check the rubric.txt for lab1.1 to see the incentives for participating in this diversity of collaboration.

Groups in this class are encouraged not just to build on their own work, but to build on other people's work. At the end of each assignment, code from other people's assignment will be available for every group to look at (it may take some time to get them there). Each group's assignment will be in the git@tera.eng.hmc.edu:e190o-s2013 repository (same as the labs), but the branch name will be lab#-group. You may use, and are encouraged to use any other groups work as the starting point for your lab. You are also encouraged to discuss techniques for solving the problem, however you should NOT be sharing code for the current lab, either a file, or written out (like on a white board).

Testing

You are required to write an additional set of test programs to ensure your pipelined CPU functions correctly. Be sure to provide good reasons for each test program in your documentation. I recommend including a TESTS.txt file in your handin, describing your tests and what they accomplish. A sentence or two per test may be enough.

e190o — Spring 2013