Simplification for Projects 4 and 5

I've decided to make a couple of simplifications of KURM09 for Projects 4 and 5.

First, you do not need to implement conditional instructions. Recall that conditional instructions (addc, subc, etc) only execute if the status register is non-zero and are no-ops otherwise. Thus, the only instruction that will look at the status register is bra and we covered that instruction in class. I don't think we've discussed them sufficiently in class for me to ask you to implement them and it should simplify the last two labs a bit.

Second, the status register will be updated after every instruction. This simply means that the status register is clocked and will never be disabled. Note that bra does not access the register file in any defined way. Thus, the contents of the status register can be any value after bra executes. In effect, status register values for the next state after bra are don't cares.

Hopefully these changes will simplify things by making the enable logic for the register file and the status register simpler. The status register is no longer involved in determining when the register file should be enabled and the status register is now always enabled.

Project 4 available

Project 4 is now available from the Laboratory Page. The objective of the lab is to design a data path exactly like the one we've been talking about in class.

To things to note. First, it is a simulation only lab - no synthesis this time around. Second, the library for designing your data path will be available after completing Project 3. The only difference between the Project 4 and Project 3 libraries is the inclusion of ALU and register file models. If you want to use your own models for those components, feel free to do so.

Homework Solutions

To help you prepare for the exam, the TAs have provided solutions for homework 1-3. They can be found on the Resources Page.

Following along in the text

If you're interesting in following what we're doing in class in the text, we're starting Chapter 4 of Computer Organization and Design.  In particular, Section 4.3 covers the design of a datapath.  The book uses a different processor than we do that is somewhat more complicated, but its structure is identical to KURM09.

Midterm Exam

The midterm is scheduled for April 2 in class.  A set of study topics is available on the exams page.  Bring questions to class Thursday and Tuesday.

Combinational not Sequential ALU

The project 3 description specifies a sequential ALU. It should be combinational. Also, the VHDL skeleton uses a control input with 3 values (2 downto 0). Only two are required. I have posted an updated project description should you want to download a new version. However, these are the only changes.

Project 3 update

I just updated the project 3 writeup to use std_logic rather than bit. Shouldn't make any difference other than being consistent with what's in the KURM synthesis library. If you started to use bit, it should be easy to simply replace bit with std_logic and bit_vector with std_logic_vector.

Project 3 due date

Project 3 due date is the week starting April 7. Note that the Monday lab is still a week behind.

Project 3 due date

Project 3 due date is the week starting April 7. Note that the Monday lab is still a week behind.

Project 3 due date

Project 3 due date is the week starting April 7. Note that the Monday lab is still a week behind.