EE372 - Design Projects in VLSI Systems II

Design and tape out your own digital, analog or mixed-signal chip in an open-source technology!

Overview

In EE372 you will leverage your knowledge of chip design flows from EE272 and design and fabricate your own digital/analog/mixed-signal chip! This is a completely project-based course where, working in teams of two, you will propose an idea for your own chip, write a Verilog or a synthesizable C++ model or a schematic of your chip, verify it extensively, generate a layout of your chip either manually or using synthesis and place and route tools, perform physical verification and finally tape it out in the open-source SkyWater 130 nm technology. This course is useful for anyone who is thinking about designing a chip in their research or in their careers after graduation.

Technology and Design Flows

  • Analog design flow: We use an open-source analog design flow with the following tools (note that commercial analog design tools like Virtuoso and Calibre are not supported for this open PDK yet):
  • Digital design flow: We use either an open-source digital design flow called OpenLane, or for advanced features, a (mostly) commercial digital design flow shown below composed using mflowgen. Note that since the open PDK does not have support for Calibre yet, we use a combination of magic and netgen for DRC, extraction and LVS for the digital designs as well. In either case, we perform the final integration of the user design into the caravel user project using OpenLane. This user project is verified with precheck tool and submitted to the shuttle.
  • Memories: For memories, there are two options:
    • OpenRAM SRAM compiler: While the support for SkyWater 130 nm technology is still being added to the OpenRAM compiler, there are pre-generated SRAM macros available here. The 1 KByte and 2 KByte macros are verified and can be used in projects.
    • DFFRAM compiler: This generates D flip-flop based memories. It is less dense than OpenRAM by a factor of 3, but more dense than what you would get by synthesizing to flip-flops using OpenLane.

Resources

Student Projects

Fast ANN Fieldious: An Approximate Nearest-Neighbor (ANN) Field Hardware Accelerator

Chris Calloway, Jake Ke

Code: Design, Caravel User Project

Documentation: Proposal, Design Review, Final Presentation, Report

Fast ANN Fieldious is a hardware accelerator for computing approximate nearest neighbor fields (ANNF). This is an important but computationally expensive calculation needed for computer vision tasks such as optical flow, video compression and image pattern matching. Our accelerator implements a parallelized and pipelined version of the propagation assisted K-D tree algorithm for computing ANNF. The design runs at a clock frequency of 150 MHz, and achieves a throughput of 5.74M vectors/seconds with a power consumption of 204 mW.

OpenPUF: A Bistable Ring Physical Unclonable Function

Luke Sammarone, Xiaolin Wu

Code: Design, Caravel User Project Analog

Documentation: Proposal, Design Review, Final Presentation, Report

Physical unclonable functions (PUFs) contain cryptographic secrets not in the form of digital values stored in memory, but in the physical characteristics of the hardware itself, enabling authentication and secret key generation securely and energy efficiently. This chip features four instances of 32-bit, 64-bit, and 128-bit bistable ring PUFs for characterization of stability, uniqueness, and settling time. The PUF super block occuies an area of 1.02 square mm and shows 48% uniqueness in post-layout simulation.

Kairos: A Vector Processor for Error-State Extended Kalman Filter Acceleration

Jeffery Yu, Yuchen Mei

Code: Design, Caravel User Project

Documentation: Proposal, Design Review, Final Presentation, Report

Kairos is a SIMD single precision floating point vector processor, with instructions conforming to the RISC-V ISA. It implements operations such as vector fused multipy-add, matrix inversion, and matrix multiply-add, to efficiently accelerate error-state extended Kalman filter (ES-EKF) for trajectory estimation.

12-bit 10-KSPS Incremental Delta-Sigma ADC in Skywater 130 nm

Raymond Yang, Yaqing Xia

Code: Design, Caravel User Project Analog

Documentation: Proposal, Design Review, Final Presentation, Report

This project is a 12-bit 10 KSPS incremental delta-sigma analog-to-digital converter (ADC) designed for sensor interface and instrumentation applications. The ADC consists of a second-order incremental modulator and three post-integrators. The total area of the ADC is 0.55 square mm, with 0.53 square mm for analog modulator and 0.02 square mm for digital filter.

Grapevine: An Asynchronous Numerical Classifier Using Sparse Grids

Leo Liu, Priyanka Dilip

Code: Design, Caravel User Project

Documentation: Proposal, Design Review, Final Presentation

Grid-based numerical methods sample N-dimensional functions at regular intervals to produce an N-dimensional set of discrete “grid points”. By breaking up grid points into hierarchical subgrids and eliminating subgrids above a certain hierarchy, one can obtain a sparsified grid space that reduces computational complexity. Grapevine is a hardware accelerator for solving classification problems using the sparse grid approach. It supports up to 6 dimensions and 256 grid points. Each grid point is implemented using a single processing element (PE). An asynchronous network-on-a-chip overlays the PEs to provide low-latency multicast routing.

Automated Analog Layout of Bandgap Reference Circuit

Yueting Li, Xingyu Ni

Code: Design, Caravel User Project Analog

Documentation: Proposal, Design Review, Final Presentation, Report

This project ports an automatic analog layout generation tool called aloe to work with SkyWater 130 nm technology. Aloe uses a digital place and route tool together with a genetic algorithm to meet different analog layout specifications. Using this tool, we generated several layouts for a bandgap voltage reference circuit on this chip, and we will compare these with a manually laid out version from the previous offering of this course.

OpenEnclave: A Basic BGV Homomorphic Encryption Accelerator

Ian MacFarlane, JD Kelly

Code: Design, Caravel User Project

Documentation: Proposal, Design Review, Final Presentation, Report

Homomorphic encryption is a promising technique to enable secure computation on sensitive data. It has particualy seen significant interest for use in cloud based machine learning. OpenEnclave is an open-source hardware accelerator for the BGV fully homomorphic encryption scheme in SkyWater 130 nm technology. The design is capable of operating at 50 MHz and is comparable to or outperforms existing FPGA implementations in the literature.

Logistics

Term: 2021-2022 Spring

Units: 3-5
For 3 units - Create a design all the way to clean layout, but no integration into carrier SoC, and no tapeout. Deliverables will be design's code repository with working tests and documentation.
For 4 units - Everything for 3 units + integration into carrier SoC + tapeout.
For 5 units - Everything for 4 units + VLSI-style final paper with circuit description, simulation results and comparison with related work.

Instructor: Priyanka Raina (praina at stanford dot edu)

TAs: Can Wang, Charles Tsao

Lectures: Tue, Thu 9:45 - 11:15 AM at Hewlett Teaching Center 102.

Open office hours:
Priyanka Raina: Thu 11:15 - 12:15 in Allen 114.
Charles Tsao: Fri 10 - 11 in Packard 104.
Can Wang: Tue 11:15 - 12:15 in Packard 104.

Project sync-ups:
Priyanka Raina: Tue 11:30 - 12 (Chris Calloway & Jake Ke), Tue 12 - 12:30 (Jeffery Yu & Yuchen Mei) in Allen 114.
Charles Tsao: Wed 1 - 1:30 (Ian MacFarlane & JD Kelly), Wed 2 - 2:30 (Leo Liu & Priyanka Dilip) in Packard 109.
Can Wang: Wed 12:00 - 12:30 (Yueting Li & Xingyu Ni), Thu 11:15 - 11:45 (Luke Sammarone & Xiaolin Wu), Thu 4:00 - 4:40 (Raymond Yang & Yaqing Xia).

Canvas: All documents, including lecture notes, and lecture video recordings will be posted on Canvas.

Slack/Piazza: For questions about lectures and project debugging we will use Slack and Ed Discussion. Everyone should also join the skywater-pdk Slack channel for collaborating and debugging with the larger open hardware community.

Pre-requisites

EE271, EE272 and fundamentals of digital/analog circuit design.

Course Schedule

Week Date Topic Presenter
1 Tue, Mar 29 Lecture: Tapeout process overview, digital and analog flows Priyanka Raina
1 Thu, Mar 31 Lecture: Project overview presentations (10 minutes per group) All groups
2 Tue, Apr 5 Lecture: Caravel SoC Priyanka Raina
2 Thu, Apr 7 Lecture: Digital flow post innovus signoff and analog flow considerations Priyanka Raina
3 Tue, Apr 12 Lecture: Caravel integration, simulation, and OpenLane tutorial Charles Tsao
3 Thu, Apr 14 Lecture: Analog validation Can Wang
4 Tue, Apr 19 Lecture: Integrating user design in caravel - I Priyanka Raina
4 Thu, Apr 21 Debugging help Priyanka Raina
5 Tue, Apr 26 Lecture: Mid-quarter design review, functional demo (30 minutes per group) Chris Calloway/Jake Ke, Ian MacFarlane/JD Kelly
5 Thu, Apr 28 Lecture: Mid-quarter design review, functional demo (30 minutes per group) Raymond Yang/Yaqing Xia, Luke Sammarone/Xiaolin Wu, Yueting Li/Xingyu Ni
5 Sat, Apr 30 RTL/schematics + tests due
6 Tue, May 3 Lecture: Mid-quarter design review, functional demo (30 minutes per group) Jeffery Yu/Yuchen Mei, Leo Liu/Priyanka Dilip
6 Thu, May 5 Lecture: Integrating user design in caravel - II Can Wang
7 Tue, May 10 Lecture: Virtuoso tutorial and how to generate timing models Priyanka Raina
7 Thu, May 12 Debugging help Priyanka Raina
8 Tue, May 17 Lecture: Integrating user design in caravel - III Priyanka Raina
8 Thu, May 19 Running static timing analysis on caravel SoC Priyanka Raina
9 Mon, May 23 Inital layout due
9 Tue, May 24 Lecture: Final presentation in class (30 minutes per group) Jeffery Yu/Yuchen Mei, Leo Liu/Priyanka Dilip
9 Thu, May 26 Lecture: Final presentation in class (30 minutes per group) Raymond Yang/Yaqing Xia, Luke Sammarone/Xiaolin Wu, Yueting Li/Xingyu Ni
10 Tue, May 31 Lecture: Final presentation in class (30 minutes per group) Chris Calloway/Jake Ke, Ian MacFarlane/JD Kelly
10 Wed, Jun 8 Tapeout --- Submit designs to shuttle

Grading

Component Weight
Project overview presentation 5%
RTL/schematic + tests 20%
Mid-quarter design review 15%
Layout + signoff 20%
Final presentation 15%
Final report (Only if taking the class for 4 units) 15%
Weekly syncups 10%