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,
ipkgshard-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
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 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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
40dd94cd071ccf8c1826e2a9d3ec2ad5b705b97bc26f5c0716fdae175fdc5634
|
|
| MD5 |
1d1db3443c93956ae6634f449730a2a0
|
|
| BLAKE2b-256 |
41eb4cfc924d8ae0e64dc0b2ef26331d5f7eb4eec25cc798dc5b559f3fcdf04f
|
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
5e056eb2d6a954ee9abb8c9e603d95e47783ce0cc2802992fd44fcff24230bfa
|
|
| MD5 |
824db3580a4bd2d3425e4fc33c688535
|
|
| BLAKE2b-256 |
d55ca10fe3a70f3788d1be5c707554d6c0648603276d716b993e1cc976189573
|