Overview#

Introduction#

The LAYout with Gridded Object 2 (laygo2) package is a comprehensive framework for IC layout generation, written in the Python programming language. Its primary objects are to:

  • Automate and streamline the layout generation process, promoting reuse and efficiency.

  • Enable Parametrized layout generation, allowing for greater flexibility and customization.

  • Provide support for advanced technologies suc as FinFET, ensuring compatibility with the latest CMOS fabrication processes.

  • Implement dynamic template-and-grid-based layout generation, facilitating the rapid and effective creation of layouts.

laygo2 builds upon the capabilities of its predecessor, laygo, which was orignally developed as one of layout generation engines in the Berkeley Analog Generator2 (BAG2) platform.

Quick trial#

For step-by-step instructions on how to install the software and generate simple structures, refer to the Trial page.

API documentation#

For an in-depth understanding of the laygo2 software architecture and componenets, refer to the latest API reference. This reference provides a comprehensive overview of the package’s functions, modules, and classes, allowing users to effectively utilize the full range of laygo2’s capabilities.

Typical design flow#

The following steps outline the standard procedure for constructing a generator code for a custom layout using the laygo2 package:

  1. Load the necessary technology parameters, primitive templates, and grids from the laygo2_tech module.

  2. Generate instances from the loaded templates.

  3. Perform placement of the generated instances.

  4. Route wires and vias between the instances’ terminals.

  5. Create Pins for interfaces with other building blocks.

  6. Export the completed design in the desired format.

  7. (Optional) Save the design as a new template for future reuse.

Technology setup#

See the Tech Setup section for detailed instructions on setting up the technology configurations.

List of developers#

See the README file in the Github repository for a complete list of developers and contributors to the project.

License#

laygo2 is distributed under the BSD 3-Clause License.