Extraction Rules Generation Flow for OpenRCX#

This flow generates the RC tech file for OpenRCX. The RC tech file provides resistance and capacitance tables used for RC extraction for a specific process corner.

The flow involves:#

A. Running OpenRCX generate_patterns.tcl to generate layout patterns.

  • Input: tech LEF

  • Output: patterns.def, patterns.v

  • Script: generate_patterns.tcl

  • Desc: OpenRCX generates many pattern geometries to model various types of capacitance and resistance (i.e., multi-conductor) geometric configurations.

B. Running your favorite extraction tool (i.e., reference extractor) to extract parasitics of the layout patterns.

  • Input: patterns.def, patterns.v (if required), and additional files required by the reference extractor.

  • Output: patterns.spef

  • Script: Not provided

  • Desc: Extract parasitics of the patterns generated by OpenRCX using a reference extractor. This one-time step provides the parasitics of various types of pattern geometries as reference for fitted per-unit length R, C calculation.

C. Running OpenRCX to convert patterns.spef to RC tech file.

  • Input: patterns.spef

  • Output: RC tech file

  • Script: generate_rules.tcl

  • Desc: OpenRCX takes the .spef from the reference extractor and performs calculations to produce capacitance and resistance tables for a wide range of wire geometries. The output of this flow is a custom RC tech file for OpenRCX.

D. Benchmarking - test the accuracy of OpenRCX on the patterns layout.

  • Input: patterns.def and RC tech file

  • Output: rcx.spef, diff_spef.out

  • Script: ext_patterns.tcl

  • Desc: Perform parasitic extraction on pattern layout for the calibration using the generated RC tech file. OpenRCX then compares the extracted parasitics with the golden parasitics that had been extracted by the reference extractor in Step (B) above.

How to run:#

  1. Go to OpenRCX home directory (./OpenROAD/src/rcx).

  2. Navigate to calibration folder cd calibration

  3. Modify the user_env.tcl script in the script directory.

  • TECH_LEF: points to the directory of the tech LEF

  • PROCESS_NODE: the technology node

  • extRules: the name and the location of the OpenRCX tech file

  1. Run the executable script run.sh –> run Steps (A) through (D) of the flow above.

  • source run.sh or ./run.sh

  1. The OpenRCX RC tech file can be found in the directory that is specified in the extRules variable.