Skip to content

Commit

Permalink
Change deps/ to ip/ for compatibility with IPM
Browse files Browse the repository at this point in the history
  • Loading branch information
mole99 committed Nov 27, 2024
1 parent a75f3dd commit 5ac02e9
Show file tree
Hide file tree
Showing 2 changed files with 32 additions and 5 deletions.
35 changes: 31 additions & 4 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -17,10 +17,10 @@ The template is set up for the common open source EDA tools for analog design. T
## Filesystem Structure

- `cace/` - CACE datasheet and files
- `deps/` - dependencies (not used in this simple example)
- `docs/` - documentation generated by CACE
- `gds/` - GDSII layout
- `sky130_ef_ip__template.gds.gz`
- `ip/` - IP blocks that the project depends on (not used in this simple example)
- `mag/` - magic layout
- `sky130_ef_ip__template.mag`
- `xschem/` - files for xschem
Expand All @@ -33,22 +33,49 @@ The template is set up for the common open source EDA tools for analog design. T
- `runs/` - run directory generated by CACE (not commited)
- `.github/actions/cace.yaml` - GitHub Action to run CACE

```bash
.
├── cace - CACE datasheet and files
├── docs - documentation generated by CACE
├── gds - GDSII layout
│   └── sky130_ef_ip__template.gds.gz
├── ip - IP blocks that the project depends on (not used in this simple example)
├── LICENSE
├── mag - magic layout
│   └── sky130_ef_ip__template.mag
├── netlist - spice netlists generated by CACE
├── README.md
├── runs - run directory generated by CACE (not commited)
├── xschem - files for xschem
│ ├── sky130_ef_ip__template - project internal symbols and schematics
│ ├── sky130_ef_ip__template.sch - top level schematic
│ │ └── …
│ ├── sky130_ef_ip__template.sym - top level symbol
│ ├── sky130_ef_ip__template_tb.sch - top level testbench
│ └── xschemrc - project xschemrc (must be sourced)
├── .github
│   └── workflows
│   └── cace.yml - GitHub Action to run CACE
└── .gitignore
```


Note: If your project does not use magic layout files, simply delete the `mag/` folder and provide the GDS directly in `gds/`.

## Dependency Management

Other IP blocks following this convention can be added as a git submodule in the `deps/` folder.
Other IP blocks following this convention can be added as a git submodule in the `ip/` folder.

This command expects the IP block to belong to the same user as the superproject:

```
git submodule add ../<ip_block>.git deps/<ip_block>
git submodule add ../<ip_block>.git ip/<ip_block>
```

This command expects the IP block to be hosted on GitHub by a different user:

```
git submodule add ../../<user>/<ip_block>.git deps/<ip_block>
git submodule add ../../<user>/<ip_block>.git ip/<ip_block>
```

Using relative URLs will make sure the submodule is pulled using the correct method (HTTPS/SSH).
Expand Down
2 changes: 1 addition & 1 deletion xschem/xschemrc
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ if {![info exists PDK]} {
append XSCHEM_LIBRARY_PATH :[file dirname [info script]]

# Source the dependencies xschemrc files
foreach rcfile [glob -nocomplain ../deps/*/xschem/xschemrc] {
foreach rcfile [glob -nocomplain ../ip/*/xschem/xschemrc] {
puts "sourcing $rcfile"
source $rcfile
}

0 comments on commit 5ac02e9

Please sign in to comment.