Stephen A. Edwards Columbia University Crown
  CSEE 4840
Embedded System Design
Spring 2004
Home
 Highlights
  Don't miss this year's highlights
 General Information
  Class meets Tuesdays and Thursdays, 11:00AM-12:15PM, 627 Mudd (this has changed)
  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.
  Why we needed a bigger classroom
  crowded classroom crowded classroom
 Staff
name email office hours location
Prof. Stephen Edwards sedwards@cs.columbia.edu T, Th 1-2 462 CSB
Cristian Soviani soviani@cs.columbia.edu W 2-4 1235 Mudd
(Office 472 CSB)
Josh Mackler jrm267@columbia.edu T 12:40-2:40 1235 Mudd
  Please begin email subject lines with CSEE 4840
 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:

  • Digital tone control (analog audio in/out, digital DSP operations)
  • Digital sound effects processor (e.g., echo, tone shifting)
  • Real-time spectrum analyzer (audio in, FFT, VGA display)
  • Simple video effects processor (e.g., solarization, inversion)
  • Speech synthesizer (analog audio out, hard-wired vocal tract models)
  • Digital picture frame (CF to JPEG decoder, VGA out)
  • Internet radio (digital audio in via Ethernet, analog audio out)
 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.
 Schedule
Date  Lecture  Notes  Reading  Due 
January 20   Embedded Systems   PDF File (for Acrobat) PDF File (for Acrobat)   Ch. 1, 11      
January 22   HW/SW Interfaces   PDF File (for Acrobat) PDF File (for Acrobat)   Ch. 3, 6      
January 27            
January 29   Processors, FPGAs, and ASICs   PDF File (for Acrobat) PDF File (for Acrobat)   Ch. 3, 10      
February 3   Hardware/software tradeoffs   PDF File (for Acrobat) PDF File (for Acrobat)   Ch. 7      
February 5   (class canceled)       Lab 1 PDF File (for Acrobat) Compressed archive    
February 10   Serial Communication   PDF File (for Acrobat) PDF File (for Acrobat)   Ch. 4, 6      
February 12   VHDL 1   PDF File (for Acrobat) PDF File (for Acrobat)   VHDL PDF File (for Acrobat)   Lab 2 PDF File (for Acrobat) Compressed archive    
February 17   VHDL 2          
February 19   VHDL 3       Lab 3 PDF File (for Acrobat) Compressed archive    
February 24   Video   PDF File (for Acrobat) PDF File (for Acrobat)     Proj. Proposal    
February 26   Memory   PDF File (for Acrobat) PDF File (for Acrobat)   Ch. 5   Lab 4 PDF File (for Acrobat) Compressed archive    
March 2   (class canceled)          
March 4         Lab 5 PDF File (for Acrobat) Compressed archive
Midterm Out  
 
March 9            
March 11         Midterm Due    
March 15-19   Spring Break  
March 23            
March 25         Lab 6 PDF File (for Acrobat)    
March 30            
April 1         Proj. Design    
April 6            
April 8            
April 13            
April 15         Demo    
April 20            
April 22            
April 27            
April 29            
May 10-11   Project Demos          
May 11   Project Reports and .tar.gz files Due          
 Required Text
  Cover of Embedded System Design Frank Vahid and Tony Givargis.
Embedded System Design: A Unified Hardware/Software Introduction.
Wiley, 2002.

Deliberately blurs the line between hardware and software implementation of embedded system components.

Near Columbia, this is available at Papyrus Booksellers at the corner of 114th and Broadway. Textbooks are downstairs.
 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
game: Pacman-like video game (Cristian)
PDF fileProposal    PDF fileDesign    PDF fileReport    .tar.gz fileProject Files
Dagna Harasim    Charles Elliot Finkel    David Soofian   
tamf: Thing-A-Ma-Flipper video effects generator (Stephen)
PDF fileProposal    PDF fileDesign    PDF fileReport    .tar.gz fileProject Files
Essa Farhat    Eveliza Herrera    Rhonda Jordan    Amon Wilkes   
muddrover: Lego Mindstorms Robot (Josh)
PDF fileProposal    PDF fileDesign    PDF fileReport    .tar.gz fileProject Files
Akshay Kumar    Justin Titi    Athena Ledakis    Ron Coleman    Josef Bryks Schenker   
effects: Audio Effects Processor (Stephen)
PDF fileProposal    PDF fileDesign    PDF fileReport    .tar.gz fileProject Files
Hanneul Han    Lowell Jacobson   
sde: Stereo Depth Extractor (Josh)
PDF fileProposal    PDF fileDesign    PDF fileReport    .tar.gz fileProject Files
Ang Cui    Jeng-Ming Hwang    Yen Yen Ooi    Kashif Siddiqui    Ting-Hsiang Wu   
mash: Karaoke Machine (Josh)
PDF fileProposal    PDF fileDesign    PDF fileReport    .tar.gz fileProject Files
William Dang    Chia-Hung Lee    Stephen Lee    Oleg Mironov    Zijian Zhou   
daq-t: Columbia Formula SAE Vehicle data acquisition and telemetry system (Stephen)
PDF fileProposal    PDF fileDesign    PDF fileReport    .tar.gz fileProject Files
Laxmikant Joshi    Sangeeta Das    Stephen Tarzia    Waclaw Aleksander Godycki   
obtrak: Video Object Tracker (Josh)
PDF fileProposal    PDF fileDesign    PDF fileReport    .tar.gz fileProject Files
Marcio Buss    Anuj Tushar Maheshwari   
xines: NES on Xilinx (Stephen)
PDF fileProposal    PDF fileDesign    PDF fileReport    .tar.gz fileProject Files
Neel Goyal    Jay Fernandez    William Blinn    David Coulthart    Jeffrey Lin   
manic: MP3 player (Cristian)
PDF fileProposal    PDF fileDesign    PDF fileReport    .tar.gz fileProject Files
Devyani Gupta    Prakash Gowri Shankor    Vijayarka Nandikonda   
terrormouse: MIDI Synthesizer (Stephen)
PDF fileProposal    PDF fileDesign    PDF fileReport    .tar.gz fileProject Files
Gabriel Glaser    Scott Arfin    Ron J Weiss   
icc: Interactive Chat Client (Josh)
PDF fileProposal    PDF fileDesign    PDF fileReport    .tar.gz fileProject Files
Bogdan Caprita    Salman Abdul Baset    Sharon Price   
pacman: Pacman game (Cristian)
PDF fileProposal    PDF fileDesign    PDF fileReport    .tar.gz fileProject Files
Ke Xu    Eric Li    Winston Chao   
nortsam: Real-Time Spectrum Analyzer (Stephen)
PDF fileProposal    PDF fileDesign    PDF fileReport    .tar.gz fileProject Files
Tecuan Flores    Joshua Mackler    Philip Coakley   
jay-cam: Internet-enabled Video Camera (Cristian)
PDF fileProposal    PDF fileDesign    PDF fileReport    .tar.gz fileProject Files
Yaniv Herbert Schiller    Avrum Tilman    Joshua Weinberg   
sound: Passive Sonar (Cristian)
PDF fileProposal    PDF fileDesign    PDF fileReport    .tar.gz fileProject Files
Eric Chang    Michael Ilardi    Jess Kaneshiro    Johnathan Steiner   
 Xilinx Documentation
  PDF File (for Acrobat) XST User Guide: Describes the XST synthesis system and how to write HDL code
  PDF File (for Acrobat) Development System Reference Guide: Describes the various tools that come after synthesis, e.g., place-and-route, technology mapping, and BitGen
  PDF File (for Acrobat) Libraries Guide: Describes built-in library components such as I/O pads and other primitives.
  PDF File (for Acrobat) Constraints Guide: Describes, among many other things, the .ucf file for specifying pin locations.
  PDF File (for Acrobat) Embedded System Tools Guide: describes platgen; libgen; and .mhs, .mpd, and .mss files
  PDF File (for Acrobat) OPB tutorial: How to interface to the Microblaze bus
  PDF File (for Acrobat) User Core Templates Reference Guide: How to write a new peripheral
  PDF File (for Acrobat) OPB UART Lite: The serial interface used with the Microblaze
  PDF File (for Acrobat) Processor IP User Guide: Describes the On-Chip Peripheral Bus (OPB) and peripherals, both hardware and software
  PDF File (for Acrobat) Xilinx Device Drivers Documentation: Describes, among others, the UART Lite
  PDF File (for Acrobat) MicroBlaze Processor Reference Guide: Describes the 32-bit softcore processor, its bus, instructions, and ABI
 XSB manual and peripheral datasheets
  PDF File (for Acrobat) XESS XSB-300E User's manual: schematics and pinouts of the board
  PDF File (for Acrobat) Xilinx Spartan-IIE 1.8V FPGA family datasheet
  PDF File (for Acrobat) Xilinx Spartan-IIE architecture datasheet
  PDF File (for Acrobat) Xilinx XC9500XL high-performance CPLD family datasheet
  PDF File (for Acrobat) Cypress CY22393 Three-PLL Serial-Programmable Flash-Programmable Clock Generator
  PDF File (for Acrobat) Atmel AT49LV040 512K X 8 flash memory
  PDF File (for Acrobat) Toshiba TC55V16256J 256K X 16 SRAM
  PDF File (for Acrobat) Samsung K4S281632 8M X 16 SDRAM
  PDF File (for Acrobat) Micron synchronous DRAM. These chips are not on the board, but the documentation is much more detailed than that for the Samsung part
  PDF File (for Acrobat) TI THS1230 12-bit, 30 MSPS Low-Power Analog-to-digital Converter
  PDF File (for Acrobat) TI THS8133 Triple 10-bit, 80 MSPS Video D/A Converter
  PDF File (for Acrobat) AKM AK4565 Low Power 20 bit audio CODEC
  PDF File (for Acrobat) ASIX AX88796L Ethernet controller
  PDF File (for Acrobat) Philips SAA7114H NTSC/PAL/SECAM video decoder
  PDF File (for Acrobat) Cypress CY7C68001 USB 2.0 controller
 Software
  Download RPM for the xstools, ported to Unix, supports the XSB-300E board (binary i386)
  Download source RPM for the xstools, ported to Unix, supports the XSB-300E board
 Resources
  Web resources for Vahid and Givargis
  VHDL examples
  Other VHDL resources
  Ken Shepards 4340 class (2003)
  Ken Shepards 4340 class (1999)
 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.

Copyright © 2003 Stephen A. Edwards Updated Sat Jul 16 09:34:58 EDT 2005 All Rights reserved