一种基于数值选择函数的半导体工艺角扫描仿真方法
技术领域
本发明涉及半导体设计技术领域,具体是指一种以数值选择函数为工具来动态确定半导体器件模型参数在极限工艺角条件下的参数值,从而对半导体集成电路芯片的性能响应以及集成电路器件模型的参数值随工艺角变化而进行扫描仿真的方法。
背景技术
半导体芯片仿真是在计算机上借助各种数学模型对集成制造工艺所生产出来的半导体集成电路芯片的功能和性能进行演算、预测和验证的工作。其中,半导体芯片的模拟集成电路设计工作主要涉及处理连续时间轴上连续变化的电荷、电压和电流等物理量的模拟电路的功能与性能的演算、预测和验证工作。
对模拟电路的功能与性能的演算、预测和验证等工作是在计算机仿真平台上实现的,该仿真平台包括几个基本的要素:仿真测试电路(Testbench)、仿真软件工具(Simulator)、以及仿真工艺模型(Model)。
仿真测试电路是由电路设计人员根据性能仿真的需要而搭建的由被测试电路(Device Under Test,即DUT)、激励产生电路(Stimulus)和相关的信号处理电路组成的测试电路。
模拟电路的仿真软件工具主要由电子设计自动化(Electronic DesignAutomation,即EDA)厂商提供,典型的商用工具软件有美国Cadence公司的Spectre,美国Mentor Graphics公司的Eldo,以及美国Synopsys公司的Hspice等。
仿真工艺模型主要来源于半导体工艺生产线厂商提供的适合仿真器解析的Spice类型的器件模型。在当今世界流行的无晶圆厂的芯片设计业务模式下,芯片生产主要由世界上少数几个芯片生产线代工厂完成,比如台湾的TSMC(台湾积体电路制造公司),上海的SMIC(上海中芯国际集成电路制造公司),台湾的UMC(台湾联华电子公司),以及注册在阿联酋迪拜的格罗方德GlobalFoundries等。仿真工艺模型主要由参数化的半导体器件数学模型组成。该参数化的数学模型模拟了在输入参数条件下半导体器件自身的物理响应特性,比如对于一个MOS晶体管来说,在各个电极的偏置电压设置成某个状态下,某个沟道尺寸的MOS晶体管沟道将会流过多少电流。
具体运行仿真验证的时候,设计人员需要首先围绕这个仿真平台设置仿真工艺模型,即比如选取某个合适的工艺器件模型,才能继而进行仿真。而模拟集成电路除了关注集成电路性能在典型工艺条件下的响应结果,更需要从统计学角度关注该集成电路在各种工艺参数波动的极限情况下的性能响应及统计学分布,即良率的问题。作为业界的普遍做法,各代工厂开发各自半导体工艺生产线的仿真模型的时候,都将模型分别按照各极限条件组合成的若干个极限工艺角(corner),比如常规的复合金属-氧化层-硅衬底工艺,即常说的CMOS工艺的组合方法有典型工艺(typical),极快工艺(fast-N fast-P),极慢工艺(slow-N slow-P),快慢工艺(fast-N slow-P)和慢快工艺(slow-N fast-P),后面四个极限工艺分别对应于不同程度的N型杂质掺杂和P型杂质掺杂所造成的工艺集成电路器件模型的参数波动。故而在设置仿真模型的时候,设计人员需要分别调入对应于这些针对工艺角而组合成的参数值,进而器件仿真模型就被设置成了该工艺角的模型。到目前为止,业界的通常做法是每次置换工艺角的时候,在设计工具中需要手动调用每个工艺角的参数组,才能进行数值仿真。在每次仿真之前需要进行工艺角参数组设置,才能针对不同的工艺角分别运行数值仿真。这样的做法有着效率低下的问题,设计人员需要耗费繁琐的精力来逐个仿真各个工艺角条件下的结果,影响了产品研发的进度。
同时,上述的仿真方法为在各种工艺角条件下,分别对各个需要验证的性能指标进行模拟演算,得到以仿真设置所定义的自变量(如温度、时间、电流等)为横坐标,以仿真设置所选取的电路性能响应值应变量(如阻抗、增益、带宽、噪声等)为纵坐标的波形曲线图。由于各种工艺角条件下所得出的波形曲线图各不相同,为了比较分析同一应变量在各种工艺角条件下的响应值差别,需要将同种应变量响应曲线图叠加至同一坐标系内,从相同自变量的某一个相同数值所对应的不同工艺角的该同种应变量曲线上取点,然后再建立以工艺角为横坐标,以应变量响应值为纵坐标的坐标系,将各种工艺角条件下的该应变量响应值分别在该坐标系内描点,从而得出所选取的应变量随着工艺角变化的曲线图。
上述的数据整合、处理、分析不但需要耗费大量的时间,而且需要强大的内存硬件支持,因此,往往成为设计进度的一大瓶颈,成为一个设计方法学上的缺陷。
Cadence公司的模拟集成电路仿真软件工具中提供了能够调用和控制仿真器(比如Spectre)的脚本语言OCEAN。OCEAN在仿真器和设计任务之间提供了一个简单易用的脚本环境,比如在一个脚本文件里面可以依次设置仿真器,仿真数据存放的路径,仿真模型文件名,仿真分析和线路设计参数等,就可以直接启动仿真作业完成设计目的。其中OCEAN的循环语句可以直接用来依次置换工艺角需要的器件模型文件,以达到对不同工艺角的性能进行仿真的目的。
OCEAN脚本的本质还是依次启动不同的仿真作业分别运行各个工艺角的仿真,所产生的数据一定要分别放在不同的文件路径中,否则会被同名覆盖而保存不到最后产生曲线和数据分析的那一步。因为达到了自动启动的目的,用这个方法可以提高仿真效率,但是仍然不是在同一个仿真作业中完成对各个工艺角的仿真,所以未能达到在同一个曲线图中以工艺角为横轴绘制某个应变量响应数值的目的。
作为业界领先的EDA方案提供商,Cadence公司的Virtuoso模拟集成电路仿真平台提供了图形化界面Analog Artist仿真环境。在此图形界面中,不同的工艺角以用户定义的设计变量的形式与其它设计变量一同排列在表格中;代工厂提供的工艺角文件还可以和其它数值取为极端情况的设计变量组合成新的工艺角。虽然与前述使用OCEAN脚本的技术表面上是不同的实施方式,这个方法的本质还是仅仅解决了各个工艺角仿真的自动化启动问题,而各个工艺角之间是不能以扫描的方式在同一个仿真里面调用到的,也即不能在同一个以工艺角为自变量的坐标系下得到某应变量响应值曲线。
运用不同的脚本(script)技术连接本来不是连续运行的仿真作业成为一个业界提升仿真效率的做法。到目前为止的各种脚本技术都是简单的从作业连续启动的角度解决这个问题,通过协调等待等方式连续启动仿真作业,还不能从根本上解决在一个仿真作业中连续扫描工艺角的问题;而只有通过在同一个仿真作业中扫描各个工艺角,才有可能在同一张曲线图中,以工艺角为自变量横轴绘制出需要的应变量响应随工艺角变化的曲线。
发明内容
本发明目的在于克服现有针对半导体工艺角仿真的方法速度慢、效率低的不足,提供一种基于数值选择函数的半导体工艺角扫描仿真方法,以达到在同一个仿真作业中针对不同的工艺角进行扫描,产生的数据可以直接以工艺角为横坐标绘制曲线的目的。
为实现上述目的,本发明所采取的技术方案为:
一种基于数值选择函数的半导体工艺角扫描仿真方法,包括如下步骤:
(1)定义数值选择函数,所述数值选择函数中,以代表工艺角的自然数为第一自变量,以半导体工艺生产线厂商的器件模型在所列举的工艺角条件下的参数值为其余自变量,且所述半导体工艺生产线厂商的器件模型在所列举的工艺角条件下的参数值为待返回的函数数值,即:
器件模型参数值=f(工艺角自然数,参数值1,参数值2,…,参数值n),
其中等式右边的函数“f”为数值选择函数,所述数值选择函数的返回值根据第一自变量的取值进行选择操作,操作得到的数值经等号“=”被赋予等式左边的器件模型参数;
(2)将上述数值选择函数中的第一自变量,即工艺角自然数,作为用户设定的设计变量加入至仿真程序扫描设置中,运行仿真程序并在仿真中逐个扫描所述工艺角自然数的数值;
(3)仿真输出以所述工艺角自然数为自变量,以器件模型在该工艺角下的参数值,或仿真电路在该工艺角下的性能响应值为应变量的波形曲线图。
本发明可实现以工艺角为自变量,使仿真程序输出以器件模型在各种工艺角条件下的参数值,或仿真电路在各种工艺角条件下的性能响应值为应变量的波形曲线图,使器件模型或仿真电路在各种工艺角条件下的工艺性能偏差在同一个坐标系内呈现出来,为设计人员提供直观的技术参照,大大简化仿真程序的处理流程,提高设计人员的研发效率。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明基于数值选择函数的半导体工艺角扫描仿真方法的一种实施方式流程图;
图2是本发明所述数值选择函数的流程框图;
图3是运用本发明基于数值选择函数的半导体工艺角扫描仿真方法得出的以工艺角为自变量的波形曲线图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明所述一种基于数值选择函数的半导体工艺角扫描仿真方法,如图1所示,该方法包括如下步骤:
(1)定义数值选择函数,所述数值选择函数中,以代表工艺角的自然数为第一自变量,以半导体工艺生产线厂商的器件模型在所列举的工艺角条件下的参数值为其余自变量,且所述半导体工艺生产线厂商的器件模型在所列举的工艺角条件下的参数值为待返回的函数数值,即:
器件模型参数值=f(工艺角自然数,参数值1,参数值2,…,参数值n),
其中等式右边的函数“f”为数值选择函数,所述数值选择函数的返回值根据第一自变量的取值进行选择操作,操作得到的数值经等号“=”被赋予等式左边的器件模型参数;
(2)将上述数值选择函数中的第一自变量,即工艺角自然数,作为用户设定的设计变量加入至仿真程序扫描设置中,运行仿真程序并在仿真中逐个扫描所述工艺角自然数的数值;
(3)仿真输出以所述工艺角自然数为自变量,以器件模型在该工艺角下的参数值,或仿真电路在该工艺角下的性能响应值为应变量的波形曲线图。
所述数值选择函数以代表工艺角的自然数为第一自变量,以代表半导体工艺生产线厂商的器件模型在所列举的工艺角条件下的参数值为其余自变量,本发明以传统的典型工艺、极快工艺、极慢工艺、快慢工艺和慢快工艺五种不同的工艺角为实施例,则该数值选择函数包括六个自变量,即工艺角自然数,参数值1,参数值2,参数值3,参数值4,参数值5。其中,设定函数的第一自变量为自变量参数关键字,比如corner_number,第二自变量,即参数值1,为典型工艺角(即TT)下的器件参数值,第三自变量,即参数值2,为极快工艺角(即FF)下的器件参数值,第四自变量,即参数值3,为极慢工艺角(即SS)下的器件参数值,第五自变量,即参数值4,为快慢工艺角(即FNSP)下的器件参数值,第六自变量,即参数值5,为慢快工艺角(即SNFP)下的器件参数值。
为使所述以工艺角为自变量,和以半导体工艺生产线厂商的器件模型在所列举的工艺角条件下的参数值成更加直观的一一对应关系,在本发明所述步骤(1)之后,将半导体工艺生产线厂商所提供的器件模型文件中的工艺参数在工艺角下的参数名和参数值代入步骤(1)中已经定义好的数值选择函数,生成以工艺角类型和各器件模型的工艺参数在该工艺角类型下的参数值一一对应的二维表格式函数组。在该二维表格式函数组中,将代表工艺角的自然数,以及各器件模型在各种工艺角类型下的参数值,即函数值的取值作为列向,其代表着所述数值选择函数的自变量;将各器件模型参数作为横向。该表格经转换软件工具以特定的打印格式输出成文本文件,即形成了仿真器可以直接读取的仿真扫描与数值选择文本文件,如下所示。
该文件的第一部分为所述数值选择函数的定义部分。其中,关键字real为本实施例中Spectre语言所需要的数据及变量类型定义,即代表函数corner_case的返回值,第一自变量corner_number的数值,以及其余自变量value_1,…,value_5的数值均为实数类型。函数corner_case的返回值由一个简单的返回命令return输出,而return命令内部则是一个嵌套式的判断与选择复合语句。以判断语句的操作符“?”为语法关键字,该复合判断与选择语句的第一判断条件为corner_number是否大于数值4,即(corner_number>4)?,如果判断结果为逻辑真,按照语法规则,判断语句返回冒号“:”之前的数值,即value_5。判断语句的返回值随即被return函数返回,作为corner_case函数的返回值被赋予到等号左边的器件模型参数。如果第一判断结果为逻辑假,按照语法规则,判断语句返回冒号“:”之后的数值,也即第二判断语句的返回值。如此嵌套式递增,该数值选择函数可以在corner_number预先定义的1,2,…,5范围内准确返回与工艺角相对应的参数值,该选择判断语句可以用如图2所示的流程图来表示。
按照语法规则,关键字“//”之后的文本为注释文本,被仿真器忽略;关键字“+”后面的文本为前一行文本的连续行。
文件的第二部分为器件模型参数列表。以一个关键字parameters为起始,后续为各个器件模型参数的赋值语句,其中每一个赋值语句都是调用一个业已定义好的数值选择函数。由于关键字“+”作为续行符的作用,这些由数值选择函数组成的赋值语句排成了二维表格的形式。
该文本或表格可经由软件自动生成,对所述代表工艺角类型的自然数和各器件模型在该工艺角类型下的参数值进行文本处理加工得出,或者是由研发人员直接通过手工整理得出,将该二维表格式数值选择函数组加入至仿真程序中,或者更简单的,以该二维表格式函数组为内容的文本文件被一行include语句调用,即可被包含在仿真设置文件中,无需再手动添加与工艺角选择有关的工艺参数组部分。该处理转换是一次性的操作,针对每一套代工厂的工艺文件库,只需要运行一次转换操作,即可得到可以反复使用的仿真扫描与数值选择文本文件。
本发明实施例用软件工具实施的办法自动将代工厂所提供的不同的工艺角模型参数集中化,组合成一个二维表格式函数组,该表格的每一行针对一个器件模型参数调用数值选择函数。函数等号的左边是某一个器件模型的参数,该参数随着工艺角的不同分别有不同的数值。函数等号的右边调用了一个数值选择函数,函数的变量即工艺角本身,返回值即当前工艺角所需要的参数值。
以器件模型的参数dtox为例,该参数在工艺角自然数为1(即典型工艺TT)时,函数的返回值为0,该参数在工艺角自然数为2(即极快工艺FF)时,函数的返回值为-1.0e-10,该参数在工艺角自然数为3(即极慢工艺SS)时,函数的返回值为1.0e-10,该参数在工艺角自然数为4(即快慢工艺FNSP)时,函数的返回值为0,该参数在工艺角自然数为5(即慢快工艺SNFP)时,函数的返回值为0。
作为该方法学的完整性说明,工艺角自然数可以随时像其他所有普通的设计变量一样赋值。在无需对工艺角参数进行扫描时,工艺角自然数可以选择一个缺省数值作为通用设置,比如设置为1,即在没有特别设置的前提下,默认的工艺角选择为典型工艺TT。再比如,当针对极慢工艺角下的电路性能进行一系列的仿真时,可以很简单地把工艺角自然数设置为3即可。
本发明方案提出一个以Spectre仿真器为例的实施方法,其方法具有普遍的适用性,并不局限于Spectre仿真器。
运行仿真程序,即可得到以工艺角自然数为自变量,以器件模型在该工艺角下的参数值,或仿真电路在该工艺角下的性能响应值为应变量的波形曲线图。
如图3所示,本实施例中,为以工艺角自然数为自变量,以MOS管的阈值电压值在各种工艺角条件下的值为应变量,而仿真得到的波形曲线图,从该波形曲线图中,可以清楚的看出MOS管的阈值电压值随着工艺角的不同,而出现了不同的数值大小,即当该MOS管在工艺角自然数为1(即典型工艺TT)时,MOS管的阈值电压为0.65伏,当MOS管在工艺角自然数为2(即极快工艺FF)时,MOS管的阈值电压为0.45伏,当MOS管在工艺角自然数为3(即极慢工艺SS)时,MOS管的阈值电压为0.95伏,当MOS管在工艺角自然数为4(即快慢工艺FNSP)时,MOS管的阈值电压为0.55伏,当MOS管在工艺角自然数为5(即慢快工艺SNFP)时,MOS管的阈值电压为0.75伏。由于实现了以工艺角为自变量的扫描仿真方式,可直接仿真得出器件模型在该工艺角下的参数值,或仿真电路在该工艺角下的性能响应值为应变量的波形曲线图。现有技术中,如果需要得到上述以工艺角为自变量的波形曲线图,需要首先手动设置第一种工艺角类型,然后运行仿真程序,仿真完毕后,将波形曲线图导出,然后再手动设置第二种工艺角类型,再次运行仿真程序,得到波形曲线图后导出,然后手动设置第三种工艺角类型后运行仿真程序,如此往复五次获得五个波形曲线图,然后再建立坐标系将上述五个波形曲线图叠加至该坐标系内,对各波形曲线图取点,然后再建立以工艺角为自变量的坐标系,将上述各波形曲线图中取的点描绘在该坐标系内,从而得到以工艺角为自变量,以器件模型在该工艺角下的参数值,或仿真电路在该工艺角下的性能响应值为应变量的波形曲线图,这是一个非常繁缛复杂的过程,需要耗费设计人员大量的时间成本。即使采用OCEAN脚本的方法,在仿真过程中自动化切换工艺角,仍然需要对切换的五种不同的工艺角进行五次仿真,然后再进行叠加、取点、描点操作,无法从根本上简化仿真流程。
本发明实现了在一个仿真作业中连续扫描工艺角,并以工艺角为自变量,使仿真程序输出以器件模型在各种工艺角条件下的参数值,或仿真电路在各种工艺角条件下的性能响应值为应变量的波形曲线图的扫描仿真方法,使器件模型或仿真电路在各种工艺角条件下的工艺性能偏差在同一个坐标系内呈现出来,为设计人员提供直观的技术参照,对电路进行适当的工艺偏差设计,防止由于工艺的偏差影响而使电路出现致命的缺陷,大大简化了仿真程序的处理流程,提高设计人员的研发效率。