Board-level Electronics Design
These publications are part of ongoing work on improving the circuit board design process with better tools, towards an open-source and high-level design tool to enable the large-scale community collaboration and libraries seen in software engineering.
- Weaving Schematics and Code: Interactive Visual Editing for Hardware Description Languages (open-access)
Richard Lin, Rohit Ramesh, Nikhil Jain, Josephine Koe, Ryan Nuqui, Prabal Dutta, and Björn Hartmann
The 34th Annual ACM Symposium on User Interface Software and Technology (UIST ‘21)
Source Code || Short Talk and Demo Video (on ACM DL)
- Polymorphic Blocks: Unifying High-level Specification and Low-level Control for Circuit Board Design (open-access)
Richard Lin, Rohit Ramesh, Connie Chi, Nikhil Jain, Ryan Nuqui, Prabal Dutta, and Björn Hartmann
Proceedings of the 33rd Annual ACM Symposium on User Interface Software and Technology (UIST ‘20)
Source Code || Short Talk and Demo Video (on ACM DL)
- Beyond Schematic Capture: Meaningful Abstractions for Better Electronics Design Tools (open-access)
Richard Lin, Rohit Ramesh, Antonio Iannopollo, Alberto Sangiovanni Vincentelli, Prabal Dutta, Elad Alon, and Björn Hartmann
Proceedings of the 2019 CHI Conference on Human Factors in Computing Systems (CHI ‘19)
- Turning coders into makers: the promise of embedded design generation
Rohit Ramesh, Richard Lin, Antonio Iannopollo, Alberto Sangiovanni-Vincentelli, Björn Hartmann, and Prabal Dutta
Proceedings of the 1st Annual ACM Symposium on Computational Fabrication (SCF ‘17)
Chip-level Digital Design
These publications are all part of the Chisel project, an open-source and production-tested hardware description language (HDL) that provides principled generators (think metaprogramming Verilog) for digital logic design.
- A Mixed-Signal RISC-V Signal Analysis SoC Generator With a 16-nm FinFET Instance
Steven Bailey, Paul Rigge, Jaeduk Han, Richard Lin, Eric Chang, Howard Mao, Zhongkai Wang, Chick Markley, Adam Izraelevitz, Angie Wang, Nathan Narevsky, Woorham Bae, Steve Shauck, Sergio Montano, Justin Norsworthy, Munir Razzaque, Wen Hau Ma, Akalu Lentiro, Matthew Doerflein, Darin Heckendorn, Jim McGrath, Franco DeSeta, Ronen Shoham, Mike Stellfox, Mark Snowden, Joseph Cole, Daniel Fuhrman, Brian Richards, Jonathan Bachrach, Elad Alon, and Borivoje Nikolić
Oct 2019, IEEE Journal of Solid-State Circuits
- Reusability is FIRRTL ground: Hardware construction languages, compiler frameworks, and transformations
Adam Izraelevitz, Jack Koenig, Patrick Li, Richard Lin, Angie Wang, Albert Magyar, Donggyu Kim, Colin Schmidt, Chick Markley, Jim Lawson, and Jonathan Bachrach
2017, IEEE/ACM International Conference on Computer-Aided Design (ICCAD)
Related projects (without standalone publications)
- ChiselTest, an RTL testing framework that focuses on usability and simplicity in a pure imperative framework (instead of Verilog/VHDL’s mixed imperative and hardware construction semantics)
- chisel-jtag, a JTAG TAP (test access port) generator for Chisel
- builtin-debugger, parameterized built-in logic analyzer and pattern generator modules for Chisel
- Guardians of Practice: A Contextual Inquiry of Failure-Mitigation Strategies within Creative Practices
Cesar Torres, Sarah Sterman, Molly Nicholas, Richard Lin, Eric Pai, and Eric Paulos
Proceedings of the 2018 Designing Interactive Systems Conference (DIS ‘18)
Jonathan Bachrach, David Biancolin, Austin Buchan, Duncan Haldane, and Richard Lin
2016, IEEE/RSJ International Conference on Intelligent Robots and Systems (IROS)
EE192 (Mechatronics Design Lab), UC Berkeley
Spring 2020, co-Graduate Student Instructor
Spring 2015, Graduate Student Instructor (Outstanding GSI Award)
EE192 is an undergraduate design project class, where students build a line-following ~1:10 scale race car.
Students start from a stock chassis with motor and servo, and design and assemble custom circuit boards for power conversion and logic, and write the firmware including controls loops (typically PID).
Students work in groups of three, and the semester-long interdisciplinary project involves hands-on, practical mechanical engineering, electrical engineering, and computer science.
In 2015, my focus was on developing a re-usable slide deck for discussion / lab sections and on writing a live telemetry visualization system to encourage students to work with data instead of debugging by trial-and-error 🤦.
In 2020 and along with co-GSI Derek Chou, we focused on refactoring the course to get students to a working car as soon as possible by providing the first iteration electronics as a circuit board kit.
We hoped a reference circuit board would help demonstrate the implicit knowledge of what makes good circuit boards, while going through the assembly process would provide students design-for-manufacturing (DFM) intuition when they build their own.
While we didn’t know it at the beginning of the semester, this turned out to be invaluable for the pandemic: all students had working cars and controls by the time the lockdown hit, and we consider this an extremely lucky success.
For the rest of the semester, we shifted focus to controls and learning (track memorization) in simulation in V-REP.
(in progress) PhD in Computer Science, UC Berkeley (2013-current)
Co-advised by Björn Hartmann and Elad Alon
BS in Electrical Engineering and Computer Sciences, UC Berkeley (2009-2013)
I’ve been part of the UC Berkeley Solar Vehicle Team (we design, build, test, and race solar racing cars) since my first year in undergraduate.
Some of our design materials are open source on GitHub, including firmware shared libraries and our hands-on electronics training lab for new members.
There is a good deal of crossover between my research projects and CalSol projects, with the active battery balancing system (on Zephyr) containing RTL written in Chisel and tested with ChiselTest, and with the lights controller and datalogger on Tachyon) having their PCBs designed in Polymorphic Blocks.
Engineering aside, I’ve served as treasurer for many years, automating reimbursements paperwork generation with Python.
Unsurprisingly, it turns out that purchasing and reimbursements are kind of important for a physical project as large as CalSol.