Introduction to Chip Design
Overall Course Objectives
This course introduces the design of digital integrated circuits, equipping students with theoretical foundations and hands-on experience in modern chip design. The course covers fundamental digital circuit concepts, design methodologies, and the use of open-source tools for chip development.
Students will explore key topics such as transistor-level design, logic synthesis, floorplanning, verification, and System-on-Chip (SoC) integration. The course also emphasizes practical skills by guiding students through a complete chip design flow, leading to a virtual tapeout and the opportunity for a real tapeout.
The course is divided into lecture-based theoretical sessions and lab-based practical exercises. Topics include:
• Review of transistors, logic gates, combinational circuits, and sequential circuits.
• Introduction to ASIC design and PDK concepts.
• Memory types, organization, and implementation (including register files and memory macros in open-source PDKs).
• Partitioning, floorplanning, interconnects, and networks-on-chip.
• Verification.
• Open-source tools and languages (OpenLane2, Tiny Tapeout, Chisel).
• RTL synthesis, place-and-route, timing closure, and GDSII generation.
This course includes a team-based final project. Students will apply the concepts learned throughout the course and utilize open-source tools for tapeout.
See course description in Danish
Learning Objectives
- Explain the basics operation of semiconductor devices, including transistors, and apply this knowledge to design basic digital circuits.
- Use open-source design tools (OpenLane2, Tiny Tapeout, Chisel) to develop and simulate a digital circuit through a complete design flow.
- Experience the full chip design process, including RTL synthesis, place-and-route, timing closure, and a virtual tapeout, with an opportunity for real tapeout.
- Apply the principles of System-on-Chip (SoC) design, including interconnects, to develop a basic SoC and to evaluate multicore SoC architectures
- Implement hardware verification techniques, including simulation-based verification and testbench design, to validate a simple SoC.
- Analyze different memory architectures, including register files and memory macros, and design simple memory subsystems.
- Demonstrate an understanding of ASIC design and process design kits (PDKs) by applying standard-cell-based design principles.
- Gain practical experience in the design, simulation, and implementation of a simple SoC, and experience a virtual tapeout process.
- Develop critical thinking and problem-solving skills through the design and analysis of medium complexity digital systems.
Course Content
• Fundamentals of digital circuit design (transistors, logic gates, combinational and sequential circuits).
• Introduction to ASIC design and PDK concepts.
• Memory design (types, organization, register files, and memory macros in open-source PDKs).
• System-on-Chip (SoC) design (partitioning, floorplanning, interconnects, and networks-on-chip).
• Verification methodologies and continuous integration.
• Open-source tools and design flows (OpenLane2, Tiny Tapeout, Chisel).
• RTL synthesis, place-and-route, timing closure, and GDSII generation.
• Tapeout process (virtual tapeout with SkyWater PDK, real tapeout with Tiny Tapeout).
• Team-based final project (SoC design and implementation using open-source tools).
Possible start times
- 6 – 20 (Wed 13-17)
Teaching Method
Lectures, group work, and homework. Mandatory final project.