CS4803PGC/CS8803PGC Design and Programming of Game Consoles

Spring 2012



[Home][Course overview][Schedule][Reading][Assignments]

Course Description
In this course, we will explore game console architectures, and also GPU architectures. This course is a project-based course in which you will learn GPU architectures and graphics/GPGPU programming by actually implementing a subset of graphics hardware features using a FPGA (Field-Programmable Gate Array) board, together with some applications that will run on this processor. You will also program one of the game consoles (Nintendo DS) to understand the detail of the hardware. The course will provide background knowledge of hardware graphics processors and game console architectures. It will also provide understanding of architecture, system understanding, assembly programming, and programming interactions. Students will also learn OpenGL programming to learn programming models for GPUs.
Topics:
- ARM processor programming
- I/O, interrupts, frame buffers
- GPU architectures
- 2D/3D Graphics
- FPGA programming, hardware description language
- Case study of Game console architectures (Xbox360, playstation3, etc.)

Pre-requisite:
CS2200 or an equivalent course
Good knowledge of C/C++ programming
Graphics courses are not required. CS3220 (Processor Design) is also not required to take this course.

Textbooks: There is no required textbook for the course, but you will need to purchase your own Altera DE1 board. With the academic discount, these boards cost $125, and they can be purchased directly from Altera .
Course Home Pages: http://www.cc.gatech.edu/~hyesoon/spr12/index.html

Grading for CS4803PGC
Grading for CS8803PGC
Final grade algorithm
  • Assignments: All the assignments are 2-student projects. However, each student should submit his/her own report. The report Collaboration with other students other than the project partner is prohibited. Submitting any work other than you and your partner's own is a violating of the Academic Honor Code. If you are not sure what you can discuss or not, please contact the instructor.

  • Assignment late policy: All assignments are due on the day specified by the assignment description and posted online. Typical due date is Friday. To account for short-term unexpected events like computer crashes, submission problems, and clock skew, we will allow 5:55 hours of slack and accept projects until exactly (due time + 5 hr 55 m).
    Assignments except the last assignment received after the due date will lose 5% of the grade. Many assignments are built on the previous assignments. Allowing late submissions encourages you to complete all the assignments.
  • 6th assignment The 6th assignment is performance optimizations of your hardware design that you have built during earlier assignments. The target application will be provided much earlier in the semester. FPS (frame per second) will be the metric to measure the performance. This final competition will on in the class.

  • Assignment submission rules: You must follow the submission guidelines specified in the assignment description. We will use T-squares. Wrong file names, broken file formats, missing files will lose 5% of grade. For reports, you must turn in a hardcopy of your report during the class time.

  • Exams: Exam-I covers the basic understanding of the course and the assignments. Exam-II for CS4803 students can be waived if you complete all the first 5 assignments with the average 90% by two-day prior to the Exam-II date. Absolutely no collaboration at all. Copying or receiving any other information from another person or their exam, with or without their consent, is unethical and unacceptable. Cheating is a direct violation of the GT Academic Honor Code and will be dealt with accordingly.


  • Regrades: Regrades are obtained by submitting a written explanation to the instructor within a week of when the work was returned in class. Regrades will only be discussed after submitting the work in this manner. In order for a test to be re-graded, you must neatly state in writing the reason that you would like your test to be re-graded. If a test is submitted for a re-grade, I have the right to re-grade the entire test-so keep it mind that it is possible to lose additional points. Therefore, it is strongly recommended that you do not ask for a re-grade unless you have substantial reason to believe that I made a mistake when originally grading the test.

  • Student Honor Code: Zero tolerance toward a violation of the student honor code. Any misbehavior will be reported to Dean of Students directly.

  • Lab Lectures and Introductory Tasks Policies : Some classes will be lab lectures, where students will do actual programming during class. Especially when we start new programming assignments, such as Nintendo DS, OpenGL, and FPGA assignments, students will complete the introductory tasks during the class. Since students have different skills, if you already have experiences of any of these lab day programming, you can show your previous work and get class participation credits for the introductory tasks. Those introductory tasks will not be graded separately. If you show up and complete or partially complete the introductory tasks during the class, you will receive the full credits. These credits will count for class participation.

  • Pop Quizzes and Class Participation Grading Policies : There will be 2-3 pop quizzes in the class. Class participation grading includes these pop quizzes, participation of introductory tasks on lab days, active class participation such as asking/answering questions, and active on-line activities in group mailing lists. Any other activities that will help other students in the class learn the class material will also counter for class participation points.

  • CS8803 Students: CS 8803 students will some more work addition to CS4803 students.
  • Class Room Policies: No cell phones and no computers (except lab lectures) during the class time.

  • Office Hours: Please respect the office hours of the instructor by planning ahead. Other times are possible by appointments.

  • Newsgroup: It is your responsibility to check the newsgroup. Discussions in the newsgroup are also considered as class discussions.