L1: PAST PROJECTS 18-545: ADVANCED DIGITAL DESIGN PROJECT FALL 2016 BRANDON LUCIA
Administrative Stuff Teams are / should be formed Project Ideas due Wednesday, September 7 Lab1 due Wednesday, September 14 Getting started Project Proposal Presentations on Monday, September 12 2 18-545: FALL 2016
Project Proposal What do you plan to do? Game description and how it covers the requirements Graphics, sound, user input, multi-player, scoring, fun Hardware / Software plan Architecture, block diagram Peripherals? Software functions Description of major tasks, who is doing them 3 18-545: FALL 2016
Proposal (2) Schedule Who’s doing what, when When each major task will be complete Milestones for each person Resources What outside resources you need What you’ll use them for Pointers to the resources I understand this is all very preliminary and won’t hold you to the details Major deviations will require discussions with me and my approval 4 18-545: FALL 2016
Lab machines - your machines You have accounts on machines in the lab You should be able to sudo using your own password DON'T DO ANYTHING STUPID If you break/compromise the machine, it will be wiped and reinstalled Don't change root password or add any root ssh keys Don't add accounts without asking me/gripe Install software at /usr/local, /opt or /home Don't overwrite any base installed software Don't allow automatic upgrades to get installed! 6 18-545: FALL 2016
Today: Previous Projects This is the 11th iteration of this course First 2 years were taught by Prof Ken Mai I’m copying his descriptions and advice here 2008 - 2015 project descriptions are by Prof Bill Nace Previous final reports are on webpage 7 18-545: FALL 2016
VR Pacman 3D Pacman OpenGL on workstation Board handled game VR helmet display Viewpoint tracking Not stereoscopic Full-body swivel control Hacked mouse + deskchair
Every Extend Every Extend clone Self-contained Playstation 2 controller Parallel port interface Most complete game of 06 High score Game modes Bosses
Bomberman Bomberman clone Ported SDL lib to board Had SDL Bomberman implementation Moved performance critical portions of SDL library to hardware Sega Genesis controllers Simple interface SDL = Simple DirectMedia Layer, a cross-platform open-source multimedia C library
NES (06, 07) NES clone Bit-for-bit full hardware implementation Very ambitious Much of the system working Picture processor Controller interface Toy application Bitten by … Verification Unit interfacing Team dynamics
Graphics Processor OpenGL GPU GPU on board Application sends OpenGL calls to board via ethernet Rendered a colored triangle Ethernet OpenGL Instruction Bitten by … software Fetch Unit BRAM code Board capacity Time Frame buffer Instruction BRAM Decoder Asking for help too late Triangle Coordinate Inexperience Rasterization Transformation Pipeline Pipeline VGA
Physics Processor Hardware physics processor Similar to Ageia design Board tracks objects Workstation handles game PPU working Only toy application Some issues with fitting design on board Bitten by … Team dynamics Team dynamics Team dynamics
Networked Tetris Multi-player Tetris 2 players/board Networked boards Most of game in hardware Working game Score Networking Bitten by … Not too ambitious
Quake Port of 1996 PC game Quake 3D first person shooter Open-sourced in 1999 Running entirely on FPGA Full input, sound, video, and networking support Hardware 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 library Did not automate song input
2008 Projects Descent (i.e. Vertigo) NanoSeige “Xilroids” i.e. Asteroids with a Wii NES 17 18-545: FALL 2016
Descent 3D first-person shooter 6 degree-of-freedom play Released on 1995 Source released in 1997 Ported PhysicsFS and SDL libraries Networking and music never completed Otherwise complete game Success due to: Reading Pentium Chronicles
NanoSeige Designed own game Wanted massively parallel hardware accelerated game Something of an abstract real- time strategy game Worked hard all semester, declared victory with whatever they had built Done in by teamwork didn’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 variant Used Wiimote for user input Done in by Decision to reset
NES (2008) NES Clone Full hardware implementation Controller peripherals “Virtual” cartridge interface Used ROM images of Bomberman, Tetris Sound limited to single channel Successful because Worked to personal strengths Relentless 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 time Vertex 2 Pro, Vertex 5-LX, Vertex 5-FX
Duck Hunt w/WiiMote Simple “point -n- shoot” game Using WiiMote, initially via straight connection “Settled” for connect via separate laptop running java program to convert Programmed game “from scratch” as a clone Moderately successful Flexible process Stayed with Vertex 2 Pro board
GameBoy 8-bit handheld console from 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 4 But 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 limitations Fixed-function pipeline 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 97 Code 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 chips Include 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 issues Willingness to be behind schedule
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 29 18-545: FALL 2016
OpenGL Accelerator 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 30 18-545: FALL 2016
Super NES 16-bit console from early 90s Hunted down CPU Verilog from the company that originally manufactured it Cool! Very legal Done in by Integration! 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 by Teamwork Teamwork Relying on past work
Vertex Squared Designed their own ARM-like CPU Integrated with 18-447 Multi-bus, not particularly fast Then got a small musical rhythm game running on it Success due to: Lots of hard work Smart use of tools 33 18-545: FALL 2016
XilDoom Quintessential FPS 1993! More popular than Windows '95 Open sourced in 97 Used Chocolate Doom Reasonably successful No networking or sound
2011 Projects Duck Hunt Haxorus Sidekick Commodore 64 35 18-545: FALL 2016
Duck Hunt Yet another version of the classic game Shoot at ducks as they fly in somewhat random patterns Custom MIPS CPU Custom Unix-like kernel Custom Duck Hunt source (C) Done in by: Integration Team dynamics -- one member went AWOL. Nobody noticed Didn’t hold each other accountable for missing deadlines
Haxorus Music visualizer Input from iPod, output to speaker Render shapes to video Kinect to detect control gestures Change colors, shapes, etc Reasons for Success Not entirely certain, “surprise success” Somehow overcame lots of team dynamics issues HTTP://WWW.YOUTUBE.COM/WATCH?V=RR-UGS8EPH0&FEATURE=YOUTU.BE
Sidekick At start: Image cross-correlation algorithm for Lunar X Match images to lunar maps At end: PCIE peripheral for image processing Move data quickly to FPGA for acceleration Done in by Relying on grad student code Saved by Timely pivot to build something useful
Commodore 64 Creative “4th path” to building a video game -- build the microcomputer Commodore 64 is the most popular microcomputer in history Wrote each of the 3 main chips in Verilog/VHDL 6510 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 success Did everything right
Recommend
More recommend