Skip to main content

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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

ipforge-1.0.0.tar.gz (10.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

ipforge-1.0.0-py3-none-any.whl (11.0 kB view details)

Uploaded Python 3

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

Hashes for ipforge-1.0.0.tar.gz
Algorithm Hash digest
SHA256 c5bddbc5e02ce1825e91bf3c3e34caafeb7d5d08a808d01d863925bb2181b885
MD5 cb4be4f9707851f3596b70b0e871a8ea
BLAKE2b-256 fea58d0a7ada7a5120c16050518dfd8ade2a29cd48c59b01fab47e7ec9850893

See more details on using hashes here.

Provenance

The following attestation bundles were made for ipforge-1.0.0.tar.gz:

Publisher: build-and-release.yaml on aesc-silicon/ipforge

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

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

Hashes for ipforge-1.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 5f7642e22992a65016e46cecbd8775423a36700782eb7d701b2d2ae3b5c50456
MD5 f8b9114f607e895cc40f8fbcc8844c97
BLAKE2b-256 7c510c108d2b5366846fbbf8d5a414a70026dbe78a24e996fa095eb4c04167b9

See more details on using hashes here.

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

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page