{"id":86,"date":"2025-03-12T11:13:50","date_gmt":"2025-03-12T15:13:50","guid":{"rendered":"https:\/\/sites.nd.edu\/adingler\/?page_id=86"},"modified":"2025-03-17T10:03:56","modified_gmt":"2025-03-17T14:03:56","slug":"cse-20221-logic-design-and-sequential-circuits","status":"publish","type":"page","link":"https:\/\/sites.nd.edu\/adingler\/teaching\/cse-20221-logic-design-and-sequential-circuits\/","title":{"rendered":"CSE 20221 &#8211; Logic Design and Sequential Circuits"},"content":{"rendered":"\n<p>The information below is based on the <strong>Spring 2025<\/strong> section of CSE 20221.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Overall Course Goals<\/strong><\/h3>\n\n\n\n<p>By the end of the course, you should:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>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.<\/li>\n\n\n\n<li>Be able to <em>independently <\/em>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.<\/li>\n<\/ol>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Specific Learning Objectives<\/strong><\/h3>\n\n\n\n<p>By the end of this course you should be able to:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Formulate logic expressions using the basic AND, OR, and NOT operations and implement these expressions as switching circuits.<\/li>\n\n\n\n<li>Use the properties of Boolean algebra, as well as graphical tools to simplify logic expressions<\/li>\n\n\n\n<li>Design fundamental combinational logic building blocks such as decoders, multiplexors, and adders using basic logic gates<\/li>\n\n\n\n<li>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<\/li>\n\n\n\n<li>Develop a finite state machine (FSM) diagram that describes sequential behavior and then implement the FSM using registers and combinational logic<\/li>\n\n\n\n<li>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<\/li>\n\n\n\n<li>Explain the organization of a simple multicycle microprocessor and write assembly language programs for that processor<\/li>\n\n\n\n<li>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.<\/li>\n\n\n\n<li>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.<\/li>\n<\/ol>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Grading<\/strong><\/h3>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><tbody><tr><td>Homework<\/td><td>35%<\/td><td>Weighted equally by score as percentage<\/td><\/tr><tr><td>Readings<\/td><td>5%<\/td><td>zyBook readings will be due on most class days<\/td><\/tr><tr><td>Midterm Exam 1<\/td><td>17.5%<\/td><td>Thursday 2\/20 in class, on paper<\/td><\/tr><tr><td>Midterm Exam 2<\/td><td>17.5%<\/td><td>Thursday 4\/10 in class, on paper<\/td><\/tr><tr><td>Final Exam<\/td><td>25%<\/td><td>Thursday 5\/8 7:30pm-9:30pm<br><strong>Same format as the two midterms but cumulative<\/strong><\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Course Schedule<\/strong><\/h3>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><tbody><tr><td>Date<\/td><td>Lecture<\/td><td>Readings<\/td><td>Homework<\/td><\/tr><tr><td>Tu 01\/14\/25<\/td><td>L01: Course Introduction; Bits and Bytes<\/td><td>Reading 01: Introduction<\/td><td>HW01: Number Representation and C assigned<\/td><\/tr><tr><td>Th 01\/16\/25<\/td><td>L02: Number Representation<\/td><td>Reading 02: Numbers and Letters<\/td><td><\/td><\/tr><tr><td>Tu 01\/21\/25<\/td><td>L03: Intro to albaCore and Assembly Language<\/td><td>Reading 03: Intro to albaCore and Assembly Language (due Wed 11:59pm)<\/td><td>HW02: Introduction to albaCore and Assembly Language assigned<br> (Tuesday)<br>HW01 due (Wednesday)<\/td><\/tr><tr><td>Th 01\/23\/25<\/td><td>L04: More albaCore and Assembly Language<\/td><td>Reading 04: albaCore Load, Store, Branches, and Jumps (due Thurs 9:30am)<\/td><td><\/td><\/tr><tr><td>Tu 01\/28\/25<\/td><td>L05: albaCore Memory and Control Instructions<\/td><td>No reading due<\/td><td>HW03: More albaCore Programming assigned<br>HW02 due<\/td><\/tr><tr><td>Th 01\/30\/25<\/td><td>L06: albaCore Control \u2013 Selection, Loops and Procedures<\/td><td>Reading 05: Digital Circuits<\/td><td><\/td><\/tr><tr><td>Tu 02\/04\/25<\/td><td>L07: albaCore Control Wrap-up and Digital Logic Intro<\/td><td>Reading 06: Boolean Algebra<\/td><td>HW04 Digital Circuits and Boolean Algebra assigned<br>HW03 due<\/td><\/tr><tr><td>Th 02\/06\/25<\/td><td>L08: Digital Logic, Boolean Algebra, Simplification<\/td><td>Reading 07: Logic Optimization<\/td><td><\/td><\/tr><tr><td>Tu 02\/11\/25<\/td><td>L09: K-maps and Combinational Logic Components<\/td><td>Reading 08: Combinational Logic Components (Part 1)<\/td><td>HW05 Adder\/Subtractor assigned<br>HW04 due <strong>Wed.<\/strong><\/td><\/tr><tr><td>Th 02\/13\/25<\/td><td>L10: More Comb. Logic Components and Adders<\/td><td>Reading 09: Combinational Logic Components (Part 2)<\/td><td><\/td><\/tr><tr><td>Tu 02\/18\/25<\/td><td>L11: Exam 1 Review<br>(extra review examples recording)<\/td><td>No reading due<\/td><td>No HW assigned<br>HW05 due <strong>Wed.<\/strong><\/td><\/tr><tr><td>Th 02\/20\/25<\/td><td>Midterm Exam 1 (L12)<\/td><td>No reading due<\/td><td><\/td><\/tr><tr><td>Tu 02\/25\/25<\/td><td>L13: Sequential Logic Introduction<\/td><td>Reading 10: ND Latches and FFs<\/td><td>HW06 Basic Calculator assigned<\/td><\/tr><tr><td>Th 02\/27\/25<\/td><td>L14: Flip Flops and Registers<\/td><td>Reading 11: Latches, Flip Flops, and Registers<\/td><td><\/td><\/tr><tr><td>Tu 03\/04\/25<\/td><td>L15: Register Examples<\/td><td>Reading 12: Load Registers, Counters, Timers<\/td><td>HW06 due<\/td><\/tr><tr><td>Th 03\/06\/25<\/td><td>L16: Register Files and Memories<\/td><td>Reading 13: Register Files and Memory<\/td><td><\/td><\/tr><tr><td>Tu 03\/11\/25<\/td><td>Spring Break<\/td><td><\/td><td><\/td><\/tr><tr><td>Th 03\/13\/25<\/td><td>Spring Break<\/td><td><\/td><td><\/td><\/tr><tr><td>Tu 03\/18\/25<\/td><td>L17: Finite State Machines<\/td><td>Reading 14: Finite State Machines<\/td><td>HW07 Programmable Calculator assigned<\/td><\/tr><tr><td>Th 03\/20\/25<\/td><td>L18: Finite State Machine Design<\/td><td>Reading 15: FSM Design and Analysis<\/td><td><\/td><\/tr><tr><td>Tu 03\/25\/25<\/td><td>L19: FSM Examples and HLSM Intro<\/td><td>Reading 16: HLSMs Part 1<\/td><td>HW07 due<br>HW08 Finite State Machines assigned<\/td><\/tr><tr><td>Th 03\/27\/25<\/td><td>L20: High-level State Machines<\/td><td>Reading 17: HLSMs Part 2<\/td><td><\/td><\/tr><tr><td>Tu 04\/01\/25<\/td><td>L21: HLSM Examples<\/td><td>No reading due<\/td><td>HW08 due<br>HW09 Design of a Hardware Multiplier assigned<\/td><\/tr><tr><td>Th 04\/03\/25<\/td><td>L22: Back to albaCore<\/td><td>Reading 18: albaCore HLSM, etc.<\/td><td><\/td><\/tr><tr><td>Tu 04\/08\/25<\/td><td>L23: Midterm Exam 2 Review<\/td><td>No reading due<\/td><td>HW09 due<\/td><\/tr><tr><td>Th 04\/10\/25<\/td><td>Midterm Exam 2 (L24)<\/td><td>No reading due<\/td><td><\/td><\/tr><tr><td>Tu 04\/15\/25<\/td><td>L25: albaCore Wrap-up<\/td><td>No reading due<\/td><td>HW10 Caches assigned<\/td><\/tr><tr><td>Th 04\/17\/25<\/td><td>L26: Cache Introduction<\/td><td>Reading 19: Caches (Part 1)<\/td><td><\/td><\/tr><tr><td>Tu 04\/22\/25<\/td><td>L27: Direct-mapped Caches<\/td><td>Reading 20: Caches (Part 2) (last reading)<\/td><td><\/td><\/tr><tr><td>Th 04\/24\/25<\/td><td>L28: Direct-Mapped Cache Wrap-up<\/td><td>No reading due<\/td><td><\/td><\/tr><tr><td>Tu 04\/29\/25<\/td><td>L29: Wrap-up and Final Exam Review<\/td><td><\/td><td>HW10 due<\/td><\/tr><\/tbody><\/table><\/figure>\n","protected":false},"excerpt":{"rendered":"<p>The information below is based on the Spring 2025 section of CSE 20221. Overall Course Goals By the end of the course, you should: Specific Learning Objectives By the end of this course you should be able to: Grading Homework 35% Weighted equally by score as percentage Readings 5% zyBook readings will be due on [&hellip;]<\/p>\n","protected":false},"author":4492,"featured_media":0,"parent":16,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"footnotes":""},"class_list":["post-86","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/sites.nd.edu\/adingler\/wp-json\/wp\/v2\/pages\/86","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/sites.nd.edu\/adingler\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/sites.nd.edu\/adingler\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/sites.nd.edu\/adingler\/wp-json\/wp\/v2\/users\/4492"}],"replies":[{"embeddable":true,"href":"https:\/\/sites.nd.edu\/adingler\/wp-json\/wp\/v2\/comments?post=86"}],"version-history":[{"count":6,"href":"https:\/\/sites.nd.edu\/adingler\/wp-json\/wp\/v2\/pages\/86\/revisions"}],"predecessor-version":[{"id":98,"href":"https:\/\/sites.nd.edu\/adingler\/wp-json\/wp\/v2\/pages\/86\/revisions\/98"}],"up":[{"embeddable":true,"href":"https:\/\/sites.nd.edu\/adingler\/wp-json\/wp\/v2\/pages\/16"}],"wp:attachment":[{"href":"https:\/\/sites.nd.edu\/adingler\/wp-json\/wp\/v2\/media?parent=86"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}