Silicon Programming--Winter 2006-2007--Project Requirements

February 14-16, 2007

Your goal is to design as exciting, visually attractive, and challenging a video game as you can, given the hardware resources available to you. You will work in a group of 3-4 students.

Input can be from the keyboard or the mouse. Processing should be done using the CYCLONE chip. Output should be to the screen.

Your design will need at least the following components:

input module

output module

ALU to do calculations

control unit to allow your game to respond appropriately to inputs

memory modules to hold graphics/text for screen displays

Your design may be a modification of the game(s) described in the textbook.

All components should be described in appropriately commented VHDL or Verilog. Each module should have an associated test vector file (also with comments) to test its proper functioning.

Testing should be thorough; scan testing MUST be implemented.

Maximal credit will be given to projects which make use of a substantial amount of the device resources.

The user interface will also be important.

======

Your grade in this project will be based on your group’s successful completion of eight steps, as listed below.

RequirementComplete by% of

grade

1. Status reports:ALL dates below10

On each of the dates below you need to turn in

a. group tracking document

b. your individual rating document (one for each group member), if requested

Copies of these documents are at the end of this assignment.

The individual rating documents will assess the success of the group, from your point of view, and will note areas that need improvement. Individual grades of group members may be adjusted up or down based on these documents.

2. Project specifications & group organization2/2110 Project specification will give an overall description of your project, along with

any specific features you will include.

Group organization document should list the group members' names and any

special responsibilities of each (e.g., in charge of documentation, testing,

version control, user manual, preparing tracking document, ….).

Group organization document should also explain how the group will

communicate (there should be at least one regularly scheduled weekly meeting

and also you should explain how you will communicate with one another

between meetings).

TURN IN INDIVIDUAL TEAM RATING FORMS.

3. High-level design2/2620

Should include block diagram for your project and input/output specifications, state machine describing control, along with any performance requirements.

4. Component design/sim/test3/0520

Should include the basic components you will need (adders, multiplexors, I/O,

registers, fsm's, etc.). Each component should be simulated and tested

thoroughly.

TURN IN INDIVIDUAL TEAM RATING FORMS.

5. System design/sim/test3/1420

Should include the complete system design, along with comprehensive

simulation and test results.

6. Report 3/14-3/1615

Final report format is given below.

7. Final demonstration3/14-3/1615

At the time of your final demonstration you need to provide copies of your software and of your final report. Copies of your work and of your reports will be kept to use for department demonstrations.

ALSO TURN IN INDIVIDUAL TEAM RATING FORMS.

======

Note that in order to reach each milestone you will need to partition your project carefully and work in a hierarchical structured manner. For example, you have all already built some simple circuits. You should use these as necessary in your project design.

======

Report format:

The report should consist of no more than 16 pages, including title page, text, figures, etc. Text should be 10 or 12 pt and double spaced. All pages must be 8.5 x 11 inches, except for one (optional) layout page. Clarity and completeness are of paramount importance. Spelling and grammatical errors will count against your grade. Writing style should be clear and concise. Make your explanations straightforward and understandable.

Report outline:

for 2/21:1. Title Page

2. Abstract (no more than half a page, on a page by itself)

3. System specifications (what will the system do?)

4. Group members, assigned tasks, and project schedule (must

include all subtasks and who is responsible for each; must also designate who will be in charge of each of the following: documentation, testing, version control, user manual, tracking documents)

5. Group meetings--regular meeting time and place; how group will

communicate between meetings

for 2/26: revise 1-5 according to comments from instructor. Also turn in:

6. Block diagram for overall design:

include I/O for each component and module

state diagram or diagrams for your system

for 3/05: revise 1-6 according to comments from instructor. Also turn in:

7. Components (e.g., registers, ALU function units, basic

state machines, basic I/O) and complete sim and test results for each

for 3/14: revise 1-7 according to comments from instructor. Also turn in:

8. Completed system, with all components integrated and

system sim and test results

for 3/14-16: revise 1-8 according to comments from instructor. Also turn in:

9. Completed report, with Conclusions, including:

--Engineering considerations (specifications, tradeoffs, etc.)

--Design for testability is an important issue. Discuss

approaches you took for testing and testing issues you have

considered in your design. Be sure to include the following:

--Environment (temperature and voltage ranges) (use

data sheet)

--Project statistics (total power, altera part(s), i/o

connections, device usage, maximum clock speed, power

(use Altera power worksheet), etc.

--timing and critical paths. Have you simulated or measured

the timing?

10. Summary

--What is unique about your project?

--Lessons learned--what would you do differently next time, either

technically or in project management?

11. User instructions ("user manual"):

a. board connections

b. use of hardware/software

FORMS

1. Project tracking chart: Modify the chart below for your group. As your project progresses, add to the chart. Each week, one group member is responsible for handing in an up-to-date version of this chart showing the progress you have made. Note that the activities, milestones, and planned start and finish times in column 1 should be based on the steps outlined for project completion above.

Tasks / Planned Start / Actual Start / PlannedFinish / Actual Finish / Person Resp. / Effort** / Notes
Project specs
game description
name of game
inputs
outputs
Define communication,
meeting times
Assign tasks (leader,
documenter,
version control, …)
Milestone: Step 1 complete
Block diagram
module definition
etc. / 2/16
2/16
2/16
2/16
2/16
2/19
2/21
2/21
2/21 / 2/19
2/19
2/19
2/19
2/16
2/21
2/23
2/23 / all
all
JS,FA
CK,KB
all
all
all
JS / 4 p-d
2 p-d

**For the purpose of this document, it is more reasonable to give time in hours

rather than days. So, for example, if two people each work two hours and one other

person works one hour on a given task, then "Effort" would be 5 person-hours.

2. Individual report:

The form on the next page should be used by each group member. An updated form should be submitted as requested by the instructor, on the same day your project work is due.

Team Developer Form: Your name______Date:______

Give the total number of hours YOU have worked on this project in the past week:______

Rate each team member (including yourself) on a scale of 1-5 for each category (1=rarely, 5 = always); use back of form for explanatory comments if necessary.

Team names
(Alpha by last)
COMMUNICATION: Does your team member, as needed, play the roles of:
  • Active Listener (Listens attentively to others without interrupting; Conveys interest in what others are saying; Provides others with constructive feedback; Restates what have been said to show understanding; Clarifies what others have said to ensure understanding)
  • Influencer (Articulates ideas clearly and concisely; Uses facts to get points across to others; Persuades others to adopt a particular point of view; Gives compelling reasons for ideas)

DECISION MAKING: Does your team member, as needed. play the roles of:
  • Analyzer (Analyzes problems from different points of view; Anticipates problems and develops contingency plans; Recognizes the interrelationships among problems and issues; Reviews solutions from opposing perspectives; Applies logic in solving problems; Plays devil's advocate role when needed)
  • Innovator (Challenges the way things are being done; Solicits new ideas from others; Generates new ideas; Accepts change; Suggests new approaches to solving problems)
  • Fact Seeker (Offers solutions based on facts rather than "gut feel" or intuition; Discourages others from rushing to conclusions without facts; Organizes information into meaningful categories; Helps others to draw conclusions from the facts; Brings in information from "outside" sources to help make decisions)

COLLABORATION: Does your team member, as needed, play the roles of:
  • Conflict Manager (Acknowledges issues that the team needs to confront and resolve; Encourages ideas and opinions even when they differ from their own; Works toward solutions and compromises that are acceptable to all; Helps reconcile differences of opinion; Accepts criticism openly and nondefensively)
  • Team Builder (Shares credit for success with others; Cooperates with others; Encourages participation among all participants; Shares information with others; Reinforces the contributions of others)

SELF-MANAGEMENT: Does your team member, as needed, play the roles of:
  • Goal Director (Monitors progress to ensure that goals are met; Creates action plans and timetables for work session goals; Defines task priorities for work sessions; Ensures that goals are understood by all; Puts top priority on getting results)
  • Process Manager (Stays focused on the task during meetings; Uses meeting time efficiently; Suggests ways to proceed during work sessions; Clarifies roles and responsibilities of others; Reviews progress throughout work sessions)
  • Consensus Builder (Solicits input from all members; Encourages frequent polling among team members; Summarizes the team's position on issues; Involves others in decisions that affect them)