Stephen A. Edwards Columbia University Crown
  Embedded System Design
Summer 2005, NCTU

General Information

Lectures are from 13:30 to 15:00 in EE 113. Labs are from 15:00 to 16:30 in EE 616. The lab will be open after 16:30, but the instructor and lab assistants may not be available off-hours.

Do the labs in groups of three. Project groups should be three students or more.


Name Email
Prof. Stephen A. Edwards
Hsueh-Chih Yang
Chih-Way Wu


Embedded system architecture and programming. I/O, analog and digital interfacing, and peripherals. Weekly laboratory sessions and term project on design of a microprocessor-based embedded system including at least one custom peripheral. Knowledge of C programming and digital logic required. Lab required.

The goal of this class is to introduce you to issues in hardware/software interfacing, practical microprocessor-based system design issues such as bus protocols and device drivers, and practical digital hardware design using modern logic synthesis tools. You will put all of this to use in the lab where you will be given the opportunity to implement, using a combination of C and the VHDL hardware description langauge, a small embedded system.

The focus of the course will be a lab, which will be in two parts. During the first half of the class, teams will each implement the same ``canned'' project designed by the instructor and be given substantial guidance. This project is meant as an opportunity for you to learn the development tools and basic concepts. During the second half, each team will design and implement a comparable project of their own with guidance from the instructor and TAs.

Possible second projects include:


You must understand digital logic design and C programming. Prior experience with hardware description languages, FPGAs, or embedded processors is not required.



Date Lecture Notes Due
August 1 Embedded Systems pdf pdf
August 2 Low-Level C Programming pdf pdf Lab 1pdf .zip
August 3 HW/SW Interfaces pdf pdf
August 4 VHDL 1 pdf pdf Lab 2pdf .zip
August 5 Typhoon Day
August 8 VHDL 2
August 9 Video pdf pdf Lab 3pdf .zip
August 10 Video Controller 1 pdf pdf Project Proposal
August 11 Video Controller 2 Lab 4pdf .zip
August 12 The OPB pdf pdf
August 15 Serial Communication pdf pdf Lab 5pdf .zip
August 16 Memory pdf pdf
August 17 Processors, FPGAs, and ASICs pdf pdf
August 18 Hardware/software tradeoffs pdf pdf
August 19 (no lecture) 75% Demo
August 22 The PS/2 Keyboard pdf pdf .zip
August 23 Sprite Graphics pdf pdf
August 24 Project Demonstrations

The Project

You'll perform a design-it-yourself project in the second half of the class. The deliverables are:

  1. A short project proposal describing in broad terms what you plan to build and how you plan to build it
  2. An early demo of your project. It should be roughly 75% working and be showing signs of life. This is to make sure you are making reasonable forward progress.
  3. A presentation on your project to me

Project groups should be two or three students.


Chess: Electronic chess game
Proposal    PDF fileFinal Report    ZIP fileProject Files   
Sheng-Kuo Lu (呂聖國)     Chun Huang (黃俊)     Jang-Yuan Kao (高丈淵)    
Car: Crazy Car Video Game
Proposal    PDF fileFinal Report    ZIP fileProject Files   
Chien-Chih Liu (劉建志)     Ying-Der Lee (李盈德)    
Tetris: Tetris Video Game
Proposal    PDF fileFinal Report    ZIP fileProject Files   
Conrad Chih-Kang Lin (林志康)     David Sun (孫樹元)    
BattleSnake: Battle Snake Video Game
Proposal    PDF fileFinal Report    ZIP fileProject Files   
Ming-Ju Wu (吳明儒)     Way-Cheng Sun (孫偉程)    
Sokoban: Sokoban-like Video Game
Proposal    ZIP fileProject Files   
Shih-Chun Yu (施俊宇)     Lu-Yi Chi (呂亦琦)    
JPEG: JPEG Photo Viewer
Proposal    ZIP fileProject Files   
Sean Tang (唐學用)     Steve Chiao (喬廣道)     Steel Yang (楊忠傑)     Tzung-Han Tsai (蔡宗翰)    

Xilinx Documentation

OPB documents

Digilent Board Manual and Peripheral Datasheets

Nintendo NES Information


Valid HTML 4.01 Valid CSS