π Directory Structure Overview β SemiDevKit
This document describes the recommended directory structure of the SemiDevKit repository
and explains the role of each top-level and module-level directory.
Understanding this structure will help you navigate the toolkit, modify modules safely,
and maintain reproducibility.
π 1. Top-Level Layout
The top-level layout of SemiDevKit is organized as follows:
SemiDevKit/
β
βββ 1_install.md
βββ 2_setup.md
βββ 3_usage.md
βββ 4_license.md
βββ 5_openlane_lite_usage.md
βββ 6_troubleshooting.md
βββ 7_faq.md
βββ 8_directory_structure.md
β
βββ tcad_playground/
βββ tcad_playground_pzt/
βββ bsim4_analyzer_dc/
βββ bsim4_analyzer_cv/
βββ bsim4_analyzer_dim/
βββ bsim4_analyzer_reliability/
βββ paramus_physical/
βββ openlane_lite/
π Notes
- Markdown files (
1_install.mdβ¦8_directory_structure.md) form the official documentation flow - Each technical module lives in its own directory
- There are no cross-module runtime dependencies
π§ͺ 2. Module-Level Structure
2.1 TCAD Playground
Lightweight 1D TCAD modeling for MOSFETs, MOSCAPs, and Poisson equation studies.
tcad_playground/
βββ fig/ # Generated figures
βββ mosfet_vdid_*.py # VDβID simulations
βββ mosfet_vgid_*.py # VGβID simulations
βββ moscap_cv_*.py # CβV simulations
βββ poisson_1d.py # 1D Poisson solver
βββ README.md
2.2 PZT Playground
Exploration of ferroelectric PZT behavior, including hysteresis and material effects.
tcad_playground_pzt/
βββ fig/ # Generated figures
βββ pzt_pe_hysteresis_*.py # PβE loop simulation
βββ pzt_pm_surface_3dmap.py # 3D polarization maps
βββ pzt_se_butterfly_1d.py # Strainβelectric field behavior
βββ README.md
2.3 BSIM4 Analyzer β DC
Automated VGβID / VDβID DC sweep analysis using BSIM4 and ngspice.
bsim4_analyzer_dc/
βββ models/ # BSIM model cards
βββ templates/ # SPICE netlist templates
βββ run/ # Simulation scripts
βββ plot/ # Plotting utilities
βββ results/ # Generated results
βββ README.md
2.4 BSIM4 Analyzer β CV
Capacitance extraction focusing on physically meaningful CggβVg characteristics.
bsim4_analyzer_cv/
βββ models/
βββ template_cv.cir
βββ run_cv.py
βββ plot_cv.py
βββ results/
2.5 BSIM4 Analyzer β DIM (L / W Sweep)
Analysis of short-channel and geometry-dependent effects.
bsim4_analyzer_dim/
βββ models/
βββ templates/
βββ run/
βββ plot/
βββ results/
2.6 BSIM4 Reliability Analyzer
Modeling of HCI (NMOS) and NBTI (PMOS) degradation mechanisms.
bsim4_analyzer_reliability/
βββ models/
βββ templates/
βββ run/
βββ plot/
βββ results/
2.7 Paramus Physical Edition
Generation of BSIM4 model cards from physical parameters.
paramus_physical/
βββ modelcard/ # Generated model cards
βββ physical/ # Physical parameter definitions
βββ presets/ # Technology presets
βββ paramus.py
βββ README.md
2.8 OpenLane-Lite
Minimal RTL β GDSII digital implementation flow.
openlane_lite/
βββ docker/ # Docker wrapper and image
βββ scripts/ # Flow execution scripts
βββ examples/ # Example designs
βββ README.md
π 3. Directory Rules and Conventions
To maintain clarity and reproducibility:
- Each module must remain self-contained
- Generated figures must be stored under
fig/ - Scripts must not write outside their module directory
- Use consistent naming conventions (
snake_case) - Clean
results/directories before publishing or sharing
π§ 4. Summary
Each module in SemiDevKit:
- Follows a consistent directory structure
- Supports independent execution
- Enables reproducible experiments
- Supports a full learning path from
device physics β compact modeling β physical design
π This structure is intentional β do not modify it unless you know exactly what you are doing