VLSI (ECE 4/579)
(Spring 2020 and 2021, Oregon State University)
This class is better called “RTL design and verification”. The first half covers SystemVerilog basics with an emphasis on semantics and how the simulator and synthesis tool interpret the code. The second half covers design verification: testing, writing test plans, code and functional coverage, and assertion-based verification. Students gain a working knowledge of EDA tools (simulation, gate-level synthesis, formal property verification) and the tcl command-line. Checkout the syllabus.
F1/10 Autonomous Racing
(Spring 2019, Oregon State University)
This is a quarter-length version of my semester-long F1/10 class (see below). The same topics are covered more compactly, and we additionally discuss regulatory aspects of autonomous vehicles, especially flying ones. Check-out the announcement.
(Fall 2019, Oregon State University)
This class introduces fundamentals of rigorous modeling and verification for Cyber-Physical Systems through two case studies: implantable cardiac devices and Automatic Cruise Control. Students learn about temporal logics and timed automata in the first half, and specification-guided falsification and reachability analysis in the second. UPPAAL, CORA and Simulink are heavily used throughout. Check-out the Syllabus.
F1/10 Autonomous Racing
(Fall 2018, University of Pennsylvania)
This course introduces the basics of Perception, Control and Planning for autonomous robots in a fully hands-on manner. The students build an autonomous car from sratch, using a 1/10th scale racing chassis, a Jetson TX2, and a LIDAR. After getting up to speed on ROS on their own, the students learn how to process LiDAR data and find gaps in it, and how to navigate the car around a hallway by wall-following. They now have the basics to develop more advanced navigation software, and to beat the other teams in a race! Topics include PID, MPC, pure pursuit, and localization and mapping. The appeal of this course is that it gives students a very fast path to seeing something running, and it lowers the barrier to self-driving cars significantly. We want students and researchers to compete on algorithms, not on who has the largest team. Checkout the syllabus.
Digital Twins: Model-Based Embedded Systems
(Fall 2017 and Spring 2018, University of Pennsylvania)
What does it take to design and implement a life-saving cardiac defibrillator? The lives of an additional 300,000 people worldwide depend on the answer, every year. What is needed to develop and implement reliable and efficient control software? This course will lead you to the answers, in three projects at the cutting edge of embedded systems design, covering energy-efficient buildings, cardiac medical devices, and automotive controllers. The objective of the course is to introduce model-based design, where you create a model of the phenomenon you are trying to control or verify, and use this model to develop and test your algorithms and devices. We introduce tools and theory of model-based design in a hands-on manner that highlights the nuances of modeling choices and the trade-offs between expressivity and verifiability. See the Brochure and Syllabus. The results of an informal mid-semester survey are here.