标题 | Differentiable Edge-based OPC |
---|---|
作者 | Guojin Chen; Haoyu Yang; Haoxing Ren; Bei Yu; David Z. Pan |
机构 | CUHK & UT Austin & NVIDIA |
论文 | https://arxiv.org/pdf/2402.11347 |
前言
光学临近纠正(OPC, Optical proximity Correction), 一种用于优化光掩模(Mask)的技术,用于补偿光刻成像过程中由光的干涉和衍射所引起的光学邻近效应,对于推动半导体制造的精度和实现集成电路的持续缩放至关重要。针对优化的对象,可以简单分为Pixel-Based级别以及Edge-Based级别。而基于像素的OPC技术,即逆光刻技术( Inverse lithography technology,ILT ),由于其灵活性和精确性,引起了人们的研究兴趣。但由于其复杂性、复杂的特征以及制造成本,限制了其在工业上的应用:
ILT生成的像素化掩模图案往往复杂且难以制造,需要昂贵的矩形分解为可制造的曼哈顿多边形。 ILT算法倾向于过度优化形状角点,因为模拟的线端永远不会匹配线端的曼哈顿矩形。 应用分解和掩码规则检查(Mask Rule Check,MRC)方法对掩码模式进行正则化,可能导致OPC性能下降并引入新的热点,从而削弱ILT的性能优势。
本文,提出了一种可微的Edge-Based OPC框架——DiffOPC,它同时具备Edge-Based OPC和ILT的优点。通过采用基于Mask-rule的梯度优化方法,DiffOPC在Mask优化过程中有效地引导Mask的边缘运动,通过将真实梯度从loss function回传到Mask edge,从而实现Mask的优化。
研究的问题
光刻模型——本文采取采用193nm波长系统的相干系统和(SOCS)分解作为光刻建模的光学模型。
其中I、M分别表示光照强度分布和Mask,是傅里叶光学分解的卷积核,表示卷积操作。采用恒阈值抗蚀剂模型(CTR)将光照强度I转换为印刷抗蚀剂图像Z。
其中为光刻阈值。
问题可抽象为一个'Image To Image' 或 'Matrix To Matrix'问题。即给定预期印刷的目标(T),希望能找到一组边缘 ,从而组成一个二值化的Mask(),使得根据Mask要光刻出的Contour Z与T最match。
Evaluation Matrics.
Squared L2 Error: PVB(±2%): Edge Placement Error(EPE): Shot Count: #Shot 是精确复制原始掩码的分解矩形的个数。
DiffOPC
Mask边缘切分与运动
本文首先会把Mask的边缘划分为定义长度的pre-defined length的边缘, 最终得到,其中R是实数,每一条边缘由其顶点和终点坐标表示。整一个分割过程可见Algorithm 1: (必要时,会merging 太短的边缘,以满足MRC)。每一条分割完的边缘,都将分配一个方向向量 。
然后对于如何建立每天边缘的运动速度矢量 是非常重要的问题,因为 联系到前向光刻模拟过程中返回的梯度,相当于建立起边缘与梯度的关系。的建立启发与level set-based ILT,即速度分量是隐式level set function 在 Mask 上的投影,其可以是任务方向的。但DiffOPC对于边缘的运动方向仅限于水平、垂直方向,并将所有边缘的默认方向定义为垂直于边缘从内向外。
Differentiable Edge-Based OPC
DiffOPC将边缘信息存储于一个可学习的参数,而对于每条边的速度信息则是固定住的一个参数。由图中看看出, DiffOPC可分为以下5个步骤:1)Edge parameter rounding; 2)Merging corner edges; 3)Edge-to-Mask rasterization; 4)Forward lithography simulation; 5)Loss calculation.
Differentiable edge parameter rounding
由于Mask基底上的坐标是整数值的,而边参数是实数,所以直接取整是不可微的。为了构建可微的过程,DiffOPC使用“正向取整,反向直通式微分”,即:
其中定义为:
Corner edge merging
对于no corner的edges,由于都是在垂直方向上运动,所以edge的边缘保持不动,依然可以确定Mask,不需要做额外处理。而对于corner的edges,运动之后,则它们的交点可能不再在两条边上面,所以需要调整边的端点位置-Algorithm2: 或者
Differentiable rasterization using CUDA-accelerated ray casting
DiffOPC的核心是:如何把shape为的mask的梯度为shape为的边缘信息梯度。之前的做法有,每一个epoch循环读取一边边缘的信息,减去一个大小为 的二值矩阵,但由于每一个epoch都需要进行此操作,将消耗大量的时间。DiffOPC利用光线投影的方法从边缘参数生成Mask的完全并行方法-Algorithm3:
通过mask多边形的bounding box来建立一个grid,然后通过计算交叉次数,利用奇偶性规则判断来判断像素点是在多边形内部还是在外部,从而快速的建立起二值Mask。而且由于Mask中的多边形是曼哈顿矩形和闭合形状,该算法只需要沿着(无论是水平方向还是垂直方向)的一个方向处理线段,将计算成本降低了一半。(如果你的多边形处理之后内部存在重叠边缘,那你将无法使用此方法)
Forward and backward process. 前向过程需要把边缘参数转换为Mask Tensor , 而反向过程则要求把的梯度reshape为。即:
其中表示该过程的雅可比矩阵,将边缘参数的变化映射到Mask Tensor的变化上,可又Algorithm4计算得到,当计算出雅可比矩阵之后,即可乘以,实现光刻模型到边缘参数的梯度反传,实现使用基于梯度的方法优化Edge-Based OPC!
需要注意的是,Algorithm4的line10的插值函数中,DiffOPC选择每段边缘中点的梯度作为该段的梯度:
Forward lithography simulation
在得到Mask之后,即可进行光刻模拟,从而得到印刷图案,其中是函数的陡峭系数,是光刻胶反应阈值。
Objective function
DiffOPC设置的loss function包括L2、PVB以及EPE loss三部分:
其中L2 loss和PVB loss如下:
而由于EPE loss判断的是印刷图案Z和设计目标T的越距次数,对于垂直边缘(VS)和水平边缘(HS),有:
其中和表示Z与T对应位置之间的距离,而是决定距离计算邻域大小的阈值。然后需要先将EPE loss转换到连续域上才能损失梯度,使用函数进行放松:
对于backward过程,使用链式法则:
其中为。
对于L2 loss,则有:(具体证明可见NeuralILT,如不用霍普金斯逼近这一套则可换对应的其它方法)
相似的,对于PVB loss:
而对于EPE loss,对于抽测点,其梯度计算如下:
实验
Experimental Set
dataset: ICCAD 2023(32nm)(Mental layer and Via layer)(2048*2048 )
采用KLayout进行掩码规则检查( MRC )
.
Experimental Result
除了以上结果,DiffOPC还可以用于结合MRC的优化以及sraf的自动生成,详见论文。
总结
DiffOPC通过建立详细、严谨、优美的梯度优化过程,将Edge-based OPC和level set-based OPC,实现边缘的梯度优化,在保证可造性的同时,光刻模拟的结果也让人印象深刻。弥补了pixel-based OPC与传统方法之间的Gap。