Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 6 additions & 4 deletions .github/workflows/user_project_ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -136,8 +136,6 @@ jobs:
needs: [download_deps]
steps:
- uses: actions/checkout@v4
with:
submodules: true

- name: Set up QEMU
uses: docker/setup-qemu-action@v1
Expand All @@ -156,6 +154,12 @@ jobs:
#echo "PRECHECK_ROOT=$GITHUB_WORKSPACE/mpw_precheck" >> $GITHUB_ENV
echo "MPW_TAG=main" >> $GITHUB_ENV

- name: Install IPM dependencies
run: |
python3 -m pip install --upgrade --no-cache-dir cf-ipm
curl -fsSL -o /tmp/verified_IPs.json https://raw.githubusercontent.com/chipfoundry/ipm/main/verified_IPs.json
ipm install-dep --ip-root $GITHUB_WORKSPACE/ip --local-file /tmp/verified_IPs.json

- name: Download PDK Tarball
uses: actions/download-artifact@v4
with:
Expand Down Expand Up @@ -326,8 +330,6 @@ jobs:
needs: [hardening]
steps:
- uses: actions/checkout@v4
with:
submodules: true

- name: Set up QEMU
uses: docker/setup-qemu-action@v1
Expand Down
4 changes: 4 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -15,3 +15,7 @@ runs/
/logs
lvs_results/
__pycache__/
# IPM installs IPs under ip/; keep dependencies.json tracked
/ip/*
!/ip/dependencies.json
!/ip/.gitignore
3 changes: 0 additions & 3 deletions .gitmodules

This file was deleted.

1 change: 0 additions & 1 deletion CF_gpio_config
Submodule CF_gpio_config deleted from a8a225
12 changes: 12 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -49,6 +49,7 @@ A successful OpenFrame project requires a specific directory layout for the auto
| `verilog/rtl/` | Source Verilog code for the project. |
| `verilog/gl/` | Gate-level netlists (generated after hardening). |
| `verilog/dv/` | Design Verification (cocotb and Verilog testbenches). |
| `ip/` | IPM-installed IPs (for example `CF_gpio_config`). Track `ip/dependencies.json` only. |
| `gds/` | Final GDSII binary files for fabrication. |
| `lef/` | Library Exchange Format files for the macros. |

Expand Down Expand Up @@ -89,6 +90,17 @@ The `cf setup` command installs:
- OpenLane: The RTL-to-GDS hardening flow.
- PDK: Skywater 130nm process design kit.
- Timing Scripts: For Static Timing Analysis (STA).
- IPM: The ChipFoundry IP Manager (`cf-ipm`) used to install listed IPs.

### 4. Install IPM dependencies

IPs listed in `ip/dependencies.json` (for example `CF_gpio_config`) are not stored in git. After cloning, install them with:

```bash
ipm install-dep --ip-root ip
```

This is required for GPIO pad configuration and any other IPM-managed blocks in `ip/`.

---

Expand Down
3 changes: 3 additions & 0 deletions ip/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
*
!dependencies.json
!.gitignore
7 changes: 7 additions & 0 deletions ip/dependencies.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
{
"IP": [
{
"CF_gpio_config": "v1.1.4"
}
]
}
2 changes: 1 addition & 1 deletion openlane/openframe_project_wrapper/config.json
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
"VERILOG_FILES": [
"dir::/../../verilog/rtl/openframe_project_netlists.v",
"dir::/../../verilog/rtl/openframe_project_wrapper.v",
"dir::/../../CF_gpio_config/rtl/CF_gpio_config.v"
"dir::../../ip/CF_gpio_config/rtl/CF_gpio_config.v"
],
"VERILOG_FILES_BLACKBOX": [
"dir::../../verilog/gl/user_proj_timer.v",
Expand Down
1 change: 1 addition & 0 deletions verilog/includes/includes.rtl.caravel_user_project
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
# Caravel user project includes
-v $(USER_PROJECT_VERILOG)/dv/firmware/spiflash.v
-v $(USER_PROJECT_VERILOG)/../ip/CF_gpio_config/rtl/CF_gpio_config.v
-v $(USER_PROJECT_VERILOG)/rtl/openframe_project_wrapper.v
-v $(USER_PROJECT_VERILOG)/rtl/picosoc.v
-v $(USER_PROJECT_VERILOG)/rtl/picorv32.v
Expand Down
Loading