Skip to main content

A package manager for Verilog IP cores

Project description

ipkgs

The package manager for Verilog IP cores.

ipkgs is to Verilog what npm is to JavaScript — a CLI tool and registry for sharing, installing, and publishing reusable RTL IP cores for FPGA and ASIC projects.

Registry: ipkgs.com


Install

pip install ipkgs

Quick start

# Initialize a new IP core project
ipkgs init

# Search for IP cores
ipkgs search uart

# Install a package
ipkgs install uart-core

# Install a specific version
ipkgs install fifo-sync@^2.0.0

# List installed packages
ipkgs list

# Publish your core to ipkgs.com
ipkgs login
ipkgs publish

ipkgs.json

Every IP core project has an ipkgs.json manifest:

{
  "name": "uart-core",
  "version": "1.2.0",
  "description": "Parameterized UART TX/RX for FPGA targets",
  "author": "Your Name <you@example.com>",
  "license": "MIT",
  "top_module": "uart_top",
  "platforms": ["ice40", "ecp5", "xc7", "generic"],
  "source_files": [
    "rtl/uart_top.sv",
    "rtl/uart_tx.sv",
    "rtl/uart_rx.sv"
  ],
  "parameters": {
    "BAUD_RATE": "115200",
    "DATA_BITS": "8"
  },
  "dependencies": {
    "fifo-sync": "^2.0.0"
  },
  "scripts": {
    "sim":  "iverilog -g2012 -o sim.out rtl/uart_top.sv && vvp sim.out",
    "lint": "verilator --lint-only rtl/uart_top.sv"
  }
}

Installed packages land in ip_modules/ (add to .gitignore).

Commands

Command Description
ipkgs init Scaffold a new IP core project
ipkgs install [pkg[@ver]] Install packages
ipkgs uninstall <pkg> Remove packages
ipkgs update [pkg] Update to latest within semver range
ipkgs list List installed packages
ipkgs search <query> Search the registry
ipkgs info <pkg> Show package details
ipkgs publish Publish to ipkgs.com
ipkgs login Authenticate with ipkgs.com
ipkgs logout Remove stored credentials

Version ranges

ipkgs uses standard semver ranges:

Range Meaning
^1.2.0 Compatible: >=1.2.0 <2.0.0
~1.2.0 Patch-level: >=1.2.0 <1.3.0
>=1.0.0 <2.0.0 Explicit range
1.2.3 Exact version

Note on version conflicts: Unlike npm, ipkgs hard-fails on incompatible version conflicts. Verilog IP cores compile into a single netlist — duplicate module definitions would cause synthesis errors. If two packages require incompatible versions of a dependency, you must resolve the conflict manually.

Environment variables

Variable Description
IPKGS_TOKEN Auth token (for CI/CD, skips keyring)
IPKGS_REGISTRY Override registry URL (default: https://api.ipkgs.com/v1)

License

MIT

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

ipkgs-0.1.1.tar.gz (18.6 kB view details)

Uploaded Source

Built Distribution

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

ipkgs-0.1.1-py3-none-any.whl (26.6 kB view details)

Uploaded Python 3

File details

Details for the file ipkgs-0.1.1.tar.gz.

File metadata

  • Download URL: ipkgs-0.1.1.tar.gz
  • Upload date:
  • Size: 18.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.5

File hashes

Hashes for ipkgs-0.1.1.tar.gz
Algorithm Hash digest
SHA256 40dd94cd071ccf8c1826e2a9d3ec2ad5b705b97bc26f5c0716fdae175fdc5634
MD5 1d1db3443c93956ae6634f449730a2a0
BLAKE2b-256 41eb4cfc924d8ae0e64dc0b2ef26331d5f7eb4eec25cc798dc5b559f3fcdf04f

See more details on using hashes here.

File details

Details for the file ipkgs-0.1.1-py3-none-any.whl.

File metadata

  • Download URL: ipkgs-0.1.1-py3-none-any.whl
  • Upload date:
  • Size: 26.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.5

File hashes

Hashes for ipkgs-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 5e056eb2d6a954ee9abb8c9e603d95e47783ce0cc2802992fd44fcff24230bfa
MD5 824db3580a4bd2d3425e4fc33c688535
BLAKE2b-256 d55ca10fe3a70f3788d1be5c707554d6c0648603276d716b993e1cc976189573

See more details on using hashes here.

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