Main »

CS552 Course project

edit SideBar

Course Project Overview

On this page... (hide)

  1.   1.  Overview
  2.   2.  Steps
  3.   3.  Preparation Resources
  4.   4.  Writing Resources

1.  Overview

The CS552 term project is the complete functional design of a microprocessor called the WISC-SP13. All components of your design will be written in Verilog. As with the course homework assignments, the CS552 Verilog rules apply and all final code is expected to pass the Vcheck program.

The project will be completed individually this semester, not in groups of two. In correspondence, the final cache part will be a bit different. We do not require you to integrate the cache design into your processor. Only a separate cache demo will be submitted.

Your processor will support the WISC-SP13 ISA, as described in the ISA Specification page.

2.  Steps


  • Download the project tar file for a complete collection of the files you will need for all stages.
  • Check the Project Deadlines and Grading page. The project will progress in several distinct stages. Some of these stages are enforced through grading deadlines; others are not.

Each stage of the design makes the processor progressively more complicated. For your own benefit, it is strongly recommended that you not proceed to a new stage before you are confident the current stage is working. Debugging errors in a complex design can quickly diminish your level of enjoyment during the project.

Many of the Verilog problems in the homework assignments were designed to be compatible with the project. Please feel free to reuse these modules (of course, fixing any errors first!). In addition to the previous homework problems, you will be provided with several reusable modules that you can use in your design. Most of these are Verilog implementations of memory system components. Please note that these files do not follow the CS552 Verilog restrictions, so no need to include them when you run Vcheck.

An assembler for the WISC-SP13 ISA is provided for your use. Sample test programs are also provided, although you are strongly encouraged to write custom tests to augment these. Be aware that these test programs were written for a slightly different ISA specification and therefore may not work as advertised. It will be your job as diligent designers to determine if unexpected behavior occurs due to a bug in your design or as the result of the change in ISA.

We recommend you to:

  • Start early: This project is designed to take a considerable amount of time.
  • Plan ahead: You may find that the instructor and TA will be very inaccessible the night before a deadline.
  • Ask questions: If you are getting stuck on some problem ask for help. Ask me, the TA, or your classmates.
  • Functionality: Getting a working design is of paramount importance. Optimizations, clock-speek and bonus questions come second. First make sure your design works!

If you finish really early, you will get the opportunity to possibly map your design (or a part of it) to an FPGA chip.

If you are able to complete this project without the unnecessary stress that procrastination imposes, it is our belief that you will find this to be a highly rewarding experience.

3.  Preparation Resources

  • Latex
  • openoffice draw - my preferred drawing tool
  • Xfig - for drawing figures. /s/std/bin/xfig
  • matplotlib - for plotting graphs

4.  Writing Resources

Page last modified on September 17, 2020, visited times

Edit - History - Print - Recent Changes (All) - Search