CSEE 4840 Embedded System Design Spring 2024 |
Class meets Mondays and Wednesdays, 1:10 - 2:25 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 two or three. Project groups should be 3-5 students; aim for 4.
Name | Office hours | Location | |
---|---|---|---|
Prof. Stephen A. Edwards | sedwards@cs.columbia.edu | By appt. | Online |
Martha Barker | mbarker@cs.columbia.edu | 1235 Mudd | |
Abhilash Ganga | ag4797@columbia.edu | M 3-5 | 1235 Mudd |
Vasileios Panousopoulos | vp2518@columbia.edu | T 12-2P | 1235 Mudd |
Marian Abuhazi | ma4107@columbia.edu | 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 |
---|---|---|---|
Wed Jan 17 | Introduction: Embedded Systems |
|
|
Mon Jan 22 | SystemVerilog |
|
|
Wed Jan 24 | (lecture cancelled) |
||
Mon Jan 29 | SystemVerilog, via Zoom |
||
Wed Jan 31 | SystemVerilog, contd. |
||
Mon Feb 5 | Memory |
|
|
Wed Feb 7 | " |
||
Fri Feb 9 | Lab 1
Files |
||
Mon Feb 12 | Networking, USB, and Threads |
|
|
Wed Feb 14 | " |
||
Mon Feb 19 | Video |
|
|
Wed Feb 21 | Hardware/Software Interfaces |
|
|
Mon Feb 26 | The Avalon Bus |
|
Proposal |
Wed Feb 28 | Device Drivers |
|
|
Fri Mar 1 | Lab 2
Files 16 GB SD Card Image |
||
Mon Mar 4 | Qsys and IP Core Integration Debugging |
|
|
Wed Mar 6 | Sprite Graphics Line drawing example Processors, FPGAs, and ASICs (1/2) Processors, FPGAs, and ASICs (2/2) Audio Waveforms |
|
|
Mar 11-15 | Spring Break | ||
Mon Mar 18 | (no lectures going forward) |
||
Wed Mar 20 | |||
Fri Mar 22 | Lab 3
Hardware files Software FIles Kernel Module Env. |
||
Mon Mar 25 | |||
Wed Mar 27 | |||
Fri Mar 29 | Design document | ||
Mon Apr 1 | |||
Wed Apr 3 | |||
Mon Apr 8 | |||
Wed Apr 10 | |||
Mon Apr 15 | Design reviews |
||
Wed Apr 17 | Design reviews |
||
Mon Apr 22 | |||
Wed Apr 24 | |||
Mon Apr 29 | |||
May 13 | 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.
2048-Game:
Proposal Design Report Presentation Files Jingtian Lin, Kanghui Lin, and Yunhao Xing |
Audio-Visualizer:
Real-time Piano Tone Detector (MA) Proposal Design Report Presentation Files Gaurav Agarwal, Maxwell Lavey, Yaagna Modi, and Manas Pange |
BameGoy:
GameBoy Clone (SE) Proposal Design Report Presentation Files Nicolas Alarcon, Claire Cizdziel, and Donovan Sproule |
Bomber-Man:
Videogame (AG) Proposal Design Report Presentation Files Natalie Hughes, Shiyan Wang, and Qian Zhao |
Bubble-Bobble:
Videogame (MB) Proposal Design Report Presentation Files Lance Chou, Qingyuan Liu, Ke Liu, and Hongzheng Zhu |
Crazy-Arcade:
Bomber-man-like Game (AG) Proposal Design Report Presentation Files Yuqi Lin, Yelin Mao, and Hongkuan Yu |
DaFPGASwitch:
Model Network Switch (SE) Proposal Design Report Presentation Files Lauren Mika Chin, Fathima Hakeem, Teng Jiang, Ilgar Mammadov, and Irfan Tamim |
Donkey-Kong:
One Level of the Arcade Game (MB) Proposal Design Report Presentation Files Ines Khouider, Ania Krzyzanska, and Sean Stothers |
FASTRADE:
Stock Trading Factor Accelerator (VP) Proposal Design Report Presentation Files Yixuan Li, Wenbo Liu, Weitao Lu, and Xiaolei Zhao |
FFT:
FFT Audio Waterfall Display (MA) Proposal Design Report Presentation Files Yucong Li, Yuxiao Qu, Ning Xia, and Yimin Yang |
FPGA-Cat-Invaders:
Space Invaders But They're Cats (MB) Proposal Design Report Presentation Files Adam Jablonski, Fernandos Magee Jr., Yilei Meng, Yuxiang Xia, and Zhili Yan |
FPGA-Tetris:
Tetris with a VGA Display (AG) Proposal Design Report Presentation UNRECOGNIZED FILETYPEFiles Chuyi Jiang and Xinzi Yu |
FPGA-music-mixer:
Mixes and filters two audio streams (MA) Proposal Design Report Presentation Files Joy He, Oliver MacGregor, Harrison Riley, and Joshua Zhou |
Gomoku:
Five-in-a-row Game (MB) Proposal Design Report Presentation Files Zixuan Fang, Yunzhou Li, Hongyu Sun, and Zhiwei Xie |
Guitar-Hero:
Rhythm videogame (MA) Proposal Design Report Presentation Files Kiryl Beliauski, Patrick Cronin, and Daniel Ivanovich |
HFT-Book-Builder:
High-Speed Trading Book Builder (VP) Proposal Design Report Presentation Files Ameya Keshava Mallya, Shivam Shekhar, and Choka Thenappan |
Harmony-Hand:
Pitch bender (SE) Proposal Design Report Presentation Files Sanjay Rajasekharan, Maria Rice, and Steven Winnick |
LeNet-Classifier:
MNIST CNN Classifier (SE) Proposal Design Report Presentation UNRECOGNIZED FILETYPEFiles Tharun Kumar Jayaprakash, Vasileios Panousopoulos, Prathmesh Patel, and Rishit Thakkar |
Mario:
The last level of Super Mario Bros. (VP) Proposal Design Report Presentation Files Brandon Khadan, Bo Kizildag, and Nicholas de la Cruz |
Monster-Casino:
Videogame (VP) Proposal Design Report Presentation Files Shaokun Feng, Chenzhi Lu, and Zongwei Zhen |
Screaming-Bird:
Flappy Bird (MB) Proposal Design Report Presentation Files Yiran Hu, Yang Li, Yuesheng Ma, and Chenyang Zhou |
Sequencer:
Music Synthesizer (MA) Proposal Design Report Presentation Files Brandon Cruz, Adrian Florea, and Alexander Ranschaert |
Snake-Game:
Videogame (AG) Proposal Design Report Presentation Files Saher Iqbal, Cristopher Marte Marte, Somya Mehta, and Rohan Rabbi |
Sound-Localizer:
Acoustic Radar with a Microphone array (SE) Proposal Design Report Presentation Files Matheu Campbell, Elvis Wang, Peiran Wang, and Dawn Yoo |
Sports-Arbitrage:
(VP) Proposal Design Report Presentation Files Brennan McManus, Shivan Mukherjee, Jonathan Nalikka, Chelsea Soemitro, and Shreya Somayajula |
TankGo:
(AG) Proposal Design Report Presentation Files Annie Peng, Jiayi Wang, Yizhi Wang, and Xuanbo Xu |
Web-Cam:
(MA) Proposal Report Presentation Files Qiuhong Chen, Yizhan Zhang, and Shifei Zheng |
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. |