Stephen A. Edwards Columbia University Crown
  CSEE 4840
Embedded System Design
Spring 2005

Highlights

Don't miss this year's highlights

General Information

Class meets Tuesdays and Thursdays, 11:00 AM - 12:15 PM in Room 209 Havemeyer. This is a change from our initial room.

Mudd 1235 is the lab, which is filled with Linux workstations and FPGA boards. Registered students will receive accounts on these machines and 24-hour badge access to this room.

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

Staff

Name Email Office hours Location
Prof. Stephen A. Edwards sedwards@cs.columbia.edu W, Th 3-4 462 CSB
Marcio Buss marcio@cs.columbia.edu 4-6 M, 6-8 W 1235 Mudd

Overview

Prerequisites: ELEN E3910 or COMS W3843 or the equivalent. 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.

This is a modernization of ELEN E3940y, Microprocessor Laboratory. Its goal 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.

This course is designed to take over the role ELEN 3940 once played in the EE and Computer Engineering curriculum, i.e., as a capstone class in which students will integrate their knowledge of digital logic, programming, and system design to produce a real system. It is intended to complement ELEN 4340, Computer Hardware Design. 4840 will focus more on system-design issues and include a large section on hardware/software integration. Students in 4840 will use processors and peripherals as building blocks. By contrast, students in 4340 have logic gates as building blocks.

Possible second projects include:

Prerequisites

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

Tutorials

Schedule

Date Lecture Notes Due
January 18 Embedded Systems pdf pdf
January 20 Low-Level C Programming pdf pdf
January 25 HW/SW Interfaces pdf pdf
January 27 Processors, FPGAs, and ASICs pdf pdf
February 1 Serial Communication pdf pdf
February 3 (no lecture) Lab 1pdf .tar.gz
February 8 VHDL 1 pdf pdf
February 10 VHDL 2 Lab 2pdf .tar.gz
February 15 VHDL 3
February 17 Video pdf pdf Lab 3pdf .tar.gz
February 22 Video Controller 1 pdf pdf Proposal
February 24 Video Controller 2 Lab 4pdf .tar.gz
March 1 Memory pdf pdf
March 3 The OPB pdf pdf Lab 5pdf .tar.gz
Midterm out
March 8 (no lecture)
March 10 (no lecture) Midterm Due
March 15 Spring Break
March 17 Spring Break
March 22
March 24
March 29 Lab 6pdf .tar.gz
March 31 Design
April 5
April 7 Guest Lecture
April 12
April 14 75% Demo
April 19
April 21
April 26
April 28
May 10 Final Presentations Project

The Project

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

  1. A short project proposal describing in broad terms what you plan to build and how you plan to build it
  2. A detailed project design describing in detail the architecture of your project, both hardware and software. This should include block diagrams, memory maps, lists of registers: everything someone else would need to understand your design. You should have done some preliminary implementation work by this point to validate your design.
  3. 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.
  4. A presentation on your project to the class
  5. A final project report

Project groups should be three students or more.

The Project Report

This is a critical part of the project and will be a substantial fraction of the grade.

Include the following sections:

  1. An overview of your project: a revised version of your project proposal.
  2. The detailed project design documents: a revised version of the project design.
  3. A section listing who did what and what lessons you learned and advice for future projects
  4. Complete listings of every file you wrote for the project. Include C source, VHDL source, and things such as .mhs files. Don't include any file that was generated automatically.

Include all of this in a single .pdf file (don't print it out) and email it to me on the due date.

Also create a .tar.gz file (see the online documentation for the `tar' program to see how to create such a file. Briefly, create a file called `myfile' with the names of all the files you want to include in the archive and run tar zcf project.tar.gz `cat myfiles` to create the archive.) that just includes the files necessary to build your project, such as I did for the labs. Also email this to me by the due date.

Projects

Notator: Human-to-Music converter (Marcio)
Proposal    PDF fileDesign    PDF fileFinal Report    Compressed Tar ArchiveProject Files   
James Rishe    Andrew Melkonian    Narashiman Chakravarthy   
Shifter: Automatic Shifting for SAE Racer (Stephen)
Proposal    PDF fileDesign    PDF fileFinal Report    Compressed Tar ArchiveProject Files   
Ronald Alleyne    Wade Brzozowski    Joseph Carey   
Pitch: Real-time Pitch Detector (Marcio)
Proposal    PDF fileDesign    PDF fileFinal Report    Compressed Tar ArchiveProject Files   
Koohee Lee    Gary Lo    Guy Sivan   
Speech: Speech Synthesizer (Marcio)
Proposal    PDF fileDesign    PDF fileFinal Report    Compressed Tar ArchiveProject Files   
Aisha Ahmad    Akshay Deoras    Girish Gupta   
Scrabble: Super Scrabble Timer (Stephen)
Proposal    PDF fileDesign    PDF fileFinal Report    Compressed Tar ArchiveProject Files   
Nathan Hale    Gaurav Singal    Andrew DiMichele    Vishal Govil    Hubert Lin   
Scorched: Scorched Earth XESS (Marcio)
Proposal    PDF fileDesign    PDF fileFinal Report    Compressed Tar ArchiveProject Files   
Michael Sumulong    Jeremy Chou    Dennis Chua   
Radio: Internet radio broadcaster (Stephen)
Proposal    PDF fileDesign    PDF fileFinal Report    Compressed Tar ArchiveProject Files   
Avraham Shinnar    Benjamin Dweck    Oliver Irwin    Sean White   
RTProc: Real-Time microprocessor (Stephen)
Proposal    PDF fileDesign    PDF fileFinal Report    Compressed Tar ArchiveProject Files   
Julio Rios    Sharmila Gupta    Emil Nunez   
USBMedia: USB Media Center with a Remote Control (Marcio)
Proposal    PDF fileFinal Report   
Philip Li    Pamela Lee    Yanjie Ma    Alexander Kuo    Neeraj Bhatia    Michael Chuen   
MAYD: MAYD Ain't Yet Developed (Marcio)
Proposal    PDF fileDesign    PDF fileFinal Report    Compressed Tar ArchiveProject Files   
Surag Mungekar    Vladislav Adzic    George Yeboah    Nabeel Daulah   
PicFrame: Digital Picture Frame (Stephen)
Proposal    PDF fileDesign    PDF fileFinal Report    Compressed Tar ArchiveProject Files   
Samuel Toepke    Nenad Uzunovic   
Telephone: Voice-over-IP SIP Telephone (Stephen)
Proposal    PDF fileDesign    PDF fileFinal Report    Compressed Tar ArchiveProject Files   
Rajkumar Bakhru    Colin Gilboy    Sam Jenning   
Guitar: Guitar Effect Synthesizer (Marcio)
Proposal    PDF fileDesign    PDF fileFinal Report    Compressed Tar ArchiveProject Files   
JunHao Ip    Jason Cardillo    Chih-Chieh Lin   

Xilinx Documentation

OPB documents

XSB Manual and Peripheral Datasheets

Links

Class Policies

Grading 30% Labs
50% Project
20% Midterm
Late Policy Zero credit for anything handed in after it is due without explicit approval of the instructor.
Collaboration Policy You may collaborate with your group members on the labs, but not with other groups. You may collaborate with anybody on the project, but must cite sources if you use code. You may not collaborate on the midterm.

Valid HTML 4.01 Valid CSS