← Back to E15 Lab page ←
The last few weeks of E15 you will be working on a project of your own
- The scope of the project should be something that is equivalent to about
2 labs, but not too complicated.
- You may work alone or in groups of up to four students.
- You may work with anybody in the class (i.e., you are not restricted to
people in your lab period).
- Project topics are wide ranging - almost anything related to the class,
hardware and/or software. If you have a lot of software experience
before taking this class, you might want to consider a project that is more
- November 12th (Friday), 4:30 p.m.: Discuss a project idea with Professor Cheever or
Professor Zucker, and get the idea approved verbally.
- November 15th (Monday), 9:30 a.m.: Project Proposal is due. This is a one or
description of your project, and a schedule for completion of the
major components of the project. This will be turned in as a
submission to a Swatfiles dropbox.
- December 10th (Friday), 4:30 p.m.: Project Report is due. See below for guidelines.
This report takes more of a traditional lab report format than have other
reports for this course. It should be
written as if the reader was another member of the class. S/he has some
familiarity with the Verilog/C/etc.. but perhaps not with the nitty-gritty
details of your chosen application/project.
With your report in hand s/he should be able to quickly reproduce what you did and
understand it well enough to add to it.
- Title page/Table of contents (5 pts) - project title, names of
participants, and a table of contents.
- Abstract (10 pts) - 1 paragraph describing what you did.
- Introduction (15 pts) - What is the goal of your project? What motivated
you? Why is it interesting?
- Background/Theory (15 pts) - What technical details does your reader need
- Completed Project Design (30 pts) - Start with a very high level description
of your project.
Get increasingly detailed in your description until you get to the level
of short sections of code/circuitry that are critical to the proper operation of
your project. Any comments in your code should be good enough that
somebody in the class could read and understand it, without having to
refer to any external references.
- Results (15 pts) - How well did you achieve your goals? This
should include quantitative results (and perhaps qualitative).
- Discussion/Conclusion (10 pts) - What worked well? What didn't?
What are obvious extensions?
- Appendices as needed. The body of the report should only
contain short bits of code necessary to explain the project operation.
The appendix should contain complete code listings.
- The report will be in a single file that is uploaded to a SwatFiles dropbox. The file
must be either word doc or pdf.
Details about dropbox to follow.
- Implement serial communications between the Altera board and the μC.
- Control the LCD from the Altera board.
- Design a simple filter in VERILOG (averaging?)
- Design a correlator in VERILOG - an application is DNA sequence analysis
- Use μC to do some simple digital signal processing
- Implement a serial port in VERILOG and connect to computer.
- Implement a buffered serial I/O on μC using interrupts and RS-232 port.
- Design a very simple (4 bit?) processor in VERILOG
- Generate a band-limited white noise source (μC or VERILOG)
- Build a reaction timer using VERILOG
(see how long it takes somebody to press a button after an LED lights).
- Build an LED dimmer using pulse width modulation on the DE2 board.
- Implement a multiplication ALU in Verilog (without using the built-in
multiplication operator) Try using either a Wallace Tree or a Dadda Tree
(two faster algorithms than "traditional" shift-and-add multiplication)
- Implement a division ALU in Verilog at the gate level (without using the
built-in division operator), using shift-and-subtract, or repeated
- Implement a Connect Four PC game for two players that draws the board
using ASCII characters. Advanced programmers: create a computer player so a
single player can play versus the computer.
- Implement a Tetris PC game that draws the board using ASCII characters,
using the ncurses library.
- Write a PC program implementing the Quine-McCluskey algorithm to
simplify arbitrary logical expressions with any number of variables. Your
program should take as input either a sum of minterms or a product of
maxterms. Advanced programmers: your program should also take as input an
arbitrary Boolean expression composed of variable names, and the operators
(, ), ', *, +
- E11 students: Create a PC program that uses a linear algebra solver to
analyze simple electrical circuits with resistors, capacitors, inductors,
and voltage sources. Your program should take as input a simple text
description of the circuit.
- Advanced programmers: Create an entry for the 2010 Google AI Challenge (http://ai-contest.com/)
- We also have small motors and encoders so you do some simple control
with the embedded processors.
- Be creative and come up with one of your own.
← Back to E15 Lab page ←