Skip to content

os-chip-design/chip-design-intro

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

247 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

02118 - Introduction to Chip Design

This repository contains the material for the 13-week course 02118 - Introduction to Chip Design at the Technical University of Denmark (DTU). This course was developed with support from the Edu4Chip project.

Content

Practicalities

The course runs on Wednesdays from 13:00 to 17:00 in Building 308 - Room 017.

Each weekly session consist of a lecture and laboratory work. Some session will be fully dedicated to laboratory work (especially at the end of the course when you are expected to work on your project).

The course has two teachers:

Guest Lectures:

  • Luca Pezzarossa
  • Ole Richter
  • Kasper Hesse

Tools

Install the LibreLane tools locally or use the server chipdesign1.compute.dtu.dk. The tools are currently usable on Linux and MacOS (even native with Mac Silicon). For Windows use WSL2 to have a Linux environment. There is no official support for Windows available. See Section 1.2 in the Chip Design Booklet for installation instructions.

Course Aim

This course is an introduction to the design of digital integrated circuits. It covers the basics of digital circuits, the tools used, and the process of designing a chip. The course is based open-source tools and open-source PDKs. The course also gives the possibility for student projects to be taped out on Tiny Tapeout.

Reading Material

Lecture Plan

Lecture 1: Introduction to the Chip Design Course (MS)

Lecture outline

  • Overview of chip design and its importance in modern electronics
  • Basic terminology and concepts
  • Introduction to the LibreLane ASIC design flow
  • AISC with standard cells
  • PDK

Lab. 1

  • Local installation of the open-srouce tools (LibreLane)
  • Running a "Hello World" example from Verilog source to GDSII
  • Explore timing and size
  • Explore different reset strategies
  • See Section 1.3 in the Chip Design Booklet

Reading

Lecture 2: The Transistor, the Inverter, and Other Gates (LP)

Lecture outline

  • The need for a controlled switch
  • A brief history of the transistor
  • The MOSFET transistor
  • The NMOS inverter
  • The CMOS inverter
  • Other gates

Lab. 2

  • SiliWiz exercises
  • See Lab 2 for instructions

Reading/reference material

  • Lecture slides (also available as PDF in DTU-Learn)
  • From the textbook:
    • 1.3
    • 1.4.1, 1.4.2, 1.4.3, 1.4.4, 1.4.5
    • 1.5.1, 1.5.2
    • 2.1, 2.2*, 2.3*
  • quick read, no need to go into details with formulas

Lecture 3: Standard Cells, Interconnect (OR)

Lecture outline

  • Introduction to standard cells
  • Role of standard cells in digital design
  • Components of a standard cell library
  • Types of standard cells (e.g., logic gates, flip-flops)
  • Power, performance, and area
  • Characterization of standard cells
  • Models and simulation

Lab. 3

  • Simulate a SkyWater130 standard cell in Spice

Project Setup

  • Discussion about the project
  • Form and register groups in DTU Learn
  • Choose a project component to work on (CPU, memory, peripherals, testing, etc.)
  • Sign up in the GitHub repository
  • See The Tapeout Project for instructions

Lecture 4: Tool Flow and Caravel (MS)

Lecture outline

  • Details of the LibreLane ASIC design flow
  • Individual tools and their outputs
  • Caravel
  • Tapeout options (CF, waver.space for production, IHP)
  • Wishbone bus overview
  • Project discusion

Lab. 4

  1. Run steps of the LibreLane flow on a simple design from Python
  • According to Section 1.4 in the Chip Design Booklet
  • Explore the outputs of the individual stages
  1. Harden our Caravel framework with a simple peripheral
  2. Write a simple Wishbone peripheral (in Chisel)

Reading

Lecture 4b: Verilog (MS)

Lecture outline

  • Introduction to Verilog
  • Comparison with Chisel

Verilog Lab. 4b (Optional)

Reading

  • Lecture slides (also available as PDF in DTU-Learn)
  • Find good Verilog projects and read the code

Lecture 5: Verification (TP)

Lecture outline

  • Introduction to verification
  • Verification methodologies
  • Simulation-based verification
  • Testbench design
  • Assertions and coverage metrics
  • Brief overview of formal verification
  • Industry Standards, tools, and frameworks in verification

Lab. 5

The lab consists of two parts:

  1. One part introduces the testing setup in Caravel, see Caravel Testing Lab for instructions
  2. The other part works with formal verification methods. See Verification Lab for instructions

Reading

  • Lecture slides (also available as PDF in DTU-Learn)

Lecture 6: Timing and Physical Design (OR)

Lecture outline

  • Chip design rules
  • Power distribution design, optimization, and analysis
  • Digital design timing
  • Clock distribution challenges and clock trees
  • Timing closure
  • Physical Verification

Lab. 6

Reading

  • Lecture slides (also available as PDF in DTU-Learn)

Lecture 7 Floorplanning (MS) + Midterm Course Evaluation

Lecture outline

  • Floorplanning
  • Macros
  • Placement

Reading

Lecture 8: Memory (TP)

Lecture outline

  • Memory types: FF, latches, SRAM

  • Memory organization

  • Memory macros (IP blocks)

  • Memory options with the SkyWater130 PDK

  • Lecture slides

Reading

  • Lecture slides (also available as PDF in DTU-Learn)
  • From the textbook:
    • 12.1
    • 12.2, 12.2.1, 12.2.1.1, 12.2.1.2, 12.2.1.4
  • OpenRam article

Lecture 9: Guest lecture - Chip Design at Oticon (Kasper)

Lecture outline:

  • Chip design at Demant
  • Industrial design and implementation flow overview
  • Design and implementation considerations for low power
  • Challenges in lower design nodes (and/or at lower voltages)

Lab. 9

  • Finalise the functional implementation of your project

Lecture 10: SkyWater130 PDK (MS)

  • not yet availble

Lecture outline:

Lab. 10

  • Work on project

Reading

  • None

Lecture 11: TBD (TP/MS)

  • not yet availble

Lecture outline:

Lab. 11

  • Work on project

Reading

  • None

Lecture & Lab 12: Guest Lecture (Tamas) and Project Work and Tapeout

Finalize the project for tapeout.

  • Run Timing closure and LVS
  • Fix timing violations and handle design missmatches
  • "tape out" your project

Lecture 13: Student project presentations (MS/TP)

Each group presents their finalized project and discusses the results.

License

All original content in this repository, including text, code, and other materials, is licensed under the CC0 1.0 Universal license (see LICENSE file), unless otherwise noted.

License Note for Images

Certain images in this repository are not covered by the CC0 license. These images may be subject to more restrictive copyright terms. Where applicable, copyright and licensing information is provided for these images in the relevant directories, file descriptions, or as text integrated in the images.

Funding

Funded by the European Union within the Edu4Chip - Joint Education for Advanced Chip Design in Europe project. Views and opinions expressed are however those of the author(s) only and do not necessarily reflect those of the European Union or European Health and Digital Executive Agency (HaDEA). Neither the European Union nor the granting authority can be held responsible for them.

About

Introduction to Chip Design

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors