IHP GDSFactory PDK
IHP's SG13G2 is an open-source 130nm SiGe BiCMOS technology for RF/mmWave electronics.
A GDSFactory-based Process Design Kit for the IHP SG13G2 130nm BiCMOS open-source technology. It provides parametric layout cells, design rule constants, simulation models, and example designs for tape-out-ready integrated circuits.
Quick start
Use Python 3.11, 3.12 or 3.13. We recommend VSCode as an IDE.
uv pip install ihp-gdsfactory --upgrade
Then you need to restart Klayout to make sure the new technology installed appears and start generating IHP-SG13G2 GDSII immediately!
import gdsfactory as gf
from ihp import PDK
from ihp.cells import nmos, rfnmos, npn13G2, rsil, cmim
PDK.activate()
# Create a parametric NMOS transistor
c = nmos(width=1.0, length=0.13, nf=4)
c.write_gds("my_nmos.gds")
c.show() # opens in KLayout
Available devices
| Category | Device | Function |
|---|---|---|
| FET | nmos | nmos |
| pmos | pmos |
|
| nmos_hv | nmos_hv |
|
| pmos_hv | pmos_hv |
|
| RF FET | rfnmos | rfnmos |
| rfpmos | rfpmos |
|
| rfnmos_hv | rfnmos_hv |
|
| rfpmos_hv | rfpmos_hv |
|
| Bipolar | npn13G2 | npn13G2 |
| npn13G2L | npn13G2L |
|
| npn13G2V | npn13G2V |
|
| pnpMPA | pnpMPA |
|
| Resistor | rsil (silicided poly) | rsil |
| rppd (p-poly) | rppd |
|
| rhigh (high-R) | rhigh |
|
| Capacitor | cmim (MIM) | cmim |
| rfcmim (RF MIM) | rfcmim |
|
| cmom (MOM) | cmom |
|
| Inductor | inductor2 | inductor2 |
| inductor3 | inductor3 |
|
| Passive | svaricap (MOS varicap) | svaricap |
| ESD protection | esd_nmos |
|
| ntap1 / ptap1 | ntap1 / ptap1 |
|
| guard_ring | guard_ring |
|
| sealring | sealring |
|
| Diode | diodevdd 2kV/4kV | diodevdd_2kv / diodevdd_4kv |
| diodevss 2kV/4kV | diodevss_2kv / diodevss_4kv |
|
| schottky_nbl1 | schottky_nbl1 |
|
| Antenna | dantenna / dpantenna | dantenna / dpantenna |
| Bondpad | bondpad | bondpad |
Project structure
ihp/
├── cells/ # Pure GDSFactory parametric layout cells
│ ├── fet_transistors.py # NMOS/PMOS (standard & HV)
│ ├── rf_transistors.py # RF-MOSFETs with guard/gate rings
│ ├── bjt_transistors.py # SiGe HBTs (npn13G2, npn13G2L, npn13G2V, pnpMPA)
│ ├── resistors.py # Polysilicon & metal resistors
│ ├── capacitors.py # MIM & MOS capacitors
│ ├── inductors.py # Spiral inductors
│ ├── passives.py # Diodes, varactors, guard rings
│ ├── via_stacks.py # Via stack generators
│ └── bondpads.py # Bondpad cells
├── models/ # Compact models & SAX S-parameter models
├── gds/ # Pre-built GDS files for complex cells
├── tech.py # Layer map, design rules, technology parameters
├── layers.yaml # Layer definitions
└── config.py # Paths and PDK configuration
tests/
├── test_cells.py # GDS regression & settings tests for all cells
└── gds_ref/ # Golden reference GDS files
docs/ # Jupyter Book documentation (Sphinx)
Key architectural concepts:
cells/contains pure GDSFactory implementations — each@gf.cellfunction builds geometry from scratch usingadd_polygonand design rule constants fromtech.py. No external layout tools are needed at runtime.models/provides SAX-compatible S-parameter models for circuit simulation.
Installation
We recommend uv
# On macOS and Linux.
curl -LsSf https://astral.sh/uv/install.sh | sh
# On Windows.
powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"
Installation for contributors
git clone https://github.com/gdsfactory/ihp.git
cd ihp
uv venv --python 3.12
uv sync --extra docs --extra dev
python install_tech.py
Running tests
make test # run full test suite
make test-force # run tests and regenerate reference GDS files
To run specific test subsets:
uv run pytest tests/test_cells.py -v # GDS regression + settings tests
Documentation
License
Pre-commit
Pre-commit hooks are centrally maintained in pdk-ci-workflow-public. make dev fetches the canonical config and installs the git hook.
make dev
Release
-
Bump the version:
tbump 0.0.1
-
Push the tag:
git push --tags
This triggers the release workflow that builds wheels and uploads them.
-
Create a pull request with the updated changelog since last release.
Metadata
Release files for ihp-gdsfactory 2.0.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| ihp_gdsfactory-2.0.0.tar.gz | 575.3 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| ihp_gdsfactory-2.0.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 1.2 MB
Release files / ihp_gdsfactory-2.0.0.tar.gz
| Download URL | ihp_gdsfactory-2.0.0.tar.gz |
|---|---|
| Size | 575.3 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
5d474a0f367acbccf1865b1acf3eeb03b542bb8543fcfc6d325e4f15abc14404
|
|
BLAKE2b-256 checksum How to use checksums |
64c923b872ee98fbd83cc00c3a7f451f770b588b4d7c1a32253e3dd2aeec6a97
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.12.13
|
Release files / ihp_gdsfactory-2.0.0-py3-none-any.whl
| Download URL | ihp_gdsfactory-2.0.0-py3-none-any.whl |
|---|---|
| Size | 661.7 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
d441b8fe9579e6c880dc4a2971533c2bdf7ba1f0bc9096c4a45c9330e91c2a82
|
|
BLAKE2b-256 checksum How to use checksums |
696a99e5e63331a5fb8cc08f3569df73cc1253c6752d76fbb51fd145b77e2cf6
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.12.13
|