Meeting Summary: CS 631-02 Systems Foundations¶
- Date: Apr 02, 2026
- Time: 02:52 PM Pacific Time (US and Canada)
- Meeting ID: 882 2309 0019
Quick Recap¶
Instructor Greg delivered a comprehensive introduction to digital design, covering:
- Fundamentals of combinational logic, logic gates (AND, OR, NOT), and Boolean algebra.
- Construction of a 1-bit full adder using the sum-of-products technique, extended to a 4-bit ripple-carry adder.
- Core concepts in sequential logic, including latches and static RAM, and their role in building registers and stateful circuits.
- How these components scale to larger designs such as counters—key elements in processor architecture.
Next Steps¶
- Greg:
- Send the lab assignment with instructions for downloading and using the digital design software. Due Thursday.
- Continue Tuesday with sequential logic, latches, and larger circuits (including a 64-bit register and an n-bit counter).
-
Provide support for students experiencing issues running the Java digital design application, especially on macOS.
-
Students:
- Complete the lightweight digital design lab (covering this session and the upcoming Tuesday session). Due Thursday.
Summary¶
Digital Design Session Overview¶
- The session began with combinational logic as a foundation before transitioning to sequential logic.
- Although digital design is typically a two-semester sequence in electrical engineering, this module condensed essential concepts into one session.
- The course progression to date includes C, Rust, RISC‑V assembly, and machine code; digital design extends this into computation with electrical circuits.
Digital Circuit Design Overview¶
- The discussion framed digital circuits as a subset of analog systems with discrete logic levels.
- Schematic entry and graphical tools were introduced for design and simulation, with mention of physical construction using gates and wires.
- References included the “NAND to Tetris” project and the use of FPGAs for rapid prototyping and reconfigurable hardware.
FPGAs and Hardware Design Technologies¶
- Differences between FPGAs and ASICs were highlighted: FPGAs offer flexibility but are slower; ASICs are faster but fixed-function. Both have become more accessible.
- Prior student projects explored implementing custom processors on FPGAs.
- Hardware Description Languages (HDLs) such as Verilog and VHDL were introduced, noting their steep learning curves. Greg is developing a new HDL emphasizing foundational concepts over complex tooling.
- The session linked software concepts to digital hardware design, touching on circuit basics and power considerations.
Digital Signal Processing Basics¶
- Digital systems constrain continuous analog values to discrete ranges, producing binary outputs (0 or 1).
- Logic gates—AND, OR, NOT—map cleanly to bitwise operators in languages like C and Rust.
- Boolean algebra was introduced as a system with variables restricted to 0 or 1, alongside common notations.
Propositional Logic and Logic Gates¶
- Propositional logic notation and truth tables were used to illustrate AND, OR, and NOT behavior.
- Only a few primitive gates are required to build a processor; the NAND gate is universal and can implement all others.
- While a complete system can be constructed from NAND alone, using AND/OR/NOT improves clarity for learners building a CPU.
Circuit Construction and Design Basics¶
- The session covered wiring and gate-level design, translating between Boolean expressions and circuit diagrams.
- A practical goal was set: build a 4-bit adder.
- Buses were introduced to represent multi-bit signals compactly in schematics.
- A preview introduced the sum-of-products method for implementing arbitrary logic from truth tables.
Digital Circuit Truth Tables and Sum-of-Products¶
- Truth tables were constructed using binary counting.
- The sum-of-products method:
- Identify rows where the output is 1.
- Form product terms by inverting inputs that are 0 in those rows.
- OR the resulting product terms to form the final expression.
- Implementation details included AND/OR/NOT usage, inversion via bubbles, and correct wire-junction notation.
Digital Logic Design Tool Demo¶
- A Java-based digital logic design tool was demonstrated, supporting circuit construction and simulation.
- A simple OR-gate circuit was built and tested by toggling inputs and observing outputs.
- Despite its older Java Swing UI, the tool effectively supports first-principles learning.
RISC‑V Processor Hardware Implementation¶
- Greg described prior work on a gate-level RISC‑V processor and expressed confidence in reproducing it from memory.
- Upcoming sessions will cover latches in depth, showing how they store values and form registers.
- The sum-of-products technique was positioned as a bridge to building a full adder, then scaling to multi-bit designs.
One-Bit Full Adder Demonstration¶
- A 1-bit full adder was designed from a truth table, deriving sum and carry-out product terms.
- The circuit was implemented with AND/OR/NOT gates and packaged as a reusable component.
- This design serves as the foundation for multi-bit addition.
4-Bit Ripple-Carry Adder¶
- Four 1-bit adders were chained by connecting each adder’s carry-out to the next adder’s carry-in.
- Splitters and mergers handled multi-bit inputs and outputs.
- The discussion introduced sequential logic and the need for registers; combinational logic was contrasted by its acyclic structure.
Sequential Logic with NOR Gates¶
- Cross-coupled NOR gates were used to create a basic bistable element, illustrating controlled feedback (cycles) in sequential logic.
- The design functions as static RAM (SRAM), contrasted with dynamic RAM (DRAM).
- Plans include building a 64-bit register and, later, larger systems like an n-bit counter with a clock, power, register, and adder.
- A lab assignment will include instructions for the Java-based simulator.