Homework 3

Due Monday, February 22

In both problems here, you will use Chipmunk/diglog to build pipelines. Be sure to follow all the specified modularization; this is REQUIRED. Make sure to work on Problem I first, before even thinking about Problem II; pipelining has subtle difficulties, so it is crucial that you do an "easy" (or easier) one first.

Also, remember that we are using the new homework turn-in policy for the rest of the quarter, involving the cheksum.

Problem I:

Build the polynomial pipeline as described in our handout on pipelines. The values of x, a, b, c and d are 4-bit unsigned integers. Do not worry about overflow (i.e. ignore it).

You are required to have the following modules:

Of course, use a Digital Pulse Generative Switch as your clock.

Problem II:

Implement a pipelined floating-point addition unit, according to the following specifications.

The numbers will be 6 bits long, with the leftmost (i.e. most significant) 4 bits forming the mantissa m and the last 2 bits comprising the exponent e (which is for a power of 2). The m field is to be considered to be an unsigned integer, while e is a 2s-complement signed integer. (Thus negative floating-point numbers cannot be stored.)

Make sure to verify for yourself that

 
010111 + 001110 = 110110

So, if 010111 and 001110 are input to the first stage of the pipe, the output from the last stage will later be 110110.

If you need review on floating-point numbers, please click here. As always, feel free to ask the TA and/or me any questions on this.

The pipe will consist of 4 stages:

You are required to have one module for each stage above.

Again, your design must be PIPELINED. Assuming new inputs are constantly fed into the pipe, there will be floating-point additions for 3 separate pairs of numbers in progess simultaneously.

Again, do NOT use shifter components. Instead, just route wires "diagonally" as in Problem I.