400 likes | 514 Views
Team DC-HSBA. Robert Benson David Hover Jonathan Tate Paul Niewoonder. ROBERT BENSON. Primary Goal. Embedded Software Graphics Accelerator Shader Unit Media-Centric Co-Processor High Floating-Point Computation Performance Graphical Computation Complete Software Graphics Pipeline.
E N D
Team DC-HSBA Robert Benson David Hover Jonathan Tate Paul Niewoonder
Primary Goal • Embedded Software Graphics Accelerator • Shader Unit • Media-Centric Co-Processor • High Floating-Point Computation Performance • Graphical Computation • Complete Software Graphics Pipeline
Hardware • Custom Multi-FPGA Development Board • Cyclone III FPGAs • Outputs • VGA Port • LEDs • Inputs • 8-Directional Joysticks • JTAG Programming Port
Hardware Details • Abdomen • Cyclone III (EP3C16Q240C8) • DAC (ADV7123) • Serial Programming Device (EPCS) • JTAG Configuration Port • Leg • Cyclone III (EP3C25E144C7) • DDR SDRAM (512 MBit) • Ports for GPIO
Hardware Details • I/O Widgets • 8 Directional Joystick • RGB LEDs • Communication Methods • Memory – DDR SSTL_2 • Inter FPGA - LVDS
Software • User Application Software • Main User Interface • Benchmarks • Demos • Tetrisphere Clone • Graphics Pipeline Software • Assembler
Main Menu See attached
Benchmarks & Demos • Benchmarks • Matrix Multiplications • Matrix-Vector Multiplications • Transcendental Function Calculation • Demos • Racecar • Bouncing Blob • Buffalo • Beach
Software Implementation • “Game Loop” • Poll User Input • Update “Game” State • Redraw Environment • OpenDC API • Similar To OpenGL • Smaller Subset
Example OpenDC Functions • State Manipulation • dcEnable() • dcClear() • dcFinish() • Matrix Manipulation • dcMatrixMode() • dcLoadIdentity() • Parameter Manipulation • dcBindShader() • dcBindTexture() • dcUniform1f()
Graphics Pipeline Software • Hardware to Software Abstraction
The Assembler - Flex • Matches expressions • Literal or regular expressions • Can perform any action after a match • The main task is to turn matches into tokens for the upcoming parser
Flex (Cont.) Our Lexer has the following properties • Matches all valid assembly commands • Allows for comments, i.e, anything after a semicolon is ignored • Ignores all white space • Is able to distinguish between arguments and labels.
The Assembler – Bison • Invoked after the lexer • Sends tokens through an annotated context-free grammar. • A context-free grammar, for example, has the form of: stmts : stmt stmts | stmt ; • This is one of many definitions. • This stores data as it parses
Bison (Cont.) The parser is general, all commands are treated equally • Validity is checked per completed command • After completion, the parser passes the finished data to be converted into a bitstream
System Logic Design • Prebuilt • SOPC Builder • Memory Controllers • NIOS II Processor • Custom • Caches • LVDS to Avalon Interconnect Bridge • Shader Unit
Arithmetic – Multiply-Add Multiply Unit
Arithmetic – Multiply-Add Add Unit
Arithmetic – Inverse Square Root float InvSqrt(float x) { float xhalf = 0.5f * x; int i = *(int*)&x; i = 0x5f3759d5 - (i >> 1); x = *(float*)&i; x = x*(1.5f - xhalf*x*x); return x; }
Arithmetic – Divider • Chained subtract and bit shift • Requires many LUTs • Full divide support would take up most of the available board space • Limited divide support (1 divide per sixteen cycles)
Case Design • Plexiglas substrate • Ventilation holes • Fan mount • Joystick control mount • VGA output port
Milestone Deliverables • Milestone 1 • Revision 1 of Lobster FPGA Board • Iteration 1 of the Software • Milestone 2 • Lobster FPGA Board • Iteration 3 of the Software • All Logic • Capstone Expo • Crab FPGA Board
Division of Labor • Jonathan Tate • System Logic Design • Shader Programs • Graphics Pipeline Control Software • David Hover • Assembler • User Application Software • Robert Benson • Board Design • User Application Software • Graphics Pipeline Control Software • Paul Niewoonder • Arithmetic Logic Design • Case