  Optical proximity correction (OPC) is a widely-used resolution enhancement
technique (RET) for printability optimization. Recently, rigorous numerical
optimization and fast machine learning are the research focus of OPC in both
academia and industry, each of which complements the other in terms of
robustness or efficiency. We inspect the pattern distribution on a design layer
and find that different sub-regions have different pattern complexity. Besides,
we also find that many patterns repetitively appear in the design layout, and
these patterns may possibly share optimized masks. We exploit these properties
and propose a self-adaptive OPC framework to improve efficiency. Firstly we
choose different OPC solvers adaptively for patterns of different complexity
from an extensible solver pool to reach a speed/accuracy co-optimization. Apart
from that, we prove the feasibility of reusing optimized masks for repeated
patterns and hence, build a graph-based dynamic pattern library reusing stored
masks to further speed up the OPC flow. Experimental results show that our
framework achieves substantial improvement in both performance and efficiency.
