Lecture 141 Lecture 14: Final Project Kickoff ECE 412: Microcomputer Laboratory
Lecture 142 Outline Get you thinking about the final project Overview the process, due dates, etc.
Lecture 143 Final Project Opportunity for you to build a system of your choice from the components in the lab –Great chance for you to incorporate some of your other interests into the class –Somewhat-rare opportunity to start a design with a completely blank sheet of paper –2 person team project Think about design project in terms of building an interesting device –“Hardware fractal rendering engine” good –“Learn how the USB protocol works” bad
Lecture 144 Project Timeline/Grading Initial proposal + report: together 20% of Project Grade –Proposal 4/6 & 4/8 in class minutes presentation for each team in class 10% grade –Report Due 4/18 Three-pages (four at most) May contain: introduction, background, motivation, impact, block diagram, and workload partition among team members Goal: give us enough information that we can provide feedbacks about project complexity and suggestions 10% grade
Lecture 145 Project Timeline/Grading (II) Project Presentation: Due 5/12 (no extensions or bonus days), 20% of Project Grade –Present what you’ve built –Each team will be given 30 minutes for presentation Project Report/Demo: Due 5/14, 30% of Project Grade –Expanded version of initial report (6 pages, 8 at most) Introduction, background, motivation, impact, final design, and workload partition among team members Detailed description of the implementation and functionality of the design Block diagram of the system Testing More like a technical paper than earlier MP reports Among other things, highlight how your design changed during implementation Attach design documentation (for example, major simulation trace) –Scheduling demo time with the TA Impact of the project: 30% –Usefulness –Novelty –Complexity –Give students motivation for good and useful designs
Lecture 146 Examples of Past Projects FPGA synthesizer Streaming audio over Ethernet Pac-Man™, Tetris™, and other video games Shape recognition in hardware Video processing Handwriting recognition via mouse input Motion detection in images CFD Simulation Acceleration Using FPGAs Duck hunt Night vision: …
Lecture 147 Using Hardware We Don’t Have in the Lab Feel free to design projects around peripherals you have –Ex: student several semesters ago who brought in his synthesizer for a MIDI project Caveat is that you’re using any outside equipment at your own risk, and we won’t be able to replace/fix it if something goes wrong –Never been a problem…
Lecture 148 Using Resources from Publications/Web/Etc. Basing your project off of something you’ve seen elsewhere is completely ok. –Example: based on a technical paper a friend brought back from an internship Using a published algorithm/technique that you implement is also ok –Need to cite source in your reports Rule of thumb is that you need to implement the central portions of your project yourself The parts of the project you implement are what we’re going to judge in terms of project scope/complexity
Lecture 149 Some ideas
Lecture 1410 Network Applications Network sniffer –Output information about network traffic to VGA in real time –Statistics may include packet types, source, destination, etc Network pong –Convert mouse movements into up-down vectors –Send vectors over network to opponent’s host –Opponent may be a standalone application or another XUP board
Lecture 1411 Music Synthesizer Associate certain keys on the PC keyboard with piano notes Synthesize waves corresponding to appropriate frequencies, duration, etc Send waves serially to ADC to generate audio signal
Lecture 1412 Analog video transformer -Input a video signal from analog input -Perform various operations on the signal -Hue/saturation adjustment -Shrink/stretch the video window -Invert the video -Use the keyboard to control the operations performed on the input video signal -Output manipulated stream to VGA
Lecture 1413 Video Games Tetris –Blocks of different shapes scroll down the screen. –User can shift them left/right and change their orientation –Keep score for each laid block and game over when heap crosses a certain height Flying Shuttle –An airship flies within a tunnel –The walls of the tunnel follow different curves –The user has to guide the airship, so that it does not hit the walls –Keep score for crash-less time, increase airship speed
Lecture 1414 Paint – like applications Paint –Provide different pen style, shape, color and eraser tools –Accept mouse input and display lines and shapes drawn by user –Optionally save drawing into file Panoramic Image viewer –Use “panoramic” image and provide “pan” tool –Manual mode: accept user input for controlling the panning –Auto mode: smoothly pan image from far left to far right and back again
Lecture 1415 MP3 Player Use a free MP3 audio decoding software package and port it to PPC and the Xilinx board Pre-store MP3 file to board memory or download user-provided file Decode MP3 data and send it to the board audio codec chip for playing
Lecture 1416 Own-interest ideas Feel free to propose other projects that may be of interest to you An interesting scheme would be accelerating computation hungry applications –Design and use custom accelerating cores that can be called by PPC to execute compute intensive tasks –Measure performance gain (vs using PPC on its own) –Experiment with different alternatives
Lecture 1417 Next lecture Design Abstractions and Design Flow