Skip to content

A template repository for analog designs to ensure consistency and interoperability between IP blocks.

License

Notifications You must be signed in to change notification settings

efabless/sky130_ef_ip__template

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

sky130_ef_ip__template

A template repository for analog designs to ensure consistency and interoperability between IP blocks.

To create a new repository with this template, click on Use this template and set your new repository name.

Note

The repository name should follow the convention:

<pdk_family>_<handle>_ip__<project> (Note the double underscore after ip.)

The handle should be a unique short identifier to prevent conflicts between any IP blocks of the same project name. This could be your initials, for example. Please changes all occurrences of sky130_ef_ip__template to your chosen repository/IP name.

The template is set up for the common open source EDA tools for analog design. This list includes magic, KLayout, xschem, ngspice, netgen and CACE.

CACE is used to run characterization on the IP. It is recommended to install all of the tools using Nix, as explained in the documentation.

Filesystem Structure

  • 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)
  • mag/ - magic layout
    • sky130_ef_ip__template.mag
  • xschem/ - files for xschem
    • xschemrc - project xschemrc (must be sourced)
    • 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
    • sky130_ef_ip__template/ - internal symbols and schematics (not used in this simple example)
  • netlist/ - spice netlists generated by CACE
  • runs/ - run directory generated by CACE (not commited)
  • .github/actions/cace.yaml - GitHub Action to run CACE
.
├── 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 ip/ folder.

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

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 ip/<ip_block>

Using relative URLs will make sure the submodule is pulled using the correct method (HTTPS/SSH).

The xschemrc of this repository will automatically source the xschemrcs of the dependencies. This is repeated recursively.


Important

Please delete everything above and including this text when you create your own IP block using this template, and update the information below.

sky130_ef_ip__template

Short description about your IP block.

License and Information

The Apache License, version 2.0.

About

A template repository for analog designs to ensure consistency and interoperability between IP blocks.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published