MCPcopy
hub / github.com/The-OpenROAD-Project/OpenLane

github.com/The-OpenROAD-Project/OpenLane @2024.09.22 sqlite

repository ↗ · DeepWiki ↗ · release 2024.09.22 ↗
917 symbols 2,753 edges 103 files 81 documented · 9%
README

OpenLane

<a href="https://opensource.org/licenses/Apache-2.0"><img src="https://img.shields.io/badge/License-Apache%202.0-blue.svg" alt="License: Apache 2.0"/></a>
<a href="https://openlane.readthedocs.io/"><img src="https://readthedocs.org/projects/openlane/badge/?version=latest" alt="Documentation Build Status Badge"/></a>
<a href="https://open-source-silicon.dev"><img src="https://img.shields.io/badge/Community-Open%20Source%20Silicon%20Slack-ff69b4?logo=slack" alt="Invite to the Open Source Silicon Slack"/></a>
<a href="https://nixos.org/"><img src="https://img.shields.io/static/v1?logo=nixos&logoColor=white&label=&message=Built%20with%20Nix&color=41439a" alt="Built with Nix"/></a>

OpenLane is an automated RTL to GDSII flow based on several components including OpenROAD, Yosys, Magic, Netgen, CVC, SPEF-Extractor, KLayout and a number of custom scripts for design exploration and optimization. The flow performs all ASIC implementation steps from RTL all the way down to GDSII.

You can check out the documentation, including in-depth guides and reference manuals at ReadTheDocs.

Installation, the short version

The short version is, to install the OpenLane environment...

On Windows, install and launch the Windows Subsystem for Linux before doing anything. We recommend and provide instructions for Ubuntu 20.04.

On macOS, get brew.

  1. Get Docker (or a compatible container engine)
  2. Get Python 3.6 or higher (macOS | Ubuntu)
    • On Ubuntu, you may also need to install venv: apt-get install python3-venv
  3. Get git (macOS | Ubuntu)
  4. Get GNU Make (macOS | Ubuntu)

Run the following commands in your command-line prompt:

cd $HOME
git clone https://github.com/The-OpenROAD-Project/OpenLane
cd OpenLane
make
make test

If everything's gone smoothly, that's it. OpenLane is set up on your computer. To enter the OpenLane environment, cd $HOME/OpenLane and then make mount.

Installation, the long version

See the installation docs at https://openlane.readthedocs.io/en/latest/getting_started/installation/index.html.

Usage

After entering the OpenLane environment, you can start hardening chips: the following command, for example, runs the included spm design.

./flow.tcl -design spm

Need more help?

You can join the Open Source Silicon Slack, where you can ask thousands of other open source hardware enthusiasts for help with setting up or running OpenLane.

Publication

If you use OpenLane in your research, please cite the following paper.

  • M. Shalan and T. Edwards, “Building OpenLANE: A 130nm OpenROAD-based Tapeout-Proven Flow: Invited Paper,” 2020 IEEE/ACM International Conference On Computer Aided Design (ICCAD), San Diego, CA, USA, 2020, pp. 1-6. Paper
@INPROCEEDINGS{9256623,
  author={Shalan, Mohamed and Edwards, Tim},
  booktitle={2020 IEEE/ACM International Conference On Computer Aided Design (ICCAD)}, 
  title={Building OpenLANE: A 130nm OpenROAD-based Tapeout- Proven Flow : Invited Paper}, 
  year={2020},
  volume={},
  number={},
  pages={1-6},
  doi={}}

License

The Apache License, version 2.0.

Docker images distributed by Efabless Corporation under the same license.

Binaries in OpenLane distributions may fall under stricter open source licenses.

Core symbols most depended-on inside this repo

write
called by 97
scripts/padframe_generator.py
peek
called by 90
dependencies/includedyaml/reader.py
print
called by 78
scripts/padframe_generator.py
get_mark
called by 69
dependencies/includedyaml/reader.py
forward
called by 60
dependencies/includedyaml/reader.py
get
called by 43
dependencies/env_info.py
check_token
called by 43
dependencies/includedyaml/scanner.py
get_token
called by 31
dependencies/includedyaml/scanner.py

Shape

Method 485
Function 277
Class 121
Route 34

Languages

Python100%

Modules by API surface

dependencies/includedyaml/scanner.py75 symbols
dependencies/version.py68 symbols
dependencies/includedyaml/emitter.py63 symbols
scripts/padframe_generator.py62 symbols
dependencies/includedyaml/constructor.py57 symbols
scripts/odbpy/power_utils.py34 symbols
dependencies/includedyaml/representer.py33 symbols
dependencies/includedyaml/parser.py33 symbols
dependencies/includedyaml/__init__.py31 symbols
dependencies/includedyaml/tokens.py29 symbols
scripts/config/tcl.py27 symbols
scripts/topModuleGen/src/TopModuleGen.py22 symbols

Dependencies from manifests, versioned

black24.3.0 · 1×
click8.0.0 · 1×
flake84.0.1 · 1×
flake8-no-implicit-concat0.3.3 · 1×
furo2023.08.19 · 1×
myst-parser2 · 1×
pyyaml6 · 1×
sphinx7.2.2 · 1×

For agents

$ claude mcp add OpenLane \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact