Class Project
 


 

Objective:                

This project requires you to implement one of the three digital systems discussed on this page using the Altera FPGA prototyping board.

This project will count as a regular test grade.

Partnering                                                 

The original plan for this class project was for two person groups that would each be issued Altera FPGA boards.   Unfortunately, due to a delay in our purchasing office and a shortage of boards at Altera, I will only have 7 boards to distribute. This means that I will only be able to support 7 teams that can use the boards. The remaining students will have to do the work alone and verify by simulation only.

Grad Students, Getting a Board:

Graduate students MUST use an Altera board.  If you are using an Altera board,   user input must be via a keyboard, and output via either the LEDs or via video monitor.     Undergraduate teams that want to use the board will be given the boards on a first come/first serve basis.

The Projects:

I have linked to this page three seperate projects; two have been done in this class several years ago, one is a project done by Professor C. Traver at Union College.   Take your pick as to which one you want to implement.   Because of the complexity of the description of the projects, there is no way that I can give them adequate coverage in class.  I will be glad to discuss a project with a team or individual after you have read the project description.  

Each project can be broken into a user interface section (getting input from the user, displaying the results) and a 'computation' section.  If you are using the Altera board, then one member must do the user interface section, and the other team member the computation section.  The user interface must use the keyboard to get all input; a pushbutton can be used as a hardwire interrupt.   The LEDs or the Video interface can be used to display the output.  If you are not using the Altera board, then you must do the computation section. Two of the projects (the Circles game, Dice game) define an interface that does not use a keyboard or Leds so this would be fine as an interface.  If you are doing the square root project by yourself, then you must define an interface that is suitable for displaying on the simulator. 

Since the project writeups for the Dice Game, Circles game were written several years ago, there may be references to old tools or old implementation requirements. Please ignore these.

Some specifics about each project:

Circles Game:   If you using the Altera board, there are two programming files linked to the class WWW page that show how this game should be implemented using either a video interface or an LED interface.  If you are implementing this by yourself, this could simulteneously be both the hardest and easiest of the projects. The FSM control is probably fairly easy, but the game logic is tough.   You need to implement a winning strategy.  The circles game description is here in Microsoft Word format.

Dice Game:  There are two files describing this project. One describes the project, and one describes the a dice generator.  To test this design, you MUST have a way of disabling the random operation of the dice roll and be able to generate a particular roll.   If you are using the Altera board, you must use the two LEDs to show the dice roll and the score. When the dice is "rolling", this should be visibily evident on the LEDs. Here are the dice game, dice generator descriptions in Microsoft Word format.

Square Root:  If you implement this project, you must be able to to calculate the square root of a 32-bit number.  You can always assume that the input will be a 32 bit number. Because of the simplicity of the visual nature of this interface, any two person group using this lab MUST use the video interface, not the LED interface. Here is the description of the Square root project.

Helpful Files:

Attached to the WWW page are links showing you the keyboard module, video module, a design that uses both, and a module that illustrates use of the push buttons and LEDs (see the link keydemo - this shows use of keyboard, pushbutton, 7-Segment display).

Checkoff:

When you demonstrate your lab to me, you must prove to me that your design works. Part of your grade will be based upon how well and how thoroughly you demo your design to me.

Academic Dishonesty

I will be grading all of the projects.  You MUST do your own work, treat this as a takehome test.  I will treat any cases of project copying very harshly.

Due Dates:

I will give you an automated procedure for submitting all of your files to me via a ZIP archive.  This will involve FTP'ing your files up to an ECE machine, and then running a script.  The report for the project will be due at 5:00 on Friday, April 30th.   The ZIP files will be due at Midnight,  Sunday May 2nd.  You will be required to demo your project for me by appointment  May 3rd, 4th, or 5th.

 

Report                              

I will post a project report format at a later date.