Giter VIP home page Giter VIP logo

xddxdd / zjui-ece385-final Goto Github PK

View Code? Open in Web Editor NEW
13.0 2.0 2.0 51.79 MB

ECE385 Final Project - Raiden Shooter Game - at ZJU-UIUC Institute; w/ 16-bit VGA, Sound and Ethernet

Home Page: https://lantian.pub/en/article/modify-computer/cyclone-iv-fpga-development-bugs-resolve.lantian

Mathematica 0.01% Scheme 0.01% C 85.22% C++ 0.16% Assembly 0.43% Makefile 0.54% Shell 0.02% GDB 0.01% CMake 0.03% Batchfile 0.01% Tcl 0.05% SystemVerilog 3.31% Verilog 10.00% VHDL 0.03% Roff 0.18%
nios-ii zju-uiuc-institute uiuc vga sound

zjui-ece385-final's Introduction

ECE385 Final Project - Raiden Game with FPGA

WARNING

You SHOULD NOT copy these code into your own ECE 385 project without proper citation. Doing this is a violation of academic integrity. You have been warned.

I do not own the copyright to artworks in this project. They are downloaded from websites that provide these artworks for free.

Overview

This is the final project for my ECE 385 course taken at ZJU-UIUC Institute (same as the ECE 385 in UIUC). The project consists of circuitry on a DE2-115 board and softwares running on NIOS-II soft processor.

This project is completed together by me and my teammate in this course.

A more detailed writeup is at https://lantian.pub/en/article/modify-computer/cyclone-iv-fpga-development-bugs-resolve.lantian

Features

  • 16-bit color depth VGA framebuffer stored on SRAM
    • Based on a self-made SRAM multiplexer
      • SRAM runs at double clock speed to emulate dual-port access
      • Simultaneous NIOS-II CPU and VGA driver access
    • Y offset support (for fast scrolling)
    • English and Chinese character display
      • Uses UTF-8 encoding, can be easily extended
  • Up to 8 sprites based on dual-port on chip memory
    • Dimensions and position controlled by registers connected to Avalon-MM bus
  • Up to 56 bullets
    • Position, radius and color controlled by registers connected to Avalon-MM bus
  • Sound support based on WM8731 chip
    • Based on WM8731 driver by a former student, provided as supplementary material in the course
    • Timer & interrupt based implementation, can do simple sound mixing
    • Nearly no impact on performance
  • Network support
  • USB support
    • Separate NIOS-II processor for USB processing
      • Communicate with main processor via dual-port on chip memory
      • Allow separate reset (to workaround buggy keyboards)

How to Run

  1. Compile the SystemVerilog code and program it onto a DE2-115 development board.
  2. Compile the C code in ECE385_usb_src folder and program it onto the second NIOS-II core in the circuit. That is the CPU for USB communication.
  3. Plug in the keyboard, press the second button to the right to reset the USB CPU, until the keyboard works (console prints out all the way to step 9).
  4. Compile the C code in ECE385_src folder and program it onto the first NIOS-II core. That is the CPU for main game logic.
  5. Plug in VGA, Ethernet and sound cable and start playing.

zjui-ece385-final's People

Contributors

xddxdd avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

Forkers

wheltz httpsgithu

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.