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

l1 past projects
SMART_READER_LITE
LIVE PREVIEW

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


slide-1
SLIDE 1

18-545: ADVANCED DIGITAL DESIGN PROJECT FALL 2016 BRANDON LUCIA

L1: PAST PROJECTS

slide-2
SLIDE 2

18-545: FALL 2016

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

slide-3
SLIDE 3

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

slide-4
SLIDE 4

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

slide-5
SLIDE 5

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

slide-6
SLIDE 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

slide-7
SLIDE 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

slide-8
SLIDE 8

Every Extend

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

slide-9
SLIDE 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

slide-10
SLIDE 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

slide-11
SLIDE 11

Graphics Processor

OpenGL GPU GPU on board Application sends OpenGL calls to board via ethernet Rendered a colored triangle Bitten by … Board capacity Time Asking for help too late Inexperience

Instruction BRAM Fetch Unit Instruction Decoder Coordinate Transformation Pipeline Triangle Rasterization Pipeline OpenGL software code Frame buffer BRAM Ethernet VGA

slide-12
SLIDE 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

  • n board

Bitten by … Team dynamics Team dynamics Team dynamics

slide-13
SLIDE 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

slide-14
SLIDE 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

slide-15
SLIDE 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

slide-16
SLIDE 16

18-545: FALL 2016

2008 Projects

Descent (i.e. Vertigo) NanoSeige “Xilroids” i.e. Asteroids with a Wii NES

17

slide-17
SLIDE 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

slide-18
SLIDE 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

slide-19
SLIDE 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

slide-20
SLIDE 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

slide-21
SLIDE 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

slide-22
SLIDE 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

slide-23
SLIDE 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

slide-24
SLIDE 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

slide-25
SLIDE 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

slide-26
SLIDE 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

slide-27
SLIDE 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

slide-28
SLIDE 28

18-545: FALL 2016

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

slide-29
SLIDE 29

18-545: FALL 2016

OpenGL Accelerator

30

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

slide-30
SLIDE 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

slide-31
SLIDE 31

SSD (Again)

Didn't work 'nuff said Done in by Teamwork Teamwork Relying on past work

slide-32
SLIDE 32

18-545: FALL 2016

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

slide-33
SLIDE 33

XilDoom

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

slide-34
SLIDE 34

18-545: FALL 2016

2011 Projects

Duck Hunt Haxorus Sidekick Commodore 64

35

slide-35
SLIDE 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

slide-36
SLIDE 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

slide-37
SLIDE 37

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

Sidekick

slide-38
SLIDE 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

slide-39
SLIDE 39

18-545: FALL 2016

2012 Projects

Arcade (1942) Defender (Apple IIe) Dysentery (Apple IIgs) Gameboy Color Sega Genesis Ray Tracer

40

slide-40
SLIDE 40

18-545: FALL 2016

Arcade (1942)

Vertically scrolling shooter Fly a P38 during the Pacific WW2 Sound from 1943 Stunning success! Tuma Award Success Due to Good engineering decisions Finished early and polished

41

slide-41
SLIDE 41

18-545: FALL 2016

Apple IIe (Team Defender)

6502 based PC from early 80s Bailed on implementation of 6502 Used open design instead Goal: Floppy disk drive, unrealized Completed: Basic interpreter

42

slide-42
SLIDE 42

18-545: FALL 2016

Apple IIgs (Dysentery)

Expanded version of Apple II GS == "graphics and sound" 65C816 CPU (16-bit) With "Mega II" chip for emulation mode Done in by Spent too much time on disk drive subsystem

43

slide-43
SLIDE 43

18-545: FALL 2016

Gameboy Color (Team FPGBC)

Another attempt (F09) Complex architecture Semi-successful Carefully designed game dodged memory problems and didn't use buggy instructions Done in by: Insufficient debug skills

44

slide-44
SLIDE 44

18-545: FALL 2016

Sega Genesis

16-bit console, early 90s Successful project Good sound, controller interface Cartridge or ROM from flash Success due to: Hard work

45

slide-45
SLIDE 45

18-545: FALL 2016

Ray Tracer

Own design for ray tracer Real time response to camera reposition Serial port loading of a scene (XMODEM) K-D tree describes a scene "Research" style project Success due to: Hard work Hard work Hard work

46

slide-46
SLIDE 46

18-545: FALL 2016

2013 Projects

AstroTeam Donkey Kong Game Boy Playstation Super NES

47

slide-47
SLIDE 47

AstroTeam

Research project Compute co-processor for "Visual Odometry" calculations PCI interface Lots of math Done in by: Schedule Timing issues Long synthesis runs

slide-48
SLIDE 48

18-545: FALL 2016

Donkey Kong

Very successful arcade game from 1981 2 person team Used (but validated thoroughly) OpenCores.com Z80 Used Arcade panel Success due to: 2 person team Appropriately scoped project

49

slide-49
SLIDE 49

18-545: FALL 2016

Game Boy (Again)

Original Game Boy (Greyscale graphics version) GPU doesn't support sprites

  • Cart. conn only supports Tetris

Sound works Link cable works sometimes Success due to: Hard work

50

slide-50
SLIDE 50

18-545: FALL 2016

Playstation

Very ambitious goal: Playstation with all peripherals (like CD Drive) Troubles with HDMI on VC707 board No good hardware interface docs Pivot: Build a GPU on Altera DE2-115 board Success due to: Painting the fence

51

slide-51
SLIDE 51

18-545: FALL 2016

Super NES

Revisit of F10 project Integration trouble CPU ⇔ GPU timing problems Were able to prove that components were working Sounds played from CPU GPU displays a given frame buffer Failure due to: Took time to get model from vendor Had to learn VHDL

52

slide-52
SLIDE 52

18-545: FALL 2016

2014 Projects

Atari 5200 Logic Analyzer Digital Synth Gameboy Color IBM PC N64

53

slide-53
SLIDE 53

Atari 5200

Very early console from Atari Cartridge Connector

Complex, worked well

6502 CPU (common) Success due to: Decision to implement everything themselves Complete w/ case

slide-54
SLIDE 54

Digital Logic Analyzer

Sample 32 channels at 100 MHz

SPI, I2C, UART, XMEM

Zynq 706 Board – Ran Linux on the ARM w/ webserver Node.js for UI Lots of custom logic: sampling, analysis, routing, etc Failed to launch due to: 4-Person Team Uncooperative Teammate

slide-55
SLIDE 55

Digital Synth

Digital Synthesizer MIDI from keyboard Transform basic wave according to sliders/knobs Required basic DSP: ADSR env., Filter, etc Failed to Launch: Too much time on MIDI interface, not starting early enough on DSP

slide-56
SLIDE 56

Gameboy Color

YAGBA (Yet Another Gameboy Attempt) Reused prior years’ stuff Cartridges’ contents came from

  • nboard Flash

Got ROMs from several games working (including Pokemon Crystal) Success due to: Overcame sluggish start Used ChipScope to debug

slide-57
SLIDE 57

IBM PC (5150)

The iconic personal computer Motherboard implementation, chip by chip Wrote a few BASIC games Success due to: One teammate’s unsuccessful efforts were compartmentalized and discardable Careful with schematics

slide-58
SLIDE 58

N64

Complex console from 1996 Group thought it was possible w/o the graphics chip Even with some boostrapping code, rough start: ran into bugs Hasty version of Tron for Demo Day Failed to launch due to: 4 person team “eyes bigger than their stomachs”

slide-59
SLIDE 59

18-545: FALL 2016

2015 Projects

Atari 7800 BattleZone Ethernet Packet Analyzer Centipede / Marble Madness MorphCore Neural Network Digit Classification Pacman Visual Odometry

60

slide-60
SLIDE 60

18-545: FALL 2016

Ethernet Packet Analyzer

Ambitious attempt to build a packet analyzer/filter Got a late start on key parts of the network stack Learned that Ethernet on FPGAs is still primitive and not well documented Failed to launch due to Team dynamics Very poor adherence to a schedule Overly ambitious project with too much ambiguity

slide-61
SLIDE 61

18-545: FALL 2016

Centipede (formerly Marble Madness)

Both are classic arcade cabinets built

  • n approximately the same hardware

Cool, yet simple input peripheral (trackball) Sound called for external FM synthesis implementation Failed to launch due to: One team member trying to do the whole thing alone Poor coordination and scheduling Surprise complexity (i.e., around sound)

slide-62
SLIDE 62

18-545: FALL 2016

Battlezone

Go play it Met the challenge of a poorly documented, partial schematic for the vector graphics unit Succeeded due to: Tireless debugging Team of mixed disciplines Tireless debugging Very complete build, w/ full arcade cabinet

slide-63
SLIDE 63

18-545: FALL 2016

MorphCore

Very cool research computer architectures Sometimes like a superscalar OoO core, sometimes like several, single-issue cores Challenged by the need to match real software interfaces (i.e., the Linux ABI) Mostly succeeded (though not complete) due to: Good planning Lots of testing (bugs in borrowed code!)

slide-64
SLIDE 64

18-545: FALL 2016

Neural Network Digit Classification

Camera collects video, frames classified by neural net as digit, predicted digit outputted to HDMI Very thorough demo, very cool system, even included training experiments. Success due to: Planning and software prototyping Appreciating the complexity and not underestimating the time for high complexity components Verilator – simulate as C++

slide-65
SLIDE 65

18-545: FALL 2016

Project Choice

Choose wisely Research available assets (code, manuals, schematics, etc) Dig through project reports from past projects Some are well-written and will provide advice

66