对集成电路中的半导体存储器的安全级别进行认证的方法与流程

文档序号:27753148发布日期:2021-12-03 20:10阅读:286来源:国知局
对集成电路中的半导体存储器的安全级别进行认证的方法与流程

1.本公开涉及对集成电路中的半导体存储器的安全级别进行认证的方法。


背景技术:

2.集成电路(ic)广泛应用于各种电子系统和设备,例如汽车控制、飞机、数据处理系统、便携式设备、计算机和电视。许多电子系统的可靠性和安全性需求会要求其子系统(例如所使用的ic组件)进行分析技术,以获得其故障率、故障模式和诊断能力。常用的分析技术之一是故障模式、影响和诊断分析(fmeda)。在许多制造过程和协议中,需求的一部分是需要对存储器ic进行fmeda分析。


技术实现要素:

3.根据本公开的一个实施例,提供了一种对集成电路中的半导体存储器的安全级别进行认证的方法,包括:用一个或多个参数指定目标存储器宏;查找所述目标存储器宏中的功能块;基于基本单元的集合中的晶体管数量和面积分布来确定所述功能块的故障率;基于所述功能块的所述故障率,从存储器编译器生成针对所述目标存储器宏的故障模式分析;以及基于所述目标存储器宏的所述故障模式分析,确定所述目标存储器宏的安全级别。
4.根据本公开的另一实施例,提供了一种在其上存储有可执行代码的计算机可读存储介质,所述可执行代码在由处理器执行时使得所述处理器执行以下操作:加载指定基本单元的集合中的晶体管数量和面积分布的表;查找用一个或多个参数指定的目标存储器宏中的功能块;基于所述基本单元的集合中的晶体管数量和面积分布来确定所述功能块的故障率;基于所述功能块的所述故障率,生成针对所述目标存储器宏的故障模式分析;以及基于所述目标存储器宏的所述故障模式分析,确定所述目标存储器宏的安全级别。
5.根据本公开的又一实施例,提供了一种对集成电路中的半导体存储器的安全级别进行认证的方法,包括:用一个或多个参数指定目标存储器宏;查找所述目标存储器宏中的基本单元以形成基本单元的集合;查找所述基本单元的集合中的晶体管数量和面积分布;查找所述目标存储器宏中的功能块;基于所述基本单元的集合中的所述晶体管数量和所述面积分布,确定所述功能块的故障率;以及基于所述功能块的所述故障率,生成针对所述目标存储器宏的故障模式分析。
附图说明
6.在结合附图进行阅读时,可以通过下面的具体实施方式最佳地理解本公开的各个方面。要注意的是,根据行业的标准惯例,各种特征不是按比例绘制的。事实上,为了讨论的清楚起见,各种特征的尺寸可能被任意地增大或减小。
7.图1是根据一些实施例的认证存储器宏的安全级别的过程的流程图。
8.图2是根据一些实施例的静态随机存取存储器(sram)的平面图的示意图。
9.图3是根据一些实施例的列出基本单元的集合中的晶体管数量和面积分布的表。
10.图4是根据一些实施例的列出与图1中的sram的功能块相关联的晶体管的累积面积和累积数量的表。
11.图5是根据一些实施例的列出与图1中的sram的功能块相关联的静态故障率和瞬态故障率的表。
12.图6是根据一些实施例的列出图1中的sram的两个示例功能块的故障模式和故障模式分布的表。
13.图7是根据一些实施例的列出基于图4中的表而计算出的各种安全目标违规(safety goal violation)的单点故障度量和潜在故障度量的表。
14.图8a是根据一些实施例的基于另一目标存储器宏的指定参数并基于表300中所列出的基本单元的集合而生成的表。
15.图8b是根据一些实施例的列出基于图8a中的表而计算出的各种安全目标违规的单点故障度量和潜在故障度量的表。
16.图9a是根据一些实施例的基于基本单元的集合中的晶体管和面积分布来认证存储器宏的安全级别的过程的流程图。
17.图9b是根据一些实施例的生成目标存储器宏的故障模式分析的过程的流程图。
18.图10是根据一些实施例的电子设计自动化(eda)系统的框图。
19.图11是根据一些实施例的集成电路(ic)制造系统和与其相关联的ic制造流程的框图。
具体实施方式
20.以下公开内容提供了许多不同的实施例或示例,以用于实现所提供的主题的不同特征。下面描述了组件、材料、值、步骤、操作、布置的具体示例以简化本公开。当然,这些只是示例,并不旨在要进行限制。考虑了其他组件、值、操作、材料、布置等。例如,在下面的描述中,在第二特征上方或在第二特征上形成第一特征可以包括第一特征和第二特征直接接触形成的实施例,并且还可以包括可以在第一特征和第二特征之间形成附加特征的实施例,使得第一特征和第二特征可以不直接接触。此外,本公开可以在各种示例中重复附图标记和/或字母。这种重复是为了简单和清晰的目的,其本身并不指示所讨论的各种实施例和/或配置之间的关系。
21.此外,为了便于描述,可以在本文中使用空间相关术语,例如“下面”、“下方”、“下”、“上方”、“上”等,来描述如图中所示的一个元素或特征与另一个(或多个)元素或特征的关系。除了图中所描绘的定向之外,空间相关术语还旨在包含正在使用或操作的器件的不同定向。装置可以以其他方式定向(旋转90度或在其他定向上),并且本文使用的空间相对描述符也可以被相应地解释。
22.越来越多的采用知识产权(ip)核心形式的ic设计用于汽车领域。故障模式影响和诊断分析(fmeda)是目前流行的用于认证汽车安全完整性级别(asil)的ip硬件和国际标准化组织(iso)在iso-26262下定义的安全标准的方法。一些常用的ip是存储器宏(memory macro),例如静态随机存取存储器(sram)宏、只读存储器(rom)宏、或内容可寻址存储器(cam)宏。
23.根据使用一个或多个sram宏的电子系统的特定设计,sram宏通常具有各种大小和
类型。在一些实施例中,sram宏的大小在从几千字节到几百兆字节或到几千兆字节测量的范围内。在一些实施例中,sram宏的类型在用于在sram宏中构造单元阵列的sram位单元的端口数量上不同(例如单端口sram、双端口sram和四端口sram)。在一些实施例中,用于在sram宏中构造单元阵列的位单元的架构在sram位单元中的晶体管数量上不同(例如,六个晶体管6t sram单元、八个晶体管8t sram单元、十个晶体管10t sram单元、或十二个晶体管12t sram单元)。在一些实施例中,sram宏的类型是同步的或异步的。在一些实施例中,sram宏的类型在设计的其他方面不同,例如零总线往返(zbt)sram、双数据速率(ddr)sram或四数据速率(qdr)sram。为了改进sram宏设计的eda过程,在一些实施例中,一些存储器编译器生成具有不同大小和/或不同类型的sram宏。例如,由存储器编译器生成的sram宏的特定大小和特定类型由提供给存储器编译器的一个或多个参数确定。
24.当特定sram宏按照iso-26262的要求针对汽车安全完整性级别(asil)进行认证时,sram宏被分为四个asil级别:asil a、asil b、asil c和asil d。为了确定sram宏的asil级别,需要基于sram宏的各种故障率计算单点故障度量(spfm)和潜在故障度量(lfm),这与sram宏的具体设计(例如sram宏的大小和类型)有关。认证特定sram宏的asil安全级别的一种方法包括:查找用于构造特定sram的功能块,以及查找各种功能块中的晶体管数量和/或各种功能块占用的面积。对于每个特定sram宏,专门针对感兴趣的特定sram宏执行查找功能块和查找功能块的晶体管数量和/或面积的过程。由于sram宏在大小和类型方面可能会有许多变化,因此,当有大量sram宏需要针对asil安全级别进行认证时,单独对每个sram宏进行认证的过程可能导致生产力效率降低。在一些实施例中,使用存储器编译器认证sram宏的改进过程提供了认证生产力的改进。
25.图1是根据一些实施例的认证存储器宏的安全级别的过程100的流程图。过程100包括块120-150、155、160、170、175、180、185和190。在块120,用一个或多个参数指定目标存储器宏。用于指定目标存储器宏的参数的示例包括以下项中的一者或多者:用于指定存储器大小的大小参数(例如,以千字节、兆字节或千兆字节为单位的数字)、用于指定位单元中的端口数量的端口参数(例如,单端口或双端口)、以及用于指定存储器是同步存储器还是异步存储器的参数。
26.在一些实施例中,图1中的过程100在存储器编译器中实现,以认证由存储器编译器生成的存储器宏的安全级别。在一些实施例中,当目标存储器宏由存储器编译器生成时,存储器编译器从配置文件中接收指定参数作为输入。在一些实施例中,存储器编译器生成具有以多个文件表示的不同视图的目标存储器宏。由存储器编译器生成的文件的示例包括用于描述示意图的文件、用于描述布局的文件、用硬件描述语言(例如verilog)框架表示的用于行为模型视图、逻辑视图、定时视图和功率视图的一个或多个文件。在基本要素的配置中,目标存储器宏包括用于描述存储器设计的布局的文件。
27.在图1的过程100中,在块130,识别目标存储器宏中的基本单元以形成基本单元的集合。基本单元的集合被选择用于认证存储器宏的安全级别。虽然可以以各种不同的方式形成基本单元的集合,但在一些实施例中,基本单元的集合具有一个或多个共同特征。在一些实施例中,每个基本单元构成单元类或单元类型的代表。在一些实施例中,基本单元的集合具有足够数量的单元类,以使得能够使用与基本单元相关联的单元类的实例来构造许多不同的存储器宏。在一些实施例中,基本单元的集合包括用于构造sram宏的所有唯一单元
类型。在替代实施例中,在识别出用于构造sram宏的所有唯一单元类型之后,与sram宏的asil安全级别无关的一些单元类型不被包括在基本单元的集合中。在一个实施例中,如图2所示,sram的平面图200被分析以查找用作覆盖布局设计的平面图的展开图(tile)的基本单元。在图2中,用于构造sram宏的基本单元包括定时器单元202、读写控制器单元204、数据输入单元212、数据输出单元214、感测放大器单元216和列复用器单元218。用于构造sram宏的基本单元还包括行预解码解码器221、列预解码解码器222、行地址解码器223、列地址解码器224、字线驱动器226和用于形成单元阵列230的单个位单元。在一些实施例中,当sram存储器宏包括用于描述单元的抽象视图的库交换格式(lef)文件(例如,扩展名为“.lef”的文件)时,通过在lef文件中查找唯一单元类型来获得用于构造sram宏的基本单元。在一些实施例中,分析用于覆盖布局设计的平面图的叶单元或展开图来查找基本单元。叶单元在用作覆盖布局设计的平面图的展开图时,通常指定对应单元的边界。在一些实施例中,用于覆盖布局设计的平面图的叶单元是通过分析lef文件获得的,因为lef文件包括关于单元的边界、管脚位置和金属层信息的信息。
28.在图1的过程100中,在选择基本单元(在块130处)之后,确定基本单元的集合中的晶体管数量和面积分布(在框140处)。给定单个基本单元的故障率通常与晶体管的数量和给定单个基本单元所占用的面积有关。图3是根据一些实施例的列出基本单元的集合中的晶体管数量和面积分布的表300。表300包括列310、320和330。列310列出从基本单元的集合中选择的基本单元的名称。列320列出从基本单元的集合中选择的基本单元所使用的晶体管数量。列330列出从基本单元的集合中选择的基本单元所占用的面积。图3中的表300的格式被提供作为示例,用于列出晶体管数量和面积分布的其他格式在本公开的预期范围内。
29.表300中的条目(例如,行)将所选择的基本单元映射到所选择的基本单元中的对应晶体管数量和所选择的基本单元所占用的对应面积。例如,在表300中,定时器单元202、读写控制器单元204、数据输入单元212、数据输出单元214、感测放大器单元216和列复用器单元218中的每一者具有列320中列出为对应整数445、366、137、36、22和156的晶体管数量。定时器单元202、读写控制器单元204、数据输入单元212、数据输出单元214、感测放大器单元216和列复用器单元218中的每一者具有列330中以平方微米为单位列出为对应实数57.04、33.36、4.28、6.46、2.44和4.25的面积。此外,在表300中,行预解码解码器221、列预解码解码器222、行地址解码器223、列地址解码器224和字线驱动器226中的每一者具有列320中列出为对应整数46、204、23、121和44的晶体管数量。行预解码解码器221、列预解码解码器222、行地址解码器223、列地址解码器224和字线驱动器226中的每一者具有列330中以平方微米为单位列出为对应实数127.94、42.65、69.57、177.37和2.47的面积。在表300中,位单元232是六晶体管(6t)sram单元,其占用0.09072平方微米的面积。
30.在图1的过程100中,在确定基本单元的集合中的晶体管数量和面积分布(在块140处)之后,确定目标存储器宏中的功能块(在块150处)。作为示例,当分析图2中的sram的平面图200时,目标存储器宏中的功能块包括功能块定时器(timer)、r&w控制器(r&w controller)、din、dout、sa、ypass、xpdec、ypdec、xdec、ydec、wldrv和单元阵列(cell-array)。在一些实施例中,目标存储器宏包括描述布局设计的物理视图的文件,并且通过描述物理视图的文件确定功能块。在一些实施例中,目标存储器宏包括以硬件描述语言(例如verilog)表示的行为模型文件,并且基于行为模型文件中的一个或多个高级模块来确定功
能块。
31.在图2中,功能块定时器包括定时器单元202,功能块r&w控制器包括读写控制器单元204。在图2中,功能块din包括数据输入单元212的多个实例,功能块dout包括数据输出单元214的多个实例,功能块sa包括感测放大器单元216的多个实例,功能块ypass包括列复用器单元218的多个实例。在图2中,功能块xpdec包括行预解码解码器221的多个实例,功能块ypdec包括列预解码解码器222的多个实例,功能块xdec包括行地址解码器223的多个实例,功能块ydec包括列地址解码器224的多个实例,功能块wldrv包括字线驱动器226的多个实例。功能块单元阵列通常包括以二维模式阵列布置的位单元232。
32.在图1的过程100中,在块155处,基于在块140处获得的基本单元的集合中的晶体管数量和面积分布,计算每个功能块占用的累积面积和每个功能块中的晶体管的累积数量。例如,在图4中,表400具有多个行,每个行列出与图1中的sram的功能块之一相关联的晶体管的累积面积和累积数量。在一个示例中,表400是基于目标存储器宏的参数并基于表300中列出的基本单元的集合中的晶体管数量和面积分布而生成的。在至少一个实施例中,用于生成表400的目标存储器宏的参数包括字宽(指定为16384)、字深(指定为39)、列复用器的列数(指定为16)和位单元的pm数(指定为1)。表400包括列410、420、430、440、450、460和470。
33.在表400中,列420列出功能块的名称。列出的功能块包括定时器、r&w控制器、din、dout、sa、ypass、xpdec、ypdec、xdec、ydec、wldrv和单元阵列。列410识别列420中的每个功能块的组件类型。列出的组件类型包括ctrl(“控制”)、io(“输入和输出”)、解码器(decoder)和单元阵列。功能块定时器和r&w控制器属于组件类型ctrl。功能块din、dout、sa和ypass属于组件类型io。功能块xpdec、ypdec、xdec、ydec和wldrv属于组件类型解码器。功能块单元阵列属于组件类型单元阵列。表400中的功能块和组件类型作为示例被提供,各种附加功能块和各种附加组件类型在本公开的预期范围内。
34.在表400中,列430列出功能块的晶体管的累积数量。列440列出由同一行中的晶体管的累积数量贡献的每一行中的晶体管分布,该晶体管分布是以与同一行中的功能块相对应的组件类型内的百分比来测量的。列450列出由同一行中晶体管的累积数量贡献的每一行中的晶体管分布,该晶体管分布是以目标存储器宏内的百分比来测量的。例如,用于功能块din、dout、sa和ypass的晶体管的累积数量在列430中被对应地列出为整数5480、1440、1760和49920。对于功能块din、dout、sa和ypass,在组件类型io内以百分比形式被测量的晶体管分布在列440中被对应地列出为9%、2%、3%和85%。对于功能块din、dout、sa和ypass,在目标存储器宏内以百分比形式被测量的晶体管分布在列450中被对应地列出为0.14%、0.04%、0.04%和1.25%。
35.在表400中,列460列出了功能块的累计面积。列470列出了由同一行的功能块的累积面积贡献每一行中的累积面积,该累积面积是以目标存储器宏内的百分比来测量的。例如,功能块din、dout、sa和ypass的累积面积在列460中被对应地列出为实数1380.56、4134.25、787.05和5483.52。功能块din、dout、sa和ypass的以目标存储器宏内的百分比测量的累积面积在列470中被对应地列出为1.81%、5.41%、1.03%和7.17%。
36.在图1的过程100中,在块160,基于在块150处获得的晶体管的累积面积和累积数量来确定目标存储器宏中的功能块的故障率。作为示例,图5中的表500具有多个行,每行列
出与图1中的sram的功能块之一相关联的静态故障率和瞬态故障率。表500包括列510、520、530、540、550、560、570和580。列510中顺序列出的整数是用于识别表500的各个行的索引编号。列520中列出的功能块包括定时器、r&w控制器、din、dout、sa、ypass、xpdec、ypdec、xdec、ydec、wldrv和单元阵列。列530中列出的组件类型包括ctrl、io、解码器和单元阵列。图5中的表500的格式被提供作为示例,用于列出静态故障率和瞬态故障率的其他格式在本公开的预期范围内。
37.在表500中,功能块的静态故障率和瞬态故障率被对应地列出在列540和列550中。晶体管的累积数量和功能块的累积面积被对应地列出在列560和列570中。瞬态类型设备(例如锁存器、触发器或位存储器)的瞬态分布被列出在列580中。例如,功能块din、dout、sa和ypass(所有的组件类型io)的静态故障率在列540中被对应地列出为实数3.421e-05、8.991e-06、1.099e-05和3.117e-04。功能块din、dout、sa和ypass(所有的组件类型io)的瞬态故障率在列550中被对应地列出为实数0.001、0.001、0.000和0.000。
38.在表500中,功能块din、dout、sa和ypass的晶体管的累积数量在列560中被对应地列出为整数5480、1440、1760和49920(它们与表400的列430中的整数相同)。功能块din、dout、sa和ypass的累积面积在列570中被对应地列出为实数1380.56、4134.25、787.05和5483.52(它们与表400的列460中的实数相同)。功能块din、dout、sa和ypass的瞬态分布在580列中被对应地列出为实数80.00、40.00、0.00和0.00。
39.在表500中,与表中的其他功能块相比,功能块单元阵列具有更多的晶体管,占用更多的面积并具有更多的瞬态类型设备(例如锁存器、触发器或位存储器)。功能块单元阵列的静态故障率(1201e-03)高出表中所有其他功能块的静态故障率。功能块单元阵列的瞬态故障率(9.998)高出表中所有其他功能块的瞬态故障率。
40.在图1的过程100中,在块170,定义功能块的故障模式。然后,在块175,确定功能块的故障模式分布。作为示例,生成图6中的表600以列出图1中的sram的两个示例功能块(即,定时器和r&w控制器)的故障模式和故障模式分布。在一些实施例中,在类似于表600的表中列出了目标存储器宏中的一个或多个其他功能块(或所有功能块)的故障模式和故障模式分布。图6中的表600的格式被提供作为示例,用于列出故障模式和故障模式分布的其他格式在本公开的预期范围内。
41.在图6中,表600包括列610、620、630、640、650、660、670、680、690和695。列610中顺序列出的整数是表600中的功能块的识别编号。每个功能块具有唯一的识别编号。功能块的名称被列出在列620中。功能块的组件类型被列出在列630中。功能块的单点故障率被列出在列640中。功能块的多点故障率被列出在列650中。功能块的故障模式的名称被列出在列660中。功能块的故障模式分布被列出在列670中。瞬态故障的功能块的故障模式分布被列出在列680中。在列690中列出了故障模式的影响描述。表600的列695中的每个条目识别安全目标违规(sgv)状态,即,是否需要在整体故障率计算中使用与条目行中的故障模式相对应的sgv。例如,识别到(列695中的字母“n”)总体故障率计算不需要包括由于存储器未进入电源管理模式的故障模式而导致的故障率。
42.在图1的过程100中,在确定功能块的故障模式分布之后(在块175处),计算功能块的单点故障率和多点故障率(在块180处)。然后,在块185处,计算各种sgv的单点故障度量和潜在故障度量。作为示例,图7中的表700具有多个行,每个行与一种类型的sgv相关联。表
700包括列710、720、730、740和750。sgv的类型的名称被列出在列710中。各种sgv的单点故障度量(spfm)被列出在列720中。各种sgv的潜在故障度量(lfm)被列出在列730中。与各种sgv相关联的总单点故障率(∑λ
spf
)被列出在列740中。与各种sgv相关联的总多点故障率(∑λ
mpf
)被列出在列750中。图7中的表700的格式被提供作为示例,用于列出单点故障度量和潜在故障度量的其他格式在本公开的预期范围内。
43.如表700的第一行所示,与输出数据损坏的sgv相关联的总单点故障率(∑λ
spf
)和总多点故障率(∑λ
mpf
)分应为6.020877e-05和0.000000e+00,而输出数据损坏的sgv的spfm和lfm对应为85.125%和100.000%。如表700的第二行所示,与总体ip(或芯片)度量的sgv相关联的总单点故障率(∑λ
spf
)和总多点故障率(∑λ
mpf
)对应为00.00006021和0.00000000,而总体ip(或芯片)度量的sgv的spfm和lfm对应为85.125%和100.000%。如表700的第三行所示,与瞬态故障的总体ip(或芯片)度量的sgv相关联的总单点故障率(∑λ
spf
)和总多点故障率(∑λ
mpf
)对应为0.1012和0.0000,而瞬态故障的总体ip(或芯片)度量的sgv的spfm和lfm对应为98.988%和100.000%。
44.在图1的过程100中,在计算各种sgv的单点故障度量和潜在故障度量之后(在块185处),确定目标存储器宏的安全级别(在块190处)。在一些实施例中,从用于汽车安全完整性级别(asil)认证的安全级别中选择目标存储器宏的安全级别。在iso-26262下定义的asil安全级别包括asil a、asil b、asil c和asil d。四个asil安全级别的最低spfm要求和最低lfm要求被列出在下表中:
[0045][0046][0047]
在一个实施例中,为了确定目标存储器宏的asil安全级别(晶体管和面积分布被列出在表400中),将表700中的sgv的spfm和lfm的值与四个asil安全级别的最小spfm要求和最小lfm要求进行比较。由于表700中针对目标存储器宏的总体ip的spfm仅为85.125%,低于asil b的90%的最低要求,因此目标存储器宏的asil安全级别(晶体管和面积分布被列出在表400中)为asil a。
[0048]
在确定具有图2的平面图200的目标存储器宏的asil安全级别的上述示例中,使用目标存储器宏的指定参数,基于表300中列出的基本单元的集合中的晶体管数量和面积分布来确定表400中列出的晶体管和面积分布。为了生成表400,指定的字宽是16384,指定的字深是39,指定的列复用器的复用列的数量是16,并且指定的pm数量是1。
[0049]
在另一示例中,与表300中所列出的相同的基本单元的集合用于确定第二目标存储器宏的asil安全级别,该第二目标存储器宏具有与图2相同的平面图200,但具有不同于用于生成表400中的晶体管和面积分布的目标存储器宏的指定参数。图8a是根据一些实施例的基于第二目标存储器宏的指定参数并基于表300中所列出的基本单元的集合而生成的
表800。为了生成表800,指定的字宽为8192,指定的字深为16,指定的列复用器的复用列的数量为16,并且指定的pm数量为0。基于表800,在块170、175和180处的操作之后,针对第二目标存储器宏计算各种sgv的单点故障度量和潜在故障度量(在块185处)。计算结果被列出在图8b中的表850中。
[0050]
如表850的第一行所示,与输出数据损坏的sgv相关联的总单点故障率(∑λ
spf
)和总多点故障率(∑λ
mpf
)对应为5.941166e-05和0.000000e+00,而输出数据损坏的sgv的spfm和lfm对应为84.513%和100.000%。如表850的第二行所示,与总体ip(或芯片)度量的sgv相关联的总单点故障率(∑λ
spf
)和总多点故障率(∑λ
mpf
)对应为0.00005941和0.00000000,而总体ip(或芯片)度量的sgv的spfm和lfm对应为84.513%和100.000%。如表850的第三行所示,与瞬态故障的总ip(或芯片)度量的sgv相关联的总单点故障率(∑λ
spf
)和总多点故障率(∑λ
mpf
)对应为0.1012和0.0000,而瞬态故障的总ip(或芯片)度量的sgv的spfm和lfm对应为98.988%和100.000%。
[0051]
在将表850中的sgv的spfm和lfm值与asil安全级别的spfm和lfm要求进行比较时,确定第二目标存储器宏的asil安全级别。由于第二目标存储器宏的总体ip的spfm仅为84.513%,低于asil b的90%的最低要求,因此第二目标存储器宏的asil安全级别(晶体管和面积分布被列出在图8a中的表800中)为asil a。
[0052]
图9a是根据一些实施例的基于基本单元的集合中的晶体管和面积分布来认证存储器宏的安全级别的过程900的流程图。过程900包括块910-950。在块910,用一个或多个参数指定目标存储器宏。在一些实施例中,用大小参数指定存储器大小(例如,以千字节、兆字节或千兆字节为单位的数字)。在一些实施例中,用特征参数指定位单元的类型(例如,一端口位单元、两端口位单元或双端口位单元)。在一些实施例中,由参数之一指定目标存储器宏提供同步存储器还是异步存储器。
[0053]
在块920,确定目标存储器宏中的功能块。在一些实施例中,目标存储器宏包括描述布局设计的物理视图的文件,并且通过描述物理视图的文件来确定功能块。在一些实施例中,目标存储器宏包括以硬件描述语言(例如verilog)表示的行为模型文件,并且行为模型文件用于确定功能块。在一些实施例中,基于行为模型文件中的一个或多个高级模块来确定功能块。在一些实施例中,用于功能块的高级模块包括以下模块中的一个或多个:用于定义定时器的模块、用于定义读写控制器的模块、用于定义感测放大器的模块、用于定义列复用器的模块、用于行预解码解码器的模块、用于定义预解码解码器的模块、用于定义行地址解码器的模块、用于定义列地址解码器的模块、用于定义字线驱动器226的模块、用于定义单元阵列的模块、以及用于定义单元阵列的各种输入和输出的模块。
[0054]
在块930,基于基本单元的集合中的晶体管数量和面积分布来确定功能块的故障率。在一些实施例中,在独立于块910和920处的操作的单独过程期间,从一个或多个存储器宏中选择由基本单元形成基本单元的集合。在一些实施例中,基本单元的集合被用于认证表300中的位单元以外的其他类型的位单元的附加存储器宏的安全级别的过程。例如,在一些实施例中,当用于安全级认证的存储器宏包括八晶体管(8t)sram单元形式的位单元时,用于列出基本单元的集合中的晶体管数量和面积分布的表通常包括8t sram单元作为条目之一。也就是说,在表中列出的晶体管数量和8t sram单元占用的面积在功能上等同于表300。类似地,在一些实施例中,当用于安全级别认证的存储器宏包括表300中的基本单元的
其他设计变型(例如,用于行预解码解码器、列预解码解码器、行地址解码器和列地址解码器的其他基本单元设计)时,在功能上等同于表300的表中还列出了晶体管的数量和具有其他设计变型的每个基本单元所占用的面积。
[0055]
在一些实施例中,以参数化单元的形式提供基本单元(作为表中用于列出晶体管的对应数量和对应面积的条目),并且由用于指定参数化基本单元的参数确定晶体管的对应数量和对应面积。例如,当列地址解码器324的参数化基本单元包括可寻址列的数量时,在一些实施例中,列地址解码器的基本单元的晶体管的对应数量和对应面积取决于可寻址列的数量。
[0056]
在块930,为了确定功能块之一的故障率,基于基本单元的集合中的晶体管数量和面积分布计算与功能块相关联的晶体管的累积数量和累积面积。在图1的过程100的实施例中,从目标存储器宏中的基本单元的选择中获得基本单元的集合。在替代实施例中,在不依赖于目标存储器宏中的基本单元的选择的过程中获得基本单元的集合。例如,在一些实施例中,在用一个或多个参数识别或指定目标存储器宏之前形成基本单元的集合。在一些实施例中,即使在指定目标存储器宏之后获得了基本单元的集合,也不能通过在指定的目标存储器宏中选择基本单元来获得基本单元的集合。在一些实施例中,当基本单元的集合被设计用于认证具有各种尺寸、各种类型和各种特征的许多存储器宏的安全级别的过程中时,基本单元的集合包括从多于一个存储器宏(例如,一组存储器宏)中选择的基本单元。
[0057]
在图9a的过程900中,在确定功能块的故障率之后(在块930处),生成针对目标存储器宏的故障模式分析(在块940处)。图9b是根据一些实施例的用于生成目标存储器宏的故障模式分析的过程940的流程图。过程940包括块942、944、946和948。在块942,定义了功能块的故障模式。例如,对于具有如图2所示的平面图的目标存储器宏的故障模式分析,在图6的表600中定义和列出了两个示例功能块(例如定时器和读写控制器)的故障模式。在块944,确定了功能块的故障模式分布。在如图6所示的示例中,在表600中还列出了两个示例功能块(例如定时器和读写控制器)的故障模式分布。在块946,计算功能块的单点故障率和多点故障率。在块948,计算各种安全目标违规的单点故障度量和潜在故障度量。例如,对于图2所示的具有平面图的目标存储器宏的故障模式分析,基于功能块的计算出的单点故障率(例如∑λ
spf
)和计算出的多点故障率(例如∑λ
mpf
),在图7的表700中列出了相关安全目标违规的单点故障度量(例如,spfm)和潜在故障度量(例如,lfm)。
[0058]
在图9a的过程900中,在生成针对目标存储器宏的故障模式分析之后(在块940处),基于针对目标存储器宏确定的故障模式分析来确定目标存储器宏的安全级别(在块950处)。例如,根据图7的表700中所列出的单点故障度量(例如spfm)和潜在故障度量(例如lfm),确定具有图2所示的平面图的目标存储器宏的安全级别。
[0059]
图10是根据一些实施例的电子设计自动化(eda)系统900的框图。
[0060]
在一些实施例中,eda系统1000包括apr系统。本文描述的设计布局图的方法表示根据一个或多个实施例的布线布置是可以例如使用根据一些实施例的eda系统1000来实现的。
[0061]
在一些实施例中,eda系统1000是包括硬件处理器1002和非暂态计算机可读存储介质1004的通用计算设备。除其它以外,存储介质1004用计算机程序代码1006(即,一组可执行指令)进行编码,即存储计算机程序代码1006。由硬件处理器1002执行计算机程序代码
1006表示(至少部分地)eda工具,该eda工具实现根据一个或多个实施例(在下文中所述的过程和/或方法)的本文描述的方法的一部分或全部。
[0062]
处理器1002经由总线1008电耦合到计算机可读存储介质1004。处理器1002还通过总线1008电耦合到i/o接口1010。网络接口1012还经由总线1008电连接到处理器1002。网络接口1012连接到网络1014,使得处理器1002和计算机可读存储介质1004能够经由网络1014连接到外部元件。处理器1002被配置为执行在计算机可读存储介质1004中编码的计算机程序代码1006,以便使系统1000可用于执行所述过程和/或方法中的部分或全部。在一个或多个实施例中,处理器1002是中央处理单元(cpu)、多处理器、分布式处理系统、专用集成电路(asic)和/或合适的处理单元。
[0063]
在一个或多个实施例中,计算机可读存储介质1004是电子、磁性、光学、电磁、红外和/或半导体系统(或装置或设备)。例如,计算机可读存储介质1004包括半导体或固态存储器、磁带、可移动计算机磁盘、随机存取存储器(ram)、只读存储器(rom)、刚性磁盘和/或光盘。在使用光盘的一个或多个实施例中,计算机可读存储介质1004包括光盘只读存储器(cd-rom)、光盘读/写(cd-r/w)和/或数字视频光盘(dvd)。
[0064]
在一个或多个实施例中,存储介质1004存储计算机程序代码1006,所述计算机程序代码1006被配置为使系统1000(其中这样的执行表示(至少部分地)eda工具)可用于执行所述过程和/或方法中的一部分或全部。在一个或多个实施例中,存储介质1004还存储便于执行所述过程和/或方法中的一部分或全部的信息。在一个或多个实施例中,存储介质1004存储包括如本文公开的这种标准单元的标准单元的库1007。
[0065]
eda系统1000包括i/o接口1010。i/o接口1010耦合到外部电路。在一个或多个实施例中,i/o接口1010包括键盘、按键、鼠标、轨迹球、轨迹板、触摸屏和/或光标方向键,以用于向处理器1002传送信息和命令。
[0066]
eda系统1000还包括耦合到处理器1002的网络接口1012。网络接口1012允许系统1000与一个或多个其它计算机系统所连接的网络1014通信。网络接口1012包括无线网络接口,例如蓝牙、wifi、wimax、gprs或wcdma;或有线网络接口,例如以太网、usb或ieee-1364。在一个或多个实施例中,在两个或更多个系统1000中实现所述过程和/或方法中的一部分或全部。
[0067]
系统1000被配置成通过i/o接口1010接收信息。通过i/o接口1010接收的信息包括以下项中的一者或多者:指令、数据、设计规则、标准单元库和/或用于由处理器1002处理的其他参数。信息经由总线1008传送到处理器1002。eda系统1000被配置为通过i/o接口1010接收与ui相关的信息。该信息存储在计算机可读介质1004中作为用户界面(ui)1042。
[0068]
在一些实施例中,所述过程和/或方法中的一部分或全部被实现为独立软件应用,以用于由处理器执行。在一些实施例中,所述过程和/或方法中的一部分或全部被实现为作为附加软件应用的一部分的软件应用。在一些实施例中,所述过程和/或方法中的一部分或全部被实现为软件应用的插件。在一些实施例中,所述过程和/或方法中的至少一者被实现为作为eda工具的一部分的软件应用。在一些实施例中,所述过程和/或方法中的一部分或全部被实现为由eda系统1000使用的软件应用。在一些实施例中,使用从cadence design systems公司可获得的诸如之类的工具或另一种合适的布局生成工具生成包括标准单元的布局图。
[0069]
在一些实施例中,这些过程被实现为存储在非暂态计算机可读记录介质中的程序的功能。非暂态计算机可读记录介质的示例包括但不限于外部/可移动和/或内部/内置的存储或存储器单元,例如以下项中的一者或多个:光盘(例如dvd)、磁盘(例如硬盘)、半导体存储器(例如rom)、ram、存储器卡等。
[0070]
图11是根据一些实施例的集成电路(ic)制造系统1100的框图和与其相关联的ic制造流程。在一些实施例中,基于布局图,使用制造系统1100制造以下项中的至少一者:(a)一个或多个半导体掩模或(b)半导体ic层中的至少一个组件。
[0071]
在图11中,ic制造系统1100包括实体,例如设计室1120、掩模室1130和ic制造商/制造者(“fab”)1150等,它们在与制造ic器件1160相关的设计、开发和制造周期和/或服务中交互。系统1100中的实体通过通信网络连接。在一些实施例中,通信网络是单个网络。在一些实施例中,通信网络是各种不同的网络,例如内联网和互联网。通信网络包括有线和/或无线通信信道。每个实体与一个或多个其他实体交互,并且向一个或多个其他实体提供服务和/或从一个或多个其他实体接收服务。在一些实施例中,设计室1120、掩模室1130和ic制造商/制造者1150中的两者或更多者由单个较大公司拥有。在一些实施例中,设计室1120、掩模室1130和ic制造商/制造者1150中的两者或更多者在公共设施中共存并使用公共资源。
[0072]
设计室(或设计团队)1120生成ic设计布局图1122。ic设计布局图1122包括针对ic器件1160设计的各种几何图案。几何图案对应于构成要制造的集成电路器件1160的各个组件的金属、氧化物或半导体层的图案。各个层组合形成各种特性。例如,ic设计布局图1122的一部分包括各种ic特征,例如有源区域、栅极电极、源极和漏极、层间互连的金属线或通孔以及用于接合焊盘的开口,以形成于半导体衬底(例如硅晶圆)及设置在半导体衬底上的各个材料层中。设计室1120实现了适当设计程序以形成ic设计布局图1122。设计程序包括一个或多个逻辑设计、物理设计或地点和布线。ic设计布局图1122呈现在具有几何图案的信息的一个或多个数据文件中。例如,ic设计布局图1122可以用gdsii文件格式或dfii文件格式表示。
[0073]
掩模室1130包括数据准备1132和掩模制造1144。掩模室1130使用ic设计布局图1122来制造一个或多个掩模1145,以用于根据ic设计布局图1122制造ic器件1160的各个层。掩模室1130执行掩模数据准备1132,其中ic设计布局图1122被转换为代表性数据文件(“rdf”)。掩模数据准备1132向掩模制造1144提供rdf。掩模制造1144包括掩模写入器。掩模写入器将rdf转换为衬底上的图像,例如掩模(刻线(reticle))1145或半导体晶圆1153。设计布局图1122由掩模数据准备1132操纵,以符合掩模写入器的特定特性和/或ic制造商/制造者1150的要求。在图11中,将掩模数据准备1132和掩模制造1144示为单独的元素。在一些实施例中,掩模数据准备1132和掩模制造1144可以被统称为掩模数据准备。
[0074]
在一些实施例中,掩模数据准备1132包括光学邻近校正(opc),其使用光刻增强技术来补偿图像误差,例如可能由衍射、干涉、其他工艺效果等引起的那些误差。opc调整ic设计布局图1122。在一些实施例中,掩模数据准备1132还包括分辨率增强技术(ret),例如离轴照明、亚分辨率辅助特性、相移掩模、其他合适的技术等或其组合。在一些实施例中,还使用了将opc视为逆成像问题的逆光刻技术(ilt)。
[0075]
在一些实施例中,掩模数据准备1132包括掩模规则检查器(mrc),掩模规则检查器
检查在opc中经过处理的ic设计布局图1122,其包含某些几何和/或连接限制以确保足够裕度的一组掩模创建标准规则,以说明半导体制造工艺等的可变性。在一些实施例中,mrc修改ic设计布局图1122以补偿在掩模制造1144期间的限制,其可以撤消由opc执行的部分修改以满足掩模创建标准规则。
[0076]
在一些实施例中,掩模数据准备1132包括模拟将由ic制造商/制造者1150实现以制造ic器件1160的处理的光刻工艺检查(lpc)。lpc基于ic设计布局图1122模拟此处理,以创建模拟制造的设备,例如ic器件1160。lpc模拟中的处理参数可以包括与ic制造周期的各种工艺相关联的参数、与用于制造ic的工具相关联的参数和/或制造工艺的其他方面。lpc考虑了各种因素,例如航空图像对比度、聚焦深度(“dof”)、掩模误差增强因子(“meef”)、其他合适的因素等或其组合。在一些实施例中,在由lpc创建模拟制造的设备之后,如果模拟设备的形状不足以满足设计规则,则重复opc和/或mrc以进一步改善ic设计布局图1122。
[0077]
应当理解,出于清楚的目的,对掩模数据准备1132的上述描述进行了简化。在一些实施例中,数据准备1132包括诸如逻辑操作(lop)之类的附加特征,以根据制造规则修改ic设计布局图1122。另外,在数据准备1132期间应用于ic设计布局图1122的工艺可以以各种不同的顺序执行。
[0078]
在掩模数据准备1132之后和掩模制造1144期间,基于修改的ic设计布局图1122制造掩模1145或一组掩模1145。在一些实施例中,掩模制造1144包括基于ic设计布局图1122执行一个或多个光刻曝光。在一些实施例中,基于修改的ic设计布局图1122,电子束(e-beam)或多个电子束的机构用于在掩模(光掩模或刻线)1145上形成图案。掩模1145可以以各种技术形成。在一些实施例中,使用二进制技术形成掩模1145。在一些实施例中,掩模图案包括不透明区域和透明区域。用于曝光已涂覆在晶圆上的图像敏感材料层(例如光致抗蚀剂)的辐射光束(例如紫外线(uv)光束)被不透明区域阻挡并通过透明区域传输。在一个示例中,掩模1145的二元掩模版本包括透明衬底(例如熔融石英)和涂覆在二元掩模的不透明区域中的不透明材料(例如铬)。在另一示例中,使用相移技术形成掩模1145。在掩模1145的相移掩模(psm)版本中,在相移掩模上形成的图案中的各种特征被配置为具有适当的相位差以增强分辨率和成像质量。在各种示例中,相移掩模可以是衰减的psm或交替的psm。由掩模制造1144生成的(一个或多个)掩模用于各种工艺。例如,这样的(一个或多个)掩模用于:在离子注入工艺中,在半导体晶圆1153中形成各种掺杂区域;在蚀刻工艺中在半导体晶圆1153中形成各种蚀刻区域;和/或其他合适的工艺。
[0079]
ic制造商/制造者1150包括晶圆制造1152。ic制造商/制造者1150是一家集成电路制造企业,包括用于制造各种不同ic产品的一个或多个制造设施。在一些实施例中,ic制造商/制造者1150是半导体铸造厂。例如,可以有用于多个ic产品的前端制造的制造设施(前段制程(feol)制造),而第二制造设施可以提供用于ic产品的互连和封装的后端制造(后段制程(beol)制造),第三制造设施可以为铸造企业提供其他服务。
[0080]
ic制造商/制造者1150使用由掩模室1130制造的(一个或多个)掩模1145来制造ic器件1160。因此,ic制造商/制造者1150至少间接地使用ic设计布局图1122来制造ic器件1160。在一些实施例中,半导体晶圆1153由ic制造商/制造者1150使用(一个或多个)掩模1145制造以形成ic器件1160。在一些实施例中,ic制造包括至少间接地基于ic设计布局图1122执行一个或多个光刻曝光。半导体晶圆1153包括硅衬底或具有在其上形成的材料层的
其他适当衬底。半导体晶圆1153还包括各种掺杂区域、电介质特征、多级互连等(在随后的制造步骤中形成)中的一者或多者。
[0081]
有关集成电路(ic)制造系统(例如,图11的系统1100)和与其相关联的ic制造流程的详细信息可以在以下专利申请中找到,例如:2016年2月9日授权的美国专利号9,256,709、2015年10月1日公布的美国预授权公布号20150278429、2014年2月6日公布的美国预授权公布号20140040838、2007年8月21日授权的美国专利号7,260,442,其全文通过引用并入本文。
[0082]
本说明书的一个方面涉及一种方法。该方法包括:用一个或多个参数指定目标存储器宏,查找目标存储器宏中的功能块,以及基于基本单元的集合中的晶体管数量和面积分布来确定功能块的故障率。该方法包括:基于功能块的故障率,从存储器编译器生成目标存储器宏的故障模式分析。该方法包括:基于目标存储器宏的故障模式分析来确定目标存储器宏的安全级别。
[0083]
本说明书的一个方面涉及存储在非暂态计算机可读介质上的、用于生成存储器宏计算机程序代码。计算机程序代码被配置为使具有至少一个处理器的系统执行以下操作:加载指定基本单元的集合中的晶体管数量和面积分布的表,查找用一个或多个参数指定的目标存储器宏中的功能块,基于基本单元的集合中的晶体管数量和面积分布确定功能块的故障率,基于功能块的故障率生成针对目标存储器宏的故障模式分析,并且基于目标存储器宏的故障模式分析确定目标存储器宏的安全级别。
[0084]
本说明书的一个方面涉及一种方法。该方法包括:用一个或多个参数指定目标存储器宏、查找目标存储器宏中的基本单元以形成基本单元的集合、查找基本单元的集合中的晶体管数量和面积分布。该方法还包括:查找目标存储器宏中的功能块、基于基本单元的集合中的晶体管数量和面积分布确定功能块的故障率、以及基于功能块的故障率生成针对目标存储器宏的故障模式分析。
[0085]
本领域普通技术人员将容易看到,所公开的实施例中的一个或多个实现了上述一个或多个优点。在阅读上述说明书之后,普通技术人员将能够实现如本文广泛公开的各种变化、等同物的替换和各种其它实施例。因此,此处授予的保护仅由所附权利要求及其等同物中包含的定义限定。
[0086]
示例1.一种对集成电路中的半导体存储器的安全级别进行认证的方法,包括:用一个或多个参数指定目标存储器宏;查找所述目标存储器宏中的功能块;基于基本单元的集合中的晶体管数量和面积分布来确定所述功能块的故障率;基于所述功能块的所述故障率,从存储器编译器生成针对所述目标存储器宏的故障模式分析;以及基于所述目标存储器宏的所述故障模式分析,确定所述目标存储器宏的安全级别。
[0087]
示例2.根据示例1所述的方法,其中,所述安全级别是从用于汽车安全完整性级别asil认证的安全级别中选择的。
[0088]
示例3.根据示例1所述的方法,还包括:从所述存储器编译器一起生成所述目标存储器宏以及所述故障模式分析。
[0089]
示例4.根据示例1所述的方法,其中,所述基本单元的集合是从一组存储器宏中选择的。
[0090]
示例5.根据示例1所述的方法,其中,所述基本单元的集合是从用于构建一组存储
器宏的叶单元中选择的。
[0091]
示例6.根据示例1所述的方法,其中,确定所述功能块的所述故障率包括:基于所述功能块所占用的累积面积和所述功能块中的晶体管的累积数量来确定功能块的故障率。
[0092]
示例7.根据示例1所述的方法,其中,确定所述功能块的所述故障率包括:查找功能块的静态故障率和瞬态故障率。
[0093]
示例8.根据示例1所述的方法,其中,生成针对所述目标存储器宏的所述故障模式分析包括:定义功能块的故障模式和故障模式分布;以及查找所述功能块的单点故障率和多点故障率。
[0094]
示例9.根据示例1所述的方法,还包括:在所述存储器编译器中加载表,该表指定所述基本单元的集合中的晶体管数量和面积分布,其中,该表中的条目将所述基本单元之一映射到对应的面积和对应的晶体管数量。
[0095]
示例10.一种在其上存储有可执行代码的计算机可读存储介质,所述可执行代码在由处理器执行时使得所述处理器执行以下操作:加载指定基本单元的集合中的晶体管数量和面积分布的表;查找用一个或多个参数指定的目标存储器宏中的功能块;基于所述基本单元的集合中的晶体管数量和面积分布来确定所述功能块的故障率;基于所述功能块的所述故障率,生成针对所述目标存储器宏的故障模式分析;以及基于所述目标存储器宏的所述故障模式分析,确定所述目标存储器宏的安全级别。
[0096]
示例11.根据示例10所述的计算机可读存储介质,其中,所述可执行代码在由处理器执行时使得所述处理器还执行以下操作:一起生成所述目标存储器宏以及所述故障模式分析。
[0097]
示例12.根据示例10所述的计算机可读存储介质,其中,确定所述功能块的所述故障率包括:基于所述功能块所占用的累积面积和所述功能块中的晶体管的累积数量来确定所述功能块的故障率。
[0098]
示例13.根据示例10所述的计算机可读存储介质,其中,确定所述功能块的所述故障率包括:查找功能块的静态故障率和瞬态故障率。
[0099]
示例14.根据示例10所述的计算机可读存储介质,其中,生成针对所述目标存储器宏的所述故障模式分析包括:定义功能块的故障模式和故障模式分布;以及查找所述功能块的单点故障率和多点故障率。
[0100]
示例15.一种对集成电路中的半导体存储器的安全级别进行认证的方法,包括:用一个或多个参数指定目标存储器宏;查找所述目标存储器宏中的基本单元以形成基本单元的集合;查找所述基本单元的集合中的晶体管数量和面积分布;查找所述目标存储器宏中的功能块;基于所述基本单元的集合中的所述晶体管数量和所述面积分布,确定所述功能块的故障率;以及基于所述功能块的所述故障率,生成针对所述目标存储器宏的故障模式分析。
[0101]
示例16.根据示例15所述的方法,还包括:基于所述目标存储器宏的所述故障模式分析,确定所述目标存储器宏的安全级别。
[0102]
示例17.根据示例15所述的方法,还包括:从存储器编译器一起生成所述目标存储器宏以及所述故障模式分析。
[0103]
示例18.根据示例15所述的方法,其中,所述一个或多个参数包括尺寸参数、特征
参数、或尺寸参数和特征参数的组合。
[0104]
示例19.根据示例15所述的方法,其中,所述基本单元的集合包括:位单元、定时器单元、读写控制器单元、数据输入单元、数据输出单元、感测放大器单元、列复用器单元、行预解码解码器、列预解码解码器、行地址解码器、列地址解码器或字线驱动器。
[0105]
示例20.根据示例15所述的方法,其中,查找所述基本单元的集合中的所述晶体管数量和所述面积分布包括:确定从所述基本单元的集合中选择的每个基本单元中的晶体管数量和从所述基本单元的集合中选择的每个选定基本单元所占用的面积。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1