Porting a PDK

This readme describes how to structure a PDK for use with OpenLane.

In general, a PDK is expected to define all variables not marked optional in the PDK configuration variable list.

Folder structure

This is the expected folder structure for a PDK:

  • <pdk_name>

    • libs.tech

      • openlane

        • config.tcl

        • <standard cell library>

          • config.tcl

          • tracks.info

          • no_synth.cells

          • drc_exclude.cells

    • libs.ref

      • lef

      • techlef

      • lib

Configuration Files

  • config.tcl: the PDK configuration file contains common information for all standard cell libraries under this PDK.

  • <standard cell library>/config.tcl: Standard cell library configuration file which contains information specific to that SCL. Variables in this file may override the general PDK variables.

  • <standard cell library>/tracks.info: Contains information about the metal layers offsets and pitches. Refer to tracks configuration file section.

  • <standard cell library>/drc_exclude.cells that should contain the list of newline-separated cell names to exclude during synthesis and PnR. More in this section.

  • <standard cell library>/no_synth.cells that should contain the list of newline-separated cell names to exclude during synthesis. More in this section.