|
Special Setup Instructions | |
In order to make includes work properly in your CAST files on the BSDCluster machines, you need to set the environment variable CAST_HOME: This
command must be run every time you log on. As usual, you can put this in
your .cshrc file if you wish. |
Basics | |
All ECE/CS 314 projects, including this one, are done in groups of exactly two students. Please link up with a partner and submit a single solution. If you do not have a partner yet and cannot find one, use the course newsgroup to find one. Please read this document completely before starting.
|
Project Goal | |
This project has several goals: to become familiar with the logic design and testing environment by designing simple logic blocks; to design a more sophisticated finite-state machine with the logic design tools, and finally to implement an ALU suitable for your MIPS processor project, using the techniques described in recent lectures. To successfully complete this project, you will need to understand the following items:
|
Part 1: Logic Design | |
The aim of this part of the project is to design simple logic blocks and become familiar with the logic design tools we will be using for the class. Combinational Logic. Write down the truth table and logic
equations for a combinational circuit that takes a 4-bit input, an integer
in sign-magnitude representation, and produces a 4-bit output that is the
same integer in 2's complement representation. Write a CAST file
implementing the combinational logic (well, just edit
Create an Examples of writing CAST programs and simulating them with
The Building-Blocks. Define a CAST cell called Therefore, the statement
creates a 32-bit bus. Buses can be used as parameters to definitions,
just as |
Part 2: A State Machine for the Game of Life | |
The goal of this part of the project is to design the state machine for a single cell in "The Game of Life" and then to connect these cells together into a 4x4 "toroidal" grid. There's a really good description of the game along with a neat applet for exploring the details of the game online at http://www.math.com/students/wonders/life/life.html. The key rules of the game are:
Your single cell has the following function header:
The Once you're satisfied with that your cell is working correctly in
isolation you need to connect up a 4x4 "torroidal" grid of
The
Each generation should be computed in a single clock cycle. That is to
say, after the
You will need to understand the use of the global signals
Remember that this is a Moore machine and Reset is an input. If Reset changes during a cycle, it's effect takes place in the next cycle. If the output of your state machine changes within the same cycle as a change to Reset occurs, it isn't a Moore Machine and will lose a lot of points. |
Part 3: The MIPS ALU | |||||||||||||||||||||||||
Our ultimate goal is to design a complete pipelined MIPS processor. The goal of this part is to complete the logic design of an ALU, with emphasis on correctness rather than performance (for now). You are to design an
c .
( Place the documentation for your ALU in the README file. The
documentation should describe the implementation strategy for your ALU.
You may place the ALU documentation in comments in your
Testing. We've provided a test file called
You must submit an Hints.
|
Submitting Your Project | |||
Submission will be done using CMS. No written report will be required for this project except for a README file which must contain the following:
For this project, you will edit:
You will add a README and .cmd files for testing. You shouldn't need to change the test_ files, they just create an instance of the hardware which you will test. There is a script available that will tar these up for you, and check that all the files are present, so that you can submit them to CMS. Once you have finish the project, simply type: proj3tar.314 from your
|