l1: past projects - carnegie mellon universityece545/f12/slides/l01_pastprojects.pdf · l1: past...

Post on 30-Jan-2018

221 Views

Category:

Documents

4 Downloads

Preview:

Click to see full reader

TRANSCRIPT

18-545: ADVANCED DIGITAL DESIGN PROJECT

FALL 2011

BILL NACE

L1: PAST PROJECTS

18-545: FALL 2011

Administrative Stuff

Teams are / should be formed

Project Ideas due Wednesday

Lab1 due WednesdayGetting started

Project Proposal Presentations on Monday, 10 SepYoutube presentations

2

18-545: FALL 2011

Project Proposal

What do you plan to do?Game description and how it covers the requirements

Graphics, sound, user input, multi-player, scoring, funHardware / Software plan

Architecture, block diagramPeripherals?Software functions

Description of major tasks, who is doing them

3

18-545: FALL 2011

Proposal (2)

ScheduleWho’s doing what, whenWhen each major task will be completeMilestones for each person

ResourcesWhat outside resources you needWhat you’ll use them forPointers to the resources

I understand this is all very preliminary and won’t hold you to the detailsMajor deviations will require discussions with me and my approval

4

18-545: FALL 2011

Lab machines - your machines

You have accounts on machines in the lab

You should be able to sudo using your own passwordDON'T DO ANYTHING STUPIDIf you break/compromise the machine, it will be wiped and reinstalledDon't change root password or add any root ssh keysDon't add accounts without asking me/gripe

Install software at /usr/local, /opt or /homeDon't overwrite any base installed software

5

18-545: FALL 2011

Today: Previous Projects

This is the 7th iteration of this course

First 2 years were taught by Prof Ken MaiI’m copying his descriptions and advice here

2008 - 2011 project descriptions are by me

All previous final reports are on webpage

6

VR Pacman

3D PacmanOpenGL on workstationBoard handled game

VR helmet displayViewpoint trackingNot stereoscopic

Full-body swivel controlHacked mouse + deskchair

Every Extend

Every Extend cloneSelf-contained

Playstation 2 controllerParallel port interface

Most complete game of 06High scoreGame modesBosses

Bomberman

Bomberman clonePorted SDL lib to boardHad SDL Bomberman implementationMoved performance critical portions of SDL library to hardware

Sega Genesis controllersSimple interface

SDL = Simple DirectMedia Layer, a cross-platform open-source multimedia C library

NES (06, 07)

NES cloneBit-for-bit full hardware implementationVery ambitious

Much of the system workingPicture processorController interfaceToy application

Bitten by …VerificationUnit interfacingTeam dynamics

Graphics Processor

OpenGL GPUGPU on boardApplication sends OpenGL calls to board via ethernet

Rendered a colored triangle

Bitten by …Board capacityTimeAsking for help too lateInexperience

InstructionBRAM Fetch Unit

InstructionDecoder

CoordinateTransformation

Pipeline

TriangleRasterization

Pipeline

OpenGLsoftware

code

Frame bufferBRAM

Ethernet

VGA

Physics Processor

Hardware physics processorSimilar to Ageia designBoard tracks objectsWorkstation handles game

PPU workingOnly toy applicationSome issues with fitting design on board

Bitten by …Team dynamicsTeam dynamicsTeam dynamics

Networked Tetris

Multi-player Tetris2 players/boardNetworked boardsMost of game in hardware

Working gameScoreNetworking

Bitten by …Not too ambitious

Quake

Port of 1996 PC game Quake3D first person shooterOpen-sourced in 1999

Running entirely on FPGAFull input, sound, video, and networking supportHardware FPU

Networked 3 boards + PC together in public demo

Guitar Hero

Port of Guitar Hero console game

Used open-source Frets on Fire for starting code base

Guitar (PS2 controller) interfaced through parallel port

Most issues in synching sound, video, and controller

Limited song libraryDid not automate song input

2008 Projects

Descent (i.e. Vertigo)

NanoSeige

“Xilroids” i.e. Asteroids with a Wii

NES

Descent

3D first-person shooter6 degree-of-freedom playReleased on 1995Source released in 1997

Ported PhysicsFS and SDL librariesNetworking and music never completedOtherwise complete game

Success due to:Reading Pentium Chronicles

NanoSeige

Designed own gameWanted massively parallel hardware accelerated gameSomething of an abstract real-time strategy game

Worked hard all semester, declared victory with whatever they had built

Done in byteamworkdidn’t follow any advice

XilRoids

Initially tried to build “Maelstrom” a 1993 clone of Asteroids

Ran into difficulty, decided to reset

Designed their own asteroids variantUsed Wiimote for user input

Done in byDecision to reset

NES (2008)

NES CloneFull hardware implementation

Controller peripherals“Virtual” cartridge interface

Used ROM images of Bomberman, Tetris

Sound limited to single channel

Successful becauseWorked to personal strengthsRelentless debugging

2009 Projects

Duck Hunt with WiiMote

GameBoy

MultiWilliams

OpenGL

Quake II

SSD research project (times 2)

Groups had choice of FPGA platform for first timeVertex 2 Pro, Vertex 5-LX, Vertex 5-FX

Duck Hunt w/WiiMote

Simple “point-n-shoot” gameUsing WiiMote, initially via straight connection“Settled” for connect via separate laptop running java program to convert

Programmed game “from scratch” as a clone

Moderately successfulFlexible processStayed with Vertex 2 Pro board

GameBoy

8-bit handheld console from very late ‘80s

Original attempt was for GB Color with link cable for multi-player

Settled for original GB

Incomplete DMA implementation led to graphic corruption

No sound, link cable

MultiWilliams

Williams was an arcade manufacturer in ‘80s

Defender, Joust, Stargate, Robotron, others

MultiWilliams emulates all 4But very different architecture among games

Built really nice input platform

Vertex 2 Pro

Done in by:Didn’t face complexity

OpenGL

Another attempt to build OpenGL render pipeline

Fixed-point version due to FPGA fabric limitations1) Fixed-function pipeline2) custom-designed VLIW processor

custom micro-assembler

Done in by:Switched platforms mid-stream to Vertex-5

Quake II

Quake II is a FPS from 97Code is open sourced

Commercial Linux distro on FPGA

No sound

Vector coprocessor

Done in by:Switching platform to Vertex-5

SSD Research Projects

Build a SSD controller for DIMM flash chipsInclude AES encryption

Two teams attempted

Got flash DIMM built

Got some communication via PCIE to host computer

Never got the rest put together

Vertex 5-LX boards

Done in by:Team issuesWillingness to be behind schedule

18-545: FALL 2011

2010 Projects

OpenGL GPU (take 3!)

Super NES

SSD (again)

Virtex Squared

XilDoom

Groups had choice of platform (V2Pro, V5LX, V5FX) and were given minimal "hand-holding" with the toolchain

28

18-545: FALL 2011

OpenGL Accelerator

29

Hardware pipelined

Input was pre-compiled sequence of OpenGL commands in a file on the CF card

non-interactive

Moderate framerate at low triangle count

No z-buffer

Done in by:

Took too long to make decisions

Super NES

16-bit console from early 90s

Hunted down CPU Verilog from the company that originally manufactured it

Cool! Very legal

Done in byIntegration! 4 individual chip descriptions. Didn't work together.

Testing strategy relied on integrated system, so no proof the chips worked individually

SSD (Again)

Didn't work'nuff said

Done in byTeamworkTeamworkRelying on past work

18-545: FALL 2011

Ver tex Squared

Designed their own ARM-like CPUIntegrated with 18-447Multi-bus, not particularly fast

Then got a small musical rhythm game running on it

Success due to:Lots of hard workSmart use of tools

32

XilDoom

Quintessential FPS

1993! More popular than Windows '95

Open sourced in 97Used Chocolate Doom

Reasonably successfulNo networking or sound

18-545: FALL 2011

2011 Projects

Duck Hunt

Haxorus

Sidekick

Commodore 64

34

Duck Hunt

Yet another version of the classic gameShoot at ducks as they fly in somewhat random patterns

Custom MIPS CPU

Custom Unix-like kernel

Custom Duck Hunt source (C)

Done in by:IntegrationTeam dynamics -- one member went AWOL. Nobody noticedDidn’t hold each other accountable for missing deadlines

Haxorus

Music visualizerInput from iPod, output to speakerRender shapes to video

Kinect to detect control gesturesChange colors, shapes, etc

Reasons for SuccessNot entirely certain, as I didn’t really see it comingSomehow overcame lots of team dynamics issues

HTTP://WWW.YOUTUBE.COM/WATCH?V=RR-UGS8EPH0&FEATURE=YOUTU.BE

At start: Image cross-correlation algorithm for Lunar XMatch images to lunar maps

At end: PCIE peripheral for image processingMove data quickly to FPGA for acceleration

Done in byRelying on grad student code

Saved byTimely pivot to build something useful

Sidekick

Commodore 64

Creative “4th path” to building a video game -- build the microcomputerCommodore 64 is the most popular microcomputer in history

Wrote each of the 3 main chips in Verilog/VHDL6510 CPU, Vic II video unit, sound chip (Yes! Sound!!)

Got games running: Galaxian, Mario’s Brewery, Centipede, Pac-Man (sort of), Frogger (sort of), BASIC interpreter

Reasons for successDid everything right

18-545: FALL 2011

Project Choice

Choose wiselyResearch available assets (code, manuals, schematics, etc)Dig through project reports from past projects

Some are well-written and will provide advice

39

top related