ChipFoundry MPW tapeout precheck tool
Project description
cf-precheck
ChipFoundry MPW tapeout precheck tool. Validates user projects before shuttle submission by running a sequence of design-rule and consistency checks.
Installation
pip install cf-precheck
External tool dependencies
Some checks invoke external EDA tools that must be available on $PATH:
- KLayout — used by all Klayout DRC checks and the XOR check
- Magic — used by the optional Magic DRC check and LVS
- Netgen — used by the LVS check
Usage
cf-precheck -i <project_dir> -p <pdk_path> -c <caravel_root> [options] [check ...]
Required arguments
| Flag | Description |
|---|---|
-i, --input-directory |
Path to the user project directory |
-p, --pdk-path |
Path to the PDK installation (variant-specific, e.g. $PDK_ROOT/sky130A) |
-c, --caravel-root |
Path to the golden Caravel root (or set $GOLDEN_CARAVEL) |
Optional arguments
| Flag | Description |
|---|---|
-o, --output-directory |
Output directory (default: <project>/precheck_results/<timestamp>) |
--magic-drc |
Include the Magic DRC check (off by default) |
--skip-checks check [...] |
Skip specific checks |
-v, --verbose |
Show verbose/debug output |
--version |
Print version and exit |
Positional arguments
Pass one or more check names to run only those checks. If omitted, all applicable checks are run.
Example
# Run all checks
cf-precheck -i ./my_project -p $PDK_ROOT/sky130A -c ./caravel
# Run only specific checks
cf-precheck -i ./my_project -p $PDK_ROOT/sky130A -c ./caravel topcell_check gpio_defines
# Include the optional Magic DRC check
cf-precheck -i ./my_project -p $PDK_ROOT/sky130A -c ./caravel --magic-drc
# Skip certain checks
cf-precheck -i ./my_project -p $PDK_ROOT/sky130A -c ./caravel --skip-checks lvs oeb
Checks
| Check | Description |
|---|---|
topcell_check |
Validates the top cell name in the GDS |
gpio_defines |
Validates GPIO directives in verilog/rtl/user_defines.v |
pdn |
Power distribution network check |
metal_check |
Metal density check |
xor |
XOR comparison against the golden wrapper to detect out-of-bounds edits |
magic_drc |
Full DRC using Magic (optional, off by default) |
klayout_feol |
Klayout Front End Of Line DRC |
klayout_beol |
Klayout Back End Of Line DRC |
klayout_offgrid |
Klayout off-grid violations check |
klayout_metal_minimum_clear_area_density |
Klayout metal density check |
klayout_pin_label_purposes_overlapping_drawing |
Klayout pin/label overlap check |
klayout_zero_area |
Klayout zero-area cell check |
spike_check |
Detects invalid paths in the design |
illegal_cellname_check |
Detects cells with illegal names |
oeb |
Output-enable-bar signal connectivity check |
lvs |
Layout vs. Schematic check |
Results
Check results are saved to <project>/.cf/project.json under the precheck key:
{
"precheck": {
"version": "1.0.0",
"timestamp": "2026-03-17T12:00:00+00:00",
"pdk": "sky130A",
"passed": false,
"checks": {
"topcell_check": { "status": "pass", "duration_s": 1.2 },
"gpio_defines": { "status": "fail", "duration_s": 0.8, "details": "..." }
}
}
}
Detailed logs are written to <project>/precheck_results/<timestamp>/logs/precheck.log.
License
Apache-2.0
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file cf_precheck-1.1.0.tar.gz.
File metadata
- Download URL: cf_precheck-1.1.0.tar.gz
- Upload date:
- Size: 3.5 MB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
5218580667c40559cb7766905a8883d1ab45e7997462e179f0cc8c1571635c8b
|
|
| MD5 |
52c8ce76a9257a4208c2950443ec2caf
|
|
| BLAKE2b-256 |
d840f2ed2948d00ba36eb208c9f03ebfbd32ff7913f539d871197d82b8397849
|
File details
Details for the file cf_precheck-1.1.0-py3-none-any.whl.
File metadata
- Download URL: cf_precheck-1.1.0-py3-none-any.whl
- Upload date:
- Size: 3.7 MB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a311e4e8da40e342184272def7cdbbeefc7c675adda54ed1414cca7f8d6fd7a2
|
|
| MD5 |
f24eefb0cfd1c788c459270042c1714e
|
|
| BLAKE2b-256 |
3662facf6c4b032bbd1e25bf2aa15f2a8e2e901a848db7c52f04dcdfce73dd44
|