CSEE 4840 Embedded System Design Spring 2023 |
Class meets Fridays, 1:10 - 3:40 PM in 451 CSB.
Mudd 1235 is the lab, which is filled with Linux workstations. 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.
Name | Office hours | Location | |
---|---|---|---|
Prof. Stephen A. Edwards | sedwards@cs.columbia.edu | By appt. | Online |
Ajay Vanamali | va2465@columbia.edu | Th 5-7 | 1235 Mudd |
Bhoomi Shah | bbs2144@columbia.edu | W 4-6 | 1235 Mudd |
Manish Shankar | mr4264@columbia.edu | T 3-5 | 1235 Mudd |
Rahul Shanbhag | rns2166@columbia.edu | M 4-6 | 1235 Mudd |
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.
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 SystemVerilog hardware description langauge, a small embedded system.
This is a lab course done in two parts. During the first part of the class, each student will implement the same "canned" designs designed by the instructor and be given substantial guidance. These are meant as an opportunity for you to learn the development tools and basic concepts. In the second part of the class, you will divide up into teams and each will design and implement a comparable project of their own with guidance from the instructor and TAs.
This course is a capstone 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 focuses more on system-design issues and include a large section on hardware/software integration. Students in 4840 will use gates, processors, peripherals, software, and operating systems as building blocks.
CSEE 3827, Fundamentals of Computer Systems or the equivalent. You must understand digital logic design. Prior experience with hardware description languages, FPGAs, or embedded processors is not required.
COMS 3157, Advanced Programming or the l equivalent. Specifically, C programming experience. While 4840 will teach you advanced aspects of embedded C programming, you need to come in with significant C experience.
COMS W4823, Advanced Digital Logic Design. While not a formal prerequisite, you are strongly encouraged to take it. In it, you will learn advanced logic design and HDL coding, both of which are crucial to success in 4840.
Date | Lecture | Notes | Due |
---|---|---|---|
Fri Jan 20 | Introduction: Embedded Systems |
|
|
Fri Jan 27 | SystemVerilog |
|
|
Fri Feb 3 | Memory |
|
|
Fri Feb 10 | Networking, USB, and Threads Video |
|
|
Thu Feb 16 | (none) |
Lab 1
Files |
|
Fri Feb 17 | Hardware/Software Interfaces |
|
|
Fri Feb 24 | The Avalon Bus |
|
|
Mon Feb 27 | Proposal | ||
Thu Mar 2 | (none) |
Lab 2
Files 16 GB SD Card Image |
|
Fri Mar 3 | Device Drivers |
|
|
Fri Mar 10 | Qsys and IP Core Integration Debugging |
|
|
Mar 13-17 | Spring Break | ||
Thu Mar 23 | (none) |
Lab 3
Hardware files Software FIles Kernel Module Env. |
|
Fri Mar 24 | Sprite Graphics Line drawing example Processors, FPGAs, and ASICs (1/2) Processors, FPGAs, and ASICs (2/2) Audio Waveforms |
|
|
Thu Mar 30 | (none) |
Design document | |
Fri Mar 31 | |||
Fri Apr 7 | Design reviews |
||
Fri Apr 14 | |||
Fri Apr 21 | |||
Fri Apr 28 | |||
May 11 | Final Project Presentations |
You'll perform a design-it-yourself project in the second half of the class. There are five deliverables for the project:
Project teams should be three students or more.
This document should explain what you're going to build and how you're going to build it, but does not not need to include code. A corrected version of this document that reflects what you actually built should end up in your final project report.
Include the following things:
This is a critical part of the project and will be a substantial fraction of the grade.
Include the following sections:
Include all of this in a single .pdf file (don't print it out).
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.
Anteater:
Videogame (MS) Proposal Design Report Chirag Chaturvedi and Gabriela Gonzalez |
Autotune:
Audio processor (AV) Proposal Design Report Files Adam Banees, Cam Coleman, and Khaela Harrod |
BlackjackCounter:
Card counter with image recognition (RS) Design Report Files Joseph Han, Michael Ozymy, and Lennart Schulze |
Breakout:
Videogame (MS) Proposal Design Report Files Jason Eriksen and Xurxo Riesco Perez |
CNN:
Neural Network Accelerator (AV) Proposal Design Report Files Yufei Jin, Gehui Liang, Yufei Qian, Shiwen Tang, and Yi Wang |
Combat:
Videogame (BS) Proposal Design UNRECOGNIZED FILETYPEReport Tameem Asif and Patrick Puma |
GestureManipulator:
Robot controller (BS) Proposal Design Report Files Jiamiao He, Yi Wang, Fan Wu, and Tailai Zhang |
GoldMiner:
Bitcoin miner (RS) Proposal Design Files Jules Comte, Zhe Mo, Tianyu Qin, Mingyang Song, and Xueji Zhao |
HuarongDao:
Logic Videogame (BS) Proposal Design Report Files Rui Chu, Nina Hsu, Haobo Liu, Jiusheng Zhang, and Jingwei Zhang |
MobileNet:
CNN Image Detection Accelerator (AV) Proposal Design Report Files Haomiao Li, Yue Niu, Tianchen Yu, Qixiao Zhang, and Haichun Zhao |
NESemulator:
Videogame Console Emulator (SE) Proposal Design Otitodirichukwu Darl-Uzu, Jason Lam, and Tyler Manrique |
NetworkedCamera:
Security Camera (RS) Proposal Design Report Files Michael Lee, Kenny Martinez, Carlos Nunez-Huitron, James Phan, and Patricio Tapia |
NoCallerID:
VOIP Phone with Effects (AV) Proposal Design Report Files Marian Abuhazi, Maximilian Acebal, Rebekah Kim, and Noah Silverstein |
Rhythm:
Videogame (BS) Proposal Design Report Files Xinyuan Fu, Zerui Li, Lu Zhang, Qiao Zhang, and Jinke Zhao |
SecureCam:
Security Camera (AV) Proposal Design Report Files Mir Naveen Alam, Carlos Cruz, Eliot Flores Portillo, Noe Silva, and Shifeng Zhang |
Sketchmaster:
Drawing system (SE) Proposal Design UNRECOGNIZED FILETYPEFiles Manish Rangarajan Shankar, Bhoomi Shah, Rahul Shanbhag, and Ajay Vanamali |
Snake:
Videogame (MS) Proposal Report Files Jiawen Liu, Yue Rao, Yuyang Wang, Tao Yan, and Yuheng Zhang |
SpaceInvaders:
Videogame (RS) Proposal Design Report Zachary Burpee, Alan Hwang, and Mili Sehgal |
SuperMario:
Videogame (BS) Proposal Design Report Files Hangpu Cao, Shen Gao, Zeqi Li, Zhiyuan Liu, and Han Yang |
Tank:
Videogame (MS) Proposal Design Report Files Quinn Booth, Ganesan Narayanan, and Ana Maria Rodriguez |
Tetris:
Videogame (MS) Proposal Design Report Files Eva Gupta, Malik Hubbard, Zain Merchant, and Maxfield Parson-Scherban |
TopGun:
Videogame (RS) Proposal Design Report Files Aparna Muraleekrishnan, Eashan Sapre, and Kuraloviyan Senthilnathan |
ZyloZinger:
Rhythm game (SE) Proposal Design Report Files Sienna Brent, Rajat Tyagi, Riona Westphal, and Alex Yu |
qSIFT:
Image Processing Accelerator (AV) Proposal Design Report Files Madhav Narayan Bhat Talapady, Khushi Anil Gupta, Prathamesh Sahasrabudhe, Daniel Seligson, and Jeffrey Wolberg |
My favorites
Mark Zwolinski. |
James K. Peckol. |
Grading | 30% Labs |
10% Milestone 1 | |
15% Milestone 2 | |
20% Milestone 3 | |
25% Final Report and presentation | |
Late Policy | Zero credit for anything handed in after it is due without explicit approval of the instructor. |
Collaboration Policy | Work in groups of three on the labs. You may consult others, but do not copy files or data. You may collaborate with anybody on the project, but must cite sources if you use code. |