Description
The project and Proposal
Lab Objectives
Take what you’ve learned in this class and design and implement a fun/cool project that utilizes the
DE1SoC board and peripherals.
Project Requirements
Be creative! You are required to use:
1) A VGA display (building off of Lab 5).
2) Some form of significant memory storage (e.g., pixel data, audio clip, other game data). You can
refer to Labs 2–4 for a refresher on initializing and using memory.
3) Some form of user input, which could be the switches and push buttons or some of the peripherals
listed below.
You can, and are encouraged to, use additional peripherals. All drivers you will need for this lab can be
found in the folder on Canvas within the folder. Unfortunately, we are limited to
the currently available interfaces on LabsLand, but these include:
• Sound output from a speaker (building off of Lab 3).
• A virtual 360-degree joystick.
• An “N8” controller, shown in the form of an old controller
System (4 directional pad, Select, Start, A, B).
from the Nintendo Entertainment
Notes for using a VGA display:
Please note that the provided VGA driver in the
featured than the one provided in Lab 5. folder is different and more fullyNotes for using audio output:
Recall that LabsLand does not allow you hear your audio live. Unfortunately, this means you
can’t do things like producing sounds/noises at certain events as they would only be heard in the
recording afterward. However, it would be acceptable to produce an audio output as a final
artifact based on the user input (e.g., a beat or drum generator).
Project Ideas
You are allowed to take inspiration and code from elsewhere (e.g., a software implementation,
your 271/369 project), but make sure that you cite your sources. However, these portions will
not count towards the overall difficulty of your project – we care about what you will be
implementing this quarter.
Category 1: Games
• Side-scrolling: The player(s) move through a level, avoiding or destroying obstacles or enemies.
• Combat: Two or more players compete to collect points and/or defeat the others, maybe with
projectiles or by growing their own body as an obstacle.
• Tile-matching: Tetris, Bust-a-Move, Candy Crush, or something of similar complexity.
• Card: Blackjack, Solitaire, Set, or something of similar complexity.
Category 2: Audiovisual
• Paint: Allow the user to draw on the VGA or otherwise change an image output.
• Audio Visualization: Use an audio input file to display some sort of reactive visualization.
• Music Generation: Take in user input to generate sound, e.g., music notation/composition.
Basic pixel-by-pixel painting is not complex enough to be used as the sole feature of a project –
this will need to be extended with other, more complex features.
Category 3: Create Your Own
Come up with your own idea that satisfies the list of requirements above and submit a proposal to the
course staff! Past class video with other examples: https://youtu.be/3J6ZwsfqRKQ
Do note that that video is from when the course was using DE1-SoC lab kits, so there were different
peripherals available.
Project Explanation Video
This quarter will not require a video demo. The links below are left as examples.
Here are some links (UW login required) to past project videos that earned full scores on the video (i.e.,
not necessarily on the project itself):
• Flood Fill Algorithm:
https://drive.google.com/file/d/1wQ0kaWS5sYTW_nqx97thSxf5XRjbGFSy/view?usp=sharing
• Red Light, Green Light Game: https://drive.google.com/file/d/17OUh_Y5rUIQt0QEx2tVa1pa4yn0tr5e/view?usp=sharing
Project Demonstration/Turn-In Requirements
In-Person Demo
• Demonstrate your completed project working on LabsLand.
• Be prepared to answer questions on both the theoretical and practical parts of the project.
Project Report (submit as PDF on Gradescope)
• Include the required Design Procedure, Results, and Experience Report sections. o If you
worked with a partner, include a partner work summary in your Experience Report.
• Don’t forget to also submit your SystemVerilog files ( ), including testbenches!
Lab 6 Rubric
Grading Criteria Points
Name, student ID, lab number 2 pts
Design Procedure 20 pts
Results 14 pts
Experience Report 14 pts
SystemVerilog code uploaded 5 pts
Code Style 5 pts
PROJECT DEMO 70 pts
▪ Bonus points available for particularly impressive projects (10 pts)
140 pts
Design of Digital Circuits and Systems, Lab 6
Project Proposal
Proposal Requirements
Submit a PDF document to Gradescope detailing your proposed Lab 6 project, even if it is from the list of
suggestions. This document should be only a few paragraphs long and will give us a chance to verify
that you’ve put some thought into your project and that your project (especially if not from the list of
suggestions), is of an appropriate difficulty level, i.e., it is not too simple nor too difficult.
Recall that, in addition to the standard DE1-SoC switches and push buttons, you have the following
peripherals available for use, though in pre-defined subsets based on the LabsLand interfaces:
1) A VGA display (building off of Lab 5, but note that there is a new driver available for Lab 6).
2) Sound output from a speaker (building off of Lab 3)†.
3) A virtual 360-degree joystick.
4) An “N8” controller, shown in the form of an old controller from the Nintendo Entertainment
System (4 directional pad, Select, Start, A, B).
† Recall that LabsLand does not allow you hear your audio live.
In your proposal:
• Describe your major project behavior, features, components/modules, and user interaction.
• Include at least a top-level block diagram (other diagrams welcome). Be sure to label the blocks
and ports in your diagram as best you can. Don’t worry if the final design differs from your
proposal.
Lab 6 Proposal Rubric
Grading Criteria Points
Project description 5 pts
System block diagram, with labels 5 pts
10 pts