Problem-Based Modules
This section presents a set of problem-based learning (PBL) modules that correspond to the stages of the open-source digital IC design flow. Each module focuses on a concrete design problem, encouraging participants to explore, experiment, and apply concepts introduced in the Concepts and Course Structure sections.
Problem 0 – Introduction to the Open Design Ecosystem
Problem Statement
“How can we design and fabricate a complete integrated circuit using only open-source tools and PDKs?”
Learning Goals
- Understand the open-source EDA ecosystem (tools, communities, and PDKs).
- Identify the stages of the RTL-to-GDSII flow and their interdependencies.
- Set up the working environment (Docker, Nix, or WSL2).
Hints & Resources
- Work in progress...
Expected Deliverables
- Verified tool installation and environment setup log.
- Screenshot or description of a successful example run (e.g.,
openroad -versionoryosys -V).
Reflection Questions
- What are the main design flow stages?
- What advantages does open-source design offer to education and research?
Problem 1 – Digital System Design and Simulation
Problem Statement
“How can we design and verify a digital system that meets a functional specification?”
Learning Goals
- Apply digital design principles (combinational and sequential logic).
- Write and simulate RTL using Verilog and open-source simulators.
- Interpret simulation waveforms and debug design behavior.
Hints & Resources
- Work in progress...
Expected Deliverables
- RTL code of the designed system (e.g., counter, ALU, FSM or advanced system).
- Testbench verifying correct functionality.
- Simulation waveform (
.vcd) demonstrating proper behavior.
Reflection Questions
- What types of errors did you encounter during simulation?
- How do you ensure that the testbench covers all expected scenarios?
Problem 2 – Synthesis and Netlist Analysis
Problem Statement
“How does our high-level RTL description become a gate-level implementation?”
Learning Goals
- Perform synthesis using Yosys.
- Analyze synthesis reports and identify logic optimizations.
- Interpret the generated gate-level netlist.
Hints & Resources
- Work in progress...
Expected Deliverables
- Gate-level Verilog netlist (
.v). - Synthesis log and report (area, cell count, warnings).
- Screenshot or diagram comparing RTL vs. netlist structure.
Reflection Questions
- What types of optimizations did Yosys perform?
- How can synthesis constraints affect timing?
- What are the main differences between your RTL and netlist versions?
Problem 3 – Physical Implementation
Problem Statement
“How can we transform our gate-level netlist into a physical layout that meets design rules?”
Learning Goals
- Understand floorplanning, placement, and routing fundamentals.
- Use OpenROAD or LibreLane to implement the design.
- Identify congestion, timing, or routing issues during layout generation.
Hints & Resources
- Work in progress...
Expected Deliverables
- Implemented design DEF and GDS files.
- Layout screenshots at different stages (placement, routing).
- Short timing and area summary report.
Reflection Questions
- What trade-offs exist between area, timing, and routing complexity?
- Which step of physical design was most challenging and why?
- How could you improve the power distribution network in future iterations?
Problem 4 – Verification and Sign-off
Problem Statement
“How can we ensure that our final layout is correct, manufacturable, and functionally equivalent to our schematic?”
Learning Goals
- Perform DRC and LVS checks using Magic and KLayout.
- Validate electrical and logical equivalence with Netgen or Yosys EQY.
- Understand the importance of parasitic extraction and timing analysis (STA).
Hints & Resources
- Work in progress...
Expected Deliverables
- DRC and LVS reports showing a clean design.
- Extracted parasitic netlist and timing report.
- Short summary describing verification results.
Reflection Questions
- What are the most common DRC violations?
- How can parasitic effects influence timing?
- What differences did you observe between schematic and layout netlists?
Problem 5 (Optional) – Integration and Mixed-Signal Extension
Problem Statement
“How can we combine a digital core and an analog block into a functional mixed-signal system?”
Learning Goals
- Integrate digital and analog sub-blocks at the top level.
- Manage pin alignment, power domains, and interface signals.
- Perform top-level verification before final GDS export.
Hints & Resources
- Work in progress...
Expected Deliverables
- Top-level mixed-signal GDS and schematic hierarchy diagram.
- Documentation of integration constraints (supply levels, IO).
- Verification report showing proper interconnection between domains.
Reflection Questions
- What integration issues arise when combining analog and digital domains?
- How can you verify signal integrity across domains?
- How could you generalize your integration flow for future projects?
Each problem is designed to be open-ended — instructors are encouraged to adjust difficulty and scope depending on audience background and available time.