l1 past projects
play

L1: PAST PROJECTS 18-545: ADVANCED DIGITAL DESIGN PROJECT FALL 2016 - PowerPoint PPT Presentation

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


  1. L1: PAST PROJECTS 18-545: ADVANCED DIGITAL DESIGN PROJECT FALL 2016 BRANDON LUCIA

  2. 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

  3. 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

  4. 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

  5. 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

  6. 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

  7. VR Pacman 3D Pacman OpenGL on workstation Board handled game VR helmet display Viewpoint tracking Not stereoscopic Full-body swivel control Hacked mouse + deskchair

  8. Every Extend Every Extend clone Self-contained Playstation 2 controller Parallel port interface Most complete game of 06 High score Game modes Bosses

  9. 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

  10. 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

  11. 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

  12. 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

  13. Networked Tetris Multi-player Tetris 2 players/board Networked boards Most of game in hardware Working game Score Networking Bitten by … Not too ambitious

  14. 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

  15. 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

  16. 2008 Projects Descent (i.e. Vertigo) NanoSeige “Xilroids” i.e. Asteroids with a Wii NES 17 18-545: FALL 2016

  17. 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

  18. 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

  19. 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

  20. 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

  21. 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

  22. 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

  23. 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

  24. 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

  25. 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

  26. 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

  27. 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

  28. 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

  29. 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

  30. 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

  31. SSD (Again) Didn't work 'nuff said Done in by Teamwork Teamwork Relying on past work

  32. 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

  33. XilDoom Quintessential FPS 1993! More popular than Windows '95 Open sourced in 97 Used Chocolate Doom Reasonably successful No networking or sound

  34. 2011 Projects Duck Hunt Haxorus Sidekick Commodore 64 35 18-545: FALL 2016

  35. 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

  36. 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

  37. 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

  38. 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