CSE 20221 – Logic Design and Sequential Circuits

The information below is based on the Spring 2025 section of CSE 20221.

Overall Course Goals

By the end of the course, you should:

  1. Have a good basic understanding of the inner workings of a digital computer, including the main structures and abstractions used in a design, from basic Boolean operations made out of switches, up through a complete microprocessor executing an assembly language program.
  2. Be able to independently design and debug a moderately complex digital system, demonstrating proficiency of critical implementation techniques applicable to both hardware and software design, including the use of appropriate diagrams and tables to guide implementation and using a hypothesis-based approach to identify bugs.

Specific Learning Objectives

By the end of this course you should be able to:

  1. Formulate logic expressions using the basic AND, OR, and NOT operations and implement these expressions as switching circuits.
  2. Use the properties of Boolean algebra, as well as graphical tools to simplify logic expressions
  3. Design fundamental combinational logic building blocks such as decoders, multiplexors, and adders using basic logic gates
  4. Implement a latch and a register (flip-flop) using primitive logic gates, and to use registers to implement common sequential building blocks such as register files, counters, and timers
  5. Develop a finite state machine (FSM) diagram that describes sequential behavior and then implement the FSM using registers and combinational logic
  6. Design a high-level state machine (HLSM) that describes the algorithmic behavior of a digital system and then implement a digital system based on the HLSM with a datapath and FSM
  7. Explain the organization of a simple multicycle microprocessor and write assembly language programs for that processor
  8. Explain the need for, organization of, and data movement within a memory hierarchy including the register file, a first-level direct-mapped data cache, and a main memory.
  9. Use a digital logic design tool and simulator to design and simulate simple combinational logic circuits, storage elements, hardware components for simple functional units, finite state machines, and simple processor datapaths.

Grading

Homework35%Weighted equally by score as percentage
Readings5%zyBook readings will be due on most class days
Midterm Exam 117.5%Thursday 2/20 in class, on paper
Midterm Exam 217.5%Thursday 4/10 in class, on paper
Final Exam25%Thursday 5/8 7:30pm-9:30pm
Same format as the two midterms but cumulative

Course Schedule

DateLectureReadingsHomework
Tu 01/14/25L01: Course Introduction; Bits and BytesReading 01: IntroductionHW01: Number Representation and C assigned
Th 01/16/25L02: Number RepresentationReading 02: Numbers and Letters
Tu 01/21/25L03: Intro to albaCore and Assembly LanguageReading 03: Intro to albaCore and Assembly Language (due Wed 11:59pm)HW02: Introduction to albaCore and Assembly Language assigned
(Tuesday)
HW01 due (Wednesday)
Th 01/23/25L04: More albaCore and Assembly LanguageReading 04: albaCore Load, Store, Branches, and Jumps (due Thurs 9:30am)
Tu 01/28/25L05: albaCore Memory and Control InstructionsNo reading dueHW03: More albaCore Programming assigned
HW02 due
Th 01/30/25L06: albaCore Control – Selection, Loops and ProceduresReading 05: Digital Circuits
Tu 02/04/25L07: albaCore Control Wrap-up and Digital Logic IntroReading 06: Boolean AlgebraHW04 Digital Circuits and Boolean Algebra assigned
HW03 due
Th 02/06/25L08: Digital Logic, Boolean Algebra, SimplificationReading 07: Logic Optimization
Tu 02/11/25L09: K-maps and Combinational Logic ComponentsReading 08: Combinational Logic Components (Part 1)HW05 Adder/Subtractor assigned
HW04 due Wed.
Th 02/13/25L10: More Comb. Logic Components and AddersReading 09: Combinational Logic Components (Part 2)
Tu 02/18/25L11: Exam 1 Review
(extra review examples recording)
No reading dueNo HW assigned
HW05 due Wed.
Th 02/20/25Midterm Exam 1 (L12)No reading due
Tu 02/25/25L13: Sequential Logic IntroductionReading 10: ND Latches and FFsHW06 Basic Calculator assigned
Th 02/27/25L14: Flip Flops and RegistersReading 11: Latches, Flip Flops, and Registers
Tu 03/04/25L15: Register ExamplesReading 12: Load Registers, Counters, TimersHW06 due
Th 03/06/25L16: Register Files and MemoriesReading 13: Register Files and Memory
Tu 03/11/25Spring Break
Th 03/13/25Spring Break
Tu 03/18/25L17: Finite State MachinesReading 14: Finite State MachinesHW07 Programmable Calculator assigned
Th 03/20/25L18: Finite State Machine DesignReading 15: FSM Design and Analysis
Tu 03/25/25L19: FSM Examples and HLSM IntroReading 16: HLSMs Part 1HW07 due
HW08 Finite State Machines assigned
Th 03/27/25L20: High-level State MachinesReading 17: HLSMs Part 2
Tu 04/01/25L21: HLSM ExamplesNo reading dueHW08 due
HW09 Design of a Hardware Multiplier assigned
Th 04/03/25L22: Back to albaCoreReading 18: albaCore HLSM, etc.
Tu 04/08/25L23: Midterm Exam 2 ReviewNo reading dueHW09 due
Th 04/10/25Midterm Exam 2 (L24)No reading due
Tu 04/15/25L25: albaCore Wrap-upNo reading dueHW10 Caches assigned
Th 04/17/25L26: Cache IntroductionReading 19: Caches (Part 1)
Tu 04/22/25L27: Direct-mapped CachesReading 20: Caches (Part 2) (last reading)
Th 04/24/25L28: Direct-Mapped Cache Wrap-upNo reading due
Tu 04/29/25L29: Wrap-up and Final Exam ReviewHW10 due