Dive into the complex world of semiconductor manufacturing with this interactive die yield calculator built using Streamlit! This project simulates the process of placing dies on a wafer or panel, injecting defects based on various yield models, and visualizing the resulting yield. Whether you’re a semiconductor professional, a student, or just curious about the fabrication process, this app provides a valuable and engaging way to explore the key factors influencing die yield.
What is Die Yield?
In semiconductor manufacturing, die yield is the percentage of individual chips (dies) on a wafer or panel that are functional and meet the required specifications. Achieving high die yield is crucial for profitability, as it directly impacts the number of usable chips produced per substrate. Many factors can influence die yield, including:
- Substrate Geometry: The size and shape of the wafer or panel.
- Reticle (Shot) Layout: How the repeating patterns of circuits are arranged.
- Die Size: The area occupied by a single chip.
- Defect Density: The number of defects per unit area introduced during the fabrication process.
- Yield Models: Mathematical models used to predict yield based on defect density and critical area.
Features of the Interactive Die Yield Calculator
This Streamlit app provides a comprehensive set of tools to simulate and analyze die yield. Here’s a breakdown of its key features:
- Substrate Geometry: Supports both wafer (circular) and panel (rectangular) geometries. You can specify dimensions like wafer diameter, panel width/height, and edge loss.
- Reticle & Die Settings: Define the reticle shot size, die size, and scribe line widths. The app automatically tiles reticle shots, calculates die positions, and accounts for scribe-line gaps between dies.
- Die Classification: The app uses a corner-based approach to classify dies as good_physical (entirely within the effective area), partial (partially within the effective area), or lost (completely outside the effective area).
- Yield Model Selection: Choose from several popular yield models, including:
- Poisson: A simple model based on the exponential distribution.
- Murphy: A more sophisticated model that accounts for defect clustering.
- Rectangular: Assumes a uniform defect distribution.
- Moore: Another model for clustered defects.
- Seeds: A model that estimates the number of “seed” defects.
- Defect Injection: Injects defects into physically good dies based on the selected yield model and defect rate, marking them as “good” or “defective”.
- Monte Carlo Simulation: Runs the simulation multiple times (Monte Carlo) to explore the variability in fab yield.
- Visualization: Generates a colorful die map showing the location and status (good, defective, partial, lost) of each die. Reticle shot boundaries can also be optionally displayed.
- Downloadable Plot: The generated die map can be downloaded as a PNG image.
- Random Seed: An adjustable random seed allows for reproducible simulation results.
How to Use the App
- Geometry Settings: In the sidebar, select the substrate type (Wafer or Panel) and specify its dimensions and edge loss.
- Reticle & Die Settings: Define the reticle shot size, die size, and scribe line widths.
- Yield Model Settings: Choose a yield model, set the defect rate, and define the critical area. The app calculates and displays the resulting yield fraction.
- Simulation Options: Specify the number of Monte Carlo runs and set a random seed for reproducibility.
- Run Simulation: Click the “Run Simulation” button to start the simulation.
- View Results: The app displays a summary of the simulation results, including the average fab yield (from Monte Carlo runs), detailed tallies of good, defective, partial, and lost dies, and the die map visualization.
Technical Details
The app is written in Python using the Streamlit library for the user interface and Matplotlib for plotting. Key functions include:
compute_geometry()
: Calculates the positions of all dies on the substrate, taking into account reticle shot layout and scribe lines. The results are cached using Streamlit’s@st.cache_data
decorator for performance.classify_die()
: Classifies each die as good_physical, partial, or lost based on its corner positions relative to the substrate boundary.inject_defects()
: Injects defects into physically good dies based on the calculated yield fraction.compute_yield_fraction()
: Calculates the yield fraction based on the chosen yield model, defect rate, and critical area.run_simulation()
: Runs the defect injection simulation multiple times (Monte Carlo) and aggregates the results.
Getting Started
To run the app locally, you’ll need to install the following Python packages:
pip install streamlit numpy matplotlib
Then, save the code provided in the original README.md
as app.py
and run the following command:
streamlit run app.py
This will open the app in your web browser.
Future Enhancements
Possible future enhancements for this project include:
- More sophisticated defect models: Implement more advanced models that account for different types of defects and their spatial distribution.
- Interactive defect placement: Allow users to manually place defects on the die map.
- 3D Visualization: Visualize the die map in 3D, allowing for better representation of partial dies.
- Integration with real-world data: Integrate the app with real-world data from semiconductor fabrication facilities.
Conclusion
This interactive die yield calculator provides a valuable tool for understanding and exploring the factors that influence semiconductor die yield. By simulating the fabrication process and visualizing the results, the app offers a unique and engaging way to learn about this critical aspect of semiconductor manufacturing. Experiment with different parameters and see how they impact your simulated fab yield!