University of Colorado at Boulder
University of Colorado at Boulder Search A to Z Campus Map CU Search Links
ECE Home
Course List
Contact Us

ECEN 3350, Programming of Digital Systems

Catalog Data ECEN 3350 (3). Programming of Digital Systems. Explores how computers and programmable hardware in general are used to implement digital systems by looking at the capabilities of central processing units, the use and control of various input/output (I/O) devices, memory organization, and concurrency management. Topics include computer architecture, instruction sets, I/O device programming, interrupts, data transfer mechanisms, semaphores, shared procedures, multiple processors, and memory management.
Credits and Design 3 credit/contact hours. Required core course.
Prerequisite(s) ECEN 2350, Digital Logic.
Corequisite(s) none.
Instructor(s) Aaron Bradley, Li Shang, Andrew Pleszkun.
Textbook ***** To be determined *****
Course Objectives For students to:
  1. Understand programmable system architectures and their associated assembly language constructs.
  2. Understand the use of programmable hardware as a component of an embedded system.
  3. Understand how to convert digital design specifications into hardware and software components.
Learning Outcomes After taking this course students will be able to recognize and use the following concepts, ideas, and/or tools:
  1. Assembly language programming, including assembler syntax, processor instructions, addressing modes, and organization of data in memory.
  2. Procedure call stack, including instruction set support, organization in memory, and interface to higher-level language modules.
  3. I/O device interfacing, including device access and control, timing, polling, and interaction via interrupt handlers.
  4. System level support, including low-level hardware support, process management, and memory management.
Student Outcomes
3a 3b 3c 3d 3e 3f 3g1 3g2 3h 3i 3j 3k
Design Teams Engr
Oral Written Engr Solns
H   M                 M
Topics Covered
  1. Basic computer architecture components
  2. Data representation
  3. The instruction set and assembly language for one processor
  4. Procedure invocation and support at the assembly-language level
  5. Modularity and program structure
  6. Devices and interfaces
  7. Serial input/output
  8. Interrupts and interrupt-driven input/output
  9. Conversion between analog and digital information
  10. Managing concurrency, the critical-section problem and semaphores
  11. Process management
  12. Introduction to memory management and caching

Last revised: 05-24-11, PM.