Skip to content

xlab-ub/MaskOpt

Repository files navigation

MaskOpt: A Large-scale IC Mask Optimization Dataset

MaskOpt consists of layout tiles of standard cells extracted from real IC designs, paired with masks generated using advanced model-based OPC and ILT techniques in academia.

Each sample consists of a layout target and associated cell tag as input, with the corresponding model-based OPC and ILT masks as output for both metal and via layers.

Overview

Download the dataset

Download and unpack the dataset under project folder.

https://drive.google.com/file/d/1ocL09oHobppx7KWE_fEx8L9ws2ZT4JmY/view?usp=sharing

File structure:

cellclips/
├── layout/
│   ├── layer/
│   │   ├── glp/
│   │   │   └── cell/
│   │   │       └── context_size/
│   │   │           └── target.glp
│   │   ├── target/
│   │   │   └── context_size/
│   │   │       └── cell/
│   │   │           └── target.png
│   │   └── mask/
│   │       └── cell/
│   │           ├── CurvILT.png
│   │           ├── SimpleILT.png
│   │           └── SimpleOPC.png

Each file is named with {tileID}_{x}_{y} to uniquely identify a layout clip within the bounding box of a standard-cell instance.

The tileID denotes the index of the clip within the cell’s bounding box, while (x, y) correspond to the top-left coordinates of the core windo (512 x 512) in the layout coordinate system.

Environment Setup

We use the OpenILT platform to perform OPC and ILT mask optimization, generating academically standardized IC masks.
For mask quality evaluation, we adopt LithoBench, which reports metrics including L1 loss, EPE, PVB, and shot count.

To ensure robust evaluation, we reimplement the EPE checker with explicit bounds-safety guarantees.

Python Environment

Create and activate the Conda environment:

conda env create -f environment.yml
conda activate maskopt

Adaptive-boxes Installation

Install adaptive-boxes for shot-count computation:

cd thirdparty/adaptive-boxes
pip install -e .

Model Training

Dataset Configuration

Modify the parameters in config.yml to control dataset loading:

  • layouts: Specify the layout designs to be included in the dataset.
  • layers: Metal layers to load (e.g., metal).
  • context: Spatial context size (in pixels) around the core window.
    Supported values: 0, 16, 32, 64, 128.
  • exp: Mask generation method. ptions: opc, curvilt, simpleilt.

Run Training

We support several advanced deep learning models for mask optimization, including GANOPC, DAMO, NeuralILT, and CFNO.
All models are implemented using PyTorch Lightning, allowing flexible configuration of training hyperparameters such as batch size, learning rate, number of epochs, and early stopping criteria directly within the model scripts.

To train the DAMO model:

cd MaskOpt
python damoilt_cell_512n.py

About

A large-scale benchmark dataset for IC mask optimization

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages