IP forge - discover, fetch and install open PDK IP packages
Project description
Consumer tool for the ipforge IP registry. Discover, fetch, and install open PDK IP packages into your project.
Installation
Create a virtual environment:
python3 -m venv .venv source .venv
Run the following command in the root directory of your chip layout project to make ipforge available in your environment:
pip install ipforge
Quick Start
Initialise a project in the current directory:
ipforge init https://ipforge-registry.aesc-silicon.io --pdk ihp-sg13g2
This creates ipforge.yml in the current directory:
registry: https://ipforge-registry.aesc-silicon.io packages_dir: packages/ pdk: ihp-sg13g2
Fetch an IP:
ipforge remote fetch aesc-silicon/digital.peripherals.io/gpio
The package is extracted to packages/digital/peripherals/io/gpio/ihp-sg13g2/.
Commands
init
ipforge init <registry-url> [--pdk <pdk>] [--packages-dir <dir>]
Initialises ipforge.yml in the current directory.
<registry-url> - URL of the registry (required).
--pdk - Default PDK used when --pdk is not passed to remote fetch (e.g. ihp-sg13g2).
--packages-dir - Local directory for installed packages (default: packages/).
status
ipforge status
Lists all packages in the lock file and checks the registry for newer versions:
aesc-silicon/digital.peripherals.io/gpio@0.1.0 [ihp-sg13g2] up to date aesc-silicon/digital.peripherals.io/uart@0.2.0 [ihp-sg13g2] update available: 0.3.0
remote list
ipforge remote list [--pdk <pdk>] [--filter <path>]
Lists packages available in the registry.
--pdk - Filter by PDK (e.g. ihp-sg13g2).
--filter - Filter by path segments, e.g. digital/io matches any package whose library contains both digital and io:
ipforge remote list --pdk ihp-sg13g2 ipforge remote list --filter digital/io
Example output:
aesc-silicon/digital.peripherals.io/gpio@0.1.0 [ihp-sg13g2]
General-purpose I/O controller with tri-state pins, configurable per-pin
direction, input synchronisation, and a four-channel interrupt controller.
Macros:
gpio_apb_32b [APB3] 32-bit 32-bit GPIO with APB3 interface
gpio_wb_32b [Wishbone] 32-bit 32-bit GPIO with Wishbone interface
remote fetch
ipforge remote fetch <vendor>/<library>/<name>[@<version>] [--pdk <pdk>]
Downloads and installs a package. If --pdk is omitted the default PDK from ipforge.yml is used. If @version is omitted the latest version is fetched.
Examples:
ipforge remote fetch aesc-silicon/digital.peripherals.io/gpio ipforge remote fetch aesc-silicon/digital.peripherals.io/gpio@0.1.0 ipforge remote fetch aesc-silicon/digital.peripherals.io/gpio --pdk sky130
The package is recorded in ipforge.lock.yml.
remote install
ipforge remote install
Installs all packages listed in ipforge.lock.yml that are not already present locally. Use this after cloning a project to restore all dependencies.
remote update
ipforge remote update
Updates all packages in the lock file to their latest versions.
Lock File
ipforge.lock.yml records the exact version and checksum of every installed package:
packages: - vendor: aesc-silicon library: digital.peripherals.io name: gpio version: 0.1.0 pdk: ihp-sg13g2 sha256: abc123... download_url: https://...
Commit this file to version control so that collaborators can reproduce the exact set of IPs with ipforge remote install.
Package Layout
Packages are installed under packages_dir following the library path:
packages/
digital/
peripherals/
io/
gpio/
ihp-sg13g2/
manifest.yml
rtl/
gds/
lef/
lib/
netlist/
signoff/
blackbox/
ipxact/
Project details
Release history Release notifications | RSS feed
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 ipforge-1.0.0.tar.gz.
File metadata
- Download URL: ipforge-1.0.0.tar.gz
- Upload date:
- Size: 10.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c5bddbc5e02ce1825e91bf3c3e34caafeb7d5d08a808d01d863925bb2181b885
|
|
| MD5 |
cb4be4f9707851f3596b70b0e871a8ea
|
|
| BLAKE2b-256 |
fea58d0a7ada7a5120c16050518dfd8ade2a29cd48c59b01fab47e7ec9850893
|
Provenance
The following attestation bundles were made for ipforge-1.0.0.tar.gz:
Publisher:
build-and-release.yaml on aesc-silicon/ipforge
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
ipforge-1.0.0.tar.gz -
Subject digest:
c5bddbc5e02ce1825e91bf3c3e34caafeb7d5d08a808d01d863925bb2181b885 - Sigstore transparency entry: 1341978114
- Sigstore integration time:
-
Permalink:
aesc-silicon/ipforge@d572a24f0f06c1e024161c10e7f72cdc4856e947 -
Branch / Tag:
refs/tags/v1.0.0 - Owner: https://github.com/aesc-silicon
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
build-and-release.yaml@d572a24f0f06c1e024161c10e7f72cdc4856e947 -
Trigger Event:
push
-
Statement type:
File details
Details for the file ipforge-1.0.0-py3-none-any.whl.
File metadata
- Download URL: ipforge-1.0.0-py3-none-any.whl
- Upload date:
- Size: 11.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
5f7642e22992a65016e46cecbd8775423a36700782eb7d701b2d2ae3b5c50456
|
|
| MD5 |
f8b9114f607e895cc40f8fbcc8844c97
|
|
| BLAKE2b-256 |
7c510c108d2b5366846fbbf8d5a414a70026dbe78a24e996fa095eb4c04167b9
|
Provenance
The following attestation bundles were made for ipforge-1.0.0-py3-none-any.whl:
Publisher:
build-and-release.yaml on aesc-silicon/ipforge
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
ipforge-1.0.0-py3-none-any.whl -
Subject digest:
5f7642e22992a65016e46cecbd8775423a36700782eb7d701b2d2ae3b5c50456 - Sigstore transparency entry: 1341978119
- Sigstore integration time:
-
Permalink:
aesc-silicon/ipforge@d572a24f0f06c1e024161c10e7f72cdc4856e947 -
Branch / Tag:
refs/tags/v1.0.0 - Owner: https://github.com/aesc-silicon
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
build-and-release.yaml@d572a24f0f06c1e024161c10e7f72cdc4856e947 -
Trigger Event:
push
-
Statement type: