Microprocessor Systems Design I

EECE.3170 Microprocessor Systems Design I

Credits: 3

Contact Hours: 3 hours of lecture

Instructor: Seung Woo Son

Textbook:

  • No required textbook

Other supplemental materials: All supplemental materials can be found on the UMass Lowell Blackboard portal (https://www.uml.edu/blackboard/). These materials include lecture slides, handouts, recordings, assignments, quizzes, and other documentation.

Course Catalog Description:

This course provides an introduction to microprocessors. It uses assembly language to develop a foundation on the hardware, which executes a program. Memory and I/O interface design and programming. Study of microprocessor and its basic support components, including CPU architecture, memory interfaces and management, coprocessor interfaces, bus concepts, serial I/O devices, and interrupt control devices. Laboratories are directly related to microprocessor functions and their interfaces.

Prerequisites: EECE.2160 (ECE Application Programming), EECE.2650 (Logic Design)

Grading: Homework/Lab assignments (55%), 2 Exams (Midterm: 20%, Final: 25%)

Required or elective? This course is required for Computer Engineering majors while Electrical Engineers may use it as a technical elective.

Course Outcomes:

By the end of this course, you should understand and/or be able to use all the following: 

  1. Microprocessor Software Architecture: Data formats, types, and alignment. Memory addressing and organization. Stack operation. 
  2. Microprocessor Instructions: Instruction formats and types: data transfer, arithmetic, logical, shift/rotate, conditional execution, program control, functions. 
  3. Assembly Language Programming: Ability to write, modify, and debug programs written in assembly language. Translation of high-level code to assembly language. Programs that integrate assembly and high-level code. 
  4. Microprocessor Interfacing: Memory and I/O interfacing. Bus cycles. 
  5. Interrupt Processing: Hardware and software interrupt. 
  6. Microcontroller-based Systems: Microcontroller architecture and instruction set. Microcontroller programming using both assembly language and high-level code. Design and debug microcontroller-based circuits. 

Course Topics

  •  See the course schedule below.

Schedule

Note that below is a tentative schedule based on 14 weeks (3 meetings per week).

Week Topic Readings Assignment Note
1 Syllabus; Course introduction/overview; Role of ISA; data types
2 Data storage and addressing; MIPS ISA introduction
3 Data transfer instructions; Arithmetic instructions HW1
4 Arithmetic instructions (cont.); Logical/shift instructions
5 Conditional execution; Jump and branch instructions HW2
6 Function calls and stack frames
7 High-level concepts in assembly; midterm exam preview HW3
8 Midterm exam; microcontroller peripherals overview; handling delay (timers and interrupts) Midterm
9 More on interrupts; Timer functions
10 Analog to digital conversion
11 Comparators HW4
12 Serial transmission; UART and I2C
13 Microcontroller programming in C HW5
14 Microcontroller programming in C
Final exam During final week