集成电路仿真方法与流程

文档序号:14614493发布日期:2018-06-05 21:47阅读:1106来源:国知局
集成电路仿真方法与流程

本发明实施例通常涉及仿真方法,且更具体来说,涉及集成电路仿真方法。



背景技术:

一般而言,新集成电路(integrated circuit,IC)的设计工艺包括使用电子设计自动化(Electronic Design Automation,EDA)工具的若干步骤。在(集成)电路的初始原理图设计期间,设计者识别出一组函数,以沿其标准延迟包含在初始原理图设计中的及。设计者使用计算机实作工具来执行功能仿真,以确保所述设计执行其预期功能。在对原理图设计进行布局之前,设计者通常执行预先仿真。所述预先仿真将装置特性考虑在内,以提供对电路性能(例如,模拟设计及数字设计中的性能,包括数字设计中的定时性能)的估计。如果所述设计在预先仿真时满足电路性能要求,则设计者开始平面布置(floorplan)阶段及布局阶段以使用电子设计自动化工具的放置及布线引擎来产生实际集成电路布局。如果预先仿真识别出显着的性能问题,则设计者在继续进行布局之前对所述设计进行修改。

在布局工艺之后,用户通过使用电子设计自动化工具执行设计规则检查(design rule check,DRC)、布局和原理图一致性比较(layout versus schematic,LVS)及电阻电容提取(RC extraction)来对所述设计进行验证。在例子中,电阻电容提取工具将由布线器产生的连接层的导电(例如,金属)线的布局考虑在内并计算与每一导电线相关联的寄生电阻及电容组件。随后,通过除装置特性之外也将寄生电阻及电容组件考虑在内,进行后仿真来对电路性能进行验证。

随着几何尺寸为40纳米、30纳米、或20纳米或更小的先进技术节点的出现,在电路中,处理条件(例如,处理温度、处理压力等)及/或环境条件(例如,供应电压、工作温度)的波动会随机地造成装置特性的各种变化,继而会改变电路的性能。因此,需要一种考虑到上述变化的电子设计自动化工具。



技术实现要素:

本发明实施例提供一种集成电路(IC)仿真方法。集成电路仿真方法包括:(a)提供系统级电路的设计网表,其中所述系统级电路包括第一子电路;(b)提供基于所述第一子电路的操作而确定的第一行为模型,其中所述第一行为模型是一个或多个相应的行为级参数的函数;(c)将第一变化纳入所述第一行为模型的所述一个或多个行为级参数中的每一者中;以及(d)基于纳入有所述第一变化的所述第一行为模型的所述一个或多个行为级参数对所述系统级电路进行仿真。

附图说明

结合附图阅读以下详细说明,会最好地理解本发明的各个方面。应注意,各种特征未必按比例进行绘制。事实上,为清晰论述起见,可任意地增大或减小所述各种特征的尺寸。

图1绘示根据一些实施例的在考虑到变化的情况下对系统级电路进行仿真的系统的示例性方块图。

图2绘示根据一些实施例的系统级电路的示例性方块图。

图3绘示根据一些实施例的一种在考虑到一个或多个全局角(global corner)的情况下对系统级电路进行仿真的方法的流程图。

图4说明根据一些实施例的一种在考虑到一个或多个局部失配变化的情况下对系统级电路进行仿真的方法的流程图。

具体实施方式

以下公开内容阐述了用于发明目标的不同特征的各种示例性实施例。下文阐述组件及布置的具体例子以简化本发明内容。当然,这些仅为例子且并非旨在进行限制。举例来说,应理解,当称一组件“连接至”或“耦合至”另一组件时,所述组件可直接连接至或耦合至所述另一组件,抑或可存在一个或多个中间组件。

本发明实施例提供了在使用自下而上的仿真流程对系统级电路进行仿真时对各种变化(例如,由于工艺变化而引起的同一组件(例如,晶体管、线、电阻器、电容器等)的不同实例之间的随机失配)的影响加以考虑的系统及方法的各种实施例。更具体来说,在一些实施例中,此种所公开的自下而上的仿真流程使用行为模型来表征构成系统级电路的每一子电路,并且将所述各种变化纳入行为模型(或“进行后端注释”)以作为行为模型的相应的“行为级参数”(或子电路级参数)。如此一来,在将变化的影响考虑在内的同时,可通过作为各个行为级参数的函数的每一子电路自己的行为模型来对每一子电路进行阐述(仿真)。利用各自具有行为级参数的此种函数,每一子电路可响应于各自的一组行为输入而具有各自的一组行为输出。因此,可通过根据系统级电路的设计(即,子电路如何彼此耦合/交互作用)使每一子电路的(所仿真)行为输入/输出相关联来容易地实现系统级仿真(例如,系统级电路的输出响应)。此外,将变化纳入每一子电路的行为模型可通过所仿真行为输入与输出之间的上述的关联性,而自发地将系统级仿真将各变化中的一个或多个考虑在内。

在一些实施例中,上述变化可被认为“全局地”或“局部地”被考虑在内(即,纳入行为模型)。当一个或多个变化“全局地”纳入子电路的行为模型时,所述变化中的每一者可被视为与子电路的设计参数(例如,电压电平、温度、工艺变化等)对应的全局角(例如,工艺角等),且所述全局角可使行为模型的相应的行为级参数相应地进行变化。如此一来,每一子电路的行为输出可根据全局角的纳入而变化。

通常,每一电路(子电路)可包括待考虑的各种全局角。子电路的每一全局角可被称为上述设计参数中的一个设计参数的极值,在所述极值内子电路仍可恰当地发挥作用。在一些实施例中,所述各种全局角可集中至分别表示相应子电路性能的极值的更少数目的“全局设计角”或“全局角”(例如(举例来说)快-快角、慢-慢角等),此将在下文进一步详细论述。

在一些其他实施例中,当一个或多个变化“局部地”纳入子电路的行为模型时,可基于装置变量的概率分布来阐述每一变化,其中每一装置变量对应于子电路的组件的设计参数(例如,子电路的金属氧化物半导体场效晶体管的通道宽度、子电路的金属氧化物半导体场效晶体管的通道长度、子电路的金属氧化物半导体场效晶体管的阈值电压等)。且将一个或多个变化(装置变量)“局部地”纳入每一子电路的相应的装置/组件。因此,可通过各别的行为级参数来建构将装置变量考虑在内的每一子电路的行为模型,且因此每一子电路的行为输出可将装置变量考虑在内,此将在下文进一步详细论述。

图1是根据各种实施例的用于对全局地及局部地纳入一个或多个变化作为构成系统级电路的每一子电路的行为输入的系统级电路进行仿真的系统100的示例性方块图。

系统100包括至少一个非暂态计算机可读存储媒体120,所述至少一个非暂态计算机可读存储媒体120用于存储表示包括多个标准库单元的集成电路(IC)的层的原理图设计的数据,所述多个标准库单元将包含于半导体衬底中。同一存储媒体120或不同存储媒体(图中未示出)存储电子设计自动化(EDA)工具140所使用的数据及指令。如图所示,存储媒体120包括但不限于原理图设计及单元信息122、包括变化信息(在下文阐述)的技术档案124以及软件程序指令126。

在一些实施例中,原理图设计及单元信息122包括系统级电路的网表123以及系统级电路的设计者所规定的操作参数。一般来说,此种网表123包括分别对应于子电路的多个子网表,其中所述多个子电路(子网表)彼此之间进行耦合以提供系统级电路所用以执行的一个或多个逻辑功能及/或模拟功能。在一些实施例中,系统级电路可包括但不限于系统芯片(system-on-chip,SoC)电路。所属领域中的普通技术人员应理解,系统芯片电路可包括全部集成在单个(芯片)衬底上的数字功能、模拟功能、混合信号功能、及/或射频(radio-frequency,RF)功能。此种系统芯片电路的例子为锁相回路(phase-locked loop,PPL)电路/系统,此将在下文参考图2进一步详细阐述。

在一些实施例中,系统级电路的设计者可使用存储在电子设计自动化工具140中的多个预定义行为模型来建构网表123(下文参考图2进一步详细阐述),其中每一行为模型被配置成描述相应子电路的操作。在一些替代性实施例中,当系统级电路的网表不是使用预定义行为模型进行建构时,设计者可存取电子设计自动化工具140以使用行为模型来建构网表。

技术档案124包括上述全局角(例如,工艺角等)、设计参数的概率分布、及统计参数的概率分布的变化信息。存储在技术档案124中的此种变化信息可由制作装置/组件/线(例如,晶体管、电阻器、感应器、电容器、连接线、通孔等)的每一代工厂提供以构成电路/子电路。此外,在一些实施例中,可将变化信息提供至电子设计自动化工具140用于在同时考虑到全局角及局部失配变化的情况下进行(系统级/子)电路仿真,此将在下文分别参考图3及图4进一步详细论述。

一般来说,在半导体制造中,工艺角是实验设计(design-of-experiments,DoE)技术的例子,其是指用于将集成电路设计实现至半导体芯片/衬底上的设计(工艺)参数的变化。工艺角表示这些参数变化的极值,在所述极值的范围内,已刻蚀至芯片上的电路仍可正确地发挥作用。根据本发明的各种实施例,工艺角的例子可包括前端工艺(front-end-of-line,FEOL)角及后端工艺(back-end-of-line,BEOL)角。

前端工艺角通常被称为使装置(例如,金属氧化物半导体场效晶体管)的(数量较大的)各种设计参数如上所述集中至较小数目的角。一般来说,每一金属氧化物半导体场效晶体管可包括三个集中角:典型角、快角、慢角,所述三个集中角分别表示典型速度的电性质(例如,载流子迁移率)、快速的电性质、以及慢速的电性质。如此一来,在其中设计角表示载流子迁移率的速度的例子中,可使用第一个字母(例如,“T”代表典型速度,“F”代表快速,“S”代表慢速等)以及第二个字母(例如,T”代表典型速度,“F”代表快速,“S”代表慢速等)来标示子电路/电路(其包括多个金属氧化物半导体场效晶体管)的设计角,其中所述第一个字母及所述第二个字母分别用于标示子电路的n型金属氧化物半导体场效晶体管及p型金属氧化物半导体场效晶体管的载流子迁移率。因此,可使用共计五个角来阐述子电路的全局变化:典型-典型(typical-typical,TT)角(表示典型速度的n型载流子迁移率及典型速度的p型载流子迁移率)、快速-快速(fast-fast,FF)角(表示快速的n型载流子迁移率以及快速的p型载流子迁移率)、慢速-慢速(slow-slow,SS)角(表示慢速的n型载流子迁移率以及慢速的p型载流子迁移率)、快-慢(fast-slow,FS)角(表示快速的n型载流子迁移率以及慢速的p型载流子迁移率)、以及慢-快(slow-fast,SF)角(表示慢速的n型载流子迁移率以及快速的p型载流子迁移率)。

子电路的上述五个角仅为对子电路的各种设计参数进行集中的例子。在一些实施例中,可将或多或少的设计参数集中/集成至一组特定设计参数中的每一者中。举例来说,除n型载流子迁移率及p型载流子迁移率的速度之外,角可进一步包括相应的子电路的供应电压电平等。如此一来,子电路的角可由三个字母表示(例如,子电路的SSF角分别表示子电路中的慢速的n型载流子迁移率、子电路中的慢速的p型载流子迁移率、及高供应电压的子电路),此转而会得到共计十个角,例如TTS角、TTF角、SFS角、SFF角、FSS角、FSF角、SSF角、SSS角、FFS角、及FFF角。

除场效晶体管的操作特性(例如,如上所述的载流子迁移率、供应电压)之外,关于连接线(例如,通孔)的变化的角可能是显着的,在较小的技术节点处尤其如此。关于连接线的变化的此种角通常被称为上述的后端工艺角。后端工艺角的例子包括“RCworst”及“RCbest”,“RCworst”及“RCbest”分别表示最小的连接线宽度/厚度及最大的连接线宽度/厚度。尽管以下论述是针对使用将变化全局地纳入行为模型的角(例如,前端工艺角),但应理解,也可在行为模型中使用后端工艺角,这仍保持处于本发明的范围内。因此,角在本文中被称为“全局角”。

关于技术档案124中的设计参数及统计参数的概率分布(以下称为“局部失配变化”)的信息,局部失配变化在特定技术节点处一般对于每一类型的线及/或装置均包括一组变化,其中每一变化均被描述为概率分布。更具体来说,对于每一类型的装置/线,所述变化的一部分可分别具有各别的物理含义(例如,装置的通道长度/宽度、装置的栅极氧化物厚度、装置的阈值电压等),而所述变化的另一部分可不具有物理含义。在一些实施例中,此种非物理变化可分别用于统计目的。举例来说,在金属氧化物半导体场效晶体管具有标称栅极长度“L”、栅极宽度“W”及/或氧化物厚度“tox”(在原理图设计及单元信息122的网表123中进行规定)的情况下,局部失配变化的信息可包括栅极长度L、栅极宽度W及氧化物厚度tox的(物理)变化,其中所述变化中的每一者由高斯概率分布(Gaussian probability distribution)来描述。在一些实施例中,此种高斯概率分布中的每一者可由技术档案124提供。更具体来说,L的变化可被描述为具有平均值(μL)及标准偏差(σL)的第一概率分布;W的变化可被描述为具有平均值(μW)及标准偏差(σW)的第二概率分布;tox的变化可被描述为具有平均值(μtox)及标准偏差(σtox)的第三概率分布。

在一些实施例中,电子设计自动化工具140是被配置成从非暂态计算机可读存储媒体(例如,120)撷取所存储(软件)程序指令126且在通用处理器上执行所述指令的专用计算机。非暂态计算机可读存储媒体120的例子包括但不限于硬盘驱动器(hard disk drive,HDD)、只读存储器(read only memories,“ROMs”)、随机存取存储器(random access memories,“RAMs”)、快闪存储器等。

在一些实施例中,电子设计自动化工具140包括行为模型库142、全局变化引擎144、及局部变化引擎146。应注意,图2所示电子设计自动化工具140的所说明实施例仅为例子。因此,电子设计自动化工具140中可包括一个或多个库及/或引擎/模型,此仍保持处于本发明的范围内。举例来说,电子设计自动化工具140可进一步包括用于对电路设计(例如,网表123)进行布局的“放置布线(place a route)”模型/引擎。

行为模型库142可存储多个行为模型,所述多个行为模型分别描述如上所述相应的电路(例如,系统级电路的子电路)响应于一个或多个行为输入(例如,操作参数)而利用相应的行为级参数进行的运行。换句话说,每一行为模型可以相应的行为级参数的函数来实施,所述行为模型被配置成接收一个或多个行为输入且响应于所述行为输入而利用所述函数输出一个或多个对应的行为输出。在一些实施例中,基于相应的子电路的操作/特性来确定此种函数,且进一步地,可通过上述一个或多个行为级参数来表征所述函数(子电路的行为模型),所述行为级参数为例如(举例来说)系统级电路中的第一子电路(例如,压控振荡器)的增益、系统级电路中的第二子电路(例如,相位频率检测器)的上升时间及下降时间等。将参考图2所示示例性锁相回路系统/电路进一步详细论述行为模型。

全局变化引擎144被配置成从原理图设计及单元信息122中撷取网表123,使用所存储的行为模型(撷取自行为模型库142),并且基于全局角的信息(撷取自技术档案124)为网表123的相应的子电路提供纳入有全局角的一个或多个行为输出。换句话说,全局变化引擎144可通过将全局角纳入相应行为模型的行为级参数中而使每一子电路考虑全局角的影响。因此,上述行为级参数可根据全局角的纳入(选择)而变化。此外,在一些实施例中,网表123中的每一子电路可独立地及单独地被选择成根据特定全局角来操作。如此一来,每一子电路可在具体全局角处充当包括其相应的行为输入/输出的构建区块,且通过使各构建区块相关联,在同时将每一子电路的全局角考虑在内的情况下可对系统级电路的一个或多个操作响应进行推导(或仿真)。下文将参考图3进一步详细阐述全局变化引擎144的操作。

局部变化引擎146被配置成自原理图设计及单元信息122撷取网表123,使用所存储的行为模型(撷取自行为模型库142),并且基于局部失配变化的信息(撷取自技术档案124),为网表123的相应子电路提供纳入有局部失配变化的一个或多个行为输出。换句话说,局部变化引擎146可通过将局部失配变化纳入相应行为模型的行为级参数中而使每一子电路考虑到局部失配变化的影响。因此,在一些实施例中,网表123中的每一子电路可独立地及单独地考虑其相应的局部失配变化。如此一来,每一子电路的行为模型可在将每一子电路的局部失配变化考虑在内时充当构建区块,以推导(仿真)出系统级电路的一个或多个操作响应。下文将参考图4进一步详细地阐述局部变化引擎146的操作。

系统100还包括一个或多个输入/输出(input/output,I/O)装置150,所述一个或多个输入/输出装置150可包括具有显示器、键盘、定点装置(pointing device)、触摸屏及/或类似组件的计算装置。电子设计自动化工具140提示用户使用输入/输出装置150进行输入,且用户使用输入/输出装置150输入所请求的信息并控制电子设计自动化工具140的操作。

电子设计自动化工具140指示可包括一个或多个经编程处理器。在一些实施例中,处理负荷由两个或更多个应用程序来执行,并且每个应用程序分别在单独的处理器上执行。而在其他实施例中,所有工艺均使用一个处理器来执行。

尽管图1示出对特定的模块分配各种任务,但此仅为一个例子。所述各种任务可被指派给不同的模块,以提高性能或提高编程的灵活度。

图2说明根据各种实施例的锁相回路(phase-locked loop,PLL)系统/电路200的示例性方块图。在一些实施例中,锁相回路电路200可包括具有彼此耦合的多个子电路的系统级电路。如图所示,锁相回路电路200包括相位频率检测器(phase frequency detector,PFD)202、电荷泵(charge pump,CP)及低通滤波器(low-pass filter,LF)204、以及压控振荡器(voltage control oscillator,VCO)206。应可理解的是,锁相回路电路200仅为举例。根据本发明的各种实施例,可对诸多其他类型的电路、子电路或系统进行仿真或设计。

如上所述,可通过以下方式来推导系统级电路的系统级输出响应:对于系统级电路的每一子电路执行一个或多个(装置级或晶体管级)仿真,以推导一个或多个相应的行为级参数(即,推导各别的行为模型),然后基于所述系统级电路的设计(例如,网表123)来使所述一个或多个行为模型相关联。以下关于图2进行的论述将针对子电路202、子电路204及子电路206中每一者的各别的行为级参数以及各别的行为模型(即,由行为级参数描述的功能)进行讨论。此外,在一些实施例中,每一子电路的行为输出是根据每一个行为输入如何对由各别的行为级参数所描述的函数作出响应来产生,此将在下文进一步详细论述。

在一些实施例中,为了用于锁相回路的应用上(例如,锁相回路电路200)中,相位频率检测器202通常被视为数字区块,所述数字区块被配置成接收数字时钟信号201,以将作为相位频率检测器202的行为输出的数字控制信号203输出至串联耦合的电荷泵与低通滤波器204。如此一来,相位频率检测器202的行为模型可被描述为数字控制信号203如何通过使用相位频率检测器202的行为级参数(例如(举例来说)相位频率检测器202的重设时间、上升时间、下降时间、延迟时间)来对数字时钟信号201作出响应。因此,举例来说,部分的相位频率检测器202的行为模型可被表示成:当输入数字时钟信号201作为第一模式时,相位频率检测器202可使用上述的行为级参数,以在第一数字模式输出数字控制信号203;且当输入数字时钟信号201作为第二模式时,相位频率检测器202可使用上述的行为级参数,以在第二数字模式输出数字控制信号203。

然后,电荷泵及低通滤波器204使用数字控制信号203输出电压控制信号205作为电荷泵及低通滤波器204的行为输出,以串联耦合的压控振荡器208。如此一来,电荷泵及低通滤波器204的行为模型可被描述为电压控制信号205如何通过使用电荷泵及低通滤波器204的行为级参数(例如(举例来说)电荷泵的上电流电平、电荷泵的下电流电平、低通滤波器的电容值、低通滤波器的电阻值)来响应数字控制信号203。因此,举例来说,部分的电荷泵及低通滤波器204的行为模型可被表示成:当数字控制信号203包括第一数字模式(从相位频率检测器202接收)时,电荷泵及低通滤波器204可使用各别的行为级参数以第一电压电平来输出电压控制信号205;当数字控制信号203包括第二数字模式(如从相位频率检测器202接收)时,电荷泵及低通滤波器204可使用各别的行为级参数以第二电压电平输出电压控制信号205。

然后,压控振荡器206使用电压控制信号205输出频率信号207来作为压控振荡器206的行为输出,输出频率信号207在一些实施例中也是系统级锁相回路电路200的其中一个输出响应。如此一来,压控振荡器206的行为模型可被描述为输出频率信号207如何通过使用压控振荡器206的行为级参数(例如(举例来说)压控振荡器206的电压对频率增益)来响应电压控制信号205。举例来说,部分的压控振荡器206的行为模型可被表示成:当电压控制信号205在第一电压电平(从电荷泵及低通滤波器204接收)时,压控振荡器206使用行为级参数(例如,电压至频率增益)以第一值输出输出频率信号207;当电压控制信号205在第二电压电平(从电荷泵及低通滤波器204接收)时,压控振荡器206使用行为级参数(例如,电压对频率增益)以第二值输出输出频率信号207。

图3是根据本发明一些实施例的一种将一个或多个全局角纳入系统级电路的每一子电路的行为级参数中以使得能够在考虑到局部失配变化的情况下对系统级电路进行仿真的方法300的流程图。在各种实施例中,由图1至图2中所说明的相应的组件执行方法300的操作。为便于论述,将结合图1至图2来阐述方法300的以下实施例。方法300的所说明实施例仅为例子。因此,应可理解的是,可对各种操作中的任何操作进行省略、重新排序、及/或添加,此仍保持处于本发明的范围内。

根据各种实施例,方法300首先进行操作步骤302,在操作步骤302中,将系统级电路的网表提供至全局变化引擎144。如上所述,网表可存储在媒体120(图1)的原理图设计及单元信息122中且由原理图设计及单元信息122来提供。在一些实施例中,系统级电路可包括多个子电路,且因此,网表可包括彼此之间进行耦合的多个子电路,以提供系统级电路所用以执行的一个或多个逻辑功能及/或模拟功能。在一些实施例中,在操作步骤302期间,媒体120的原理图设计及单元信息122还可提供系统级电路被配置用来执行的一个或多个参数。

根据各种实施例,方法300继续进行操作步骤304,在操作步骤304中,媒体120的技术档案124提供全局角的信息,且将所述信息提供至全局变化引擎144。如上所述,全局角的信息可由制作构成子电路及系统级电路的装置/线的每一代工厂提供。以五个角(即,TT、SS、FF、SF、FS)为例,可将每一子电路选择成根据至少一个角运行,此将在以下操作中进一步详细论述。

方法300继续进行操作步骤306,在操作步骤306中,根据各种实施例,全局变化引擎144将系统级电路的网表划分成多个子网表。更具体来说,每一子网表对应于相应的子电路。在一些实施例中,全局变化引擎144可存取行为模型库142以基于相应的子电路的功能性/特性及系统级电路的应用来为每一子电路确定(或选择)合适的行为模型。如此一来,在一些实施例中,每一所选择行为模型可包括如以上参考图2所述通过相应的行为级参数来描述的一个或多个功能。在一些实施例中,所选择行为模型可用于随后用来对系统级输出响应进行仿真(此将在下文进行阐述)。

根据各种实施例,方法300继续进行操作步骤308,在操作步骤308步骤中,全局变化引擎144为所划分子电路(在操作步骤306中划分)中的每一者选择相应的全局角。以图2所示锁相回路电路200及五个角(即,TT、SS、FF、SF、FS)为例,可将相位频率检测器202、电荷泵及低通滤波器204以及压控振荡器206选择成分别根据SS角、SF角、SS角运行。

根据各种实施例,方法300继续进行操作步骤310,在操作步骤310中,使用所选择全局角在装置级(或晶体管级)上对每一子电路进行仿真。即,可在考虑到相应的全局角的情况下在装置级上对每一子电路进行仿真。在一些实施例中,在操作步骤310中,全局变化引擎144可使用所选择全局角(在操作步骤308中选择)对子网表中的每一者执行一个或多个装置级仿真(例如,着重于集成电路的仿真程序(Simulation Program with Integrated Circuit Emphasis,SPICE)),以推导出相应的子电路的“感知全局变化的”行为级参数。

继续以上例子,在所选择的全局角(SS角)之下,于相位频率检测器202执行着重于集成电路的仿真程序的仿真,可使相位频率检测器202在SS角处具有对应的一组行为级参数。在所选择的全局角(SF角)之下,对电荷泵及低通滤波器204执行着重于集成电路的仿真程序的仿真,可使电荷泵及低通滤波器204在SF角处具有对应的一组行为级参数。在所选择全局角(SS角)之下,对压控振荡器206执行着重于集成电路的仿真程序的仿真,可使压控振荡器206在SS角处具有对应的一组行为级参数。

应注意的是,一旦确定出(在操作步骤306中确定)每一子电路的行为模型(即,通过各别的行为级参数描述的函数),所述函数便无法再改变。然而,依据所选择的全局角(在操作步骤308中选择),行为级参数的值可相应地变化。换句话说,每一子电路的行为输入/输出可随着自身的行为级参数而变化,且也随着与子电路耦合的子电路的行为级参数(依序随着各别的行为输入/输出)而变化。

根据各种实施例,方法300继续进行操作步骤312,在操作步骤312中,提供一个或多个系统级操作输入,以仿真系统级输出响应。在一些实施例中,全局变化引擎144可从媒体120的原理图设计及单元信息122撷取系统级操作输入。系统级操作输入可包括数字信号、模拟信号、及/或其组合。

根据各种实施例,方法300继续进行操作步骤314,在操作步骤314中,使用系统级操作输入以及每一子电路的行为输入及输出来推导系统级输出响应。在一些实施例中,操作步骤314可由全局变化引擎144来执行。概括地说,在操作步骤306中,为每一子电路指定行为模型(即,通过使用各别的行为级参数来描述的函数),且在操作步骤310中,对每一子电路进行仿真,以确定各别的行为级参数在所选择的全局角处的值。因此,在操作步骤314中,每一子电路可接收一个或多个行为输入,使用具有各别的行为级参数的所指定的行为模型,并输出一个或多个对应的行为输出。且基于网表(系统级电路的设计)使所述多个行为输入及输出彼此相关联可使得容易地获得系统级输出响应。如此一来,在同时考虑到变化(例如,全局角)的情况下,仍可以较高的层级对系统级电路进行仿真,此会有利地减少仿真的时间/成本。

继续使用以上例子,当将(系统级操作)输入201提供至相位频率检测器202时,全局变化引擎144使用在SS角处相位频率检测器202的所指定行为模型及各别的行为级参数来提供行为输出203。然后,全局变化引擎144使用行为输出203作为电荷泵及低通滤波器204的行为输入。此外,全局变化引擎144使用在SF角处电荷泵及低通滤波器204的所指定行为模型及相应的行为级参数来提供行为输出205。相似地,全局变化引擎144使用行为输出205作为压控振荡器206的行为输入以及使用在SS角处压控振荡器206的所指定行为模型及相应的行为级参数来提供行为输出207。在一些实施例中,相位频率检测器202的行为输出203(响应于相位频率检测器202的输入201)、电荷泵及低通滤波器204的行为输出205(响应于电荷泵及低通滤波器204的输入203)及/或压控振荡器206的行为输出207(响应于压控振荡器206的输入205)可分别作为其中一个系统级输出的响应。

选择性地或额外地,在一些实施例中,在操作步骤314期间,可选择一个或多个子电路以在不使用相应的行为级参数的情况下进行仿真。相反,可使用晶体管级仿真在所选择全局角处对这一个或多个子电路进行仿真以产生相应的行为输出。如此一来,所产生的相应行为输出可具有较高的准确度。

图4是根据本发明一些实施例的一种将局部失配变化纳入系统级电路的每一子电路的行为级参数中以使得能够在考虑到局部失配变化的情况下对系统级电路进行仿真的方法400的流程图。在各种实施例中,由图1至图2中所说明的相应的组件执行方法400的操作。为便于论述,将结合图1至图2来阐述方法400的以下实施例。方法400的所说明实施例仅为例子。因此,应理解,可对各种操作中的任何操作进行省略、重新排序及/或添加,此仍保持处于本发明的范围内。

根据各种实施例,方法400首先进行操作步骤402,在操作步骤402中,将系统级电路的网表提供至局部变化引擎146。如上所述,网表可存储在媒体120(图1)的原理图设计及单元信息122中且由原理图设计及单元信息122提供。在一些实施例中,系统级电路可包括多个子电路,且因此,网表可包括彼此之间进行耦合的多个子电路以提供系统级电路所用以执行的一个或多个逻辑功能及/或模拟功能。在一些实施例中,在操作步骤402期间,媒体120的原理图设计及单元信息122还可提供用于使系统级电路进行操作的一个或多个参数。

根据各种实施例,方法400继续进行操作步骤404,在操作步骤404中,媒体120的技术档案124提供局部失配变化的信息且将所述信息提供至局部变化引擎146。如上所述,局部失配变化的信息可由制作构成子电路及系统级电路的装置/线的每一代工厂提供。在一些实施例中,局部失配变化在具体技术节点处对于每一类型的线及/或装置一般包括一组变化,其中每一变化被描述为概率分布且每一概率分布对应于设计参数(例如,信道宽度、信道长度、栅极氧化物厚度等)或装置特性(例如,阈值电压)的变化。

在例子中,对于例如子电路的第一金属氧化物半导体场效晶体管等装置,第一金属氧化物半导体场效晶体管的局部失配变化可包括四个变化(即,四个概率分布)。更具体来说,这四个变化可分别表示第一金属氧化物半导体场效晶体管的通道宽度的概率分布、第一金属氧化物半导体场效晶体管的通道长度的概率分布、第一金属氧化物半导体场效晶体管的栅极氧化物厚度的概率分布、第一金属氧化物半导体场效晶体管的阈值电压的概率分布。对于子电路的第二金属氧化物半导体场效晶体管,第二金属氧化物半导体场效晶体管的局部失配变化可包括分别表示第二金属氧化物半导体场效晶体管的信道宽度、信道长度、栅极氧化物厚度、及阈值电压的变化的四个概率分布。

在一些实施例中,如上所述,局部失配变化中的一些可不具有物理意义且仅用于统计目的。因此,继续使用以上例子,子电路的第一金属氧化物半导体场效晶体管的局部失配变化可包括其中每一概率分布均表示非物理统计变量的有限数目(例如,3~10个)的概率分布。

根据各种实施例,方法400继续进行操作步骤406,在操作步骤406中,局部变化引擎146将系统级电路的网表划分成多个子网表。更具体来说,每一子网表对应于相应的子电路。在一些实施例中,局部变化引擎146可存取行为模型库142以基于相应的子电路的功能性/特性以及系统级电路的应用来为每一子电路确定(或选择)合适的行为模型。如此一来,在一些实施例中,每一所选择行为模型可包括如以上参考图2所述由相应的行为级参数描述的一个或多个函数。在一些实施例中,所选择行为模型可用于随后用来对系统级输出响应进行仿真(此将在下文进行阐述)。

根据各种实施例,方法400继续进行操作步骤408,在操作步骤408中,局部变化引擎146使用(子电路中)所包括的相应的装置/线中的每一者的局部失配变化来对每一子电路进行仿真以推导出多组概率分布,其中每组概率分布对应于相应的装置的变化/线的变化。更具体来说,在一些实施例中,可通过执行至少一个蒙地卡罗仿真(Monte Carlo simulation)来推导出操作步骤408中的仿真中的每一者。一般来说,蒙地卡罗仿真接收从第一概率分布随机产生的多个输入,对所述输入执行确定性计算以提供多个输出,并将所述输出进行聚合以作为第二概率分布。

重新参考图2且以锁相回路电路200为例,相位频率检测器202可包括七个晶体管。如上所述,每一晶体管包括四个局部失配变化:相应的通道宽度的概率分布、相应的通道长度的概率分布、相应的栅极氧化物厚度的概率分布、及相应的阈值电压的概率分布。通过使用一个或多个蒙地卡罗仿真,相位频率检测器202的每一晶体管可包括相应的一组概率分布(对应于晶体管的相应的变化),其中每一概率分布对应于信道长度、信道宽度、栅极氧化物厚度、及阈值电压的变化。在一些实施例中,局部变化引擎146可为每一晶体管选择一个或多个变化。在以上例子中,局部变化引擎146可为相位频率检测器202的晶体管中的每一者选择阈值电压变化(即,阈值电压的概率分布)。

根据各种实施例,方法400继续进行操作步骤410,在操作步骤410中,局部变化引擎146使用子电路中所包括的每一装置/线的变化来推导相应的行为模型(相应的子电路)中的每一行为级参数的变化。更具体来说,通过各种曲线/面拟合技术中的任一种来推导每一行为级参数的变化。因此,相应的子电路的每一行为级参数也可被描述为概率分布,其是相应的局部失配变化(即,子电路中所包括的相应的装置/线的局部失配变化)的函数。举例来说,压控振荡器206(图2)可包括三个晶体管,且每一晶体管包括相应的阈值电压变化(即,蒙地卡罗变量):Vth1、Vth2及Vth3。应注意,每一变化是相应的蒙地卡罗变量的概率分布。基于一阶多项式方程,压控振荡器206的增益(即,压控振荡器206的行为级参数中的一个)可被表示成a1×Vth1+a2×Vth2+a3×Vth3。使用一个或多个曲线拟合,可推导出系数a1、a2及a3,且如此一来,将压控振荡器206的增益与相应的阈值电压变化联系在一起。

应注意,一旦确定出每一子电路的行为模型(即,由相应的行为级参数描述的功能)(在操作步骤406中确定),所述功能便无法再改变。然而,在操作步骤410之后,行为级参数中的每一者是局部失配变化中的至少一个的函数。换句话说,每一子电路的行为输入/输出可为局部失配变化中的所述至少一个的函数。

根据各种实施例,方法400继续进行操作步骤412,在操作步骤412中,提供一个或多个系统级操作输入以对系统级输出响应进行仿真。在一些实施例中,局部变化引擎146可从媒体120的原理图设计及单元信息122检索系统级操作输入。系统级操作输入可包括数字信号、模拟信号、及/或其组合。

根据各种实施例,方法400继续进行操作步骤414,在操作步骤414中,使用系统级操作输入以及每一子电路的行为输入及输出来推导系统级输出响应。在一些实施例中,操作步骤414可由局部变化引擎146来执行。概括地说,在操作步骤406中,为每一子电路指定行为模型(即,使用相应的行为级参数来描述的功能),且在操作步骤410中,在考虑到局部失配变化中的至少一个的情况下推导每一子电路的行为级参数。因此,在操作步骤414中,每一子电路可接收一个或多个行为输入,使用具有相应的行为级参数的所指定行为模型(作为局部失配变化的函数),并输出一个或多个对应的行为输出。与图3所示操作步骤314相似,基于网表(系统级电路的设计)使所述多个行为输入及输出彼此相关联可使得容易地获得系统级输出响应。如此一来,在同时考虑到变化(例如,局部失配变化)的情况下,仍可以较高层级对系统级电路进行仿真,此会有利地减少仿真时间/成本。

在实施例中,一种集成电路(IC)仿真方法包括:(a)提供系统级电路的设计网表,其中系统级电路包括第一子电路;(b)提供基于第一子电路的操作而确定的第一行为模型,其中第一行为模型是一个或多个相应的行为级参数的函数;(c)将第一变化纳入第一行为模型的一个或多个行为级参数中的每一者中;以及(d)基于纳入有第一变化的第一行为模型的一个或多个行为级参数对系统级电路进行仿真。

在另一实施例中,步骤(d)包括使用第一变化对第一子电路执行晶体管级仿真。

在另一实施例中,步骤(e)包括使用第一行为模型及纳入有第一变化的第一行为模型的一个或多个行为级参数来提供行为输出。

在另一实施例中,步骤(b)进一步包括提供基于第二子电路的操作而确定的第二行为模型。第二行为模型是一个或多个相应的行为级参数的函数。

在另一实施例中,步骤(c)进一步包括提供第二变化。

在另一实施例中,第二变化不同于第一变化。

在另一实施例中,第二变化相同于第一变化。

在另一实施例中,步骤(c)进一步包括将第二变化纳入第二行为模型的一个或多个行为级参数中的每一者中。

在另一实施例中,步骤(d)包括分别基于纳入有第一变化的第一行为模型的一个或多个行为级参数及纳入有第二变化的第二行为模型的一个或多个行为级参数对系统级电路进行仿真。

在另一实施例中,步骤(d)进一步包括使用第二行为模型及纳入有第二变化的第二行为模型的一个或多个行为级参数来提供行为输出。将行为输出提供至第一行为模型作为行为输入,以使用行为输入、第一行为模型、及纳入有第一变化的一个或多个行为级参数对第一子电路进行仿真。

在另一实施例中,一种系统包括:非暂态存储器,被配置成存储系统级电路的设计网表,其中系统级电路包括第一子电路;以及一个或多个硬件处理器,与非暂态存储器进行通信。一个或多个处理器被配置成:(a)接收设计网表;(b)接收基于第一子电路的操作而确定的第一行为模型,其中第一行为模型是一个或多个相应的行为级参数的函数;(c)将第一变化纳入第一行为模型的一个或多个行为级参数中的每一者中;以及(d)基于纳入有第一变化的第一行为模型的一个或多个行为级参数对系统级电路进行仿真。

在另一实施例中,第一变化包括工艺-电压-温度角中的至少一个。

在另一实施例中,在步骤(c)中,一个或多个硬件处理器进一步被配置成使用第一变化对第一子电路执行晶体管级仿真。

在另一实施例中,在步骤(d)中,一个或多个硬件处理器进一步被配置成使用第一行为模型及纳入有第一变化的第一行为模型的一个或多个行为级参数来提供行为输出。

而在另一实施例中,一种系统包括:非暂态存储器,被配置成存储系统级电路的设计网表,其中系统级电路包括第一子电路及第二子电路;以及一个或多个硬件处理器,与非暂态存储器进行通信。一个或多个处理器被配置成:(a)接收设计网表;(b)接收基于第一子电路的操作而确定的第一行为模型及基于第二子电路的操作而确定的第二行为模型,其中第一行为模型是第一多个行为级参数的函数且第二行为模型是第二多个行为级参数的函数;(c)将第一变化纳入第一多个行为级参数及第二多个行为级参数中的每一者中;以及(d)基于第一多个行为级参数及第二多个行为级参数对系统级电路进行仿真。

在另一实施例中,在步骤(c)中,一个或多个硬件处理器进一步被配置成接收与第一变化不同的第二变化。

在另一实施例中,在步骤(c)中,一个或多个处理器进一步被配置成将第一变化及第二变化分别纳入第一多个行为级参数及第二多个行为级参数中的每一者中。

以上内容概述了若干实施例的特征,以使所属领域中的普通技术人员可更好地理解本发明的各个方面。所属领域中的技术人员应理解,其可容易地使用本发明作为设计或修改其他工艺及结构的基础来实施本文所介绍的实施例的相同目的及/或实现本文所介绍的实施例的相同优点。所属领域中的技术人员也应意识到,此种等效构造并不背离本发明的精神及范围,且其可在不背离本发明的精神及范围的条件下对其做出各种变化、替代及变更。

[符号的说明]

100:系统

120:非暂态计算机可读存储媒体/存储媒体/媒体

122:原理图设计及单元信息

123:网表

124:技术档案

126:软件程序指令/(软件)程序指令

140:电子设计自动化工具

142:行为模型库

144:全局变化引擎

146:局部变化引擎

150:输入/输出装置

200:锁相回路系统/电路/锁相回路电路/系统级锁相回路电路

201:数字时钟信号/(系统级操作)输入/输入

202:相位频率检测器/子电路

203:数字控制信号/输入/行为输出

204:电荷泵及低通滤波器/子电路

205:电压控制信号/行为输出/输入

206:压控振荡器/子电路

207:输出频率信号/行为输出

300、400:方法

302、304、306、308、310、312、314、402、404、406、408、410、412、314:操作步骤

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1