CSCE 313: Embedded Systems

Spring 2020

Course Description:

Embedded systems are the backbone of almost all automated systems today — from equipment in a space station to the thermostat in your home. The goal of this course is to provide a fundamental view behind the general-purpose embedded systems: its hardware components; its software components; hardware/software interface design; and hardware/software co-design.

Course Logistics:

Lecture Time & Location: Weekly lecture: Monday; 3:55 pm – 5:10 pm; Innovation Center, Room 1400
Lab for Section 1: Wednesday, 3:55 pm – 5:10 pm, Swearingen, Room 3D22
Lab for Section 2: Friday, 3:55 pm – 5:10 pm, Swearingen, Room 3D22

Instructor: Sanjib Sur (

Office Hours: Monday, Wednesday, and Friday; 3:00 pm – 3:45 pm; 2259 Storey Innovation Center

TA 1: Gaofeng Pan (

Office Hours: Friday; 1:00 pm – 3:00 pm; 2210 Storey Innovation Center

TA 2: Thomas Bryan Griffin (

Office Hours: Wednesday; 12:00 pm – 2:00 pm; Swearingen, Room 3D22

Learning Outcomes:

  • Perform hardware/software co-design for a programmable embedded system;
  • Write software that interfaces directly with I/O peripherals, such as LEDs, LCD panels, buttons, monitors, and remote consoles;
  • Write software that performs real-time processing of audio and video data;
  • Use high-level synthesis tools to develop co-processor architectures in an embedded environment.


  • Recommended: Embedded Systems: ARM Programming and Optimization, by Jason D. Bakos
  • Recommended: Computer Systems: A Programmer’s Perspective, by Randal E. Bryant and David R. O’Hallaron
  • Online materials available on Blackboard


  • CSCE 211: Digital Logic Design
  • CSCE 212: Introduction to Computer Architecture
  • CSCE 240: Advanced Programming Techniques (recommended, you must be familiar with C and Linux)


  • 80% Laboratory Assignments: There will be six lab assignments, all based on DE2-115 FPGA board. The detailed assignment instructions will be posted on the Blackboard. Assignment reports and codes must be submitted through Blackboard. Here are the tentative breakdown of the lab assignments.
    • Lab 1: Lighting up the DE2 FPGA board (10%)
    • Lab 2: Image transformations and video out (10%)
    • Lab 3: Performance analysis and tuning (15%)
    • Lab 4: Multiprocessor systems 1 (15%)
    • Lab 5: Multiprocessor systems 2 (15%)
    • Lab 6: High resolution, fixed-point fractal generation (15%)
  • 20% Final Exam: The final exam will be a closed book exam; but students are allowed to carry a cheat sheet on a one-sided 8.5”x11” paper.
    Date and time: Wednesday, April 29, at 4:00 pm in Innovation Center, Room 1400.

Grading scale:
90 – 100 = A; 85 – 89 = B+; 80 – 84 = B; 75 – 79 = C+; 70 – 74 = C; 65 – 69 = D+; 60 – 64 = D; ≤ 59 = F

Course Policies:

Laboratory Policy: You can work inside the lab at any time. But no drink or food allowed inside the lab. Please make sure your hands are dry before handling all equipment inside the lab. Please power down the equipment before you leave the lab for a significant amount of time. Also, if you are the last person to leave the lab, please turn off the lights.

Assignment Submission Policy: All the assignments have to be done in a group of size at most 2 students. Assignment reports and codes must be submitted through Blackboard.

If you have questions regarding the grading of your assignments or exams, you must come to see the instructor within one week after the date your assignments or exams have been returned to you. If you cannot see us within one week, you need to email us within one week and make an appointment. If you believe that your assignments or exams have been lost, please notify us as soon as possible (within one week). We are not responsible for missing assignments or exams one week after they have been returned.

Group Work Policy: Group sizes of two are preferred, and group sizes of one are allowed based on enrollment and hardware availability. Three-member groups are not allowed.

Choose your group partner wisely. Each of the partners in a group will receive the same point for all labs, irrespective of the individual contributions.

Attendance Policy: Students are obligated to complete all assigned work promptly and attend each class regularly. Absence from more than 10 percent of the scheduled class sessions, whether excused or unexcused, is excessive, and the instructor may choose to deduct the class participation points for such absences. It is of particular importance that a student who anticipates absences in excess of 10 percent of the scheduled class sessions receives prior approval from the instructor.

Academic Integrity: Students are encouraged to assist their colleagues for the purpose of overcoming technical challenges related to the use of the design tools. Students working on a group project must (by definition) perform joint work. Any collaboration beyond these exceptions is prohibited and is subject to the University’s guidelines, regulations, and policies regarding academic dishonesty. University policies and procedures regarding academic integrity are defined in the policy STAF 6.25, Academic Responsibility — The Honor Code. Prohibited behaviors include plagiarism, cheating, falsification, and complicity. All potential Honor Code violations will be reported to the Office of Academic Integrity, which has the authority to implement non-academic penalties as described in STAF 6.25. Academic penalties for Honor Code violations include failure of this course.

Students with Disabilities: Any student who has a need for accommodation based on the impact of a documented disability should contact the instructor to discuss the specific situation as soon as possible. Also, contact Disability Resources and Services at 803-777-6142 to coordinate reasonable accommodations for students with documented disabilities.