{"id":51007613,"url":"https://github.com/chipfoundry/ipm","last_synced_at":"2026-06-20T22:02:11.442Z","repository":{"id":294622372,"uuid":"975096688","full_name":"chipfoundry/ipm","owner":"chipfoundry","description":null,"archived":false,"fork":false,"pushed_at":"2026-02-26T23:26:47.000Z","size":1115,"stargazers_count":4,"open_issues_count":8,"forks_count":3,"subscribers_count":2,"default_branch":"main","last_synced_at":"2026-02-27T04:27:37.220Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/chipfoundry.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-04-29T19:22:37.000Z","updated_at":"2026-02-26T23:26:51.000Z","dependencies_parsed_at":"2025-05-21T09:55:03.332Z","dependency_job_id":"a084bab5-0fe2-4d99-8370-73d61229e7e2","html_url":"https://github.com/chipfoundry/ipm","commit_stats":null,"previous_names":["chipfoundry/ipm-platform","chipfoundry/ipm"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/chipfoundry/ipm","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chipfoundry%2Fipm","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chipfoundry%2Fipm/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chipfoundry%2Fipm/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chipfoundry%2Fipm/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/chipfoundry","download_url":"https://codeload.github.com/chipfoundry/ipm/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chipfoundry%2Fipm/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34586666,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-20T02:00:06.407Z","response_time":98,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2026-06-20T22:02:10.832Z","updated_at":"2026-06-20T22:02:11.433Z","avatar_url":"https://github.com/chipfoundry.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# IPM\nIPM is an open-source ChipIgnite Program IPs Package Manager; it is meant to provide a mean for distributing high quality IPs.\n\n## Installation\n\nIPM is now on PyPi, you can install it using this command:\n\n```bash\npip install cf-ipm\n```\n\nTo verify it is working run: \n\n```bash\nipm --version\n``` \n\n# Usage\n\n## List all available IPs\n\n```bash\nipm ls-remote\n``` \n\n## Get more info about a specific IP from the CLI\n```bash\nipm info \u003cip_name\u003e\n```\n\n## Install IP\n```bash\nipm install \u003cIP_NAME\u003e [OPTIONS]\n``` \n**Options:**\n\n  `--version`   Install IP with a specific version\n\n  `--ip-root`   IP installation path [default: `{PWD}/ip`]\n\n  `--ipm-root`  Path to the IPM root where the IPs will reside  [default: `~/.ipm`]\n\n  `--help`          Show this message and exit\n\n\u003e [!NOTE]  \n\u003e IPM installs the IPs in a shared directory `ipm-root` which is by default set to `~/.ipm`, then it will create a symlink to `ip-root` which is by default set to `{PWD}/ip`.\n\n\u003e [!TIP]  \n\u003e IPM will create a `dependencies.json` file under `ip-root`, which will have all the IPs that you used in your project. Push this file to your repo in order to have a reproducible project.\n\n## Install IPs from dependencies file\n```bash\nipm install-dep [OPTIONS]\n``` \n**Options:**\n\n  `--ip-root`    IP path [default: `{PWD}/ip/dependencies.json`]\n\n  `--ipm-root`  Path to the IPM root where the IPs will reside  [default: `~/.ipm`]\n\n  `--help`           Show this message and exit\n\u003e [!NOTE]\n\u003e This will download the IPs in the `dependencies.json`, with the same versions that it used inside the file\n\n## Uninstalling IPs\n```bash\nipm uninstall \u003cIP_NAME\u003e [OPTIONS]\n``` \n**Options:**\n\n  `--version`     Uninstall IP with a specific version\n\n  `-f, --force` Forces the uninstall\n\n  `--ipm-root`   Path to the IPM root where the IPs will reside  [default: `~/.ipm`]\n\n  `--help`            Show this message and exit\n\u003e [!TIP]\n\u003e It is advised to use this command rather than deleting the IP manually\n\n## Remove IP from project\n```bash\nipm rm \u003cIP_NAME\u003e [OPTIONS]\n```\n**Options:**\n\n  `--ipm-root`  Path to the IPM root where the IPs are installed  [default: `~/.ipm`]\n\n  `--ip-root`      IP path [default: `{PWD}/ip`]\n\n  `--help`             Show this message and exit\n\n## Update IP\n```bash\nipm update [IP_NAME][OPTIONS]\n``` \n**Options:**\n\n  `--ipm-root`  Path to the IPM root where the IPs will reside  [default: `~/.ipm`]\n\n  `--ip-root`    IP path [default: `{PWD}/ip`]\n\n  `--help`           Show this message and exit\n\n\u003e [!NOTE]\n\u003e If an IP_NAME is provided it will only update this IP, if not it will update all installed IPs\n\n## Adding your IP to IPM\n\n\u003e [!CAUTION]\n\u003e Please contact us directly at info@chipfoundry.io to add your IP to IPM.\n\nTo add your own IP to our package manager, you should follow these steps:\n\n### 1. Package your IP with the following folder structure:\n\nAll IPs must include:\n\n    - readme.md\n    - \u003cip\u003e.json\n    - doc/datasheet.pdf\n    - hdl/rtl/bus_wrapper **optional**\n    - fw\n    - verify/beh_model\n\nAll digital and analog hard IPs must include:\n    \n    - hdl/gl\n    - timing/lib\n    - timing/sdf\n    - timing/spef\n    - layout/gds\n    - layout/lef\n\nAll Analog IPs must include:\n\n    - spice\n\nAll soft digital IPs must include:\n\n    - hdl/rtl/design\n    - verify\n    - pnr **optional**\n    - verify/utb\n\nDirectory structure should look like:\n\n```\n├── readme.md\n├── \u003cip\u003e.json\n├── doc\\\n│   └── datasheet.pdf\n├── layout\\\n│   ├── gds\\\n│   └── lef\\\n├── timing\\\n│   ├── lib\\\n│   ├── spef\\\n│   └── sdf\\\n├── spice\\\n├── hdl\\ \n│   ├── rtl\\\n│   │   ├── bus_wrapper\\\n│   │   └── design\\\n│   └── gl\\\n├── fw\\\n├── verify\\\n│   ├── utb\\\n│   └── beh_model\\\n└── pnr\\\n```\n\n**NOTE**\n\n- `verify` directory should include basic unit tests to help the designers build their verification\n- `bus_wrapper` directory contains RTL for IP wrappers to ease system bus connection\n- `fw` directory contains device drivers (`.c` and `.h` files)\n\n### 2. IP metadata file structure\n\nYour ```\u003cip\u003e.json``` file should look like:\n\n```\n{\n    \"info\": {\n        \"name\": \"\u003cip name\u003e\",\n        \"description\": \"\u003cip_description\u003e\",\n        \"repo\": \"\u003csrc repo\u003e\",\n        \"owner\": \"\u003cowner of IP\u003e\",\n        \"license\": \"\u003clicense of IP\u003e\",\n        \"author\": \"\u003cauthor of IP\u003e\",\n        \"email\": \"\u003cemail of author/owner\u003e\",\n        \"version\": \"\u003cIP version\u003e\",\n        \"date\": \"\u003cmm-dd-yyyy\u003e\",\n        \"category\": \"\u003canalog/digital/AMS\u003e\",\n        \"tags\": [\n            \"\u003ctags for ip\u003e\"\n        ],\n        \"bus\": [\n            \"\u003cAPB|AHBL|WB|generic\u003e\"\n        ],\n        \"type\": \"\u003chard|soft|firm|hybrid\",\n        \"maturity\": \"\u003cVerified|FPGA Validated|SI Validated|Production Ready\u003e\",\n        \"cell_count\": \"\u003cnumber of cells in ip\u003e\",\n        \"width\": \"\u003cwidth of IP in um\u003e\",\n        \"height\": \"\u003cheight of IP in um\u003e\",\n        \"technology\": \"\u003csky130A|sky130B|gf180mcuC|gf180mcuD|n/a\u003e\",\n        \"clock_freq_mhz\": \"\u003cclock frequency of IP\u003e\",\n        \"supply_voltage\": [\n            \"\u003csupply voltage of IP\u003e\"\n        ]\n    }\n}\n```\n\n**All the above fields must be included in your file**\n\n### 3. Create tarball\nCompress your folder into a tarball (tar.gz) with the name ```\u003cversion\u003e.tar.gz```, where `version` is the version of your release, you can do that by running:\n```bash\ncd \u003cip_directory\u003e\ntar czf \u003cversion\u003e.tar.gz *\n``` \n### 4. Create release \ncreate a new release in your GH repo with the tag ```\u003cversion\u003e``` and add the tarball created there to the release's assets\n### 5. IPM package_check\nOnce you are done you can run a package_check function locally by running ```ipm package-check``` which checks that you’ve completed the above steps successfully. Options for ```IP name```, ```version``` and the ```GH repo``` are required\n\n**NOTE: THIS IS STILL A WIP**\n\n### 6. Submit\nIf the pre-check was successful you can submit your IP through the form ......\n\nIPM team will then perform set of sanity checks to ensure the quality of the submitted IP. This checker shall ensure:\n- That the IP is LVS clean\n- That the IP is DRC clean\n\n## Additional Docs\n- [Awesome Sky130 IPs](https://github.com/chipfoundry/Awesome-Sky130-IPs)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fchipfoundry%2Fipm","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fchipfoundry%2Fipm","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fchipfoundry%2Fipm/lists"}