l1: past projects - carnegie mellon universityece545/f12/slides/l01_pastprojects.pdf · l1: past...
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