Skip to content

CS 631-01 Systems Foundations — Meeting Summary

Date: April 14, 2026
Time: 08:16 AM Pacific (US & Canada)
Meeting ID: 870 0988 0761


Quick Recap

  • Greg led a discussion on software flaws and trusted systems, concluding that humans alone may not be able to build complex, trusted software without significant support from tools and safer languages (e.g., Rust).
  • He demonstrated GGL (Golden Gate Language), a new language for specifying circuits that can automatically generate both circuit descriptions and visual schematics using the Elk diagramming library.
  • The session covered processor components, including the register file, ALU, and instruction memory, and showed how these parts can be connected and tested via a visual interface.
  • The group agreed to continue the processor implementation, adding decoding logic to interpret instruction words and control processor operations.

Next Steps

  • Greg: Add a synchronous clear input to register components in GGL.
  • Greg: Complete tunnels and virtual connections in GGL schematic mode and resolve current issues.
  • Greg: Add dynamic value display/interactivity in GGL schematic mode.
  • Greg: Finish instruction decoding logic for the processor’s digital logic components (Thursday).
  • Greg: Provide students with a partial GGL processor implementation as a starter (with gaps such as decoder, ALU, etc.).
  • Greg: Develop and deliver auto-graded tests for GGL circuits (similar to CS 315).

Detailed Summary

Trusted Software Development Challenges

  • Greg reviewed high-profile flaws in systems such as Linux, Windows, and web browsers.
  • Key position: fully trusted, flaw-free complex software is likely unattainable without assistance from safer languages and tools.
  • Rust and similar approaches can reduce classes of errors to an acceptable tolerance level.
  • Human fallibility and varying diligence in software development were noted as major risk factors.

Programmatic Circuit Design with GGL

  • GGL (Golden Gate Language) enables programmatic specification and execution of circuits.
  • Features:
  • Human-readable syntax and LLM-friendly structure.
  • Automatic schematic generation via Eclipse’s Elk diagramming library.
  • Layout influence through virtual grids without requiring explicit wiring for every connection.
  • Demonstrations covered simple gates (AND) and more complex designs (8-bit register).

Python-Driven Circuit Design

  • Greg showed Python-based construction of circuits, including an 8-bit counter using list comprehensions and GGL syntax.
  • Workflow:
  • GGL specifies circuits and can simulate them directly.
  • Schematic generation involves producing HTML with embedded JSON processed by Elk JS to render readable diagrams.

Digital Instruction Memory System

  • A working instruction memory was demonstrated:
  • 32-bit instruction words stored in ROM.
  • A splitter retrieves instructions based on the program counter (PC).
  • Vision:
  • Author circuits directly in GGL.
  • Potential future path to FPGA-based implementations.
  • Core processing model: combinational logic + stateful registers + clocks driving instruction execution and register control.

Single-Cycle Processor Implementation

  • Components discussed: PC, 64-bit registers, instruction memory (ROM for initial programs), and the register file.
  • Initial approach uses fixed programs via ROM for simplicity; RAM will be introduced later for the stack.
  • Upcoming addition: synchronous clear input for GGL’s digital register component.

Processor Components Overview

  • Register File:
  • Supports simultaneous read/write through MUXes and decoders for selection and enable control.
  • ALU:
  • Built from existing components (adder, subtractor, multiplier, shifters).
  • Operation selected via a control signal.
  • Pedagogy:
  • Balance between providing a full reference design and leaving meaningful gaps for student learning.

ALU Implementation Planning

  • Plan to compose ALU functionality from proven subcomponents with a selector for operations.
  • Emphasis on thorough test coverage using auto-graded GGL circuit tests, aiming to exceed current CS 315 coverage.

Development Approach

  • Strategy: incremental development and testing.
  • Use of coding agents (e.g., Cloud Code) to plan staged implementation.
  • Current/proposed elements:
  • PC, digital registers with synchronous clear, register file.
  • Instruction memory via ROM (supporting multiple programs), selected via a MUX.
  • Simple instruction programs for stepwise validation.

Processor Design and Visualization

  • Instruction memory, PC, adder, register file, and ALU integration was outlined.
  • Data routing relies on multiplexers for selecting destinations.
  • Need identified: surfacing register values during simulation for easier debugging.
  • ALU includes add, subtract, multiply, and shift operations; visualization and simulation remain key challenges.

ALU Multiplication Details

  • Multiplication uses 32-bit inputs, producing a 64-bit result; operations were shown with manual register value setup.
  • Next milestone: implement instruction decoding to automatically set control lines and select ALU operations based on the instruction word.
  • Target: continue on Thursday with the goal of enabling participants to understand and implement a complete processor.