Skip to main content

An infrastructure for implementing chip design flows

Project description

License: Apache 2.0 Python ≥3.10 Code Style: black Checked with mypy Built with Nix

Open in Colab Documentation Build Status Badge Invite to FOSSi Chat

LibreLane is a powerful and versatile infrastructure library that enables the construction of digital implementation flows for application specific integrated circuits (ASICs) based on open-source and commercial electronic design automation (EDA) tools.

LibreLane is:

  • Simple to use – Configure your entire ASIC implementation flow using one file.

  • Free and open source – With a complementary set of open-source process design kits (PDKs), design and implement your chip without signing a single document. Freely modify both the infrastructure, underlying tools, and PDK to fit your needs – you're in control. Not a vendor.

  • Flexible and extensible – Create custom flows, both by simple modifications to the default flows in the configuration file, or by writing Python scripts or plugins to implement advanced functionality.

  • Hermetic – Rewind and explore alternative configurations without losing data; LibreLane captures explicit snapshots of the configuration and state of your design at every step.

  • Reproducible and traceable – LibreLane comes packaged with a verified environment of free EDA utilities with a simple goal in mind: same tools, same flow, same configuration; same result. Capture your modifications and engineering change orders (ECOs) as automated steps, and make your flow your documentation.

LibreLane includes two reference flows (Classic and Chip) that are built entirely using open-source EDA tools.

You can find the documentation here to get started. You can discuss LibreLane in the FOSSi Chat Matrix Server.

from librelane.flows import Flow

Classic = Flow.factory.get("Classic")

flow = Classic(
    {
        "PDK": "sky130A",
        "DESIGN_NAME": "spm",
        "VERILOG_FILES": ["./src/spm.v"],
        "CLOCK_PORT": "clk",
        "CLOCK_PERIOD": 10,
    },
    design_dir=".",
)

flow.start()

Try it out

You can try LibreLane right in your browser, free-of-charge, using Google Colaboratory by following this link.

Installation

You'll need the following:

  • Python 3.10 or higher with PIP, Venv and Tkinter

Nix (Recommended)

Works for macOS and Linux (x86-64 and aarch64). Recommended, as it is more integrated with your filesystem and overall has less upload and download deltas.

See Nix-based installation in the docs for more info.

Docker

Works for Windows, macOS and Linux (x86-64 and aarch64).

See Docker-based installation in the docs for more info.

Do note you'll need to add --dockerized right after librelane in most CLI invocations.

Python-only Installation (Advanced, Not Recommended)

You'll need to bring your own compiled utilities, but otherwise, simply install LibreLane as follows:

python3 -m pip install --upgrade librelane

Python-only installations are presently unsupported and entirely at your own risk.

Usage

In the root folder of the repository, you may invoke:

python3 -m librelane --pdk-root <path/to/pdk> </path/to/config.json>

To start with, you can try:

python3 -m librelane --pdk-root $HOME/.ciel ./designs/spm/config.json

Publication

If you use LibreLane 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={}}

Contributing

Thank you in advance for considering a contribution to LibreLane!

Please be sure to read our contributor's guide.

[!TIP]

The main branch is the stable branch for LibreLane, i.e., this branch is updated less frequently and only accepts bugfixes.

Feature contributions should be directed towards the dev branch.

License and Legal Info

LibreLane and the LibreLane logo are trademarks of the FOSSi Foundation.

The LibreLane logo was created by Jon Walters.

LibreLane code and binaries are available under The Apache License, version 2.0, except Nix-language files ending with .nix, which are available under the MIT License as published by the Open Source Initiative.

LibreLane is based on OpenLane 2 by Efabless Corporation (assets owned by UmbraLogic Technologies LLC):

Copyright 2022-2025 UmbraLogic Technologies LLC

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

     http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.

UmbraLogic Technologies LLC has agreed to relicense all OpenLane 2 Nix code as MIT, for which we are grateful.

Project details


Release history Release notifications | RSS feed

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

librelane-3.1.0.dev1.tar.gz (307.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

librelane-3.1.0.dev1-py3-none-any.whl (424.3 kB view details)

Uploaded Python 3

File details

Details for the file librelane-3.1.0.dev1.tar.gz.

File metadata

  • Download URL: librelane-3.1.0.dev1.tar.gz
  • Upload date:
  • Size: 307.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for librelane-3.1.0.dev1.tar.gz
Algorithm Hash digest
SHA256 a4584483f3db27d09662ea728fe59c5f7264a8a6bf403aebe567902bf05d6ca3
MD5 91d2225010083e1909fa4c64bb7913ce
BLAKE2b-256 e555a9de8234db1150d54205eb22bc40054729b9d2b904f0f8228b911b5be1f4

See more details on using hashes here.

Provenance

The following attestation bundles were made for librelane-3.1.0.dev1.tar.gz:

Publisher: ci.yml on librelane/librelane

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file librelane-3.1.0.dev1-py3-none-any.whl.

File metadata

  • Download URL: librelane-3.1.0.dev1-py3-none-any.whl
  • Upload date:
  • Size: 424.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for librelane-3.1.0.dev1-py3-none-any.whl
Algorithm Hash digest
SHA256 fea51a0e0a0bcf81b9e1ffef10953d86bd633530268a58e229651c6a652807ad
MD5 7cd9b6fd80f454f573fac548d007febc
BLAKE2b-256 a755d3d6c6e95d5ea153ee25e319ba5d7c664240fb880123364a1e350d488e41

See more details on using hashes here.

Provenance

The following attestation bundles were made for librelane-3.1.0.dev1-py3-none-any.whl:

Publisher: ci.yml on librelane/librelane

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page