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

39
18-545: ADVANCED DIGITAL DESIGN PROJECT FALL 2011 BILL NACE L1: PAST PROJECTS

Upload: vuongdung

Post on 30-Jan-2018

221 views

Category:

Documents


4 download

TRANSCRIPT

Page 1: L1: PAST PROJECTS - Carnegie Mellon Universityece545/F12/slides/L01_PastProjects.pdf · L1: PAST PROJECTS. 18-545: FALL 2011 ... OpenGL GPU GPU on board ... Dig through project reports

18-545: ADVANCED DIGITAL DESIGN PROJECT

FALL 2011

BILL NACE

L1: PAST PROJECTS

Page 2: L1: PAST PROJECTS - Carnegie Mellon Universityece545/F12/slides/L01_PastProjects.pdf · L1: PAST PROJECTS. 18-545: FALL 2011 ... OpenGL GPU GPU on board ... Dig through project reports

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

Page 3: L1: PAST PROJECTS - Carnegie Mellon Universityece545/F12/slides/L01_PastProjects.pdf · L1: PAST PROJECTS. 18-545: FALL 2011 ... OpenGL GPU GPU on board ... Dig through project reports

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

Page 4: L1: PAST PROJECTS - Carnegie Mellon Universityece545/F12/slides/L01_PastProjects.pdf · L1: PAST PROJECTS. 18-545: FALL 2011 ... OpenGL GPU GPU on board ... Dig through project reports

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

Page 5: L1: PAST PROJECTS - Carnegie Mellon Universityece545/F12/slides/L01_PastProjects.pdf · L1: PAST PROJECTS. 18-545: FALL 2011 ... OpenGL GPU GPU on board ... Dig through project reports

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

Page 6: L1: PAST PROJECTS - Carnegie Mellon Universityece545/F12/slides/L01_PastProjects.pdf · L1: PAST PROJECTS. 18-545: FALL 2011 ... OpenGL GPU GPU on board ... Dig through project reports

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

Page 7: L1: PAST PROJECTS - Carnegie Mellon Universityece545/F12/slides/L01_PastProjects.pdf · L1: PAST PROJECTS. 18-545: FALL 2011 ... OpenGL GPU GPU on board ... Dig through project reports

VR Pacman

3D PacmanOpenGL on workstationBoard handled game

VR helmet displayViewpoint trackingNot stereoscopic

Full-body swivel controlHacked mouse + deskchair

Page 8: L1: PAST PROJECTS - Carnegie Mellon Universityece545/F12/slides/L01_PastProjects.pdf · L1: PAST PROJECTS. 18-545: FALL 2011 ... OpenGL GPU GPU on board ... Dig through project reports

Every Extend

Every Extend cloneSelf-contained

Playstation 2 controllerParallel port interface

Most complete game of 06High scoreGame modesBosses

Page 9: L1: PAST PROJECTS - Carnegie Mellon Universityece545/F12/slides/L01_PastProjects.pdf · L1: PAST PROJECTS. 18-545: FALL 2011 ... OpenGL GPU GPU on board ... Dig through project reports

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

Page 10: L1: PAST PROJECTS - Carnegie Mellon Universityece545/F12/slides/L01_PastProjects.pdf · L1: PAST PROJECTS. 18-545: FALL 2011 ... OpenGL GPU GPU on board ... Dig through project reports

NES (06, 07)

NES cloneBit-for-bit full hardware implementationVery ambitious

Much of the system workingPicture processorController interfaceToy application

Bitten by …VerificationUnit interfacingTeam dynamics

Page 11: L1: PAST PROJECTS - Carnegie Mellon Universityece545/F12/slides/L01_PastProjects.pdf · L1: PAST PROJECTS. 18-545: FALL 2011 ... OpenGL GPU GPU on board ... Dig through project reports

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

Page 12: L1: PAST PROJECTS - Carnegie Mellon Universityece545/F12/slides/L01_PastProjects.pdf · L1: PAST PROJECTS. 18-545: FALL 2011 ... OpenGL GPU GPU on board ... Dig through project reports

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

Page 13: L1: PAST PROJECTS - Carnegie Mellon Universityece545/F12/slides/L01_PastProjects.pdf · L1: PAST PROJECTS. 18-545: FALL 2011 ... OpenGL GPU GPU on board ... Dig through project reports

Networked Tetris

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

Working gameScoreNetworking

Bitten by …Not too ambitious

Page 14: L1: PAST PROJECTS - Carnegie Mellon Universityece545/F12/slides/L01_PastProjects.pdf · L1: PAST PROJECTS. 18-545: FALL 2011 ... OpenGL GPU GPU on board ... Dig through project reports

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

Page 15: L1: PAST PROJECTS - Carnegie Mellon Universityece545/F12/slides/L01_PastProjects.pdf · L1: PAST PROJECTS. 18-545: FALL 2011 ... OpenGL GPU GPU on board ... Dig through project reports

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

Page 16: L1: PAST PROJECTS - Carnegie Mellon Universityece545/F12/slides/L01_PastProjects.pdf · L1: PAST PROJECTS. 18-545: FALL 2011 ... OpenGL GPU GPU on board ... Dig through project reports

2008 Projects

Descent (i.e. Vertigo)

NanoSeige

“Xilroids” i.e. Asteroids with a Wii

NES

Page 17: L1: PAST PROJECTS - Carnegie Mellon Universityece545/F12/slides/L01_PastProjects.pdf · L1: PAST PROJECTS. 18-545: FALL 2011 ... OpenGL GPU GPU on board ... Dig through project reports

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

Page 18: L1: PAST PROJECTS - Carnegie Mellon Universityece545/F12/slides/L01_PastProjects.pdf · L1: PAST PROJECTS. 18-545: FALL 2011 ... OpenGL GPU GPU on board ... Dig through project reports

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

Page 19: L1: PAST PROJECTS - Carnegie Mellon Universityece545/F12/slides/L01_PastProjects.pdf · L1: PAST PROJECTS. 18-545: FALL 2011 ... OpenGL GPU GPU on board ... Dig through project reports

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

Page 20: L1: PAST PROJECTS - Carnegie Mellon Universityece545/F12/slides/L01_PastProjects.pdf · L1: PAST PROJECTS. 18-545: FALL 2011 ... OpenGL GPU GPU on board ... Dig through project reports

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

Page 21: L1: PAST PROJECTS - Carnegie Mellon Universityece545/F12/slides/L01_PastProjects.pdf · L1: PAST PROJECTS. 18-545: FALL 2011 ... OpenGL GPU GPU on board ... Dig through project reports

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

Page 22: L1: PAST PROJECTS - Carnegie Mellon Universityece545/F12/slides/L01_PastProjects.pdf · L1: PAST PROJECTS. 18-545: FALL 2011 ... OpenGL GPU GPU on board ... Dig through project reports

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

Page 23: L1: PAST PROJECTS - Carnegie Mellon Universityece545/F12/slides/L01_PastProjects.pdf · L1: PAST PROJECTS. 18-545: FALL 2011 ... OpenGL GPU GPU on board ... Dig through project reports

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

Page 24: L1: PAST PROJECTS - Carnegie Mellon Universityece545/F12/slides/L01_PastProjects.pdf · L1: PAST PROJECTS. 18-545: FALL 2011 ... OpenGL GPU GPU on board ... Dig through project reports

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

Page 25: L1: PAST PROJECTS - Carnegie Mellon Universityece545/F12/slides/L01_PastProjects.pdf · L1: PAST PROJECTS. 18-545: FALL 2011 ... OpenGL GPU GPU on board ... Dig through project reports

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

Page 26: L1: PAST PROJECTS - Carnegie Mellon Universityece545/F12/slides/L01_PastProjects.pdf · L1: PAST PROJECTS. 18-545: FALL 2011 ... OpenGL GPU GPU on board ... Dig through project reports

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

Page 27: L1: PAST PROJECTS - Carnegie Mellon Universityece545/F12/slides/L01_PastProjects.pdf · L1: PAST PROJECTS. 18-545: FALL 2011 ... OpenGL GPU GPU on board ... Dig through project reports

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

Page 28: L1: PAST PROJECTS - Carnegie Mellon Universityece545/F12/slides/L01_PastProjects.pdf · L1: PAST PROJECTS. 18-545: FALL 2011 ... OpenGL GPU GPU on board ... Dig through project reports

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

Page 29: L1: PAST PROJECTS - Carnegie Mellon Universityece545/F12/slides/L01_PastProjects.pdf · L1: PAST PROJECTS. 18-545: FALL 2011 ... OpenGL GPU GPU on board ... Dig through project reports

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

Page 30: L1: PAST PROJECTS - Carnegie Mellon Universityece545/F12/slides/L01_PastProjects.pdf · L1: PAST PROJECTS. 18-545: FALL 2011 ... OpenGL GPU GPU on board ... Dig through project reports

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

Page 31: L1: PAST PROJECTS - Carnegie Mellon Universityece545/F12/slides/L01_PastProjects.pdf · L1: PAST PROJECTS. 18-545: FALL 2011 ... OpenGL GPU GPU on board ... Dig through project reports

SSD (Again)

Didn't work'nuff said

Done in byTeamworkTeamworkRelying on past work

Page 32: L1: PAST PROJECTS - Carnegie Mellon Universityece545/F12/slides/L01_PastProjects.pdf · L1: PAST PROJECTS. 18-545: FALL 2011 ... OpenGL GPU GPU on board ... Dig through project reports

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

Page 33: L1: PAST PROJECTS - Carnegie Mellon Universityece545/F12/slides/L01_PastProjects.pdf · L1: PAST PROJECTS. 18-545: FALL 2011 ... OpenGL GPU GPU on board ... Dig through project reports

XilDoom

Quintessential FPS

1993! More popular than Windows '95

Open sourced in 97Used Chocolate Doom

Reasonably successfulNo networking or sound

Page 34: L1: PAST PROJECTS - Carnegie Mellon Universityece545/F12/slides/L01_PastProjects.pdf · L1: PAST PROJECTS. 18-545: FALL 2011 ... OpenGL GPU GPU on board ... Dig through project reports

18-545: FALL 2011

2011 Projects

Duck Hunt

Haxorus

Sidekick

Commodore 64

34

Page 35: L1: PAST PROJECTS - Carnegie Mellon Universityece545/F12/slides/L01_PastProjects.pdf · L1: PAST PROJECTS. 18-545: FALL 2011 ... OpenGL GPU GPU on board ... Dig through project reports

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

Page 36: L1: PAST PROJECTS - Carnegie Mellon Universityece545/F12/slides/L01_PastProjects.pdf · L1: PAST PROJECTS. 18-545: FALL 2011 ... OpenGL GPU GPU on board ... Dig through project reports

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

Page 37: L1: PAST PROJECTS - Carnegie Mellon Universityece545/F12/slides/L01_PastProjects.pdf · L1: PAST PROJECTS. 18-545: FALL 2011 ... OpenGL GPU GPU on board ... Dig through project reports

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

Page 38: L1: PAST PROJECTS - Carnegie Mellon Universityece545/F12/slides/L01_PastProjects.pdf · L1: PAST PROJECTS. 18-545: FALL 2011 ... OpenGL GPU GPU on board ... Dig through project reports

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

Page 39: L1: PAST PROJECTS - Carnegie Mellon Universityece545/F12/slides/L01_PastProjects.pdf · L1: PAST PROJECTS. 18-545: FALL 2011 ... OpenGL GPU GPU on board ... Dig through project reports

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