UC Berkeley EE 144/244
Fundamental Algorithms for Systems Modeling, Analysis, and Optimization
Spring 2025
Spring 2025
Pierluigi Nuzzo
Office hours: M 1:30-2:30 pm or by appointment, 567 Cory
Alberto Sangiovanni-Vincentelli
Office hours: M 1:30-2:30 pm or by appointment, 515 Cory
Sheng-Jung Yu (shengjungyu at berkeley dot edu)
Office hours: W 3:30-4:30 pm, 557 Cory
Lectures: MW 9:30-11:00 am, 293 Cory
Discussion: W 2:30-3:30 pm, 540A/B Cory
bCourses: bCourse Link
Prerequisites: EECS 16A, CS 70, or consent of instructor.
This course is an introduction to design automation, a field of computer science and engineering concerned with rigorous methods and tools for the modeling, design, and analysis of complex engineered systems. At its core, design automation consists of: (i) mathematical modeling techniques to represent classes of systems and specifications; (ii) algorithms for synthesizing systems to satisfy their specifications; and (iii) algorithms for analyzing system behaviors by formal methods or simulations to verify that they indeed satisfy the specifications.
The course will incorporate, as central themes: (i) design methodologies and tools for optimally mapping system specifications to implementation primitives and their validation; (ii) an overview of the electronic design automation (EDA) flows, including logic, physical, and analog/mixed-signal design. Based on time and interests, we will also cover other current research topics such as design automation for heterogeneous integration and chiplet-based electronic systems, design automation for domain-specific computing systems, design automation for secure and trusted hardware, design automation for trustworthy artificial intelligence, design methods combining data-driven and machine learning techniques with model-based techniques.
As a mezzanine course, EE 144/244 is open to both undergraduate and graduate students. Integrated circuit design will be used as a central example, but the course material has applications to several areas in EECS and beyond, including embedded and cyber-physical systems, software engineering, artificial intelligence, control systems, robotics, and multi-physics systems. The lectures will focus on fundamental theory and techniques that apply broadly to many systems. The homework, lab assignments, and a class project will expose students to state-of-the-art languages and tools.
Introduction:
Design flows and methodologies; The Register Transfer Level (RTL) design flow; Analog and mixed-signal design; Model-based design; Platform-based design.
Modeling and specification; Simulation, verification, synthesis, and validation; Complexity.
Application examples: Integrated circuits, cyber-physical systems, biosystems, nanosystems.
Discrete Models:
Digital integrated circuits; Timing analysis; Retiming.
Boolean algebra; Logic synthesis and optimization; Boolean reasoning engines: Boolean satisfiability (SAT), Binary Decision Diagrams.
Formal verification: Equivalence checking, Reachability analysis, Sequential equivalence checking, Model checking.
Physical design: Placement and routing; Design space exploration and combinatorial optimization.
Testing and reliability; Discrete-event and discrete-time simulation.
Continuous Models:
Continuous modeling; Acausal modeling; Analog and mixed-signal integrated circuits; Simulation of continuous systems; Newton-Raphson algorithm.
Numerical solution of nonlinear equations; Steady-state analysis; Numerical solution of differential algebraic equations (DAE); Transient analysis.
Continuous-time frequency domain concepts and computational algorithms; Sinusoidal steady-state (AC) analysis of linear DAEs.
Advanced Topics (see Description)